YOLOv5 ๋ถ์(3) - Tips for Best Training Results
์ถ์ฒ: 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 ํ๋ผ๋ฏธํฐ(?)์ ๊ฐ์๋ ์ค๋ฒํผํ ์ ๊ฐ์ ์ํฌ ์ ์์ต๋๋ค.