본 논문에서는 object detection 모델의 최적화를 위해 몇 가지 key optimization을 제안한다. 첫 번째로 bi-directional feature pyramid network(BiFPN)을 제안한다. 두 번째로 균일하게 resolution, depth, width를 모든 backbone, feature network, box/class prediction network에 대해 동시에 scaling하는 compound scaling method들 제안한다. 두 가지 optimization과 더 나은 backbone을 통해 EfficientDet라 불리는 새로운 object detector를 개발했다.
효율적인 Object detector를 만들려는 많은 시도들이 있었지만 그대신 accuracy를 희생해야만 했다. 그렇다면 높은 accuracy와 efficient를 가진 scalable detection architecture를 만들 수 있을까?라고 질문할 수 있다. 본 논문은 one stage 기반의 backbone, feature fusion, class/box network에서 두 가지 도전을 하였다.
1) Challenge 1: Efficient multi-scale feature fusion
Feature Pyramid Network(FPN)는 2017년 공개된 이후 대부분의 Object Detection 연구에서 사용되고 있다. One-Stage Detector의 대표격인 모델인 RetinaNet, M2Det, AutoML의 Neural Architecture Search를 FPN 구조에 적용한 NAS-FPN 등 FPN을 적용하고, 성능을 개선하고자 하는 연구들이 많이 진행이 되어왔다. 하지만 선행 연구들은 모두 서로 다른 input feature들을 합칠 때 구분없이 단순히 더하는 방식을 사용하고 있다. 서로 다른 input feature들은 resolution이 다르기 때문에 output feature에 기여하는 정도를 다르게 가져가야 하며 간단하지만 효과적인 weighted bi-directional FPN(BiFPN) 구조를 제안한다. 이 구조를 사용하면 서로 다른 input feature들의 중요성을 학습을 통해 배울 수 있으며, 이를 통해 성능을 많이 향상시킬 수 있었다.
2) Challenge 2: Model scaling
EfficientNet에서 제안한 Compound Scaling 기법은 모델의 크기와 연산량를 결정하는 요소들(input resolution, depth, width)을 동시에 고려하여 증가시키는 방법을 의미하며, 이 방법을 통해 높은 성능을 달성할 수 있었다. 이러한 아이디어를 Object Detection에도 적용을 할 수 있으며, backbone, feature network, box/class prediction network 등 모든 곳에 적용을 하였다.
1) Cross-Scale Connections
위 그림에서 (a) 방식이 전통적인 FPN 구조를 의미하고, (b) PANet은 추가로 bottom-up pathway를 FPN에 추가하는 방법을 제안하였다. (c)는 AutoML의 Neural Architecture Search를 FPN 구조에 적용하였고, 불규칙적인 FPN 구조를 보이는 것이 특징이다. 또한 (a)와 (b) 구조는 같은 scale에서만 connection이 존재하지만, (c) 구조부터는 scale이 다른 경우에도 connection이 존재하는 Cross-Scale Connection 을 적용하고 있다. (e) Simplified PANet 방식은 PANet에서 input edge가 1개인 node들은 기여도가 적을 것이라 생각하며 제거를 하여 얻은 Network 구조를 의미하고, 여기에 (f) 그림의 보라색 선처럼 같은 scale에서 edge를 추가하여 더 많은 feature들이 fusion되도록 구성을 한 방식이 BiFPN이다. 또한 PANet은 top-down과 bottom-up path를 하나만 사용한 반면, 본 논문에서는 이러한 구조를 여러 번 반복하여 사용을 하였다. 이를 통해 더 high-level한 feature fusion을 할 수 있음을 주장하고 있다.
2) Weighted Feature Fusion
FPN에서 서로 다른 resolution의 input feature들을 합칠 때, 일반적으로는 같은 해상도가 되도록 resize를 시킨 뒤 합치는 방식을 사용한다. 하지만 모든 input feature들을 동등하게 처리를 하고 있는 점을 문제점으로 인식하고, 본 논문에서는 이 점을 개선하기 위해 각 input feature에 가중치를 주고, 학습을 통해 가중치를 배울 수 있는 방식을 제안하였다. 총 3가지 방식을 제안하고 있으며 각 방식을 하나의 그림으로 정리하면 다음과 같다.
우선 weight는 scalar(per-feature)로 줄 수 있고, vector(per-channel)로 줄 수 있고 multi-dimensional tensor(per-pixel)로 줄 수 있는데, 본 논문에서는 scalar를 사용하는 것이 정확도와 연산량 측면에서 효율적임을 실험을 통해 밝혔고, scalar weight를 사용하였다.
Unbounded fusion은 말 그대로 unbounded 되어있기 때문에 학습에 불안정성을 유발할 수 있다. 그래서 weight normalization을 사용하였다고 한다.
SoftMax-based fusion은 SoftMax를 사용한 것이지만, 이는 GPU 하드웨어에서 slowdown을 유발함을 실험을 통해 보여주고 있다. 그래서 본 논문은 Fast normalized fusion 방식을 제안하였다. 우선 weight들은 ReLU를 거치기 때문에 non-zero임이 보장이 되고, 분모가 0이 되는 것을 막기 위해 0.0001 크기의 입실론을 넣어주었다. Weight 값이 0~1사이로 normalize가 되는 것은 SoftMax와 유사하며 ablation study를 통해 SoftMax-based fusion 방식보다 좋은 성능을 보임을 보여주고 있다.
위의 표는 SoftMax fusion과 Fast Fusion을 비교한 결과이며, Fast Fusion을 사용하면 약간의 mAP 하락은 있지만 약 30%의 속도 향상을 달성할 수 있다. 또한 위 그림을 보면, input 1과 input 2의 weight를 training step에 따라 plot한 결과인데, 학습을 거치면서 weight가 빠르게 변하는 것을 보여주고 있고, 이는 각 feature들이 동등하지 않게 output feature에 기여를 하고 있음을 보여주고 있으며, Fast fusion을 사용하여도 SoftMax fusion과 양상이 비슷함을 보여주고 있다.
위에서 설명한 BiFPN을 기반으로 EfficientDet 이라는 One-Stage Detector 구조를 제안하였다.
1) EfficientDet Architecture
EfficientDet의 backbone으로는 ImageNet-pretrained EfficientNet을 사용하였다. BiFPN을 Feature Network로 사용하였고, level 3-7 feature에 적용을 하였다. 또한 top-down, bottom-up bidirectional feature fusion을 반복적으로 사용하였다.
2) Compound Scaling
Backbone network에는 EfficientNet B0 부터 B7까지 사용을 하였으며 마찬가지로 ImageNet-pretrained network를 가져와서 사용을 하였다. 실험에 사용한 Compound Scaling configuration은 아래 그림에서 확인할 수 있다.
기존의 Compound Scaling처럼 input의 resolution이 증가함에 따라 backbone network의 크기를 늘려주었고, BiFPN과 Box/class network도 동시에 키워주는 것을 확인할 수 있다. 각 network마다 크기를 어떻게 키워줬는지는 위의 그림의 (1) ~ (3)에서 확인할 수 있다.
COCO 데이터셋에서 가장 높은 mAP를 달성하여, 2019년 11월 기준 state-of-the-art(SOTA) 성능을 보이고 있으며, 기존 방식들 대비 연산 효율이 압도적으로 좋음을 확인할 수 있다.
모델의 크기, 즉 parameter 수와, Inference Latency를 GPU와 CPU에서 측정한 실험 결과도 이 논문의 위력을 잘 보여주고 있다. 단순히 FLOPS가 적다고 해서 항상 Inference Latency가 적다는 보장이 없기 때문에 실제 Inference Latency를 보여주고 있다. 그림을 보면 정확도도 높고, 모델 크기도 작고, Latency도 낮아서 빠르게 동작할 수 있음을 보여주고 있다.
본 논문에서는 네트워크 아키텍처에 대해 체계적으로 연구하였다. Efficient object detector를 개발하기 위한 design 선택을 조정하고, accuracy와 efficiency를 향상 시키기 위해 weighted bidirectional feature network 및 customized compound scaling method를 제안했다. 이러한 최적화를 기반으로, EfficientDet이라는 새로운 object detector을 개발하였다. 실험 결과 wide spectrum of resource constraints에서 앞선 모델보다 더 나은 accuracy와 efficient를 달성하였다. 특히, scaling된 EfficientDet는 이전의 object detection 및 semantic segmentation 모델보다 훨씬 적은 parameter와 FLOP로 state-of-the-art(SOTA)의 accuracy를 달성했다.
멋지네요 ^^