논문 원본: https://arxiv.org/abs/2004.10934
논문 한 줄 요약: YOLOv4는 실시간 객체 탐지를 위한 모델로, 일반 GPU 환경에서도 높은 정확도(AP 43.5%)와 빠른 속도(65 FPS)를 동시에 달성하기 위해 최신 기법들을 통합한 최적화된 딥러닝 아키텍처를 제안한 논문이다.
1. 개발 배경과 동기
현재 딥러닝 분야에서 가장 정확한 모델들은 실시간으로 동작하지 않는다는 큰 문제가 있다. 또한 이런 모델들은 학습할 때 많은 GPU가 필요하고 매우 큰 미니배치 크기를 요구한다. 하지만 실제 현장에서는 빠른 추론 속도가 절대적으로 중요하다. 자동차 충돌 경고 시스템이나 실시간 영상 감시 시스템 같은 곳에서는 속도가 생명이기 때문이다.

YOLOv4의 저자들은 이런 문제를 해결하기 위해 평범한 GPU 하나만으로도 학습할 수 있으면서, 동시에 실시간으로 동작할 수 있는 고성능 객체 탐지 모델을 만들고자 했다. 특히 1080 Ti나 2080 Ti 같은 일반적인 GPU에서도 충분히 활용 가능한 모델을 목표로 삼았다.
결과적으로 YOLOv4는 MS COCO 데이터셋에서 43.5% AP를 달성하며 당시 최고 성능을 보였고, Tesla V100에서 65 FPS라는 놀라운 속도를 기록했다. 이는 정말 대단한 성과라고 할 수 있다.
2. 핵심 개념: Bag of Freebies와 Bag of Specials
YOLOv4 논문에서 가장 흥미로운 부분 중 하나는 성능 향상 기법들을 체계적으로 분류한 것이다. 저자들은 이를 Bag of Freebies(BoF)와 Bag of Specials(BoS)라는 두 카테고리로 나누어 설명한다.

2.1 Bag of Freebies (BoF)
Bag of Freebies는 추론 시간에는 전혀 영향을 주지 않으면서 오직 학습 비용만 증가시켜 모델의 정확도를 높이는 기법들을 말한다. 말 그대로 "공짜로 얻는 혜택"이라는 의미다.
데이터 증강(Data Augmentation)이 대표적인 BoF 기법이다. 입력 이미지의 변동성을 높여서 모델이 다양한 환경에서 촬영된 이미지에 더 강건하게 대응할 수 있도록 한다. 픽셀 단위 조정 방법으로는 밝기, 대비, 색조, 채도 조절 등이 있고, 기하학적 변형으로는 랜덤 스케일링, 크롭핑, 플리핑, 회전 등이 있다.
특히 객체 가림(Object Occlusion) 문제를 해결하기 위한 기법들이 중요하다. Random Erase, CutOut, Hide-and-seek, Grid Mask 같은 방법들은 이미지의 일부분을 의도적으로 가려서 모델이 부분적인 정보만으로도 객체를 인식할 수 있도록 훈련시킨다. 실제 환경에서는 한 객체가 다른 객체에 의해 가려지는 경우가 빈번하기 때문에 이런 기법들이 매우 유용하다.
여러 이미지를 함께 사용하는 MixUp과 CutMix 같은 기법도 있다. MixUp은 두 이미지와 라벨을 가중 선형 보간하여 새로운 학습 데이터를 만들고, CutMix는 한 이미지의 특정 패치를 다른 이미지로 대체하는 방식이다.
의미적 분포 편향(Semantic Distribution Bias) 해결도 중요한 BoF 요소다. 객체 탐지에서는 positive/negative 샘플 간의 심각한 클래스 불균형 문제가 발생한다. Two-stage detector에서는 Hard Negative Example Mining이나 Online Hard Example Mining으로 해결하지만, One-stage detector에서는 Focal Loss 같은 기법을 사용한다.
Bounding Box Regression 목적 함수도 중요하다. 전통적인 MSE는 각 좌표값을 독립적으로 취급하여 객체의 전체적인 형태를 고려하지 못한다. 이를 해결하기 위해 IoU 기반의 손실 함수들이 개발되었다. GIoU, DIoU, CIoU는 각각 박스 간의 거리, 중심점 거리, 종횡비까지 고려하여 더 정확한 박스 회귀를 가능하게 한다.
2.2 Bag of Specials (BoS)
Bag of Specials는 추론 비용을 조금 증가시키지만 모델의 정확도를 크게 향상시키는 플러그인 모듈이나 후처리 방법들을 말한다.
Receptive Field 확장 기법들이 대표적이다. SPP(Spatial Pyramid Pooling)는 특징맵을 다양한 크기의 그리드로 나누어 고정된 크기의 표현을 얻는다. ASPP(Atrous Spatial Pyramid Pooling)는 여기에 확장 합성곱을 추가하여 멀티스케일 특징을 더 잘 포착한다. RFB(Receptive Field Block)는 경량화된 CNN에서 학습된 특징을 강조하여 빠른 추론과 향상된 정확도를 동시에 달성한다.
Attention 모듈도 중요한 BoS 요소다. SE(Squeeze-and-Excitation) 모듈은 채널별 중요도를 학습하여 중요한 채널의 특징을 강조한다. SAM(Spatial Attention Module)은 공간적 중요도를 학습한다. 이런 모듈들은 매우 적은 연산량 증가로 의미있는 성능 향상을 가져온다.
Feature Integration 기법들로는 FPN보다 경량화된 SFAM, ASFF, BiFPN 등이 있다. 이들은 서로 다른 스케일의 특징맵을 효과적으로 통합하여 멀티스케일 객체 탐지 성능을 향상시킨다.
Activation Function도 중요하다. 좋은 활성화 함수는 그래디언트가 효율적으로 전파되도록 하면서 연산량은 적게 유지한다. Mish 같은 함수는 upper bound가 없어 포화 현상을 방지하고, 약간의 음수를 허용하여 그래디언트가 잘 흐르도록 설계되었다.
후처리 방법으로는 NMS(Non-Maximum Suppression)의 다양한 변형들이 있다. Soft NMS는 confidence score를 점진적으로 감소시켜 탐지 성능 하락을 방지하고, DIoU NMS는 DIoU penalty term을 추가하여 겹친 객체에 대한 탐지 성능을 향상시킨다.
3. YOLOv4의 독창적인 기법들
YOLOv4는 기존 기법들을 조합했을 뿐만 아니라 몇 가지 독창적인 방법들을 제안했다.
3.1 Mosaic Data Augmentation
가장 주목할 만한 것은 Mosaic 데이터 증강 기법이다. 이는 네 개의 학습 이미지를 하나로 섞는 방법으로, 객체가 인식되는 일반적인 맥락에서 벗어난 관점을 네트워크에 제공한다. 이를 통해 모델은 다양한 환경과 맥락에서 객체를 인식하는 능력을 기를 수 있다.


3.2 Self-Adversarial Training (SAT)
Self-Adversarial Training은 두 단계로 구성된 혁신적인 데이터 증강 방법이다. 첫 번째 단계에서는 네트워크가 원본 이미지를 변형시켜 마치 이미지 내에 객체가 없는 것처럼 보이게 하는 적대적 공격을 가한다. 두 번째 단계에서는 이렇게 변형된 이미지를 사용하여 일반적인 방식으로 학습을 진행한다. 이는 모델의 강건성을 크게 향상시킨다.
3.3 모델 구조 최적화
YOLOv4는 기존 모듈들을 자신들의 목적에 맞게 수정했다. CmBN(Cross mini-Batch Normalization)은 하나의 배치 내에서 미니배치 간의 배치 통계를 수집하는 방식으로 CBN을 개선했다. SAM에서는 spatial-wise attention을 point-wise attention으로 변경했다. PAN에서는 shortcut connection을 concatenation으로 대체했다.

4. YOLOv4의 전체 구조
YOLOv4는 기본적으로 YOLOv3의 구조를 계승하되, 모든 구성 요소를 최신 기법들로 리디자인하였다. 크게는 Backbone – Neck – Head의 3단 구조를 따르며, 각 단계는 다음과 같은 이유와 역할로 설계되었다.
1. Backbone: CSPDarknet53
객체 탐지에서 Backbone은 이미지의 주요 특징을 추출하는 역할을 담당한다. YOLOv4에서는 기존 YOLOv3의 Darknet-53을 개선한 CSPDarknet53을 채택한다. 여기서 CSP는 Cross Stage Partial 구조를 의미한다.
- 왜 CSP를 도입했는가?
일반적으로 깊은 네트워크는 학습 중 중복 연산이 발생하거나 gradient 흐름이 불안정해질 수 있다. CSP 구조는 feature map을 두 부분으로 나누어 일부만 residual block을 통과하게 함으로써, 계산량을 줄이면서도 정보 손실 없이 학습의 안정성과 속도를 개선한다. - 활성화 함수는 Mish를 사용한다. YOLOv3에서는 Leaky ReLU를 사용했지만, Mish는 비선형성이 더 풍부하고 gradient 흐름이 부드러워 학습 성능을 높인다.
- 총 구조는 크게 5개의 downsampling 블록으로 구성되며, 각 블록에서 stride 2의 conv 연산을 통해 feature map의 크기를 절반으로 줄이면서 깊은 특징을 추출한다.
→ 요약하자면, CSPDarknet53은 효율적인 연산과 강력한 feature 표현력을 동시에 만족시키는 YOLOv4의 기초 뼈대라 할 수 있다.
2. Neck: SPP + PANet
Backbone에서 추출한 특징을 효율적으로 연결하고, 다중 스케일의 객체에 대응하기 위해 Neck 구조가 존재한다. YOLOv4는 Neck에 두 가지 강력한 모듈을 조합하여 사용한다: SPP(Spatial Pyramid Pooling)과 PANet(Path Aggregation Network)이다.
SPP (Spatial Pyramid Pooling)
- 다양한 커널 크기의 max-pooling을 병렬로 적용함으로써 receptive field를 넓히고 다양한 스케일 정보를 포착한다.
- YOLOv3 대비 정확도 향상에 큰 기여를 하며, 연산량은 거의 증가하지 않는다.
- 1×1, 5×5, 9×9, 13×13 등의 max pooling 결과를 concat하여 풍부한 정보가 유지되도록 한다.
PANet
- FPN(Feature Pyramid Network)이 상향식(upward) 정보 흐름을 중심으로 했다면, PANet은 여기에 하향식(bottom-up) 경로도 추가해 양방향으로 특징을 보완한다.
- 상위 계층에서 학습된 semantic feature와 하위 계층의 spatial feature를 효율적으로 통합하여 작은 객체까지 정확하게 탐지할 수 있도록 만든다.
- 이는 YOLOv4가 작은 객체 탐지에서 성능이 눈에 띄게 향상된 주된 이유 중 하나다.
→ Neck 구조는 요약하자면, 다양한 크기의 객체를 포괄하고, 계층 간 정보 손실을 최소화하는 핵심 중간 다리 역할을 한다.
3. Head: YOLO Detection Layer
YOLOv4의 마지막 구성 요소는 Head, 즉 실제 객체의 클래스와 위치를 예측하는 detection layer이다.
- YOLO 계열 모델답게, anchor box 기반의 one-stage detector 구조를 사용한다.
- 하나의 conv layer에서 클래스 확률, bounding box 좌표(x, y, w, h), objectness score를 동시에 출력한다.
- COCO 데이터셋 기준 3개의 다른 스케일(52×52, 26×26, 13×13)에 대해 예측을 수행하여 작은 객체부터 큰 객체까지 커버한다.
- NMS(Non-Maximum Suppression) 후처리에는 DIoU-NMS를 사용하여, 겹치는 박스 제거를 보다 정밀하게 수행한다.
→ Head는 요약하자면, YOLOv4의 실제 탐지 결과를 만들어내는 마지막 계산 단계이며, 속도와 정확도의 균형을 가장 잘 보여주는 부분이다.
5. 실험 결과와 성능 분석

YOLOv4의 실험은 매우 체계적으로 진행되었다. 저자들은 각 구성 요소의 기여도를 정확히 파악하기 위해 다양한 ablation study를 수행했다.
Classifier 학습 실험에서는 CSPResNext50 백본에 다양한 BoF 기법들을 적용했을 때의 효과를 측정했다. CutMix, Mosaic, Label Smoothing, Mish를 모두 사용했을 때 가장 높은 79.8%의 정확도를 달성했다.
Detector 학습 실험에서는 더욱 흥미로운 결과들이 나타났다. 특히 classification accuracy가 가장 높은 백본이 항상 detection accuracy도 가장 높은 것은 아니라는 점이 중요하다. 이는 객체 탐지와 이미지 분류가 서로 다른 특성을 가진다는 것을 보여준다.
Mini-batch 크기 실험은 특히 의미있는 결과를 보여주었다. Mini-batch 크기를 4에서 8로 늘렸을 때 AP 점수의 변화가 크지 않았다. 이는 BoF와 BoS 기법들을 도입한 후에는 더 이상 비싼 GPU를 사용해서 모델을 학습시키는 것이 큰 의미가 없다는 것을 보여준다. 즉, 평범한 GPU만으로도 충분히 좋은 성능을 얻을 수 있다는 뜻이다.
6. 성능 비교와 실용적 가치
YOLOv4의 가장 인상적인 점은 속도와 정확도의 균형이다. Volta GPU에서 다른 객체 탐지 모델들과 비교했을 때, YOLOv4는 압도적인 속도를 보여주었다. 정확도 면에서도 당시 최고 성능 모델들과 비교해 크게 뒤지지 않는 성능을 보였다.
특히 실용적인 관점에서 YOLOv4의 가치는 매우 크다. VRAM이 8-16GB 정도면 일반적인 GPU에서도 학습과 추론이 가능하기 때문에 많은 연구자와 개발자들이 접근할 수 있다. 이는 객체 탐지 기술의 민주화에 크게 기여했다고 볼 수 있다.
7. YOLOv4의 의의와 한계
YOLOv4 논문의 가장 큰 의의는 기존의 다양한 기법들을 체계적으로 정리하고 분류했다는 점이다. BoF와 BoS라는 프레임워크는 이후 연구들에도 큰 영향을 미쳤다. 또한 수많은 기법들 중에서 실제로 효과적인 조합을 찾아내기 위해 방대한 실험을 수행한 점도 높이 평가할 만하다.
하지만 한계도 있다. YOLOv4는 본질적으로 기존 기법들의 조합에 기반하고 있어, 완전히 새로운 아키텍처나 패러다임을 제시하지는 못했다. 또한 모델의 복잡성이 증가하여 이해하고 구현하기가 상대적으로 어려워졌다는 점도 있다.
8. 실제 적용과 영향
YOLOv4는 발표 이후 실제 산업 현장에서 널리 사용되기 시작했다. 자율주행 자동차, 보안 시스템, 제조업 품질 검사 등 다양한 분야에서 활용되고 있다. 특히 실시간성이 중요한 애플리케이션에서 그 가치가 크게 인정받았다.
또한 YOLOv4는 이후 YOLO 시리즈의 발전에도 큰 영향을 미쳤다. YOLOv5, YOLOv6, YOLOv7 등 후속 모델들은 모두 YOLOv4에서 제시된 기법들을 기반으로 하여 더욱 발전된 형태로 진화했다.
9. 결론
YOLOv4는 객체 탐지 분야에서 정확도와 속도의 최적 균형을 달성한 중요한 모델이다. 기존의 다양한 기법들을 체계적으로 분류하고 조합하여 실용적인 성능을 달성했다는 점에서 큰 의의가 있다.
특히 일반적인 GPU에서도 학습과 추론이 가능하도록 설계되어 객체 탐지 기술의 접근성을 크게 향상시켰다. Mosaic이나 SAT 같은 독창적인 기법들도 제안하여 후속 연구들에 영감을 제공했다.
물론 완전히 새로운 패러다임을 제시하지는 못했지만, 기존 기법들의 체계적인 정리와 최적화를 통해 실용적인 가치를 극대화했다는 점에서 높이 평가받을 만하다. YOLOv4는 연구와 실용 사이의 간극을 줄이는 데 크게 기여한 모델이라고 할 수 있다.
앞으로도 객체 탐지 분야는 계속 발전할 것이고, YOLOv4에서 제시된 아이디어들은 그 발전의 기초가 될 것이다. 특히 효율성과 성능의 균형을 추구하는 방향은 앞으로도 중요한 연구 주제가 될 것으로 예상된다.
10. 레퍼런스
https://devocean.sk.com/blog/techBoardDetail.do?ID=166976&boardType=techBlog
From One to Ten: YOLO 시리즈 변천사
devocean.sk.com
https://herbwood.tistory.com/24
YOLO v4 논문(YOLOv4: Optimal Speed and Accuracy of Object Detection) 리뷰
이번 포스팅에서는 YOLO v4 논문(YOLOv4: Optimal Speed and Accuracy of Object Detection)을 읽고 리뷰해보도록 하겠습니다. 최근 등장한 가장 정확한 딥러닝 모델은 실시간으로 동작하지 않고, 학습 시 많은 수
herbwood.tistory.com
'Paper review > CV' 카테고리의 다른 글
| SAM: Segment Anything (0) | 2025.08.09 |
|---|---|
| DETR: End-to-End Object Detection with Transformers (4) | 2025.07.22 |
| Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (3) | 2025.07.01 |
| GAN: Generative Adversarial Nets (0) | 2025.05.23 |
| Mask R-CNN (0) | 2025.05.16 |