EfficientDet: Scalable and Efficient Object Detection

Mingxing Tan, Ruoming Pang, Quoc V. Le

1.

EfficientDet 은 “EfficientNet : Improbing Accuracy and Efficiency through AutoML and Model Scaling” 의 저자들이 속한 Google Brain 팀에서 쓴 논문이다.

여기서 BiFPN(bi-directional feature pyramid network)을 제안하였다. 이는 기존 FPN에서 레이어마다 가중치를 주어 좀 더 각각의 층에 대한 해상도 정보가 잘 들어갈 수 있도록 하는 트릭이다. 본 논문이 가지는 차별점은 다음과 같다. 

  • Efficient multi-scale feature fusion
    • 본 논문에서는 기존 FPN을 사용하는 선행 연구들이 모두 서로 다른 input feature 들을 합칠 때 구분없이 단순히 더하는 방식을 사용하고 있음을 지적하였다. ->내가 이번 PD challenge에서 사용한 방식 하지만 나는 서로 같은 해상도일 때만 더해줌
    • 서로 다른 input feature 들은 해상도가 다르기 때문에 output feature 에 기여하는 정도를 다르게 가져가야함을 주장하였다. 단순히 더하기만 한다면 같은 weight 로 기여하기 때문이다.->해상도가 다른 이미지 끼리도 서로 더해주는 과정을 추가했음
    • 그래서 간단하지만 효과적인 weighted bi-directional FPN(BiFPN) 구조를 제안한다.
  • Model scaling
    • EfficientNet 에서 제안한 Compound Scaling 기법은 모델의 크기와 연산량을 결정하는 요소들인 width, depth, resolution 을 동시에 고려하여 모델의 사이즈를 증가시키는 방법을 의미한다. 이러한 아이디어를 EfficientDet의 backbone, feature network, box/class prediction network 등 모든 곳에 적용하였다. 

FPN 을 이용한 방법들을 모아둔 그림은 위와 같다.

(a) 전통적인 FPN 구조 (같은 scale 에만 connection 이 존재)

(b) PANet 은 추가로 bottom-up pathway 를 FPN에 추가한 방법 (같은 scale 에만 connection 이 존재)

(c) AutoML의 Neural Architecture Search 를 FPN에 적용시킨 방법 (scale 이 다른 경우에도 connection 이 존재하는 Cross-Scalse Connection 적용)

(d) 와 (e) 는 본 논문에서 추가로 제안하고 실험한 방식

(f) 본 논문에서 제안하는 BiFPN 구조 

2.Weighted Feature Fusion

기존 FPN 에서는 서로 다른 resolution 의 input feature 들을 합칠 때, 같은 해상도가 되도록 resize 를 시킨 뒤 합치는 방식을 사용한다. 본 논문에서는 이러한 점을 개선하기 위해 input feature 에 가중치를 주고, 학습을 통해 가중치를 배울 수 있는 방식을 제안하였다. 

weight 아래와 같이 세 가지 방식으로 줄 수 있다.

  • scalar ( = per-feature)
  • vector ( = per-channel)
  • multi-dimensional tensor ( = per-pixel)

본 논문에서는 scalar 를 사용하는 것이 정확도와 연산량 측면에서 효율적임을 실험을 통해서 밝혔고, scalar weight 를 사용하였다고 한다. input feature 에 가중치를 주는 Weighted Feature Fusion 방법은 아래와 같이 세가지로 나뉜다. 

  • Unbounded Feature Fusion

이는 unbound 되어있기 때문에 학습에 불안정성을 유발할 수 있어서 weight normalization 을 사용하였다고 한다. ( However, since the scalar weight is unbounded, it could potentially cause training instability )

  • SoftMax-based Feature Fusion

Softmax 를 사용한 것인데 이는 GPU 하드웨어에서 slowdown 을 유발한다고 한다. 

  • Fast normalized Feature Fusion

weight 들은 ReLU를 거치기 때문에 non-zero 임이 보장되고, 분모가 0이 되는 것을 막기 위해 0.0001 크기의 입실론을 넣어준다. weight 값이 0~1 사이로 nomalize 가 되는 것인 Softmax 와 유사하며 ablation study 를 통해 softmax-based fusion 방식보다 좋은 성능임을 보여주고 있다고 한다. 

위 BiFPN 을 기반으로 EfficientDet 이라는 One-stage Detector 구조를 제안하였다. 

기존 Compound Scaling 처럼 input 의 resolution 과 backbone network 의 크기를 키워주었으며, BiFPN 과 Box/class network 도 동시에 키워 다음과 같이 실험결과를 내뱉었다. 

출처: 

https://eehoeskrap.tistory.com/404 

https://arxiv.org/abs/1911.09070

Author: rcvlab

RCV연구실 홈페이지 관리자 입니다.

3 thoughts on “EfficientDet: Scalable and Efficient Object Detection

  1. 전부터 볼려고 하고 못보던 논문인데, 요약해주셔서 감사합니다. BiFPN(bi-directional feature pyramid network)이 중요한 내용 같네요. ‘레이어마다 가중치를 주어 좀 더 각각의 층에 대한 해상도 정보가 잘 들어갈 수 있도록 하는 트릭’이라고 말씀하셨는데, 이게 Fig 2.의 BiFPN 구조와 연결되어 이해가 되지를 않네요. BiFPN를 중심으로 설명 부탁드립니다

    1. 기존 FPN구조에서는 두 방향으로부터 정보를 얻습니다.첫째는 top->bottom으로 내려오는 방향에서 하나를 얻고 그리고 둘째 skip connection 즉 동일한 스케일의 feature(backbone network을 통해 형성된 )에서 또 하나를 얻는 구조입니다.

      하지만 이렇게만 한다면 동일 스케일에서의 skip connection만 이루어지기 때문에 비교적 여러 해상도 정보가 들어가지 않습니다.따라서 bi FPN에서는 그림에서 보이다 싶이 다른 레벨이여도 skip connection이 이루어지는 것을 볼 수 있습니다.하지만 여기서 다른 레벨이라는 것은 해상도가 다른 feature들 이기때문에 더할 때 그냥 동등하게 더해선 안될것입니다.따라서 가중치를 주어 어떻게 더해야 할지 학습하는 것이고 이것이 묻고 계신 ‘레이어마다 가중치를 주어 좀 더 각각의 층에 대한 해상도 정보가 잘 들어갈 수 있도록 하는 트릭’에 답이 될 수 있을것입니다.

  2. BiFPN 을 설계할 때 작은 scale의 노드와 합쳐주고 해당 입력 노드를 다시 합친 다음 작은 scale의 노드와 합치게 설계한 이유가 따로 나와 있나요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다