2020 졸업프로젝트 - 기술 기록용

머신러닝으로 자동차 object detection을 해보자 - (2) yolov2 tiny 모델을 COLAB에서 customize 하기

210_yy 2020. 9. 17. 20:10

https://github.com/AlexeyAB/darknet/tree/47c7af1cea5bbdedf1184963355e6418cb8b1b4f#how-to-train-pascal-voc-data 내용을 참고했음

 

2. 내가 학습시키고자 하는 데이터에 맞게 기존의 파일 수정하기

 

https://github.com/AlexeyAB/darknet

 

AlexeyAB/darknet

YOLOv4 - Neural Networks for Object Detection (Windows and Linux version of Darknet ) - AlexeyAB/darknet

github.com

 위의 사이트에서 zip파일을 다운받거나, git command를 이용하여 clone 한다. 

 

darknet/build/darknet/x64/cfg 에서 자신이 쓰고자 하는 cfg 모델을 복사하여 yolo-obj.cfg 이름으로 바꾼 뒤 다음 내용으로 수정한다. (나는 yolov2-tiny버전 cfg를 사용하고 싶었는데 없어서 github.com/pjreddie/darknet/tree/master/cfg 에서 다운받았다) 

나는 'car' 이미지만 학습시킬 것이기 때문에 class는 1로 두었다. 

 

 

 

darknet/build/darknet/x64/data/ 아래에 obj.names 파일을 만들고 각 줄에 자신의 class 이름을 적는다. 

 

 

 

darknet/build/darknet/x64/data/ 아래에 obj.data 파일을 만들고 아래처럼 입력한다. 

darknet/build/darknet/x64/data/obj 아래에 학습시키고자 하는 이미지 파일들을 모두 넣는다. 

 

 

 

이미지 파일들의 labeling된 결과인 .txt파일도 이미지를 넣은 폴더 안에 함께 넣는다. (여기서 확장명만 다르고 파일 이름들은 같아야함)

 

 

build\darknet\x64\data\ 아래에 train.txt 파일을 만들고 모든 이미지의 경로를 적는다. (darknet.exe 기준 상대경로로)

 

자신의 모델에 맞는 weights를 다운받아준다. (나는 yolov2-tiny.weights를 받았다)

 

자신이 다운받은 weights에 맞는 conv를 얻는다. (cmd창에서 command를 입력하여 얻을 수 있다)

https://github.com/AlexeyAB/darknet/blob/master/build/darknet/x64/partial.cmd를 참고 

 

나는 darknet.exe partial cfg/yolov2-tiny.cfg yolov2-tiny.weights yolov2-tiny.conv.13 13 를 입력하여 yolov2-tiny.conv를 얻었다.

 

 

이 과정을 자신의 드라이브를 마운트 시키고 드라이브 내에서 똑같이 해주면 된다.

반응형