논문리뷰 : Bag of Freebies for Training Object Detection Neural Networks

nask·2022년 11월 24일

Abstract

  • object detection task는 classification에 비해 모델 구조나 optimization target 등이 복잡함

  • 그래서 heuristic한 트릭들을 사용하기가 어려운 편

  • but, 이 논문에서는 object detection의 성능을 향상시키는 training tweaks를 소개함

Introduction

  • object detection은 컴퓨터 비전의 매우 중요한 응용 분야임

  • 하지만 연구들이 서로 다른 데이터 전처리 방법이나 학습 파이프라인으로 이루어져서 추가적인 발전이 더딤

  • 이 논문에서는 general한 object detection 성능 향상 방법들을 소개함

  • 모델에 상관없이 일반적으로 적용되는 heuristic이므로 추가 연산량도 없음

Related Work

Scattering tricks form Image Classification

  • object detection의 anchor size가 커지면서 image classification의 mini batch size 문제에 대한 해결책을 일정 부분 공유할 수 있게 됨

  • classification에서는 Label smoothing, Mixup, Cosine annealing, Bag of tricks 등이 사용됨

Deep object Detection Pipelines

  • object detection의 경우 single stage model과 multi stage model이 나누어져있음

  • 따라서, 많은 training detail들이 해당하는 하나의 type에만 적용되는 문제 발생

  • 이 논문에서는 이를 해결해 두 pipeline에서 모두 효과적인 기법을 탐구함

Bag of Freebies

Visually Coherent Image Mixup for Object Detection

  • Rosenfeld et al.의 Elephant in
    the room 실험처럼 object detection에도 코끼리 이미지 패치를 실내 사진에 sliding함

  • YOLOv3 모델에 COCO2017 데이터셋 사용

  • 실험 결과, mix up을 한 경우 모델이 더욱 robust 하게 되고 예측에 대해 덜 확신해서 일반화 성능이 향상됨

  • 또한, 주변 실내 사진의 가구들 역시 더욱 잘 보존하게 됨

  • 종합적으로, mixup 사용 시 vanila model에 비해 학습하지 못한 장면이나 매우 crowded한 groups을 처리하는 능력이 향상됨

Classification Head Label Smoothing

  • Szegedy et al.의 Label smoothing 사용

  • 로짓값의 최댓값과 최솟값 간의 차이가 줄어들어 모델이 덜 확신하게 만들어 일반화 성능 향상

Data Preprocessing

  • detection task의 경우 bounding box 문제 때문에 spatial하고 geometrical한 image transform 사용 시 classification에 비해 주의해야 함

  • 또한, faster R-CNN 등 two-stage detector의 경우 RoI를 추출하는 과정에서 매우 많은 crop 연산을 하게 되므로 추가적인 geometrical image transform이 필요 없음

Training Schedule Revamping

  • 일반적인 step scheduler 사용 시 learning rate가 급격하게 줄어들어 optimizer가 이후 몇 번의 iteration 후에도 re-stabilize하게 되는 문제 발생

  • Cosine scheduler 사용 시 0부터 pi까지에서의 Cosine function의 값에 따라 learning rate를 smooth하게 조절하여 이러한 문제 예방

  • 또한, 한 주기가 지나면 learning rate가 급격하게 높아져 saddle point(정체 구간)을 빠르게 벗어나 일반화 성능이 개선됨

  • Warmup learning rate을 적용해 학습의 초기 단계에서 gradient explosion을 예방함, 특히 YOLOv3에서 좋은 성능 개선 보임

Synchronized Batch Normalization

  • detection task는 classification에 비해 고해상도의 이미지가 필요해 batch size(per gpu)가 낮음

  • 이 경우 multiple GPU 환경에서 일반적인 batch normarlization 사용 시 성능이 하락하는 문제 발생

  • Synchronized Batch Normalization 사용하여 해결

Random shapes training for single-stage object detection networks

  • 학습 이미지의 사이즈를 다양하게 해서 overfitting을 막고 일반화 성능을 높임

  • e.g., H = W ∈ {320, 352, 384, 416, 448, 480, 512, 544, 576, 608}

Conclusion

  • 앞서 소개한 다양한 tweaks를 쌓을 때, 어떤 level에서도 성능 하락이 없는 걸 확인함

  • 추후 object detection traning pipelines에 더욱 wide한 adoption을 제안함

0개의 댓글