본문 바로가기
Computer Vision

YOLOv6 (2022) 논문 리뷰

by 아르카눔 2025. 5. 3.

YOLOv6의 논문 이름은 YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications다. (링크

 

저자는 Chuyi Li, Lulu Li, Hongliang Jiang, Kaiheng Weng, Yifei Geng, Liang Li, Zaidan Ke, Qingyuan Li, Meng Cheng, Weiqiang Nie, Yiduo Li, Bo Zhang, Yufei Liang, Linyuan Zhou, Xiaoming Xu, Xiangxiang Chu, Xiaoming Wei, Xiaolin Wei다. 

 

Github: 링크

 

 

YOLO v4에서 v6으로 넘어왔다. v5는 Ultralytics라는 회사에서 제시했는데 논문이 아니라 웹페이지 (링크)에 제시되어서 일단 논문 위주로 리뷰하고자 현재는 넘어간 상태다.

 

Abstract

YOLO 시리지는 산업 레벨에서 효율적인 object detection에서 사실상 표준에 가까워졌다. 관대한 YOLO의 원저자들에 의해서 YOLOv6는 YOLO의 이름을 이어갈 수 있었다. YOLOv6는 COCO 데이터에 대해서 기존에 제시된 YOLO 모델들인 v5, v7, X, PP-YOLOE에 비해서 더 빠르면서 좋은 성능을 달성했다. 양자화된 모델인 Quantized YOLOv6-S도 제시했는데 굉장히 빠르면서도 좋은 성능을 보인다. 

 

 

2. Method

전반적인 YOLOv6의 구조는 아래 Figure 2와 같다.

 

 

2.1. Network Design

 

2.1.1. Backbone

 

Multi-brank 네트워크는 single path 네트워크들 보다 좋은 성능을 보이지만 parallelism이 감소되어 inference latency가 증가한다. 반면에 VGG 같은 single path는 high parallelism이며 inference 측면에서 더 효율적이다. 최근 RepVGG에서 구조적 re-parameterization이 소개되어 multi-branch topology의 학습 시간과 plain architecture의 inference-time을 decouple 분리시키고 더 나은 speed-accuracy의 트레이드 오프를 달성했다.

 

위 작업들에 영감을 받아서, 저자들은 효율적인 re-parameterizable backbone인 EfficientRep을 제시한다.

보다 작은 모델들에 대해서 학습 단계의 backbone의 핵심 구성요소는 RepBlock으로 아래 Figure 3 (a)에 나와있다. 추론 단계에서 RepBlcok은 3 x3 conv (RepConv로 표기되는)와 ReLU activation의 stack으로 변환되며 이는 Figure 3 (b)에 나와있다.

 

 

일반적인 3 x 3 conv는 주류 GPU와 CPU 들에서 계산의 측면에서 굉장히 최적화되어있어서 효율적이다.

 

하지만 computation burden-accuracy 간의 트레이드 오프를 더 향상시키기 위해서 저자들은 보다 큰 중간 크기와 대규모 크기의 네트워크를 위해서 CSPStackRep Block을 개조한 백본을 소개한다. 이는 위 Figure 3 (c)에 나와있다.

 

CSPStackREp Block은 3개의 1 x 1 conv와 stack of sub-blocks로 이루어져있는데, 서브 블록은 2개의 RepVGG 블록이나 RepConv로 이루어져있다. 그리고 Residual connection도 적용된다. 추가적으로 Cross Stage Partial (CSP) connection을 적용하여 추가적인 계산 비용 없이 성능을 향상시킨다. CSPRepResStage  (PP-YOLOE 논문, 링크)와 비교했을 때 보다 간단 명료하면서 accuracy와 speed 사이의 균형을 고려한다.

 

2.1.2. Neck

 

실제 현장에서는 multiple scales의 features를 통합하는 작업이 object detection에서 중요하고 효율적인 부분이다. 저자들은 YOLOv4와 YOLOv5에서 소개된 PAN (Path Aggregation Network) topology의 detection neck을 수정하였다. YOLOv5에서 사용한 CSP-Block의 CSP Block을 작은 모델에서는 RepBlock으로, 큰 모델에 대해서는 CSPStackRep Block으로 대체했다. 이 대체된 neck을 Rep-PAN이라고 부른다.

 

아래의 PAN Fig 1에서 묘사된 PAN (Path Aggregation Network)은 FPN은 기반으로 Bottom-up path augmentation을 추가한 모델이다. 

 

PAN Fig 1

 

 

 

 

2.1.3. Head

 

Efficient decoupled head

YOLOv5에서 detection head는 classification과 localization branches 사이의 공유된 파라미터와 연결 되어있다. 반면에 FCOS나 YOLOX에서는 두 브랜치의 두 개의 3 x 3 conv 레이어들 사이의 연결을 해제한다. 이를 통해서 각각의 브랜치가 더 나은 성능을 달성하도록 한다. YOLOv6에서는 hybrid-channel 전략을 사용하여 더 효율적인 decoupled head를 창조한다. 구체적으로 3 x 3 conv 레이어들의 중간 부분의 숫자를 줄인다. Head의 width가 백본과 넥의 width multiplier에 의해 크기가 스케일링 된다. 이를 통해서 추가적으로 계산 비용을 감소시키고 더 낮은 추론 지연시간을 달성한다.

 

Anchor-free

Anchor-free는 post-processing에서 상당한 부분의 시간 비용을 감소시킨다. 앵커 프리 방법에는 Anchor point-baed와 keypoint-based의 2가지 방법이 있는데, YOLOv6에서는 anchoe point based 방법을 채택한다. 이는 Box regression branch가 anchor point로 부터 bounding boxes의 사면에 대한 거리를 예측하는 방법이다. 

 

 

2.2. Label Assignment

Label assginment는 학습 단계에서 사전 정의된 앵커들에 라벨을 부여하는 작업이다. 선행 연구들에서는 단순한 IoU based 전략부터 inside ground-truth, 그리고 보다 복잡한 방법들까지 다양한 라벨 부여 작업을 제시했다.

 

SimOTA

OTA는 객체 인식에서의 라벨 부여 작업을 optimal transmission problem으로 해석해서, Global perspective에서 ground-truth 객체를 positive and negative training samples로 정의한다. SimOTA는 OTA의 단순화된 버젼이다. YOLOv6의 초기 버젼에서는 이를 적용했다. 하지만 학습 과정에서 속도가 느려지고 종종 학습이 불안정하기에 대안을 찾았다. 

 

 

Task alignment learning (TAL)

Task alignment learning은 TOOD (TOOD: Task-aligned One-stage Object Detection, 링크)에서 제시된 방법이다. Classification score와 predicted box quality를 통합한 평가 지표를 제시한다. IoU는 이 평가 지표에 의해 대체되어 객체 라벨 부여에 사용된다. Mixalignment 문제가 다소 완화된다. TOOD의 또 다른 핵심 기여는 task-aligned head (T-head)로, T-head는 컨볼루션 레이어를 쌓아서 interactive features를 창조한다. PP-YOLOE에서는 T-Head에 레이어 어텐션을 도입하여 개선했다. 이 이텐션은 lighweight ESE attention으로 ET-head를 형성한다. 하지만 추론 속도를 감소시키므로 저자들은 Efficient decouple head를 사용한다. 그리고 저자들은 TAL은 SimOTA 보다 성능이 더 좋으며 학습 과정에서도 안정적이므로 TAL 을 선택했다. 

 

2.3. Loss Functions

Object detection은 2개의 sub-tasks; classification and localization로 이루어진다. 각각에 대응되는 loss functions는 classification loss와 box regression loss다.  

 

2.3.1. Classification Loss

 

Focal Loss, Quality Focal Loss (QFL), VariFocal Loss (VFL), Polly Loss 등 다양한 손실 함수가 있는데 저자들은 VFL을 최종적으로 선택해서 사용한다. 

 

 

 

2.3.2. Box Regression Loss

 

초기에는 L1 loss가 많이 쓰였지만 최근에는 다양한 IoU-series Loss 들과 probability loss도 소개된다. 

GIoU, DIoU, CIoU, $\alpha$-IoU, SIoU 등 다양한 IoU의 변형이 있는데 저자들은 YOLOv6-N과 T에 대해서는 SIoU를, 나머지 모델들에 대해서는 GIoU를 적용했다. 

 

Box locations의 distribution을 고려하는 손실 함수들도 있는데 Distribution Focal Loss (DFL)와 DFL v2가 있다. 저자들은 YOLOv6-M과 L에 DFL을  적용했다. 

 

 

2.3.3. Object Loss

 

Object loss는 FCOS 에서 처음 제시되어 저품질의 boundingx boxes를 필터링하는 후처리 작업이다. YOLOX에서도 사용되었는데 수렴을 가속화하고 네트워크의 정확도를 향상시킨다. YOLOv6에서도 적용했지만 향상은 거의 없었다고 한다. 

 

2.4. Industry-handy improvements

Real world에서 사용할 수 있도록 몇가지 트릭을 소개한다.

 

 

2.4.1. More training epochs

 

더 나은 수렴을 위해서 epochs를 300에서 400으로 확장한다.

 

2.4.2. Self-distillation

 

Knowledge distillation의 KLD 테크닉을 사용한다. 이때 teacher이 사전 학습된 student 모델이라서,  둘이 동일한 모델이기에 self-distillation이라고 한다. 

 

 

위 Knowledge distillation loss와 앞에서 정의한 detecton loss의 가중 합이 아래 (2)의 최종 loss다.

 

 

2.4.3. Gray border of images

 

YOLOv5와 YOLOv7에서 각 이미지의 주위에 a half-stride gray border이 둘러져있는 것을 알 수 있다. 이미지에 유용한 정보가 추가되는 것은 아니지만 가장 자리에 있는 객체 탐지에 도움이 된다.  

이러한 추가 회색 픽셀들은 추론 속도를 명확히 감소시키는데, 이 회색 가장 자리가 없으면 YOLOv6에서 성능이 저하된다. 이 문제는 Mosaic augmentaiton의 padding과 관련이 있다고 가정한다. 마지막 에포크 동안 모자이크 증강을 끄는 실험(일명 fade strategy 페이드 전략) 이 검증을 위해 수행되었다. 회색 테두리의 영역을 변경하고 회색 테두리가 있는 이미지의 크기를 대상 이미지 크기에 직접 조정한다. 이 두 가지 전략을 결합하면 모델은 추론 속도 저하 없이 성능을 유지하거나 향상시킬 수 있다.

 

2.5. Qauntization and Deployment

산업적인 배포를 위해서 quantization을 적용한다. Post-training quantization (PTQ)로 모델을 직접 양자화해서 더 작은 계산으로 가능하게 한다. Quantization-aware Training (QAT)는 학습 셋에 대해서 접근해서 성능을 향상하는데 보통 distillation과 동시에 사용된다. YOLOv6에서는 re-parameterization을 많이 사용하기 때문에 기존의 PTQ로는 성능의 향상이 되지 않는다. 반면에 QAT는 적용하기 어렵다. 

 

2.5.1. Reparemeterizing Optimizer

 

RepOptimizer에서는 매 optimization step마다 gradient re-parameterization을 제시한다. 이를 통해서 reparameterization 기반의 모델에서의 양자화 문제를 해결한다. YOLOv6의 re-parameterization blocks를 다시 구축하고 이를 RepOptimizer로 학습하여 PTQ 친화적인 가중치를 얻는다. Feature map의 분포를 Figure 4를 보면 더 좁은 범위에 분포함을 알 수 있다. 

 

 

 

2.5.2. Sensitivity Analysis

 

Quantization-sensitive operation을 float computation으로 전환해서 PTQ 성능을 향상시킨다. Mean-square error (MSE), signal-noise ratio (SNR), 그리고 cosine similarity를 활용해서 평가한다.

 

2.5.3. Quantization-aware Training with Channel-wise Distillation

 

PTQ로 불충분하기에, 양자화 성능을 신장시키기 위해서 QAT 역시 적용한다. 추가적으로 Channel-wise distillation을 적용한다. 이는 아래 Figure 5에 있다. 

 

 

3. Experiments

 

COCO 2017 val에 대한 YOLOv6와 YOLOv5, YOLOX, YOLOv7, PP-YOLOE 의 성능을 비교한 표가 위의 Table 1이다.

YOLOX-Tiny와 YOLOv6-N, YOLOv7-Tiny가 서로 비슷한 크기인데, YOLOv6-N이 가장 파라미터 수가 작으면서 latency가 작고, AP 값도 좋다. 위처럼 파라미터 수를 기준으로 비교하면 YOLOv6가 약간씩 더 AP가 높고 latency가 약간씩 더 낮다. 

 

Ablation Studies

 

 

 

 

 

 

 

 

Table 2, 8, 9, 11을 보면 Section 2에서 왜 저자들이 CSPStackRep Block, SIoU, VFL, QFL을 선택했는지, 왜 object loss를 안 사용하는지를 알 수 있다. 

 

 

 

 

References:

https://velog.io/@dust_potato/YOLOv6-YOLOv6-v3.0-%EB%A6%AC%EB%B7%B0

 

 

 

'Computer Vision' 카테고리의 다른 글

YOLOX (2021) 논문 리뷰  (1) 2025.06.23
MnasNet (2018) 논문 리뷰  (0) 2025.05.03
SegFormer (2021) 논문 리뷰  (0) 2025.05.03
BEiT (2022) 논문 리뷰  (0) 2025.05.03
MLP-Mixer (2021) 논문 리뷰  (0) 2025.05.03