본문 바로가기

2020_capstone

[10] YOLOv3 데이터 학습하기

728x90

학습을 하기 전 참고로 저는 도커를 통해 학교 GPU에서 학습을 진행하였습니다 !

portainer.io에서 컨테이너를 만들어 이용했습니다.

 

저는 nvidia GeForce GTX 830M 였고, 학교는 nvidia GeForce RTX 2080 X 2 였기에 학습속도가 매우 빨랐습니다.

 

FileZilla를 통해 이미지들과 train.txt, obj.name, obj.data파일들을 전송하여 이용하시면 매우 간편합니다.

학습한 가중치도 FileZilla를 통해서 다시 가져왔습니다.


데이터 학습

 

1) 터미널을 통해 darknet 경로로 이동합니다.

 

cd ~~~~~~~/darknet

 

 

 

2)  다음의 코드를 입력해주세요.

 

wget https://pjreddie.com/media/files/darknet53.conv.74

 

 

 

3) detector.c 를 수정 (가중치의 저장단위 변경)

darknet/examples 폴더 안에 있는 detector.c 를 수정합니다.

 

:set number 입력 후, 138번째 줄로 이동합니다.

 

if (i%10000==0 || (i<1000&&i%100==0)){

학습 횟수가 1000보다 작을때는 가중치를 100단위 그 이상일땐 10000단위로 저장이 됩니다.

 

-> if (i%100==0 || (i<1000&&i%100==0)){

10000을 100으로 수정하여 100단위로 저장되게 하였습니다.

:wq로 저장 후 나가주면 됩니다.

 

 

 

4) 저장을 한 후 컴파일을 반드시 하셔야 합니다. 

 

make

 

 

 

5) 학습을 위한 명령어를 입력합니다.

 

./darknet detector train data/obj.data cfg/yolov3.cfg darknet53.conv.74 -gpu 0

 

 

저같은 경우는 학교컴퓨터의 GPU가 2개였기 때문에 0,1이라고 입력했습니다.2개를 사용하실 시에 0,1로 해주세요 !!

 

학습 진행 중

 

위 사진을 조금 살펴보자면 1583: 0.392320, 0.418447 avg ~~~~~~~ 에서 1538은 학습 횟수를 의미하고 avg는 손실률을 의미합니다.학습을 중단할 때에는 ctrl+c를 눌러주세요.손실률이 어느정도에서 떨어지지 않는다면 중단해 주시면 됩니다.

 

 

 

6) darknet 폴더에서 backup 폴더로 학습 가중치가 저장이 됩니다. 저는 이 가중치를 제 노트북으로 다시 가져와서 테스트 하였습니다!

다음의 사진은 window cmd창에서 도커를 통해 학습 중이던 backup 파일 저장을 확인한 것입니다.

 

ls 명령어를 통해 저장을 볼 수 있습니다.

 

 

 

7) 학습한 데이터를 테스트 하기 위해서는 다음과 같은 명령을 써주세요. 여러개의 가중치 중 가장 인식률이 높은 것을 이용하시면 됩니다.

 

이미지 파일 테스트

./darknet detector test data/obj.data cfg/yolov3.cfg backup/(가중치 파일) (이미지 경로)/(이미지파일)
./darknet detector test data/obj.data cfg/yolov3.cfg backup/yolov3_30000.weights data/img/eat_acc.jpg

 

동영상 파일 테스트
./darknet detector demo data/obj.data cfg/yolov3.cfg backup/(가중치 파일) (동영상 경로)/(동영상 파일)
./darknet detector demo data/obj.data cfg/yolov3.cfg backup/yolov3_30000.weights data/video/acc.mp4

 

웹캠 테스트
./darknet detector demo data/obj.data cfg/yolov3.cfg backup/(가중치 파일)
./darknet detector demo data/obj.data cfg/yolov3.cfg backup/yolov3_30000.weights

 

 

 

다음과 같이 학습 결과를 확인 할 수 있습니다.

 

이미지 파일 학습 테스트

 

 

 

참고 블로그: https://developer-thislee.tistory.com/19?category=818795

728x90