본문 바로가기

Violent Protest Detection System

[YOLO](3) 데이터 학습

<데이터 학습>


Yolov3알고리즘을 사용하여 학습을 시켰다.


Object detection으로 유명한 Yolo알고리즘은 deep learning 을 공부하는 사람이라면 들어봤을 것이다.


학습을 시키기 위해서는 


1. Yolo 학습을 시키기 위한 coco.data, coco.names 파일을 만든다.


coco.data - 학습시킬 클래스의 개수 , 학습시킬 이미지의 경로, 클래스의 이름을 지정할 파일 경로,


    학습 후 weight 파일이 지정될 경로를 지정한다.



coco. names - 각 클래스의 이름이 저장되어 있는 파일    



2. Yolov3.cfg 파일을 custom 하여 파라미터 값들을 변경해준다.


                          learning_rate 는 0.001로 하는 것이 목적이여서


   Gpu를 4개 사용할때는 /4인 0.00025로 설정해줘야 학습률이 0.001로 


   학습시킬 수 있다.



3. 데이터 이미지 라벨링


    학습을 시키기 이전에 이미지를 라벨링하여 어느 객체를 학습시킬 것인지를 분명히 해야한다. 


    라벨링을 위해 YOLO_mark를 사용하여 이미지를 하나하나 라벨링 시켜 이미지당 하나의 좌표


    로 이루어진 txt파일을 만든다.

    


이렇게 세가지의 과정을 거치면 YOLO학습을 시킬 수 있다. 


데이터 학습은 detector.c 파일을 통해 train 함수를 불러와서 coco.data에서 지정해준 경로들을 통해 


이미지 파일의 위치를 파악하고 yolo_nov7.cfg파일을 통해 Yolo layer들과 parameter값들을 가져와서 


학습 시키게 된다. 



이 그림은 학습되고 있는 과정이다.




<학습 환경>


- Ubuntu(16.04)


- GeForce GTX 1080 Ti - Nvidia x4


<참고>


- https://pjreddie.com/darknet/yolo/


- https://github.com/AlexeyAB/Yolo_mark