YOLOv5

YOLOv5 ๋ถ„์„(3) - Tips for Best Training Results

dhpark 2022. 3. 18. 14:47

์ถœ์ฒ˜: https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results

 

GitHub - ultralytics/yolov5: YOLOv5 ๐Ÿš€ in PyTorch > ONNX > CoreML > TFLite

YOLOv5 ๐Ÿš€ in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

github.com

์œ„์˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ  ํ•˜์—ฌ ์ตœ์ ์˜ YOLOv5 ํ•™์Šต ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋ฐ์ดํ„ฐ ์…‹ ์–‘์ด ์ถฉ๋ถ„ํžˆ ํฌ๊ณ , ๋ผ๋ฒจ์ด ์ž˜๋˜์–ด ์žˆ๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ชจ๋ธ ๋ฐ ํ•™์Šต ๋ฐฉ๋ฒ• ์ˆ˜์ • ์—†์ด๋„ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋””ํดํŠธ ์„ธํŒ…์œผ๋กœ ํ•™์Šตํ•˜๊ณ , ๊ทธ๋ž˜๋„ ์•ˆ๋˜๋ฉด ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šตํ•˜๋ฉด์„œ ์ƒ๊ธฐ๋Š” ์ •๋ณด๋Š” yolov5/runs/train/exp ์— ์ €์žฅ๋˜๋ฏ€๋กœ ๋ณธ ์ •๋ณด๋ฅผ ์ถฉ๋ถ„ํžˆ ์ฒจ๋ถ€ํ•ด์„œ ์งˆ๋ฌธ์„ ์˜ฌ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์…‹ ์š”๊ฑด

- ํด๋ž˜์Šค๋‹น ์ด๋ฏธ์ง€์ˆ˜: 1500 ๊ฐœ ์ด์ƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค

- ํด๋ž˜์Šค๋‹น ๊ฐ์ฒด ์ˆ˜: (์ „์ฒด ํ•™์Šต ๋ฐ์ดํ„ฐ ์ƒ์—์„œ ํด๋ž˜์Šค๋‹น ๋ผ๋ฒจ๋ง๋œ ๊ฐ์ฒด ์ˆ˜) 10000r๊ฐœ ์ด์ƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

- ์ด๋ฏธ์ง€ ๋‹ค์–‘์„ฑ: ์‹œ๊ฐ„, ๊ณ„์ ˆ, ์กฐ๋ช…, ๋‚ ์”จ, ๊ฐ๋„ ๋“ฑ ์‹ค์ œ ์‚ฌ๋ก€์— ๊ธฐ๋ฐ˜ํ•œ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

- ๋ผ๋ฒจ ์ผ๊ด€์„ฑ: ๋ชจ๋“  ๊ฐ์ฒด๋Š” ๋ฐ”๋ฅด๊ฒŒ ๋ผ๋ฒจ๋ง ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ถ„ ๋ผ๋ฒจ๋ง ๋˜์–ด ์žˆ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

- ๋ผ๋ฒจ ์ •ํ™•์„ฑ: ๊ฐ์ฒด์™€ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์—†๊ฒŒ๋” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ผ๋ฒจ๋ง ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

- ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€: ์˜คํƒ(FP)์„ ์ค„์ด๊ธฐ ์œ„ํ•ด, ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ด๋ฏธ์ง€๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. 0 ~ 10% ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๊ฐ€ ์ ๋‹นํ•ฉ๋‹ˆ๋‹ค. COCO ๋ฐ์ดํ„ฐ์…‹์˜ ๊ฒฝ์šฐ๋Š” 1000๊ฐœ์˜ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด์˜ 1% ๋น„์œจ์ž…๋‹ˆ๋‹ค. 

 

(a) COCO ๋ฐ์ดํ„ฐ์…‹์˜ ๊ฒฝ์šฐ ํด๋ž˜์Šค๋‹น ์ ์ ˆํ•œ ์–‘์˜ ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

(b) Pascal๊ณผ ImageNet์€ ๋Œ€๋ถ€๋ถ„์˜ ์ด๋ฏธ์ง€๊ฐ€ 1๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 2 ~ 3๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๋Š” ์ด๋ฏธ์ง€๋Š” 20% ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.

(c) ์ด๋ฏธ์ง€๋‹น ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด์ˆ˜. (b)์™€ ์œ ์‚ฌํ•œ ๊ทธ๋ž˜ํ”„ ์ž…๋‹ˆ๋‹ค.

(d) ๋ฐ์ดํ„ฐ ์…‹ ๋‹น ์นดํ…Œ๊ณ ๋ฆฌ ์ˆ˜, ์นดํ…Œ๊ณ ๋ฆฌ ๋‹น ๊ฐ์ฒด ์ˆ˜

(e) ์ด๋ฏธ์ง€ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์ „์ฒด ์ด๋ฏธ์ง€ ๋น„์œจ

๋ชจ๋ธ ์„ ํƒ

ํฐ ์‚ฌ์ด์ฆˆ์˜ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ํ•™์Šต๊ณผ ๋™์ž‘์— ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“œ๋ฏ€๋กœ, ๋ชจ๋ฐ”์ผ์˜ ๊ฒฝ์šฐ๋Š” YOLOv5s/m์„ ์ถ”์ฒœํ•˜๋ฉฐ, ํด๋ผ์šฐ๋“œ์˜ ๊ฒฝ์šฐ๋Š” YOLOv5l/x๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

[์ถ”์ฒœ] ๋ฏธ๋ฆฌ ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘

- ์ž‘์€ ๋ฐ์ดํ„ฐ์…‹์—์„œ ์ค‘๊ฐ„ ์‚ฌ์ด์ฆˆ ๋ฐ์ดํ„ฐ ์…‹ ์ˆœ์œผ๋กœ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. 

python train.py --data custom.yaml --weights yolov5s.pt
                                             yolov5m.pt
                                             yolov5l.pt
                                             yolov5x.pt
                                             custom_pretrained.pt

์ฒ˜์Œ ๋ถ€ํ„ฐ ํ•™์Šต

python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml
                                                      yolov5m.yaml
                                                      yolov5l.yaml
                                                      yolov5x.yaml

 

ํ•™์Šต ์„ธํŒ…

์ˆ˜์ •ํ•˜๊ธฐ ์ „์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ธํŒ…๋œ ๊ฒƒ์œผ๋กœ ๋จผ์ € ํ•™์Šตํ•˜๊ธฐ๋ฅผ ๊ถŒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ธํŒ…์€ train.py ํŒŒ์ผ์—์„œ argument์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

Epochs: 300์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ์˜ค๋ฒ„ํ”ผํŒ… ํ•œ๋‹ค๋ฉด ๊ฐ์†Œ์‹œํ‚ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Image Size: COCO ๋ฐ์ดํ„ฐ ์…‹์€ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ --img 640์œผ๋กœ ํ•™์Šต ์‹œํ‚ค์ง€๋งŒ, ํ•ด์ƒ๋„๋ฅผ ๋†’์—ฌ ํ•™์Šต์‹œํ‚ค๋ฉด --img 1280 ์ž‘์€ ๋ฌผ์ฒด๋ฅผ ๋”์šฑ ์ž˜ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์Šต์‹œ์™€ ์ถ”๋ก ์‹œ์— img size๋Š” ๋™์ผํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Batch Size: ํ•˜๋“œ์›จ์–ด๊ฐ€ ํ—ˆ๋ฝํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ฐฐ์น˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

HyperParameters: ๋””ํดํŠธ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” hyp.scratch.yaml ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋””ํดํŠธ ๊ฐ’์œผ๋กœ ํ•™์Šตํ•˜๊ธธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. Augmentation๊ณผ ๊ด€๋ จ๋œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ์˜ค๋ฒ„ํ”ผํŒ…์„ ๋Šฆ์ถœ์ˆ˜ ์žˆ๊ณ  mAP๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•™์Šต์ด ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค. hyp['obj']์™€ ๊ฐ™์€ Loss component gain ํŒŒ๋ผ๋ฏธํ„ฐ(?)์˜ ๊ฐ์†Œ๋Š” ์˜ค๋ฒ„ํ”ผํŒ…์„ ๊ฐ์†Œ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.