반응형
YOLOX: Exceeding YOLO Series in 2021
YOLOv4와 달리 YOLO의 Architecture를 충실히 따르면서도, SOTA를 달성했던 YOLOX에 대해 리뷰해보자.
Abstract
- 본 논문에서 저자들은 기존의 YOLO Detector에 Anchor-free 방식을 적용하였고, Decoupled Head, SimOTA와 같은 다양한 탐지 테크닉을 적용하여 SOTA를 달성하였다.
- 또한 YOLOX-L 모델은 CVPR2021의 자율주행 워크샵에서 별도의 Ensemble없이 단일 모델 성능만으로 1위를 차지하였다.
Introduction
- YOLO 시리즈들은 실시간 이미지 처리를 위해서 최적의 Speed / Accuracy Trade-off를 가지게끔 설계되곤 했었다.
- 최근에 YOLOV5 모델의 경우 13.7ms 만에 48.2% AP를 가지는 최적의 Trade Off를 가지고 있다.
- 뿐만 아니라, 2년간 Object Detection 기술이 발전하면서 학계에서는 Anchor Free Detector, Advanced Label Assignment Strategies, End-to-end Detector등 다양한 기법을 연구해나가고 있다.
- YOLO 시리즈는 아직까지 이러한 최신 기법들이 적용된 사례가 존재하지 않으며, 따라서 본 논문에서 저자들은 YOLO 에 이러한 최신 기법들을 적용하는 시도를 진행하였다.
- YOLOv4와 YOLOv5의 파이프라인은 Anchor Based 위주로 최적화가 진행되어있기 때문에, General 한 성능이 오히려 떨어질 수 있다고 생각하여 본 논문의 저자들은 YOLOv3-SPP를 기본 베이스 모델로 삼았다.
- 다양한 기법을 적용한 결과, Baseline에 비해서 AP가 크게 개선되었으며, 기존에 공개됬던 ultralytics의 YOLOv3 보다도 높은 성능을 지닌다.
YOLOX
- YOLOX는 기본적으로 1 Stage Detector로 Input - Backbone - Neck - Dense Prediction의 구조를 가진다.
- YOLOX는 Darknet53의 Backbone을 통해 Feature Map을 추출하며, SPP Layer를 통해 성능을 개선한다.
- FPN을 통해 Multi-Scale Feature Map을 얻고 이를 통해 작은 해상도의 Feature Map에서는 큰 Object를 추출하고 큰 해상도의 Feature Map에서는 작은 Object를 추출하게끔 한 Neck 구조를 차용하였다.
- 최종적으로 Head 부분에서는 기존 YOLOv3와 달리 Decoupled Head를 사용하였다.
Decoupled Head
- YOLOv3에서는 하나의 Head에서 Classification과 Localization을 함께 진행하였으나, Classification과 Bbox Regression는 서로 다른 특성을 가진다는 내용이 연구되었다. Classification에는 Fully Connected Layer가 효과적이지만, 반면에 Localization에는 Convolution Head가 보다 적절한데 이 두가지가 서로 상충된다.
- 따라서 다양한 연구에서 이러한 Head 부분을 Double-Head 방식으로 변경하여 Classification엔 FC Head를, Localization에는 Convolution Head를 적용함으로써 성능 향상을 이룩해내었다.
- 본 논문에서는 YOLO에 이러한 최신 연구를 반영하여 Decoupled Head 방식을 적용하였다. Classification 에는 BCE Loss를 사용하고 Localization에는 IoU Loss를 사용하여 학습을 진행한다.
- 실험 결과, 해당 방식이 기존 Coupled Head 방식보다 Convergence 속도가 빠르고 AP가 향상되었다고 한다.
Strong Augmentation
- 본 논문에서는 ultralytics의 YOLOv3 에서 적용된 Mosaic Augmentation과 Object Detection에서 사용되는 MixUp Augmentation을 적용하여 데이터를 증강시키고 학습을 진행하였다.
- 또한, Strong Data Augmentation을 활용하여 학습을 했을 때, ImageNet 사전 학습 모델이 그다지 큰 효용이 없었기 때문에 단순히 Train from scratch 방식으로 처음부터 학습을 시작했다고 한다.
Anchor-free Manner
- 최근 2년간 빠르게 발전한 Anchor Free 방식의 Detector들은 Anchor 방식의 방법론과 견줄 정도의 성능을 가질 정도로 그 수준이 많이 올라왔다.
- 기존 Anchor 기반의 Detector들은 비록 그 성능은 뛰어날 수 있지만, 개발자들이 직접 Heuristic 하게 Tuning을 진행해주어야 하는 불편함이 존재했다. 또한 그렇게 Tuning된 Anchor Size 또한 특정 Task에 종속적이므로 General한 성능은 떨어지는 이슈가 존재하였다.
- Anchor Free 방식은 학습을 보다 간편하고 편하게 해주고, 다양한 Hyperparameter들을 Tuning해야 하는 필요성이 없으며, 그로 인해 다양한 분야에 General 하게 일정한 성능을 보장한다.
Multi Positive
- 기존 YOLOv3의 Assigning Rule을 그대로 유지한다면 원래 Anchor Free Version에서도 중앙 위치 값 1개 만을 Positive Sample로 지정하여야 하지만, 이는 그 주변에 꽤 괜찮게 예측한 다른 데이터들을 모두 무시하게 되는 효과를 가진다.
- 따라서 Positive Sample을 중앙 위치 값 주변 3x3 사이즈로 모두 지정함으로써 이러한 고품질의 예측 값에 대해서 이득을 취할 수 있도록 한다. (FCOS의 Center Sampling 기법)
- 이렇게 positive Sample을 증강해줌으로써, 심각한 class imbalance도 어느정도 상쇄시킬 수 있다.
SimOTA
- 향상된 Label Assign 전략을 사용하였다. Object Detection에서의 Label Assignment는 각 지점에 대하여 Positive과 Negative를 할당해주는 것이다.
- Anchor Free방식은 Ground Truth의 박스 중앙 부분을 Positive로 처리하는데, 문제는 하나의 지점이 다수의 박스 내부에 존재할 때이다.
- 이런 경우 단순히 point by point가 아닌 Global Labeling이 필요한데, 이를 최적화하는 방식으로 저자는 SimOTA를 적용하였다.
- OTA(Optimal Transportation Algorithm)은 Sinkhorn-knopp iteration등의 방법을 통해서 최적의 값을 찾아내는데 사용되는데, 이러한 iteration으로 인해 약 25%의 추가 학습 연산이 필요하게 된다.
- 약 300Epoch의 학습이 필요한 YOLOX에게 있어서 이는 꽤나 큰 오버헤드이므로, 저자들은 이를 간단하게 iteration 없이 수행하는 Simple OTA(SimOTA)를 적용하였으며 AP 45.0%를 47.3%로 향상시키는 효과가 있었다.
Result
- SOTA를 달성하였으며 여태 나온 YOLO Series 모두를 능가하는 AP를 얻었다.
- 기존 YOLO 모델들과 마찬가지로 속도와 성능간의 Trade Off가 존재하지만, 다른 모델들과 비교했을 때 높은 성능과 FPS를 동시에 얻어내는 모습을 보인다.
- CVPR 2021의 WAD Challenge에서 단일 모델만으로 1위를 달성하였다.
Conclusion
- 본 논문의 저자들은 YOLO에 최신 Object Detection 기법들을 적용한 YOLOX를 소개하였다.
- Decoupled Head, Multi-Postive, SimOTA, Strong Augmentation등 최신 연구 내용을 바탕으로 YOLOv3 기반의 모델을 효과적으로 향상시켰으며, YOLOv5에 적용했을 때도 유의미한 성능 향상을 보였다.
- Anchor Free 방식을 적용하여 General한 성능을 보장하며, 모델 구현자로 하여금 Anchor와 관련된 다양한 Hyperparameter를 Tuning할 필요없이 간편하게 학습이 가능하도록 하였다.
반응형