Object Detection/YOLO

YOLO_mark 사용법

_펭구_ 2024. 1. 19. 14:52

이 게시글은 YOLO를 학습시키기 위해 사전에 준비할 Dataset 구축에 관련된 내용을 다룬다. 

YOLO를 학습시키기 위해서는 우선 원하는 class의 사진을 모아야 한다. 구글 이미지 크롤링과 아래의 사이트에서 

이미지를 쉽게 구할수 있다. 이미지를 구하면 본인이 원하는 학습과 맞는 이미지인지 (ex 사람을 인식하고 싶은데 사람이 없는 사진 등) 먼저 눈으로 구분하고 삭제하는 과정을 거친다 필수는 아니지만 이렇게 하는게 마음이 편해서 지금까지 이렇게 진행하고 있다. 

https://roboflow.com/

 

Roboflow: Give your software the power to see objects in images and video

Everything you need to build and deploy computer vision models.

roboflow.com

https://www.kaggle.com/

 

Kaggle: Your Machine Learning and Data Science Community

Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.

www.kaggle.com


 

이렇게 이미지 Dataset이 모아졌으면 Annotation 과정을 진행해야한다. YOLO는 이미지 데이터와 해당 이미지 내의 객체 경계 상자를 포함한 레이블 데이터를 기반으로 모델을 학습하는 지도학습 모델이다.  

따라서 YOLO를 학습시키기 위해서는 이미지에 bounding box를 그리는 Annotation 작업을 진행해야한다. 

이런 작업을 수월하게 도와주는것이 YOLO_mark이다. 다른 Annotation tool도 있으나 써본적이 없음으로 YOLO_mark만 소개한다. YOLO_mark는 아래의 깃허브 사이트에 상세히 설명 되어있다. 

https://github.com/AlexeyAB/Yolo_mark

 

GitHub - AlexeyAB/Yolo_mark: GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2

GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2 - GitHub - AlexeyAB/Yolo_mark: GUI for marking bounded boxes of objects in images for training neural n...

github.com

우분투 20.04 환경에서 설치를 진행 했다. 설치는 아래의 코드를 입력해 설치를 진행하면 된다.

1. YOLO_mark  다운로드 

$ sudo git clone https://github.com/AlexeyAB/Yolo_mark

 

2. YOLO_mark 컴파일

$ cd Yolo_mark
$ sudo cmake .
$ sudo make

 

3. YOLO_mark 실행 

$ sudo ./linux_mark.sh

※실행 권한이 없어서 실행이 안되면 다음의 코드를 입력해 실행한다. 

$ sudo chmod 700 linux_mark.sh

다음으로 자신이 모은 dataset(image)를 Yolo_mark/x64/Release/data/img 폴더에 이동시켜준다. 

폴더의 구성은 아래의 사진과 같다. 사진은 img 폴더에 들어가 있다. 

 

다음으로 각 파일의 구성을 보도록 하겠다. 

 

1. obj.data

obj.data에는 아래 사진과 같이 구성되어 있다. 

classes는 학습할 object의 갯수를 적는다. train,valid는 train,valid 경로

names는 object의 이름 파일, backup은 학습 결과를 저장할 경로이다. 

여기서 classes의 숫자만 바꿔주면 된다. 

obj.data

2. obj.names

obj.names에는 object의 이름을 적어주는 곳이다. obj.data와 갯수가 같아야 한다. 

obj.names

3. train.txt

이미지의 경로가 저장되어 있는 곳이다. 

train.txt

 


이렇게 기본 본인의 dataset에 맞추어 설정을 다 끝냈으면 아래와 같이 YOLO_mark를 실행한다. 

YOLO_mark 실행

아래의 사진은 초기 실행 화면이다. 

실행을 시키면 다음과 같은 화면이 뜨고 드래그 해서 Bounding Box를 그려 마킹해준다.

하단에 image num은 (현재 이미지 위치/전체 이미지 갯수) 로 표현된다. 

object id는 obj.names에 따라 0~ 순서대로 지정된다. 

YOLO_mark

YOLO_mark는 단축키는  다음과 같다. 

[←] : prev_img =  이전 이미지

[→, space bar] : next_img =  다음 이미지

[ c ] : clear_marks = 모든 라벨링 삭제

[ 0_9 ] : obj_id = Object id 선택

[ m ] : show coords = 마우스 x,y좌표 보여지게 하기

[ esc ] : exit = 종료

[ w ] : line width = 라인 굵기

[ k ] : hide obj_name = 객체 이름 숨기기

[ o ] : track objects = 현재 라벨링을 다음 이미지에 복사

[ r ] : mouse delets selected = 현재 마우스 커서 라벨링 삭제

[ h ] = 도움말 보기 

 


Reference 

https://m.blog.naver.com/kthchunjae/222088500189

 

Ubuntu에 YOLOv3 설치(4) : YOLO_Mark설치[Installing YOLO_Mark on Ubuntu]

마지막이다.. YOLO_Mark만 설치하면 어느정도 Yolo를 활용하기 위한 준비는 끝이다. The final step...

blog.naver.com

https://j-remind.tistory.com/64

 

7. (YOLO) 이미지 학습

Ubuntu 18.04에서 이미지를 학습시키기 전 Yolo_mark를 사용하여 Yolov3와 v2 학습을 위한 이미지에 bounded boxes 마킹을 할 것이다.학습 시킬 이미지 데이터는 (Crawler) selenium으로 이미지 크롤링에서 소개한

j-remind.tistory.com

https://ctkim.tistory.com/entry/Window-YOLO-Maker%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Custom-%ED%95%99%EC%8A%B5-%EB%B0%8F-%EA%B2%80%EC%B6%9C#Yolomark%EB%8B%A8%EC%B6%95%ED%82%A4

 

Window - YOLO Maker를 이용한 Custom 학습 및 검출

☞ 문서의 내용은 가장 하단 참고문헌 및 사이트를 참고하여 필자가 보기 쉽도록 정리한 내용입니다. ☞ 틀린 내용 및 저작권 관련 문의가 있는 경우 문의하시면 수정 및 삭제 조치하겠습니다. Y

ctkim.tistory.com


정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다. 틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글 남겨주시거나 또는 이메일로 보내주시면

감사하겠습니다.

'Object Detection > YOLO' 카테고리의 다른 글

YOLOv6 custom Train  (0) 2024.01.29
YOLOv5 custom Train  (0) 2024.01.28
YOLOv4 custom Train  (1) 2024.01.27
YOLOv3 custom Train  (0) 2024.01.25
[Ubuntu 20.04 LTS] Darknet 설치  (0) 2024.01.24