EfficientDet:Scalable and Efficient Object Detection

|

EfficientDet:Scalable and Efficient Object Detection

Original paper: https://arxiv.org/pdf/1911.09070v1.pdf

Authors: Mingxing Tan, Ruoming Pang, Quoc V. Le (Google)

  • 참고 글
    • https://hoya012.github.io/blog/EfficientDet-Review/

Introduction

  • EfficientNet 이 classification task를 타겟으로 작성된 논문이라면, 본 논문은 object detection task를 타겟으로 작성된 논문
views
  • 위의 MS COCO 결과를 볼 때, Feature Pytamid Network(FPN) 구조와 AutoML로 찾은 무거운 backbone인 AmoebaNet을 섞어서 사용한 모델이 COCO에서 가장 좋은 성능을 보임
  • 제안하는 방법은 이러한 AutoML 기반의 모델들의 성능을 크게 상회함
  • 특히 연산량, 연산 속도 관점에서는 굉장히 효율적인 모델을 제안함

Main Challenge and Solution

  • Speed와 accuracy는 서로 trade-off 관계를 갖기 때문에(참고) 높은 정확도와 효율을 동시에 가져가기는 어려움
  • 본 논문에서는 object detection에서 속도와 정확도를 모두 높게 가져가는 모델을 설계할 때 고려해야 할 점 중 크게 2가지를 challenge로 삼음

Challenge 1. Efficient Multi-scale Feature Fusion

  • FPN은 2017년 공개된 이후 대부분의 object detection 연구에서 사용되고 있음
  • 1-stage detector의 대표 모델인 RetinaNet, M2Det, AutoML의 NAS를 FPN구조에 적용한 NAS-FPN등 FPN을 적용하고 성능을 개선하고자 하는 연구들이 많이 진행되어옴
  • 하지만 본 논문에선 이러한 선행 연구들이 모두 서로 다른 input feature들을 합칠 때 feature의 구분없이 단순히 더하는 방식을 사용하고 있음을 지적함

  • 논문에선 서로 다른 input feature들은 해상도(resolution)가 서로 다르기에 output feature에 기여하는 정도를 다르게 가져가야 함을 주장함
    • 단순히 더하게 되면 같은 weight로 기여하게 됨
  • 이를 위해 간단하지만 효과적인 weighted bi-directional FPN(BiFPN) 구조를 제안함
  • BiFPN 구조를 사용하면 서로 다른 input feature들의 중요성을 학습을 통해 배울 수 있으며, 이를 통해 성능을 많이 향상시킬 수 있음
    • 자세한 구조는 후술

Challenge 2. Model Scaling

  • EfficientNet에서 제안한 Compound Scaling 기법은 모델의 크기와 연산량을 결정하는 요소들(input resolution, depth, width)을 동시에 고려하여 증가시키는 방법을 의미함
    • 이 compound scaling 기법을 통해 높은 성능을 달성 할 수 있었음
  • 위의 아이디어를 object detection에도 적용 가능하며, backbone, feature network, box/class prediction network 등 모든 곳에 적용함

Main Contribution

  • 본 논문에서 제안하는 핵심 내용은 크게 2개
    • BiFPN
    • Model scaling
  • 위의 두 방법을 적용시켜 MS COCO에서 가장 높은 mAP 점수를 달성하고, 기존 방법들 대비 매우 적은 연산량(FLOPS)으로 비슷한 정확도를 달성함
  • Main contributions
    • Weighted bidirectional feature network (BiFPN)를 제안
    • Object detection에도 compound scaling을 적용하는 방법을 제안
    • BiFPN과 compound scaling을 접목해 좋은 성능을 보이는 EfficientDet 구조를 제안

BiFPN

Cross-Scale Connections

  • Feature Pyramid Network를 이용한 방법들을 모아둔 그림은 아래와 같음
views
Feature network design
  • (a): 전통적인 Feature Pyramid Network(FPN)의 구조
  • (b): PANet. FPN에 추가로 bottom-up pathway를 FPN에 추가함
  • (c): AutoML의 NAS를 FPN구조에 적용시킨 NAS-FPN
    • 불규칙적인 FPN 구조를 보임
  • (a)와 (b)의 구조는 같은 scale에서만 connection이 존재하지만, (c)부터는 scale이 다른 경우에도 connection을 형성한 Cross-Scale Connection 을 적용시킴
  • (d)와 (e)는 본 논문에서 추가로 제안하고 실험한 방식
  • (f): 본 논문에서 제안하는 BiFPN 구조

  • (e)의 simplified PANet 방식은 PANet에서 input edge가 1개인 node들은 기여도가 적을 것이라 판단하고 제거해 얻은 network 구조
  • (f) BiFPN은 (e)에 보라색 전처럼 같은 scale에서 edge를 추가해 더 많은 feature들이 fusion되도록 구성을 한 방식
  • PANet은 top-down과 bottom-up path를 하나만 사용했지만, 본 논문에서는 이러한 구조를 여러번 반복하여 사용함
    • 이를 통해 더 high-level한 feature fusion이 가능하다고 주장함
views
BiFPN의 성능 향상 분석
  • 논문에선 BiFPN의 성능 향상을 살펴보기 위해 2개의 ablation study를 수행함
  • Table 3에선 같은 backbone(EfficientNet-B3)에서 FPN을 BiFPN으로 바꿨을 때의 성능을 측정함
    • 이 때의 mAP는 약 4.1 증가했으며, parameter 수와 FLOPS도 적게 사용하고 있음을 보여줌
  • Table 4에선 여러 Feature network 방식들에 따라 성능이 어떻게 바뀌는지를 분석한 결과
    • BiFPN을 사용했을 때 성능이 가장 좋은 것을 확인 가능

Weighted Feature Fusion

  • FPN에서 서로 다른 resolution의 input feature들을 합칠 때, 일반적으로는 같은 해상도가 되도록 resize 수행 후 합침
    • 하지만 이러한 경우엔 모든 input feature를 동등하게 처리하게 된다는 문제점이 존재
  • 본 논문에서는 위의 문제를 개선하기 위해 각 input feature에 weight를 주고, 학습을 통해 weight를 배울 수 있는 방식을 제안함
  • 총 3가지 방식을 제안하고 있으며, 각 방식을 하나의 그림으로 정리하면 다음과 같음
views
Weighted Feature Fusion
  • Weight는 3가지 종류로 적용 가능함
    • Scalar(per-feature)
    • Vector(per-channel)
    • Multi-dimensional tensor(per-pixel)
  • 본 논문에선 scalar를 사용하는 것이 정확도와 연산량 측면에서 가장 효율적임을 실험을 통해 확인함
    • 모든 실험에선 Scalar weight를 사용함
  • Unbounded fusion은 말 그대로 unbounded이기에 학습에 불안정성을 유발 할 수 있음
    • Weight normalization을 적용시켜 학습 불안정성 문제 해결
  • SoftMax-based fusion은 많이 사용하는 SoftMax를 사용한 것이지만 GPU 하드웨어에서 속도저하를 유발시킴을 실험을 통해 확인함

  • 따라서 본 논문은 Fast normalized feature fusion 방법을 제안함
    • 우선 weight들은 ReLU를 거치기에 non-zero임이 보장되며, 분모가 0이 되는것을 막기 위해 $\epsilon$인 0.0001 크기의 값을 넣어줌
    • Weight 값이 0~1 사이로 normalize 되는 것은 SoftMax와 유사하며, ablation study를 통해 SoftMax-based fusion 방식보다 좋은 성능임을 확인시켜줌
views
Weight feature fusion ablation study
  • 위의 Table 5는 SoftMax fusion과 Fast fusion을 비교한 결과
    • Fast fusion을 사용하면 mAP의 하락이 약간 있지만 30%의 속도향상을 달성 할 수 있음
  • 그림 5에선 input 1과 input 2의 weight를 training step에 따라 plot 한 결과를 확인 할 수 있음
    • 학습이 계속될수록 weight가 빠르게 변하는 것을 확인 할 수 있음
    • 이는 feture들이 동등하지 않게 output feature에 기여하고 있음을 의미함
    • Fast fusion을 적용시켜도 SoftMax fusion과 양상이 비슷한것을 확인 할 수 있음

EfficientDet

  • 위에서 설명한 BiFPN을 기반으로 EfficientDet이라는 1-stage detection method를 제안함

EfficientDet Architecture

views
EfficientDet 구조
  • EfficientDet의 구조는 위의 그림과 같음
    • 별다른 특이점 없이 그냥 그림 그대로 deconv 된 feature를 concat/connect 하여 사용함

Compund Scaling

  • Backbone network에는 EfficientNet-B0~B6를 사용했으며, ImageNet pre-trained network를 사용함
  • 실험에 사용한 Compound Scaling configuration은 아래와 같음
views
Compound Scaling for EfficientDet
  • EfficientNet의 Compound Scaling처럼 input의 resolution과 backbone network의 크기를 늘려줌
  • 또한 논문에서 제안한 BiFPN과 Box/class network도 동시에 키워줌
    • 각 네트워크별로 어떻게 키웠는지는 위 그림 우측의 (1), (2), (3)에서 확인 가능함

실험 결과

views
MS COCO 결과
  • 제안하는 모델은 MS COCO에서 가장 높은 mAP를 달성함
    • 2019년 11월 기준 SOTA 성능을 보임
  • 기존 방식들 대비 연산 효율이 압도적으로 좋음
views
EfficientDet의 model size, inference latency 비교
  • 모델의 크기(parameter 수), inference latency를 GPU와 CPU에서 측정한 실험 결과
  • 단순히 FLOPS가 적다고 해서 항상 inference latency가 적다는 보장이 없으므로 실제 inference time을 보여줌
    • 정말 유용한 비교 방법인듯
  • 위의 그림을 보면, 제안하는 방법이 정확도도 높고 모델 크기도 작고 inference time도 작아서 빠르게 동작하고 있음을 보여주고 있음
  • 모델 학습에 관한 자세한 training strategy는 논문에서 확인 가능함

결론

  • 본 논문에선 2018년을 기점으로 다양한 detection method들의 성능을 단숨에 서열정리함
  • 성능보다도 inference time의 관점에서 매우 효율적
    • MS COCO와 같은 연구용 데이터셋 뿐만 아니라 실제 데이터셋과 같은 실제(practical) application에서도 충분히 적용가능한 방법
  • Object detection에서도 EfficientNet의 방법이 적용되었으니, 조만간 Semantic/Instance segmentation에도 적용된 논문들이 나올 수 있음