๐ ๋ณธ ๋ฆฌ๋ทฐ๋ YOLOv4 ๋ฐ ๋ฆฌ๋ทฐ๋ฅผ ์ฐธ๊ณ ํด ์์ฑํ์ต๋๋ค.
๐ Bag of freevies and Bad of specials
๐ CSPDarknet53 + SPP + PAN + YOLOv3
๐ Optimize for Single GPU
๐ YOLOv4 ๋ฆฌ๋ทฐ์ ์์ YOLO v4๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด์๋์ง ๋จผ์ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. YOLO v4์ ๊ฒฝ์ฐ์๋ ์๋ก์ด ๋ฐฉ๋ฒ๋ก ์ ์ ์ํ๋ ๊ฒ์ด ์๋, ๊ธฐ์กด์ ์๋ ๋ฐฉ๋ฒ๋ก ์ ์ฌ์ฉํด Single GPU ํ๊ฒฝ์์ ์ต์ ํ๋ฅผ ์ํจ ๋คํธ์ํฌ๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
๐ YOLOv4 ๋ ผ๋ฌธ์๋ ๋๋ฌด๋๋ ๋ง์ ๋ฐฉ๋ฒ๋ก ๋ค์ด ๋์ค๊ธฐ ๋๋ฌธ์ ์ ๋ถ๋ฅผ ๋ค ์ดํดํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค(๊ฐ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ด ์ ๋ถ ๋ ผ๋ฌธ ํ ํธ์ด๊ธฐ์...) ๊ฒฐ๋ก ์ ์ผ๋ก ์์์ ์ธ๊ธ๋ ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋ฌ๋ค๋ ๊ฒ์ด๊ธฐ์ ์ ์๋ ๋ฐฉ๋ฒ๋ก ๊ณผ ์ถ๊ฐ์ ์ผ๋ก ์ฌ์ฉ๋ BoF, BoS ๋ง ์๋ฉด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๐ ๋ณธ ๋ ผ๋ฌธ์ Introduction์์๋ ์ต๊ทผ ์๊ฐ๋๋ ์ ํํ ๋คํธ์ํฌ๋ค์ real-time์ผ๋ก ์ฌ์ฉ๋๊ธฐ ์ด๋ ต๊ฑฐ๋, ๋ง๊ณ ์ข์ GPU๊ฐ ํ์๋ก ํ๋ค๋ ๊ฒ์ ์ด์ผ๊ธฐ ํ๋ฉด์ YOLO v4๋ฅผ ์๊ฐํฉ๋๋ค.
๐ YOLO v4๋ ์์ ๊ทธ๋ํ์์ ํ์ธํ ์ ์๋ฏ์ด, ๊ธฐ์กด์ YOLO v3๋ณด๋ค ๋ ๋ฐฐ ์ด์ ๋น ๋ฅด๋ฉฐ, ์ ํ๋๋ ํจ์ฌ ๋์ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ํ ๊ธฐ์กด์ ๋คํธ์ํฌ ๋ณด๋ค ๋น ๋ฅธ ์๋๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค.
๐ ์์ ์ง๋ฌธ์ด YOLOv4์ Contribution์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ด๋ฏธ ์ธ๊ธํ๋ฏ์ด ์๋ก์ด ๋ฐฉ๋ฒ๋ก ์ด ์๋ ๊ธฐ์กด์ ๋ฐฉ๋ฒ๋ค์ ์ต์ ํ ํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๐ ์ ์ฌ์ง์์ Object detector์ ์ฌ์ฉ๋๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ก ๋ค์ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค.
๐ Object detection ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ฅผ Backbones, Neck, Heads๋ก ๊ตฌ๋ถํด ์ ์ํฉ๋๋ค. ์ง๊ธ๊น์ง ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ก ๋ค์ ๊น๋ํ๊ฒ ์ ๋ฆฌํด์คฌ๋ค๊ณ ์๊ฐํฉ๋๋ค. Object detection ๋ ผ๋ฌธ๋ค์ R-CNN๋ถํฐ ์ฝ์ผ์ จ๋ค๋ฉด, ์ ๋ถ๋ ์๋์ฌ๋ ์ด๋ค ๋ฐฉ๋ฒ๋ก ์ธ์ง ์ด๋์ ๋ ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. (์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ ๋ฐ์ ๋ ์ฝ์ด๋ณธ๊ฒ ๊ฐ์ต๋๋ค)
๐ BoF(Bag of Freebies)๋ "์ค์ง training์ ์ ๋ต๋ง์ ๋ฐ๊พธ๊ณ , training์ cost๋ง ์ฆ๊ฐ์์ผ ์ฑ๋ฅ ํฅ์์ ์ด๋ค๋ด๋ ๋ฐฉ๋ฒ๋ก " ๋ผ๊ณ ์ด์ผ๊ธฐ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๐จโ๐ซ BoF(Bag of Freebies)
โ
Data Augmentation
- Random erase
- CutOut
- MixUp
- CutMix ๐
- Style transfer GAN
- (new) Mosaic data augmentation ๐
- (new) Self-Adversarial Training ๐
โ
Regularization
- Dropout
- DropPath
- Spatial Dropout
- DropBlcok ๐
โ
Loss Function
- MSE
- IoU
- GIoU
- CIoU ๐
- DIoU
+ Class label smoothing ๐
+ Cosine annealing scheduler ๐
๐ ์์ ๊ฐ์ด ๋ค์ํ BoF๋ค์ ablation study๋ฅผ ์งํํด ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ BoF๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ์ค ์ฒ์๋ณด๋ ๋ฐฉ๋ฒ๋ก ์ด ๋ง๊ณ , ๋ชจ๋ ๋ด์ฉ์ ์ ๋ถ ์ ์ ์๊ธฐ์, YOLO v4์ ์ ์ฉ๋๋ ๋ฐฉ๋ฒ๋ก ๋ค๋ง ๊ณต๋ถํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค.
๐ BoS(Bad of Specials)์ "์ฝ๊ฐ์ inference cost์ ์ฆ๊ฐ๋ก detection์ ์ฑ๋ฅ์ ํฅ์ ์ํฌ ์ ์๋ post-processing๊ณผ plugin modules์ ์๋ฏธํฉ๋๋ค.
๐จโ๐ซ BoS(Bad of Specials)
โ
EnHancement of receptive field
- SPP ๐
- ASPP
- Receptive Field Block(RFB)
โ
Feature Integration
- Skip-connection ๐
- FPN
- SFAM
- ASFF
- PAN ๐
- BiFPN
โ
Activation Function
- ReLU, Leaky ReLU, Parametric ReLU
- ReLU6
- Swish
- Mish ๐
โ
Attention Module
- Squeeze-and-Excitation(SE)
- Spatial Attention Module(SAM)
โ
Normalization
- Batch Norm(BN)
- Cross-GPU Batch Norm(CGBN or SyncBN)
- Filter Response Normalization(FRN)
- Cross-Iteration Batch Norm(CBN)
- (new) Cross mini-Batch Normarlization(CmBN) ๐
โ
Post Processing
- NMS
- Soft NMS
- DIoU NMS ๐
+ Cross-stage partial connection(CSP) ๐
+ SAM ๐
๐ ์ ์ญ์ ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ๋ฒ๋ก ๋ค๋ง ์ฌ์ฉํฉ๋๋ค.
๐ ๋จผ์ CSPDarknet53์ backbone ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ทผ๊ฑฐ๋ฅผ ์์ ํ์์ ํ์ธํ ์ ์์ต๋๋ค. CSPDarknet53์์ ๊ฐ์ฅ ๋์ FPS๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ฐธ๊ณ ๋ก Classification์์๋ CSPDarknet53์ด ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์ง ์๋๋ค๊ณ ํฉ๋๋ค.
๐ ์ข์ detector์ 3๊ฐ์ง ์กฐ๊ฑด์ ํ์ธํ ์ ์์ต๋๋ค. ์์ ๋ฌผ์ฒด๋ฅผ ์ธ์ํ๊ธฐ ์ํด "Higher input network size", ๋์ receptive field๋ฅผ ์ํด "More layers", ๋ค๋ฅธ ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง ๋ค์ํ ๊ฐ์ฒด๋ฅผ ์ธ์ํ๊ธฐ ์ํด "More parameters" ๋ค์ด ํ์ํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๐ ํ์ง๋ง ๋ฌด์กฐ๊ฑด ์ข๋ค๋ ๊ฒ์ ์๋๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์, ์์ ๊ทธ๋ํ์์๋ ํ์ธํ ์ ์๋ฏ์ด "More layers", "More parameters" ํ๋ค๊ณ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์ง ์์ต๋๋ค. ํญ์ ์ต์ ์ ์กฐ๊ฑด์ ์ฐพ์์ผ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๐ ๋ํ ์์ ์คํ๊ฒฐ๊ณผ๋ก ๊ฐ๊ฐ์ ์ฌ์ด์ฆ์ receptive field ์ํฅ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฝํ ์ ์์ต๋๋ค.
๐ YOLOv4์์๋ single GPU์ ์ต์ ํ ํ๊ธฐ์ํด ๋ช ๊ฐ์ง ์๋ก์ด ๋ฐฉ๋ฒ๋ก ๋ค์ ์ ์ํฉ๋๋ค.
๐จโ๐ซ Mosaic data augmentation
๐จโ๐ซ Self-Adversarial Training(SAT)
๐จโ๐ซ Modify SAM and Modify PAN
๐ ๊ธฐ์กด์ CBAM์์ ์ ์๋ SAM ๋ฐฉ๋ฒ๋ก ๊ณผ PANet์์ ์ ์๋ PAN ๋ฐฉ๋ฒ์ ์์ ํด ์ฌ์ฉํฉ๋๋ค.
โ Spatial attention module(SAM)
Spatial attention module์ ์ด๋์ ์ค์ํ ์ ๋ณด๊ฐ ์๋์ง ์ง์คํ๋๋ก ๋์์ค๋๋ค. ๊ฐ๊ฐ Maxpooling๊ณผ Avgpool์ ์ ์ฉํ ๋ ์ด์ด๋ฅผ concatํ ํ 7x7 conv ์ฐ์ฐ์ ์ ์ฉํด spatial attention map์ ์์ฑํ๋ค๊ณ ํฉ๋๋ค. SAM ์ฐธ๊ณ ์๋ฃ
Modify SAM์ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด Pooling์ด ์๋ Conv ์ฐ์ฐ์ ํตํด spatial attention map์ ์์ฑํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ผ๋ฌธ์์๋ spatila-wise attention to point-wise attention์ด๋ผ๊ณ ํํํฉ๋๋ค.
โ PAN
PANet์ ๊ธฐ์กด์ FPN์ top-down pathway์์ bottom-up pathway ์ถ๊ฐ๋ neck ๊ตฌ์กฐ์ ๋๋ค.
Modify PAN์ shorct connection ๋ถ๋ถ์์ concatenation ์ฐ์ฐ์ผ๋ก ์์ ํ๋ค๊ณ ํฉ๋๋ค.
๐ ์ด ์ธ์๋ CmBN(Cross mini-batch normalization), genetic algorithms์ ์ฌ์ฉํ optimal hyper-parameters ์ฐพ๊ธฐ๋ฅผ ์ ์ฉํ๋ค๊ณ ํฉ๋๋ค.
๐ ๊ฒฐ๋ก ์ ์ผ๋ก YOLov4๋ ์์ ๋ค์ํ ๋ฐฉ๋ฒ๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๐ ๋ ผ๋ฌธ์๋ ์ ์ฒด์ ์ธ ์ํคํ ์ฒ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฌ์ง์ด ์์ด ๋ค๋ฅธ ๊ณณ์์ ์ฐพ์์์ต๋๋ค. ๋ํ ๊ฒฐ๊ณผ์ ์ผ๋ก YOLOv4 = CSPDarknet53 + SPP + PAN + YOLOv3 ๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. YOLOv4์์ ์ฌ์ฉ๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ก ๋ค์ ๋ํด ๊ฐ๋จํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.(๋ ผ๋ฌธ์ ์ฝ์ผ๋ฉด์ ์ฐพ์๋ดค๊ธฐ์ ์์ธํ ๋ด์ฉ์ ์ง์ ์ฐพ์๋ณด์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.)
โ CSP(Cross Stage Partial)
โ SPP(Spatial Pyramid Pooling)
โ Mish
Mish๋ ReLU์ ๋จ์ ์ ๋ณด์ํ activation function์ด๋ฉฐ, AutoML๋ก ๋ง๋ Swish์ ์ฌ๋์ด ์ถ๊ฐ์ ์ผ๋ก ๊ด์ฌํ activation function์ด๋ผ๊ณ ํฉ๋๋ค.
์๋์ ๊ฐ์ ํน์ง์ด ์์ต๋๋ค.
- Mish์ ์ถ๋ ฅ๊ฐ ๋ฒ์ [-0.31, ๋ฌดํ] ์ด๋ผ๊ณ ํฉ๋๋ค.
- ReLU์ ๊ฒฝ์ฐ ์์ ๊ฐ์ 0์ผ๋ก ๋ง๋ค๊ธฐ์, ์ ๋ณด ์์ค์ด ๋ฐ์ํ๋๋ฐ, Mish๋ ์์ ์์ ๊ฐ์ ํ์ฉํด ์ด๋ฅผ ๋ณด์ํ๋ค๊ณ ํฉ๋๋ค.
- Mish๋ ์ฐ์์ ์ด๊ธฐ ๋๋ฌธ์ ํน์ด์ ์ ๋ฐฉ์งํฉ๋๋ค.
- Loss ๊ฐ์ด smoothing ๋๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
๐ ์ด ์ธ์๋ DropBlock, DIoU, CIoU ๋ฑ๋ฑ ๋ง์ ๋ฐฉ๋ฒ๋ค์ ์ฌ์ฉํ๋๋ฐ ๊ถ๊ธํ์๋ฉด ์ฐพ์๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค.
๐ backbone ๋คํธ์ํฌ์ ์ฌ์ฉ๋๋ BoF ablation study ์คํ๊ฒฐ๊ณผ์ ๋๋ค. CSPDarknet-53์ ์ฌ์ฉํ๋ค๊ณ ํ์ ๋ "CutMix", "Mosaic", "Label Smoothing", "Mish"๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๐ Detector์์๋ ์์ ๊ฐ์ BoF๋ค์ ์ฌ์ฉํด ablaction study๋ฅผ ์งํํ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Eliminate grid sensitivity, Mosaic, IoU threshold, Genetic algorithms, Optimized Anchor๋ฅผ ์ฌ์ฉํ์๋ ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๐จโ๐ซ YOLO v4๋ ์๋ก์ด ๋ฐฉ๋ฒ๋ก ์ด ์๋ ์ง๊ธ๊น์ง ๋์จ ๋ค์ํ ๋ฐฉ๋ฒ๋ก ๋ค์ one-stage ๋ฐฉ๋ฒ์ผ๋ก single GPU์์ ์ฌ์ฉํ ์ ์๊ฒ ์ต์ ํ๋ ๋คํธ์ํฌ๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค.