cleanUrl: "paper/YOLOv4"
ย
๋
ผ๋ฌธ : YOLOv4: Optimal Speed and Accuracy of Object Detection
์ ์ : Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao
๋ชจ๋ธ ์ ์ ์ด์ 0.Abstract1. IntroductionYOLOv4์ contribution2. Related work2.1. Object detection models2.2. Bag of freebies2.3. Bag of specials1)plugin modules2)post-processing3. Methodology3.1 Selection of architecture3.2 Selection of BoF and BoS 3.3 Additional improvements3.4 YOLOv44.ExperimentsInfluence of different features on Classifier training, Detector trainingInfluence of different backbones and pretrained weightings on Detector trainingInfluence of different mini-batch size on Detector training5. Results6. Conclusions์ด์ ๊ธ ์ฝ๊ธฐ
๋ชจ๋ธ ์ ์ ์ด์
YOLO ๋ชจ๋ธ v1๋ถํฐ ๊ณ์ ๋
ผ๋ฌธ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ๋ ์๋ YOLO์ v4 ๋
ผ๋ฌธ์ด๋ค. YOLO ๋ชจ๋ธ๋ค์ ๋ฒ์ ์ด ๋์์ง์ ๋ฐ๋ผ ์๋ก์ด ๊ธฐ๋ฒ์ ์ ์ฉํ์๋๋ฐ, ์ด๋ฒ YOLOv4 ๋ชจ๋ธ์ ์ต์ ๊ธฐ๋ฒ๋ค์ ์ฌ์ฉํ์ฌ ๊ต์ฅํ ๋ง์ ๋ณํ๋ฅผ ์ค ๋ชจ๋ธ์ด๋ค. ๋์ฑ ์ ํํด์ง๊ณ ๋์ฑ ๋นจ๋ผ์ง YOLOv4์ ๋ชจ๋ธ์ ๋ํด ์๊ฐํด ๋ณด๋ ค ํ๋ค.
ย
0.Abstract
CNN์ ์ ํ๋๋ฅผ ํฅ์์ํค๋ ๋ง์ feature๋ค์ด ์๋ค. ์ด๋ฐ feature๋ค์ ํน์ ๋ฌธ์ ๋ ๋ฐ์ดํฐ์
, ๋ชจ๋ธ์๋ง ์๋ํ์ง๋ง batch-normalization, residual-connections๋ ๋ค์์ ๋ชจ๋ธ, task, ๋ฐ์ดํฐ์
์ ์ด์ฉ๊ฐ๋ฅํ๋ค.
YOLOv4 ๋ชจ๋ธ์๋ฅ๋ฌ๋ ์ต์ ๊ธฐ๋ฒ์ธ
1)ย WRCย (Weighted-Residual-Connections)
2)ย CSPย (Cross-Stage-Partial-Connections)
3)ย CmBNย (Cross mini-Batch Normalizations)
4)ย SATย (Self-Adversarial-Training)
5)ย Mish Activation
6)ย Mosaic Data Agumentation
7)ย Drop Block Regularization
8)ย CIOU Loss
๋ค์ ์ฌ์ฉํ์ฌ SOTA๋ฅผ ๋ฌ์ฑํ์๋ค.
1. Introduction
ย
๋๋ถ๋ถ์ ์ ํ๋๊ฐ ๋์ ์ต์ ์ ๋ด๋ด ๋คํธ์ํฌ๋ค์ ์ค์๊ฐ์ผ๋ก ์๋ํ์ง ์๊ณ (no real-time) ํฐ mini-batch-size๋ก ์ธํด ํ๋ จํ ๋ ๋ง์ GPU๋ฅผ ํ์๋ก ํ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ๊ทธ๋ฆฌํ์ฌ Real-time object detector๋ฅผ ๋ง๋ค์ด ์ปดํจํ
ํ์๊ฐ ๋์ง ์์ ํ๊ฒฝ์์๋ ๊ธฐ์กด์ 1๊ฐ์ GPU๋ฅผ ๊ฐ์ง๊ณ ํ์ฉํ ์ ์๋๋ก ํ๋ค.
YOLOv4์ ์ฃผ๋ ๋ชฉํ๋ ์ ํ ์์คํ
์์ ๋น ๋ฅธ object detector๋ฅผ ๋ง๋๋ฉฐ ์ ์ ์ฐ์ฐ์ ๊ฐ์ง๋ ๊ฒ๋ณด๋ค ๋ณ๋ ฌ ๊ณ์ฐ์ผ๋ก ์ต์ ํ๋ฅผ ๊ฐ์ง๋ ๊ฒ์ด๋ค. ์ ์๋ ๋ชจ๋ธ์ ์ด์ฉํ๋ฉด figure1์ ๊ฒฐ๊ณผ ์ด๋ฏธ์ง ์ฒ๋ผ, ๊ธฐ์กด์ GPU ํ๋๋ก train, test๊ฐ ๋๊ณ real-time์ high qulity์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ด ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋งํ๋ค.
YOLOv4์ contribution
- ํจ์จ์ ์ด๊ณ ๊ฐ๋ ฅํ object detection ๋ชจ๋ธ์ ๊ฐ๋ฐํ๋ค. 1080 Ti ํน์ 2080 Ti GPU๋ฅผ ์ด์ฉํ์ฌ ํ์ต ํ์ ๋ ๋๊ตฌ๋ ๋น ๋ฅด๊ณ ์ ํํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
- ํ์ตํ๋ ๋์ object detection์ ์ต์ ๊ธฐ๋ฒ์ธ Bag-of-Freebies์ Bag-of-Specials๊ฐ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ ์ฆํ๋ค. (Bag-of-Freebies์ Bag-of-Specials๋ ๋ค์ด์ด ์ค๋ช ์์ )
- CBN, PAN, SAM ๋ฑ์ ์ต์ ๊ธฐ๋ฒ๋ค์ ์์ ํ์ฌ GPU ํ๋๋ก๋ ํ๋ จํ๊ธฐ์ ์ ํฉํ๋๋ก ๋ง๋ค์๋ค.
ย
2. Related work
2.1. Object detection models
ย
์ต์ ์ detector๋ backbone๊ณผ head์ ๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. Backbone์ ์
๋ ฅ ์ด๋ฏธ์ง์์ CNN์ ๊ฑฐ์ณ feature map์ ์์ฑํ๋ ๋จ๊ณ์ด๋ฉฐ image classification dataset์ธ ImageNet์ ํ๋ฆฌํธ๋ ์ธ ๋ ๋ชจ๋ธ์ธ ResNet, DenseNet ๊ทธ๋ฆฌ๊ณ VGGNet ๋ฑ์ ์ฌ์ฉํ๋ค. Head ๋ถ๋ถ์ ๋ฌผ์ฒด์ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ํด๋์ค๋ฅผ ์์ธกํ๋ ๋จ๊ณ์ด๋ฉฐ ๋ฌผ์ฒด์ ๊ฒ์ถ์ด ์ด๋ฃจ์ด์ง๋ ๋ถ๋ถ์ด๋ค.
Head ๋ถ๋ถ์ one-stage object detector์ two-stage object detector์ ๋ ๊ฐ์ง๋ก ๋ถ๋ฅ๋์ด ์๋ค. R-CNN ๊ณ์ด์ detector๋ two-stage์ด๋ฉฐ one-stage detector์๋ YOLO, SSD, RetinaNet ๋ฑ์ด ์๋ค. one-stage๋ ๋ฌผ์ฒด์ ์์น๋ฅผ ์ฐพ๋ย Localization ๋ฌธ์ ์ ๋ฌผ์ฒด๋ฅผ ์๋ณํ๋ย Classification ๋ฌธ์ ๊ฐ ๋์์ ์ด๋ฃจ์ด์ง๋ฉฐ, two-stage๋ ๋ ๋ฌธ์ ๊ฐ ์์ฐจ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ์ต๊ทผ์๋ anchor๋ ์ด์ฉํ์ง ์๋ one-stage detector์ธ CenterNet, CornerNet ๋ฑ์ด ๋ฑ์ฅํ์๋ค.
ย
์ต๊ทผ์๋ ๋ฐฑ๋ณธ๊ณผ ํค๋ ์ฌ์ด์ ๋ ์ด์ด๋ค์ ์ถ๊ฐํ์ฌ ๊ฐ๊ฐ ๋ค๋ฅธ stage๋ก๋ถํฐ featrue map์ ์ป๋ neck ๋จ๊ณ๊ฐ ๋ฐ์ ๋์๋ค. ์ฌ๋ฌ bottom-up๊ณผ top-down path๋ก ๊ตฌ์ฑ๋์ด ์๊ณ FPN, BiFPN, PAN ๋ฑ์ด ์ด์ ์ํ๋ค.
ย
backbone, neck, head์ ๋ํด ์์ธํ ์๊ณ ์ถ๋ค๋ฉด?
ย
2.2. Bag of freebies
Bag of Freebies๋ inference cost๋ฅผ ์ฆ๊ฐ ์ํค์ง ์๊ณ , training strategy ๋๋ training cost๋ง์ ๋ณํ ์ํค๋ ๊ฒ์ ๋งํ๋ค. data augmentation, Loss function, Regularization๋ฑ์ด ์ด์ ํด๋นํ๋ค.
ย
- Data augmentation
๐ ์ธํ ์ด๋ฏธ์ง์ ๋ค์์ฑ์ ์ฆ๊ฐ์์ผ ๋ชจ๋ธ์ด ๋ค์ํ ํ๊ฒฝ์์ ์ป์ ์ด๋ฏธ์ง๋ค์ ๋ํด ๋์ฑ robustํด์ง๋ค.
ex) ๋ฐ์ดํฐ ์ฆ๊ฐ์ ์๋ก๋ ๊ด๋ ์๊ณก(๋ฐ๊ธฐ, ๋๋น, ์์กฐ, ์ฑ๋, ๋
ธ์ด์ฆ์ถ๊ฐ ๋ฑ), ๊ธฐํ ์๊ณก (ํฌ๊ธฐ๋ณํ, crop, flip, rotate ๋ฑ)
์ข
๋ฅ
- Random erase
- Cutout
- MixUp
- CutMix
- Style transfer GAN
๋ช๋ช ์ฐ๊ตฌ์๋ค์ augmentation ๋ฐฉ์์ด occlusion ๋ฌธ์ (๊ฐ์ฒด๊ฐ ๊ฐ๋ ค์ง๋ ๋ฌธ์ )์ ์ค์ํ ์ํฅ์ ์ฃผ๋ฉฐ image classification๊ณผ object detection๋ถ์ผ์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์๋ค๊ณ ๋งํ๋ค.
Data Augmentation์ผ๋ก๋ image์ ์ผ๋ถ ์์ญ์ box๋ฅผ ์์ฑํ๊ณ ํด๋น ์์ญ์ 0~255์ randomํ ๊ฐ์ผ๋ก ์ฑ์ฐ๋ย Random erase, 0์ผ๋ก ์ฑ์ฐ๋ย CutOut, ๋ image์ label์ alpha blendingํ๋ MixUp, CutOut๊ณผ MixUp์ ์์ฉํ CutMix, Style-transfer GAN ๋ฑ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์๋ค.
ย
- imbalance sampling
๐๋ฐ์ดํฐ์
๋ด semantic distribution์ bias๊ฐ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ๋ค.
- ์๋ก ๋ค๋ฅธ ํด๋์ค๋ค๊ฐ์ ๋ฐ์ดํฐ ๋ถ๊ท ํ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค.
two-stage detector : hard negative example mining, online hard example mining์ผ๋ก ํด๊ฒฐ
one-stage object detector: denseํ prediction architecture๋ฅผ ์ด์ฉํ๋ฏ๋ก,ย example mining ๊ธฐ๋ฒ ์ ์ฉ ๋ถ๊ฐ๋ฅ
โ Lin et al์ด ์ ์ํ focal loss๋ฅผ ์ ์ฉํ๋ค
- one-hot hard representation์์ ๋ค๋ฅธ ์นดํ ๊ณ ๋ฆฌ๋ค ์ฌ์ด์ ์ฐ๊ด์ ๋๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด ์ด๋ ต๋ค.
label smoothing ๋ฐฉ์์ ํตํด, ํ๋ จ ์์ hard label โ soft label๋ก ๋ฐ๊ฟ ๋ชจ๋ธ์ ๋์ฑ robustํ๊ฒ ๋ง๋ ๋ค.
ย
focal loss๋?
Easy Example์ weight๋ฅผ ์ค์ด๊ณ Hard Negative Example์ ๋ํ ํ์ต์ ์ด์ ์ ๋ง์ถ๋ Cross Entropy Loss ํจ์์ ํ์ฅํ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์ฝ๊ฒ ๋งํ์๋ฉด, ์ด๋ ต๊ฑฐ๋ ์ฝ๊ฒ ์ค๋ถ๋ฅ๋๋ ์ผ์ด์ค์ ๋ํ์ฌ ๋ ํฐ ๊ฐ์ค์น๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. (๊ฐ์ฒด ์ผ๋ถ๋ถ๋ง ์๊ฑฐ๋, ์ค์ ๋ถ๋ฅํด์ผ ๋๋ ๊ฐ์ฒด๋ค์ด ์ด์ ํด๋นํ๋ค.)
label smoothing ๋ฐฉ์์ด๋?
Hard label(One-hot encoded vector๋ก ์ ๋ต ์ธ๋ฑ์ค๋ 1, ๋๋จธ์ง๋ 0์ผ๋ก ๊ตฌ์ฑ)์ Soft label(๋ผ๋ฒจ์ด 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ)๋ก ์ค๋ฌด๋ฉํ๋ ๊ฒ์ ๋ปํ๋ค.
ย
- Bounding Box(BBox) regression
[๊ธฐ์กด ๋ฐฉ์๋ค]
- ์ ํต์ ์ธ object detector: ๋ณดํต Mean Square Error (MSE)๋ฅผ ์ด์ฉํ์ฌ, bbox์ center point, height, width ์ขํ๋ค(ex {x_center, y_center, w, h}) ๋๋ upper left & lower right point(ex {x_top_left, y_top_left, x_bottom_right, y_bottom_right})๋ฅผ ์ง์ ์ ์ผ๋ก regressionํ๋ค.
- anchor based method :
(์: {x_center_offset, y_center_offset, w_offset, h_offeset} ๋ฐ {x_top_left_offset, y_top_left_offset, x_bottom_right_offset, y_bottom_right_offset})์ ๊ฐ์ด ๊ฐ ์ขํ์ ํด๋น๋๋ offset์ ์ถ์ ํ๋ค.
ํ์ง๋ง, ์ด๋ ๊ฒ ์ง์ ์ ์ผ๋ก bbox์ ์ขํฏ๊ฐ์ ์ถ์ ํ๋ ๊ฒ์ ๋
๋ฆฝ์ ์ธ ๋ณ์๋ก ๋ณด๋ ๊ฒ์ด๊ณ object ์์ฒด๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, loss fuction์ ๋ํ ๋ณํ๋ฅผ ์ฃผ์๋ค.
ย
[๊ฐ์ ๋ ๋ฐฉ์]
- IoU loss
์์ธก๋๋ bbox ์์ญ๊ณผ groudtruth ์์ญ์ ๋ฒ์(coverage)๋ฅผ ๊ณ ๋ คํ๋ค.
iou loss computing ๊ณผ์ ์ groundtruth๋ก IoU๋ฅผ ๊ณ์ฐํ์ฌ ์์ฑ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฒด ์ฝ๋๋ก ์ฐ๊ฒฐํ์ฌ bbox์ 4๊ฐ์ ์ขํ๋ฅผ ๊ณ์ฐํ๋ค.
โ ioU๋ scale์ด ๋ณํ์ง ์๋ ํํ์ด๋ฏ๋ก, ์ ํต์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก {x, y, w, h}์ l_1 ๋๋ l_2 loss๋ฅผ ๊ณ์ฐํ ๋ loss๊ฐ scale์ ๋ฐ๋ผ ์ฆ๊ฐํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์๋ค.
- GIoU loss
- coverage ์์ญ ๋ฟ๋ง ์๋๋ผ object์ ํํ(shape)๊ณผ ๋ฐฉํฅ(orientation)๋ฅผ ํฌํจ์ํจ๋ค.
- ์์ธก๋ bbox์ groundtruth๋ฅผ ๋์์ coverํ ์ ์๋ ๊ฐ์ฅ ์์ ์์ญ์ bbox๋ฅผ ์ฐพ์ ํ, BBox์ ๋ถ๋ชจ(denominator)๋ฅผ ์๋ IoU loss์์ ์ฌ์ฉํ๋ ๋ถ๋ชจ๋ก ๋์ฒดํ์๋ค.
- DIoU loss : object์ center์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ ๋ คํ๋ค.
- CIoU loss
- ๊ฒน์น๋ ์์ญ๊ณผ center point ์ฌ์ด์ ๊ฑฐ๋ฆฌ, aspect ratio๋ฅผ ๋์์ ๊ณ ๋ คํ๋ค.
- bbox regression ๋ฌธ์ ๋ฅผ ๋์ฑ ๋น ๋ฅด๊ฒ ์๋ ดํ๊ณ ์ ํํ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
ย
- Regularization
- DropOut
- DropPath
- Spatical dropout
- Dropblock
ย
2.3. Bag of specials
inference cost๋ ์กฐ๊ธ ์ฆ๊ฐํ์ง๋ง object detection์ ์ ํ๋๋ฅผ ํฌ๊ฒ ํฅ์ ์ํค๋ ๋ฐฉ๋ฒ์ ๋ปํ๋ค.
plugin modules๊ณผ post-processing์ด ์ด์ ํด๋นํ๋ค. Plugin modules์ ๋ชจ๋ธ์ ํน์ ๋ถ๋ถ์ ๊ฐํ ์ํค๋ ๊ฒ์ ๋ปํ๋ฉฐ, receptive fieldํ๋, attention mechanism๋์
๋๋ feature intergration capability ๊ฐํ ๋ฑ์ด ์ด์ ํฌํจ๋๋ค. Post-pocessing์ ๋ชจ๋ธ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ ๋ณ(screening)ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ย
1)plugin modules
1.receptive field enhancement module
- SPP
- Spatial Pyramid Matching(SPM)์์ ์ ๋ํ์๋ค.
- feature map์ ์ฌ๋ฌ d x d {1,2,3 ...} ์ฌ์ด์ฆ์ ๋ธ๋ก์ผ๋ก splitํ๋ ๋ฐฉ๋ฒ์ผ๋ก, spatial pyramid๋ฅผ ๋ง๋ค์ด bag-of-word feature๋ฅผ ์ถ์ถํ๋ค.
- YOLOv3 [63]์์๋ k x k(k={1, 5, 9, 13}) kernel size์ stride=1๋ฅผ ๊ฐ์ง max-pooling ์ถ๋ ฅ์ concatenationํ์ฌ SPP module์ ๊ฐ์ ํ์๋ค.
- ์์ ๊ฐ์ ์ค๊ณ ํ์, ๋น๊ต์ ํฐ k x k max-pooling์ผ๋ก backbone feature์ receptive field๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฆ๊ฐ์ํฌ ์ ์์๋ค.
- YOLOv3-608 โ MS COCO dataset์ ์ด์ฉํด 0.5%์ ์ถ๊ฐ์ ์ธ ๊ณ์ฐ ๋น์ฉ์ผ๋ก AP_50์ 2.7% ํฅ์์์ผฐ๋ค.
(์ฌ๊ธฐ์ ์ bag-of-word๊ฐ ๋์ค๋์ง ๋ชจ๋ฅด๊ฒ ๋ค์..?)
SPP ์ฐธ๊ณ ๋ด์ฉ
๊ธฐ์กด์ CNN ์ํคํ
์ณ๋ค์ ๋ชจ๋ ์
๋ ฅ ์ด๋ฏธ์ง๊ฐ ๊ณ ์ ๋์ด์ผ ํ๋ค. (ex. 224 x 224) ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ๋ง์ ํต๊ณผ์ํค๊ธฐ ์ํด์๋ ์ด๋ฏธ์ง๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ๋ก ํฌ๋กญํ๊ฑฐ๋ ๋น์จ์ ์กฐ์ (warp)ํด์ผ ํ๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ๋๋ฉด ๋ฌผ์ฒด์ ์ผ๋ถ๋ถ์ด ์๋ฆฌ๊ฑฐ๋, ๋ณธ๋์ ์๊น์์ ๋ฌ๋ผ์ง๋ ๋ฌธ์ ์ ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์
๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ ๋น์จ์ ๊ด๊ณ ์์ด CNN์ ํ์ต ์ํฌ ์๋ ์์๊น? ํ๋ ์์ด๋์ด๋ก ์
๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ์ ๊ด๊ณ ์์ด Conv layer๋ค์ ํต๊ณผ์ํค๊ณ , FC layer ํต๊ณผ ์ ์ ํผ์ณ ๋งต๋ค์ ๋์ผํ ํฌ๊ธฐ๋ก ์กฐ์ ํด์ฃผ๋ pooling์ ์ ์ฉํ์๋ ์๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค.
์ด๋ฅผ ํตํด spatial pyramid pooling์ด ์๊ฒจ๋ฌ๊ณ , Spatial Pyramid Pooling์ ํตํด์ ๊ฐ๊ธฐ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ CNN ํผ์ณ๋งต ์ธํ์ผ๋ก๋ถํฐ ๊ณ ์ ๋ ํฌ๊ธฐ์ feature vector๋ฅผ ๋ฝ์๋ผ ์ ์๋ค.
SPPNET ์ฐธ๊ณ ์๋ฃ : https://yeomko.tistory.com/14
ย
- ASPP
- RFB
ย
2.attention module
๊ฐ์ฒด ๊ฒ์ถ์ ๋ง์ด ์ฌ์ฉ๋๋ attention ๋ชจ๋์ ํฌ๊ฒ channel-wise Attention์ point wise Attention์ผ๋ก ๊ตฌ๋ถ๋๋ฉฐ, ์ด ๋ ๊ฐ์ง ์ฃผ์ ๋ชจ๋ธ์ ๋ํ์ ์ธ ๊ฒ์ผ๋ก Squeeze-and-Excitation(SE)๊ณผ Spatical Attention Module(SAM)์ด ์๋ค.
ย
3.feature integration
- low-level์ ๋ฌผ๋ฆฌ์ ์ธ feature๋ฅผ high-level์ semantic feature๋ก ํตํฉํ๊ธฐ ์ํด skip connection ๋๋ hyper-column์ ์ฌ์ฉํ์๋ค.
- FPN ์ดํ, multi-scale์ ์์ธก ๋ฐฉ๋ฒ๋ค์ด ๋์คํ๋๋ฉด์, ์๋ก ๋ค๋ฅธ feature pyramid๋ฅผ ํตํฉํ๋ ๋ง์ ๊ฒฝ๋ module๋ค์ด ์ ์๋์๋ค
- SFAM
- ASFF
- BiFPN
ย
4.activation fuction
์ข์ ํ์ฑํ ํจ์๋ gradient๋ฅผ ๋์ฑ ํจ๊ณผ์ ์ผ๋ก propagateํ์ฌ ์ฐ์ฐ๋์ ์ค์ผ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
- LReLU
- PReLU
- ReLU6
- Scaled Exponential Linear Unit (SELU)
- Swish
- hard-Swish
- Mish
ย
*Swish์ Mish ๋ชจ๋ ์ฐ์์ ์ผ๋ก ๋ฏธ๋ถ ๊ฐ๋ฅํ ํ์ฑํ ํจ์๋ผ๋ ์ ์์ ์ฃผ๋ชฉํด๋ณผ ํ์๊ฐ ์๋ค.
ย
2)post-processing
๋ฅ๋ฌ๋ ๊ธฐ๋ฐ object detection ๋ถ์ผ์์ ํํ ์ฌ์ฉ๋๋ NMS๊ฐ ์ด์ ํด๋นํ๋ค. NMS๋ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๋ฎ์ ์ ํ๋๋ก ์์ธกํ๋ BBox๋ฅผ ํํฐ๋งํ๊ณ ์ ํ๋๊ฐ ๋์ ํ๋ณด์ BBox๋ง ์ ์งํ๋ค. NMS๊ฐ ๊ฐ์ ํ๋ ค๋ ๋ฐฉ๋ฒ์ ๋ชฉ์ ํจ์๋ฅผ ์ต์ ํํ๋ ๋ฐฉ๋ฒ๊ณผ ์ผ์นํ๋ค.
ย
โ ๋ค์ ํ๋ฒ ๋ณด๊ธฐ
R-CNN [19]์์ ์ฌ์ฉํ NMS
- ์๋ ์ ์๋ NMS์ ๊ฒฝ์ฐ context information๋ฅผ ๊ณ ๋ คํ์ง ์์
- R-CNN์์๋ classification confidence score๋ฅผ reference๋ก ์ถ๊ฐํ๊ณ confidence score์ ์์์ ๋ฐ๋ผ ๋์ score์์ ๋ฎ์ score ์์ผ๋ก greedy NMS๋ฅผ ์ํ
R-CNN ์ดํ์ ์ฐ๊ตฌ๋ค
- soft NMS [1]: object์ occlusion์ผ๋ก ์ธํด, greedy NMS์์๋ confidence score๊ฐ IoU score์ ํจ๊ป degradation๋ ์ ์๋ค๋ ๋ฌธ์ ๋ฅผ ๊ณ ๋ ค
- DIoU NMS [99]:ย soft NMS์ ๊ธฐ์ดํ์ฌ, BBox screening process์ center point ๊ฑฐ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐ
ย
์์ post-processing ๋ฐฉ๋ฒ๋ค์ ๋ชจ๋ capture๋ image feature๋ฅผ ์ง์ ์ ์ผ๋ก ์ฐธ๊ณ ํ๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์, ์ดํ์ anchor-free ๊ธฐ๋ฒ์ ๊ฐ๋ฐ์์๋ ๋ ์ด์ ํ์ํ์ง ์๋๋ค.
3. Methodology
YOLOv4์ ๊ธฐ๋ณธ์ ์ธ ๋ชฉํ๋ ์ด๋ก ์ ์งํ์ธ BFLOPS๋ฅผ ์ค์ด๋ ๊ฒ์ด ์๋๋ผ ์์คํ
๋ด์์ ๋ณ๋ ฌ๊ณ์ฐ์ ์ํ ์ต์ ํ์ ์ ๊ฒฝ๋ง์ ๋น ๋ฅธ ์๋์๋๋ฅผ ๊ฐ์ง๊ฒ ํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด GPU์ VPU์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
- GPU์ ๊ฒฝ์ฐ
convolutional layers ๋ด group์ ์๊ฐ ์์(1-8) CSPResNeXt50 / CSPDarknet53 ๋ฑ์ ์ด์ฉํ๋ค.
- VPU์ ๊ฒฝ์ฐ
grouped-convolution์ ์ฌ์ฉํ์ง๋ง, Squeeze-and-excitement (SE) blocks์ ์ฌ์ฉํ์ง ์๋๋ค. EfficientNet-lite / MixNet / GhostNet / MobileNetV3 ๋ฑ์ ๋ชจ๋ธ๋ค์ ํฌํจํ๋ค.
ย
3.1 Selection of architecture
๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ ๋ชฉํ๋ฅผ ์ง๋๋ค.
- input network resolution, convolutional layer ๊ฐ์, ํ๋ผ๋ฏธํฐ ์(filter size2 * filters * channel / groups), output layer(filter)์ ์ ๊ฐ์ด๋ฐ ์ต์ ์ balance๋ฅผ ์ฐพ๋๋ค.
ex) CSPDarknet53์ CSPResNext50 ๋ ๋ชจ๋ธ์ด classification์์๋ CSPResNext50์ด ๋ ์ฐ์ํ๊ณ object detection์์๋ CSPDarknet53๊ฐ ์ฐ์ํ๋ฏ์ด classification์ ์ํ reference model์ด detector์๋ ํญ์ ์ต์ ์์ ๋ณด์ฅํ ์ ์๋ค.
- receptive field๋ฅผ ๋๋ฆด ์ ์๋ ์ถ๊ฐ์ ์ธ ๋ธ๋ก๋ค๊ณผ ๋ค๋ฅธ detector levels์ ๋ค๋ฅธ backbone levels๋ก๋ถํฐ ํ๋ผ๋ฏธํฐ๋ฅผ ํฉ์น๊ธฐ ์ํ ์ต์์ ๊ธฐ๋ฒ์ ์ ํํ๋ค.
ex) FPN, PAN, ASFF, BiFPN
classification๊ณผ ๋ฌ๋ฆฌ detector์๋ ์๋์ ๊ฐ์ ๋ด์ฉ๋ค์ด ํ์ํ๋ค
- ๋์ input ์ด๋ฏธ์ง์ ํด์๋ โ> ๋ค์์ ์์ ๋ฌผ์ฒด๋ ๊ฒ์ถํ๊ธฐ ์ํจ์ด๋ค.
- ๋ ๋ง์ ๋ ์ด์ด โ input ๋คํธ์ํฌ์ ์ฆ๊ฐ๋ ์ฌ์ด์ฆ๋ฅผ coverํ ์ ์๋ ๋์ receptive field๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ ๋ง์ ํ๋ผ๋ฏธํฐ โ ํ ์ด๋ฏธ์ง์์ ๋ค๋ฅธ ํฌ๊ธฐ๋ค์ ๋ฌผ์ฒด๋ฅผ ํ์งํ ์ ์๋๋ก ํ๋ค.
ย
ํ๋ผ๋ฏธํฐ ์์ receptive field size๊ฐ ํฐ ๋ชจ๋ธ์ด ์ข์ ๋ชจ๋ธ์ด๋ผ๊ณ ๊ฐ์ ํ์ ๋, ์ฌ๋ฌ ์ํ์ ํตํด ์์ ํ์ ๊ฐ์ด CSPDarknet53๊ฐ ๋ค๋ฅธ ๋ backbone ๋ชจ๋ธ์ ๋นํด ์ต์ ์ ๋ชจ๋ธ์ด๋ผ ํ ์ ์๋ค.
ย
ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ receptive field๋ค์ ์ํฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊ฐ์ฒด์ ํฌ๊ธฐ๊ฐ ์ปค์ง ๋, ์ ์ฒด ๊ฐ์ฒด๋ฅผ ๋ณด๋ค ๋ง์ด ๋ณผ ์ ์๋ค.
- ๋คํธ์ํฌ ์ฌ์ด์ฆ๊ฐ ์ปค์ง ๋, ๊ฐ์ฒด ์ฃผ๋ณ์ context๋ฅผ ๋ณด๋ค ๋ง์ด ๋ณผ ์ ์๋ค.
- ๋คํธ์ํฌ ํฌ๊ธฐ๊ฐ ์ด๊ณผํ๋ฉด, image point์ ์ต์ข activation fuction ์ฌ์ด ์ฐ๊ฒฐ ๊ฐ์๊ฐ ์ฆ๊ฐํ๋ค.
3.2 Selection of BoF and BoS
detector์ ํ๋ จ ์ฑ๋ฅ์ ์ฆ๊ฐ ์ํค๊ธฐ ์ํด BoF์ BoS๋ฅผ ์ ํํด์ผ ํ๋ค. ์์์ ์ธ๊ธํ ๋ค์ํ ํ์ฑํ ํจ์ ์ค PReLU์ SeLU๋ ํ๋ จํ๊ธฐ ์ด๋ ต๊ณ ReLU6๋ ์์ํ ๋คํธ์ํฌ๋ฅผ ์ํ ํ์ฑํ ํจ์ ์ด๋ฏ๋ก ํ๋ณด์์ ์ ๊ฑฐ ํ๋ค๊ณ ํ๋ค.
Drop block์ ์ด๋ฏธ ๋ง์ ์ ๊ทํ ๋ฐฉ๋ฒ์ค ๋ง์ ์ข์ ์ฑ๋ฅ์ ํ์ธํ์๊ธฐ์ Drop block์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ค์ด์ง ์์๋ค๊ณ ํ๋ค.
3.3 Additional improvements
single GPU์์๋ ํ๋ จ ์ํฌ ์ ์๋๋ก ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ์ ์ธ ๋์์ธ์ ๊ตฌ์ฑํ์๋ค.
- ์๋ก์ด data augmentation ๋ฐฉ์์ Mosaic๊ณผ Self-Adversarial Training (SAT)
1) Mosaic
CutMix๋ ๋จ์ง 2๊ฐ์ ์
๋ ฅ ์ด๋ฏธ์ง๋ค๋ง mixํ๋๋ฐ ๋ฐํด, Mosaic์ย ๋ค์๊ณผ ๊ฐ์ด 4๊ฐ์ training ์ด๋ฏธ์ง๋ค์ 1๊ฐ๋ก mixํ๋ค.
โ normalํ context ์ธ๋ถ์ object๋ค๋ ๊ฒ์ถ ๊ฐ๋ฅํ๋ค.
โ batch normalization์ 4๊ฐ์ ์ด๋ฏธ์ง๋ค์ ๋ํ activation statistics๋ฅผ ๊ณ์ฐ ๊ฐ๋ฅํ๋ค.
2) Self-Adversarial Training(SAT)
2๋จ๊ณ์ forward ๋ฐ backward ๋จ๊ณ๋ก ๋์ํ๋ ์๋ก์ด data augmentation ๊ธฐ๋ฒ์ด๋ค.
1๋จ๊ณ : ๊ฐ์ค์น๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๊ฒ ๋์ ์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๋ค.
โ ์๋ณธ ์ด๋ฏธ์ง์ ๊ฐ์ฒด๊ฐ ์๋ค๋ ์์์๋ฅผ ๋ง๋ค๊ฒ๋๋ค.
2๋จ๊ณ : 1๋จ๊ณ์์ ์์ ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ถํ๋ ํ๋ จ์ ์งํํ๋ค.
โ ์ด ๋ ๊ณผ์ ์ ํตํด propagation๊ณผ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐ ์ํฌ ์ ์๋ค.
ย
- genetic algorithm(GA)์ ์ด์ฉํ์ฌ ์ต์ ์ hyper parameter๋ฅผ ๊ณ ๋ฅธ๋ค.
- ๊ธฐ์กด์ method๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ์์ ํ ๋ฒ์ ์ SAM, PAN์ CmBN(Cross mini-batch Normalization)๋ฅผ ๋์ ํ๋ค.
ย
Bos : Cross mini-Batch Normalization(CmBN)
CBN์ ์์ ๋ ๋ฒ์ ์ผ๋ก single batch ๋ด์์ mini-batche๋ค ์ฌ์ด์ ํต๊ณ๋์ ์์งํ๋ค.
CBN ์ฐธ๊ณ ์๋ฃ : https://deep-learning-study.tistory.com/635
ย
Bos : Modified SAM & PAN
3.4 YOLOv4
YOLOv4 consists of:
- backbone : CSPDarknet53
- neck
- addtional blocks: SPP
- path-aggregation blocks: PANet
- Head: YOLOv3
CSPDarknet53์ SPP block์ ์ถ๊ฐํ์ฌ
- receptive field๋ฅผ ์๋นํ ๋๋ฆด ์ ์๋ค.
- ๊ฐ์ฅ ์ค์ํ context features๋ฅผ ๋ถ๋ฆฌํ ์ ์๋ค.
- network์ ๋์ ์๋๋ฅผ ๊ฑฐ์ ์ค์ด์ง ์๋ค.
- parameter aggregation ๋ฐฉ๋ฒ์ผ๋ก PANet์ ์ฌ์ฉํ์ฌ YOLOv3์์์ FPN ๋์ ์ ๋ค๋ฅธ detector level์์ ์๋ก ๋ค๋ฅธ ๋ฐฑ๋ณธ ๋ ๋ฒจ์ ์ป์ ์ ์์๋ค.
ย
4.Experiments
ย
Influence of different features on Classifier training, Detector training
ย
Influence of different backbones and pretrained weightings on Detector training
Influence of different mini-batch size on Detector training
5. Results
YOLOv4๋ ์์ figure 8์์ ๋ค๋ฅธ sota detector๋ค๊ณผ ๋น๊ตํ์ ๋ ๋น ๋ฅด๊ณ ์ ํํ๋ค.
6. Conclusions
์ฐ๋ฆฌ๋ ๋ค๋ฅธ detector์ ๋น๊ตํ์ ๋ ๋ ๋น ๋ฅด๊ณ (FPS) ์ ํํ(MS COCO AP50...95 and AP50)์ต์ ์ detector๋ฅผ ์ ๊ณตํ๋ค. 8-16GB-VRAM๋ก ๊ธฐ์กด์ ํ๋์ GPU๋ก ํ๋ จ์ด ๊ฐ๋ฅํ๊ธฐ์ ์ฌ์ฉ์ฑ์ด ๋์ฑ ๋ฐ์ด๋๋ค. ๋ง์ feature๋ค์ ์ถ๊ฐํ์ฌ classifier์ detector ๋ชจ๋์ ์ ํ๋๋ฅผ ํฅ์์์ผฐ๋ค. ์ด๋ฌํ features๋ค์ ํฅํ ์ฐ๊ตฌ ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก(best-practice)๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
์ถ์ฒ:
ย
ย
์ด์ ๊ธ ์ฝ๊ธฐ
ย