paper
: YOLOv4: Optimal Speed and Accuracy of Object Detectionauthor
: Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liaosubject
: CVPR 2020CNN accuracy를 향상시키는 데에 매우 많은 features(기능)들이 사용된다.
실제로 이러한 기능들을 combination하여 testing할 때,
결과에 대한 theoretical justification(이론적인 정당성)이 필요하다.
몇가지 기능들은 특정 model에 대해서만 잘 동작할 수 있거나,
오로지 small-scale dataset에 대해서만 잘 동작할 수 있다.
하지만 BN과 residual-connection과 같은 몇가지 기능들은
대다수의 models, tasks, datasets에 보편적으로 잘 적용될 수 있다.
우리는 이처럼, 보편적으로 잘 동작할 수 있는 new features들을 적용하여
Tesla V100에서 실시간 속도로 MS COCO dataset에서 43.5% AP (65.7% AP50)의 결과를 달성했다.
최근 성능이 좋은 neural network들은 real-time으로 동작하지 않으며
large mini-batch-sizeㅔ서 여러 GPUs를 사용하여 학습해야 한다.
우리는 이러한 문제를 해결하기 위해
하나의 conventional(전통적인) GPU에서 real-time으로 동작하는 CNN을 만들었으며,
training을 하는 데에 오직 하나의 conventional GPU만 있으면 된다.
The main goal of this work is designing a fast operating speed of an object detector in production systems
and optimization for parallel computations,
rather than the low computation volume theoretical indicator(BFLOP).
We hope that the designed object can be easily trained and uesed.
Our contributions are summarized as follows :
최근의 detector들은 두 가지 part로 구성되어 있다.
backbone
head
최근에는 backbone과 head 사이에 몇가지 layer들이 추가되는 추세이다.
그 layer들은 보통 different stages로부터 feature maps을 collect하는 데에 사용되고,
이 layer들을 neck
이라고 부른다.
neck
은 several bottom-up paths와 several top-down paths로 구성되어 있다.
위 model들에 추가적으로,
새로운 backbone or new whole model을 만드는 것을 연구하는 사람들도 있다.
종합적으로, 일반적인 object detector들은 이와 같은 several parts로 구성되어 있다.
bag of freebies(BoF)
라고 부른다.BoF methods
은 다음과 같다.data augmentation
DropOut, DropConnect, DropBlock
focal loss
to deall with the problem of data imbalance existing between various classesknowledge distillation
(정수) to design the label refinement network.IoU Loss
GIoU Loss
DIoU
CIoU
bag of specials(BoS)
라고 부른다.BoS
의 종류는 다음과 같다.SPP block
을 추가하였다.PANet
을 사용한다.single GPU training에 적합한 designed detector를 찾기 위해서,
우리는 다음의 additional design과 improvements를 만들었다 :
Mosaic
는 4개의 training image를 혼합시킨 new data augmentation method이다.
그러므로 CutMix는 단지 2개의 input image를 mix시키는 반면에,
Mosaic는 4개의 서로 다른 contexts는 mix되어진다.
이는 normal context 이외에 objects를 detection할 수 있게 한다.
추가로, BN은 각 layer에서 4개의 서로 다른 image들로부터 activation statistics를 계산한다.
이는 large mini-batch size의 필요성을 크게 줄일 수 있다.
Self-Adversarial Training(SAT)
도 또한 2개의 forward backward stages로 동작되는 new data augmentation technique이다.
1st stage에서 neural network는 network의 weight 대신 image를 수정한다.
이 방법으로 neural network는 자체적으로 adversarial attack(적대적 공격)을 수행하여
원하는 object가 image에 없는 것처럼 속이게 된다.
2nd stage에서는, neural network가 normal 방식으로 object를 detect하도록 train되어진다.
CmBN(Cross mini-Batch Normalization)
은 Figure 4에 보여지듯이, CBN의 modified version이다.
CmBN은 a single batch 내 mini-batch 간에만 statistics를 collect한다.
우리는 SAM을 spatial-wise attention에서 point-wise attention으로 수정하고,
PAN의 shortcut connection을 concatenation으로 대체하였다.
ImageNet에 classifier accuracy를 test
하였고,MS COCO dataset에 detector accuracy를 test
하였다.우리는 FPS에 영향을 미치지 않고 detector의 accuracy를 높이는 다양한 feature들을 연구하여 BoF list를 확장시켰다.
추가적인 연구는 PAN, RFB, SAM, Gaussian YOLO(G) 및 ASFF와 같은 다양한 BoF가
detector의 training accuracy에 미치는 영향에 관한 것이다.
첫번째로
CSPResNeXt50 model이 CSPDarknet53 model보다 더 높은 classification accuracy를 보였지만,
CSPDarknet53 model은 object detection에서 더 높은 accuracy를 보였다.
두번째로,
BoF와 Mish를 사용하여 CSPResNeXt50 classifier를 training시키면 classification accuracy가 높아지지만,
이러한 pre-trained weighting을 detector training에 더 적용하면 detector의 accuracy가 낮아진다.
하지만 BoF와 Mish를 사용하여 CSPDarknet53 classifier를 training시키면,
pre-trained weightings를 사용한 detector의 accuracy와 classifier의 accuracy가 동시에 증가한다.
결과적으로 detector로써 CSPDarknet53 backbone이 CSPResNeXt50보다 더 적합하다.
다른 state-of-the-art object detector로 얻은 결과를 비교한 것은 Figure 8.에 있다.
우리의 YOLOv4는 Pareto optimality curve에 있으며
speed and accuracy에서 가장 빠르고 정확한 detector이다.
다양한 방법들이 inference time 검증을 위해
다른 architecture의 GPU를 사용하기 때문에,
우리는 YOLOv4를 Maxwell, Pascal, Volta architecture의 일반적으로 사용되는 GPU에서 작동시키고 다른 state-of-the-art methods들과 비교했다.
https://www.youtube.com/watch?v=6f7jglewoWg&t=684s
YOLOv4부터 architecture에 neck
이 추가되어 현대식 CNN을 사용한 detector model에 가까워졌다고 생각한다.
하지만 YOLOv4는 최신에 고안된 논문들(여러 technique들 = BoF, BoS들)을 짬뽕하여
ablation study로 어떤 조합이 최적의 조합인지 매우 많은 실험만을 진행한 것을 알 수 있다.
그래서 이 논문은 논문으로써 가치는 크게 없는 것 같다고 생각한다.
왜냐하면 이미 있던 기술들을 조합만 다르게 하여 성능과 속도를 평가한 것이고,
획기적인 아이디어나 이 domain에 큰 contribution은 없다고 생각하기 때문이다.
추가로, YOLO series는 YOLOv4부터 시작하여 중구난방의 겉잡을 수 없는 variants들이 많이 생성되고 있어 기술을 쫓아가기가 힘들다고 생각한다.
그리고 YOLO variants들은 길을 잃어가고 있다는 생각도 든다...
이름은 YOLO이지만 이름만 YOLO인 느낌이랄까