EfficientDet: Scalable and Efficient Object Detection

Inc Lomin's avatar
Apr 18, 2021
EfficientDet: Scalable and Efficient Object Detection

Introduction

Object detection 네트워크들은 점점 발전을 거듭해가고 있지만, 동시에 매우 무거워지고 있습니다. 예를 들어 AmoebaNet 기반의 NAS-FPN은 167M개나 되는 parameter와 3045B FLOPS를 가지고 있습니다. 어떤 알고리즘들은 더 가볍고 효율적인 구조를 제안하지만, 성능과의 타협을 피할 수 없었습니다. 그렇다면 다양한 resource constraints에 대응하여 높은 성능과 효율성을 모두 달성할수는 없는 것일까요? 이 논문에서는 detector 구조에 대한 탐색으로 이 문제를 해결하고자 합니다.
주요 contribution은 아래와 같습니다.
  • BiFPN이라 불리는, 쉽고 빠른 multi-scale feature fusion을 위한 weighted bidirectional feature network를 제안합니다. 이것은 FPN의 neck (multi-scale feature fusion network) 구조를 개선한 것입니다.
  • 모델의 backbone, feature network, box/class network, 그리고 input resolution을 동시에 증가시키는 compound scaling 방법을 제안합니다. 이는 EfficientNet에 사용된 방법과 유사합니다.
  • BiFPN과 compound scaling 덕분에 다양한 resource contraints에 대응하는 매우 효율적이고 높은 성능의 detector를 만들 수 있었습니다.
notion image
 

Proposed Method

BiFPN

  1. Problem Formulation
    1. Multi-scale feature fusion은 다양한 resolution을 가지는 feature들을 모으는 과정을 의미합니다. 서로 다른 level의 feature들을 P라고 할 때, 이 문제의 목표는 여러 feature들을 모아서 다dㅇㅡㄹㅇ시 새로운 feature들의 리스트를 반환하는 어떤 함수를 찾는 것입니다.
      예를 들어, conventional FPN은 multi-scale feature를 top-down 방식으로 모읍니다.
      notion image
       
  1. Cross-Scale Connections
    1. Conventional FPN의 문제는 information flow가 단방향으로만 이루어진다는 것입니다. (아래 그림의 (a)) PANet은 bottom-up flow를 추가하였고(아래 (b)), NAS-FPN은 neural architecture search 방법으로 더 나은 cross-scale topology를 찾으려 했습니다(아래 (c)).
      하지만 neural architecture search에는 너무 많은 시간이 걸리고, PANet은 성능이 좋지만 너무 무겁습니다. 이 논문에서는 PANet의 구조를 더 효율적으로 만들고 개선하였습니다. 먼저 아래 그림의 (e)와 같이 PANet에서 input edge가 하나밖에 없는 노드를 제거했습니다. 두 번재는 아래 그림의 (f)와 같이 같은 레벨의 node들간의 edge를 추가했습니다. 이 edge들은 추가 cost가 크지 않지만 더 많은 feature를 fuse할 수 있도록 합니다. 마지막으로 이 구조를 여러번 반복함으로써 더 높은 수준의 feature fusion이 가능하도록 하였습니다.
      notion image
       
  1. Weighted Feature Fusion
    1. 여러 feature를 합칠 때, 가장 일반적인 방법은 합치기 전에 resize를 해서 크기를 맞춘 뒤 더하는 것입니다. 하지만 서로 다른 해상도의 feature들은 output feature에 서로 다르게 기여할 수 있습니다. 여기서는 feature fusion을 위한 각 feature level에 추가적인 weight를 도입하여, 네트워크가 이 값을 함께 학습하도록 하였습니다.
      Unbounded fusion
      직관적인 방법은 아래와 같이 scalar(per-feature), vector(per-channel), tensor(per-pixel) weight를 학습하는 것입니다.
      이 방식의 문제는 weight 값이 unbounded 이므로 학습이 불안정해질 수 있다는 것입니다.
      Softmax-based fusion
      Weight의 범위를 0~1로 제한하기 위하여 softmax 함수를 사용할 수 있습니다. 문제점은, 실제로 이것을 구현하면 GPU에서 매우 느리다는 것입니다. 속도를 개선하기 위하여 더 빠른 방식이 필요합니다.
      Fast normalized fusion
      GPU에서 느린 softamx 대신 ReLU를 통과하여 0 이상으로 필터링된 weight들에 대하여 아래와 같은 연산을 적용합니다. 실험에서 softmax보다 30% 빠르지만 매우 비슷한 학습형태를 보였습니다.
최종적인 BiFPN은 위에서 설명한 bidirectional cross-scale connection과 fast normalized fusion을 모두 사용하였습니다. 예를 들어 level 6는 아래와 같습니다.
notion image
또한, 이를 더 효율적으로 만들기 위하여 feature fusion network에는 depthwise separable convolution을 적용하고 각 convolution에는 batch normalization을 추가하였습니다.
 

EfficientDet

  1. EfficientDet Architecture
    1. EfficientDet는 BiFPN을 사용하며 one-stage detector 구조를 따르고 있습니다. Backbone으로는 ImageNet에 학습된 EfficientNet을 사용합니다. 전체 구조는 아래와 같습니다.
      notion image
       
    2. Compound Scaling
      1. 네트워크의 크기를 늘려(scaling) 성능을 높이는 방법에는 더 큰 backbone network를 사용하거나, FPN layer를 더 쌓거나, 입력 크기(resolution)을 키우는 방식들이 사용되어 왔습니다. 이 논문에서는 EfficientNet에서 한 방식과 마찬가지로 어느 하나만 늘리는 대신 모든 것을 규칙에 따라 한꺼번에 늘리는 식으로 여러 가지 크기의 모델을 만들었습니다. Backbone network, BiFPN network의 width와 depth, box/class prediction network의 width와 depth, input image resolution의 스케일링 방법은 아래와 같습니다. 가장 큰 모델인 D7은 GPU 메모리 문제로 input size만 늘리고 다른 값은 D6와 동일하게 고정했습니다.
        notion image
        notion image
        notion image
        notion image
         

Experiment

실험은 COCO 2017 데이터셋에서 이루어졌습니다. Batch size는 128이며 32개의 TPUv3를 사용했습니다. D0~D4는 RetinaNet과 동일한 preprocessing을 사용하였고 D4~D7에는 AmoebaNet-based NAS-FPN과 비교를 위해 동일하게 auto-augmentation을 사용했습니다. 실제 환경에서의 efficiency를 보기 위해 Titan-V GPU, Single-thread Xeon CPU에서의 latency도 측정했습니다.
notion image
notion image
 

Disentangling Backbone and BiFPN

EfficientNet의 효과와 BiFPN의 효과를 분리해서 살펴보기 위한 실험입니다. 아래 결과에서 보듯 ResNet-50을 EfficientNet-B3로 교체하거나 FPN을 BiFPN으로 교체하는 것 모두 큰 성능 향상을 가져다줍니다. 따라서 둘 다 중요함을 알 수 있습니다.
notion image

BiFPN Cross-Scale connections

앞에서 설명한 feature fusion network들의 비교 실험입니다. 공정한 비교를 위해 FPN, PANet 모두 BiFPN과 마찬가지로 다섯번씩 반복하였습니다. PANet 구조의 성능이 높긴 하지만, 파라미터와 FLOPS가 높습니다.
notion image

Softmax vs Fast Normalized Fusion

Softmax의 느린 단점을 보완하기 위한 Fast Normalized Fusion의 효과를 비교한 실험입니다. 아래 그림에서 보는 바와 같이 fast normalized fusion이 학습하는 weight는 softmax에서와 비슷한 양상을 띄지만 약 30%나 속도 측면에서 이득이 있었습니다.
notion image
notion image
 

Compound Scaling

Backbone, BiFPN, box/class prediction network의 depth, width, resolution을 늘리는 scaling을 각각에 대해서만 수행한 것에 비해 compound scaling이 정말 효과적인지 비교한 실험입니다. 아래 그림에서 보는 바와 같이 모두 성능을 일부 늘려주지만, compound scaling 방법이 가장 나은 trade-off를 달성하였습니다.
notion image
 

Conclusions

이 논문에서는 더 효율적이고 scalable한 object detector를 만들기 위해 다양한 네트워크 구조를 탐색하고, weighted bidirectional feature network와 compound scaling 방식을 제안했습니다. 이것들로부터 만들어진 EfficientDet 구조는 기존 방법에 비해 훨씬 효율적이고 다양한 resource constraints에 대응하여 나은 trade-off를 보여줍니다.
 
 
 
Share article