Search
Login
✋🏻

YOLOv4: Optimal Speed and Accuracy of Object Detection

Created
2022/05/24
Editor
Tags
Vision
논문 : YOLOv4: Optimal Speed and Accuracy of Object Detection 저자 : Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao

모델 선정 이유

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

1.
효율적이고 강력한 object detection 모델을 개발했다. 1080 Ti 혹은 2080 Ti GPU를 이용하여 학습 했을 때 누구나 빠르고 정확한 결과를 얻을 수 있다.
2.
학습하는 동안 object detection의 최신 기법인 Bag-of-Freebies와 Bag-of-Specials가 성능에 미치는 영향을 입증했다. (Bag-of-Freebies와 Bag-of-Specials는 뒤이어 설명 예정)
3.
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등이 이에 해당한다.
1.
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 등의 기법을 사용하였다.
2.
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란?
label smoothing 방식이란?
3.
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 문제를 더욱 빠르게 수렴하고 정확하게 해결할 수 있다.
4.
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를 추출한다.
(여기에 왜 bag-of-word가 나오는지 모르겠네요..?)
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% 향상시켰다.
SPP 참고내용
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

모델은 다음과 같은 목표를 지닌다.
1.
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에도 항상 최적임을 보장할 수 없다.
2.
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 방식은 MosaicSelf-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들 사이의 통계량을 수집한다.
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)로 사용 가능하다.
출처:

이전 글 읽기