Deep Learning

Yolo V5 Training.

해시브라우니 2024. 1. 12. 00:47

모든 데이터가 준비되었으니 Yolo v5을 학습시켜 보도록 합시다..

이제 저같은 경우는 coco original set과 AdaIN set해서 2개의 Data를 Input해 학습시켜야했고, 두개를 Combine해서 Label과 사진들을 넣어주었습니다. 

yolov5/datasets/coco/ 에 있는 파일들입니다.

image와 label내부는 이렇게 생겼구요.

 

 

이렇게 한 후 yaml파일을 하나 만들어 주었습니다. 저는 coco에서 customize한 것이기 때문에 coco.yaml을 참고하여 작성하였습니다.

 

이렇게 path와 test는 그냥 주석 처리하고, train과 val 부분만 경로 처리 해주었습니다. label에 대한 경로처리는 왜 없느냐, 저도 첨에 왜 없지 생각했었는데 코드 내부에서 경로대로 이루어진다고 합니다. 그래서 위에 설정된 경로가 중요한 것 같습니다. . . 

 

그 후에 학습시킬 준비는 다 된거 같으니, command를 입력하여 봅시다.

그 전에, 혹시 OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. 에러가 발생할 수 있으니 (찾아보니 패키지 충돌 이라고 함) train.py에 

os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

한 줄 넣어줍시다.

 

저 같은 경우 GPU는 RTX3060 VRAM 12GB 를 사용하고 있고 RAM은 48GB(중국산이라는게 좀 걸리긴합니다)을 사용하고 있습니다. 이 조건에서 batchsize는 32로 잡고(보통 vram 12기가면 16 or 32로 한다고 하네요) single gpu, image size 640, 구조만 yolo v5n을 사용하도록 command를 입력하였습니다.

epoch은 처음 학습이 어떻게 돌아가나 확인하기 위한 용도 였기에, 3회만 하였습니다. (pre-trained된 모델에서 시작하는것이 아니었기 때문에 평가지표가 박살이 났습니다.) 

python train.py --batch-size 32 --img 640 --epochs 3 --data cocostylized.yaml --weights '' --cfg yolov5n.yaml --device 0

 

 

그럼 이렇게 촤르륵 나오는데 저는 coco set을 두개 합친것을 training set으로 돌리기때문에 엄청 오래걸릴 것이라 예상했습니다. 

그래서 3회 돌리면 

이런 결과가 나옵니다. 엄청 mAP가 박살이 난게 보이시죠.

 

추가로 yolo 폴더에 결과 폴더가 생기는데 

 

요로코롬 학습한 이미지 사진도 보여주고 

정리된 그래프와 weight등 많이 제공해줍니다. 결과는 보기 매우 편할듯하네요. 실제보니까 3회는 거의 AdaIN data는 잘 예측하지 못하더라구요.

 

기본적으로 yolo학습에 300회 epoch이 있다고 하는데 전 1번 돌리는데 40분 정도 걸려서 말도 안되는 시간과.. 전기세랑.. 걱정되어서 그정도 까지는 힘들거 같고, 결정적으로 컴퓨터가 메롱이 되어서 웹서핑 외는 사용하기도 버겁더라구요 (카톡도 힘들어함) 

그래서 100회로 줄여 한번 학습시켜 보려고 합니다. 그 후에 Test까지 시도해보려구요. 딥러닝은 꼭 서버를 사용해야 할 것 같네요