EfficientDet 논문 리뷰

김상현·2021년 12월 31일
1

논문 제목: EfficientDet: Scalable and Efficient Object Detection

Introduction

최근 더욱 더 정확한 object detector들이 연구되었지만, 동시에 parameter와 연산량이 늘어났다. 이 같은 모델들은 실제 세상에서 활용하는데 어려움이 존재한다. 이러한 실제 세상의 자원 제약에 의해 모델의 효율성의 중요함이 증가되었다. 따라서 효율적인 detector 구조를 위해 1-stage와 anchor-free detector들 또는 기존의 모델을 compress한 모델들이 개발되었다. 비록 이러한 모델들은 더욱 효율적이지만, detection 성능을 희생해야 했다. 본 논문에서는 detector 구조들의 다양한 구조를 시스템적으로 찾아 이러한 문제들을 다루는 것을 목표로 한다. 1-stage detector를 기반으로 backbone, feature fusion, class/box network의 구조들을 실험했고, 두 가지 중요한 도전 과제를 식별했다.

첫번째 과제는 efficient multi-scale feature fusion 이다. FPN이 소개된 이후, FPN은 multi-scale feature fusion에 널리 이용되었다. 또한 최근에는 PANet과 NAS-FPN들이 cross-scale feature fusion을 위해 개발되었다. 기존의 방법들은 단순히 다른 resolution의 feature를 구분없이 더하는 방법을 사용했지만, 본 논문에서는 fused output feature에서 다른 resolution의 feature들의 기여도가 다른 것을 확인했다. 이러한 문제를 해결하기 위해 간다하지만 매우 효율적인 weighted bi-directional feature pyramid network(BiFPN)을 소개한다.

두번째 과제는 model scaling 이다. 기존의 모델들은 높은 성능을 위해 더욱 큰 backbone network와 더욱 큰 입력 이미지의 size를 주로 고려했지만, 논문의 저자들은 feature network와 box/class prediction network의 scaling 또한 중요하다는 것을 발견했다. EfficientNet의 compound scaling에 영감 받아 네트워크의 모든 구조인 backbone, feature network, box/class prediction network의 resolution/depth/width를 결합시켜 scaling하는 object detector의 compound scaling을 제안한다.

EfficientNet backbone을 BiFPN과 compound scaling과 결합하여 새로운 object detctor인 EfficientDet을 제안했다. 제안된 모델은 기존의 모델들 보다 높은 정확도와 효율성을 보여줬다.


BiFPN

사진 1. Feature network design

1. Problem Formulation

Multi-scale feature fusion은 다른 resolution의 feature들을 합산하는 것을 목표로 한다. 수식적으로, 주어진 list of multi-scale features Pin=(Pl1in,Pl2in,...)\vec{P^{in}} = (\vec{P^{in}_{l_1}},\vec{P^{in}_{l_2}},...), PliinP^{in}_{l_i}는 level lil_i의 feature를 나타낼 때, 목표는 효율적으로 다른 feature들을 합산하고, 새로운 feature인 Pout=f(Pin)\vec{P^{out}} = f(\vec{P^{in}})을 출력하는 transformation ff를 찾는 것이다. 사진 1의(a)는 기존의 top-down FPN을 나타낸다. 이의 수식 표현은 다음과 같다.

P7out=Conv(P7in)P6out=Conv(P6in+Resize(P7out))...P3out=Conv(P3in+Resize(P4out))P^{out}_7 = Conv(P^{in}_7) \\ P^{out}_6 = Conv(P^{in}_6 + Resize(P^{out}_7)) \\ ... \\ P^{out}_3 = Conv(P^{in}_3 + Resize(P^{out}_4))

ResizeResize: resolution matching을 위한 upsampling 또는 downsampling 연산
ConvConv: feature processing을 위한 convolution 연산

2. Cross-Scale Connections

사진 2. EfficientDet architecture

기존의 top-down FPN은 단방향 정보 흐름에 의한 내제된 한계가 있다. 이러한 문제를 해결하기 위해 PANet은 사진 1의(b)와같이 추가적인 bottom-up path를 추가했다. 이러한 cross-scale connection들은 여러 연구에서 다뤄줬다. 최근에는, NAS-FPN에서 neural architecture search를 사용해 더 좋은 cross scale feature network 구조를 발견했지만, 네트워크 탐색을 위해 엄청난 시간이 필요하다는 문제와 발견된 구조가 불규칙적이고 해석하고 수정하기 어렵다는 문제가 존재하다. NAS-FPN 구조는 사진 1(c)에 나와있다.

본 논문에서는 cross-scale connections의 몇 가지 최적화를 제안한다. 첫번째는 하나의 입력 edge만 갖는 node를 제거하는 것이다. 두번째는 만약 같은 level에 있다면 입력에서 출력 node로 추가 edge를 더하는 것이다. 세번째는 각각의 bidirectional path를 하나의 네트워크 layer로 여겨서 높은 수준의 feature fusion을 위해 여러 번 반복해서 사용하는 것이다. 이러한 최적화를 거친 새로운 feature network를 bidirectional feature pyramid network(BiFPN)이라 명명하였고, 이는 사진 1(d)와 사진 2에 나와있다.

3. Weighted Feature Fusion

서로 다른 resolution의 다른 input feature들은 output feature에 균등하지 않게 기여하는 문제가 있다. 이러한 문제를 해결하기 위해 기존의 방법들과 다르게 각각의 입력에 추가적인 가중치를 추가하였고, 네트워크가 각각의 중요도를 학습하도록 하였다.

Unbounded fusion

O=iwiIiO = \sum_{i}w_i \cdot I_iwiw_i는 학습가능한 가중치이다. wiw_i는 scalar(per-feature), vector(per-channel), multi-dimensional tensor(per-pixel)가 될 수 있다. Scalar 가중치 wiw_i를 통해 computational cost를 최소화하면서 비교할만한 성능을 얻을 수 있지만, 유계되지 않기 때문에 학습 안정성을 저하하는 문제가 잠재적으로 존재한다. 이를 해결하기 위해 다음의 normalize 가중치를 이용한다.

Softmax-based fusion

O=iewijewjIiO = \sum_i \frac{e^{w_i}}{\sum_j e^{w_j}} \cdot I_i 이다. 직관적인 아이디어는 각각의 가중치를 softmax를 이용해 중요도를 나타내는 0~1의 범위를 갖는 확률값으로 정규화하는 것이다. 하지만 이러한 방법의 연산은 GPU 장치에서 속도 저하를 일으킨다.

Fast normalized fusion

위의 속도 저하 문제를 해결하기 위해 O=iwiϵ+jwjIiO= \sum_i \frac{w_i}{\epsilon + \sum_j w_j} \cdot I_i으로 wiw_i에 ReLU를 적용하여 0 이상의 값을 갖도록 하고, ϵ=0.0001\epsilon=0.0001으로 수치적 문제를 피하기 위해 설정한다. 이는 softmax-based fusion과 비슷하게 학습되며 성능 또한 유사하지만 속도는 30% 정도 빠르다.



최종적으로 BiFPN은 사진 1(d)의 구조로 수식으로 다음과 같다.
P6td=Conv(w1P6in+w2Resize(P7in)w1+w2+ϵ)P6out=Conv(w1P6in+w2P6td+w3Resize(P5out)w1+w2+w3+ϵ)P^{td}_6 = Conv(\frac{w_1 \cdot P^{in}_6 + w_2 \cdot Resize(P^{in}_7)}{w_1 + w_2 + \epsilon}) \\ P^{out}_6 = Conv(\frac{w'_1 \cdot P^{in}_6 + w'_2 \cdot P^{td}_6 + w'_3 \cdot Resize(P^{out}_5)}{w'_1 + w'_2 + w'_3 + \epsilon})

모든 다른 features도 이와 유사한 방법으로 구성된다. 추가적으로 효율성을 향상시키기 위해, depthwise separable convolution를 사용하고, batch normalization과 activation을 convolution 이후 적용했다.


EfficientDet

1. EfficientDet Architecture

EfficientDet은 1-stage detector의 paradigm을 따르며 전체적인 구조는 사진 2와 같다. Backbone network로 ImageNet으로 사전학습된 EfficientNet을 사용한다. 제안된 BiFPN을 feature network로 사용하여 fused feature들을 만들어 class/box network로 제공한다. RetinaNet과 같이 class/box network는 각각 모든 feature level들에서 가중치를 공유한다.

2. Compound Scaling

본 논문에서는 정확도와 효율성 둘 다 최적화를 목표로 여러 자원 제약을 만족하는 모델 집합을 개발하려한다. 최근의 연구들인 NAS-FPN과 EfficientNet에 영감을 받아 compound coefficient ϕ\phi를 이용해서 backbone,BiFPN,class/box network, resolution 모두의 차원을 결합하여 scale up 하는 object detction을 위한 새로운 compound scaling 방법을 제안한다. Object detction 모델은 scaling dimension이 복잡하므로 grid search 방법을 적용하기에는 어려움이 존재한다. 따라서 heuristic-based scaling 접근법을 사용한다.

cf)
DD: depth, number of layers
WW: width, number of channels
RR: resolution

  • Backbone: EfficientNet-B0~B6의 width/depth scaling coefficient 재사용
  • BiFPN: Wbifpn=64(1.35ϕ)W_{bifpn} = 64 \cdot (1.35^{\phi}), Dbifpn=3+ϕD_{bifpn} = 3 + \phi
  • Box/class prediction network: Wpred=WBiFPNW_{pred} = W_{BiFPN}, Dbox=Dclass=3+ϕ/3D_{box} = D_{class} = 3 + \lfloor \phi /3\rfloor
  • Input image resolution: Rinput=512+ϕ128R_{input} = 512 + \phi \cdot 128

위의 수식에 따라 EfficientDet-D0(ϕ=0\phi=0)부터 D7(ϕ=7\phi=7)까지 개발 되었다. 본 논문의 compound scaling은 최적이 아닌 heuristic 기반이지만, 기존의 다른 방법들보다 상당히 효율성을 증가시켰다. EfficientDet의 scaling config는 다음 표와 같다.

표 1. EfficientDet Scaling configs


Experiments

표 2. Results

표 2를 통해 기존의 모델들에 비해 EfficientDet이 높은 성능을 갖으면서 효율적인 모델임을 확인할 수 있다.

사진 3. Device

사진 3을 통해 GPU와 CPU 둘 다에서 기존의 모델들 보다 성능이 좋으면서 효율적인 것을 확인할 수 있다. 이를 통해 현실 세계의 장치들에서 생기는 resource constraint을 기존의 모델들에 비해 EfficientDet으로 잘 대비할 수 있다.

사진 4. Scaling

사진 4를 통해 EfficientNet과 마찬가지로 EfficientDet 또한 scaling시 함께 scaling하는 compound scaling이 성능 향상에 가장 도움이 되는 것을 확인할 수 있다.


Conclusion

본 논문에서는 object detection을 효율적으로 하기 위한 네트워크 구조를 시스템적으로 연구하였고, weighted bidirectional feature network와 compound scaling을 제안했다. 이를 통해 설계된 EfficientDet을 통해 SOTA의 성능을 달성했다.


References

EfficientDet 논문
EfficientNet 논문

profile
Mucha Suerte

0개의 댓글