본문 바로가기

AI(ML, DL)/논문 리뷰

EfficientDet: Scalable and Efficient Object Detection

ref : Tan, Mingxing, Ruoming Pang, and Quoc V. Le. "Efficientdet: Scalable and efficient object detection." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020.

들어가기 전에

EfficinetDet은 필요한 연산의 수를 줄이면서도 기존의 모델들과 비슷한 성능을 낼 수 있다는 점으로 최근 object detection의 SOTA로 손꼽히고 있는 모델이다. 연구실 세미나에서 발표했던 자료를 기반으로 EfficientDet에서 제안한 방법에 대해 간단히 요약해보았다.

Object detection의 문제

주어진 입력에 존재하는 객체들을 탐지해내는 Object detection 기술은 해결해야 하는 문제가 있다. 그 문제는 바로 다양한 입력에 존재하는 서로 다른 크기의 동일한 객체들의 특징을 학습해서 구분해낼 수 있어야 한다는 것이다.

 

[그림1] 다른 종류의 손들이 있는 이미지

[그림 1]에는 4개의 손이 존재한다. 하지만 손 모두 크기가 다르며, 모양 또한 다르다. 그렇지만 사람은 이 사진을 보고 이미지에 존재하는 손을 찾아낼 수 있다. Object detection 모델이 이를 모두 식별해내기 위해서는 서로 다른 크기와 모양의 손에 대해서 "손"이라고 할 수 있는 특징(feature)을 학습할 수 있어야 한다.

이를 해결하기 위해서 입력을 여러 해상도로 변형하여 각 해상도에서 얻을 수 있는 객체들의 특징을 학습하는 방법을 사용해왔다. 이러한 방법들을 통해 성능 향상을 얻을 수 있었지만 그만큼 많은 자원을 필요로 하게 되었다.

 

EfficientDet은 크게 다음 2가지를 통해 빠르면서도 높은 성능의 object detection 모델을 제안하였다.

  1. Bi-FPN : 서로 다른 해상도에서 얻어낸 feature들을 적절하게 섞기 위한 네트워크 구조
  2. Compound scaling(EfficientNet) : 모델의 파라미터(# of channels, # of layers, resolution) 조정을 통해 높은 성능의 모델을 만드는 방법

 

[그림2] 타 모델과의 결과 비교

 

[그림 2]에서 EfficientDet이 타 모델에 비해서 적은 FLOPs로 높은 AP(Average Precision)을 얻어낼 수 있음을 확인할 수 있다.

 

EfficientDet

[그림 3] EfficientDet의 구조

 

EfficientDet은 [그림 3]과 같은 구조를 갖고 있다.

  1. EfficientNet backbone : 변형한 각 입력 이미지의 크기로부터 특징(feature)들을 추출해내는 feature 추출 네트워크이다. 여기서 추출된 feature들이 다음 단계에서 활용된다.
  2. Bi-FPN : 앞선 단계에서 추출된 특징을 하나의 특징으로 합치는 과정이다. 여러 개의 Bi-FPN 레이어를 거쳐 최종적으로 학습할 feature들이 만들어진다.
  3. Class/Box prediection network : Bi-FPN을 통해 만들어진 feature를 통해 학습되는 네트워크이다. 이 네트워크에 입력이 주어졌을 때 존재하는 객체들을 검출해낸다.

여러 크기의 입력 이미지로부터 feature를 추출해내고, 이를 바탕으로 학습하는 방법 자체는 다른 Object detection 모델들과 큰 차이는 없다. 하지만 EfficientDet은 이 과정에 필요한 연산을 줄이기 위한 여러 방법들이 적용되어 기존 모델들에 비해 적은 비용으로 비슷한 성능을 낼 수 있었다. Backbone을 이루고 있는 EfficientNet도 이전 논문을 통해 보다 적은 연산으로 높은 Classification을 할 수 있는 모델임이 증명되었다.

Bi-FPN(Feature Pyramid Network)

Bi-FPN은 기존의 feature를 합치는 방법 중 하나인 FPN을 응용한 것이다.

 

[그림 4] Feature Fusion Networks

 

[그림 4]는 다양한 FPN 구조들을 소개하고 있다. 각각은 다음과 같은 장단점을 갖고 있다.

  1. FPN : 단순하지만 feature fusion 시 한 방향으로 이루어지기 때문에 모든 특징들을 골고루 갖지 못하여 성능이 다소 떨어진다.
  2. PANet : FPN에서 bottom-up 방식을 추가한 방식으로 다양한 특징 혼합을 통해서 성능을 향상시킬 수 있지만 그만큼의 추가 연산을 필요로 하기 때문에 시간이 많이 소모된다.
  3. NAS-FPN : feature fusion 시 뉴럴 아키텍쳐를 사용하는 방식으로 성능을 향상시킬 수 있지만 추가 연산을 필요로 한다.

BiFPN은 2와 3의 장점을 혼합한 네트워크 방식이다.

  • 파란색선으로 표현된 부분은 첫 번째로 특징이 입력될 때 feature fusion을 거치지 않는 것이다. 이를 통해 별도의 연산 없이 쉽게 양방향 그래프를 만들 수 있다.
  • 보라색 선으로 표현된 두 번째 특징은 추출된 feature를 동일한 level의 feature에 더한다는 것이다. 이를 통해 feature fusion이 이루어지며 희석되었을 해당 level의 feature를 강화할 수 있다.
  • 마지막으로 'reapeated blocks'로 표현된 것이 세 번째 특징이다. 하나의 BiFPN을 마치 하나의 레이어로 간주하고 여러 번 사용한다. 여러 번의 feature fusion을 거치며 정제된 다양한 feature를 학습할 수 있게 된다.

 

보통 feature fusion이 일어날 때 서로 다른 level의 feature임에도 불구하고 동일한 가중치를 feature에 부여하며 학습이 이루어진다. 하지만 이는 각 level이 갖고 있는 중요도를 반영하지 못한다. 그렇기 때문에 BiFPN에서는 각 level에 대해 서로 다른 가중치를 부여하고 이를 학습시킨다. 보통의 가중치는 Softmax를 사용하는데, 이 Softmax의 경우 그래픽 카드에서 연산 부하를 주는 주요 원인 중 하나로 뽑히고 있다. 따라서 BiFPN에서는 Softmax와 비슷한 성능을 내지만, 더 빠르게 연산할 수 있는 가중치 공식을 제안한다.

 

[그림 5] 가중치 공식과 BiFPN의 각 feature 계산 방법

 

우선, 각 feature들을 활성화 함수인 ReLU에 의해서 0 ~ 1 사이의 값이 보장된다. 이 성질을 이용해 이런 공식을 세울 수 있다. 혹시 모를 divied by zero 문제를 피하기 위해서 매우 작은 수인 입실론 값을 부여한다.

이런 공식들을 통해 각 level의 feature들의 fusion이 이루어지게 된다.

Compound scaling

Compond scaling 자체는 본 논문에서 주로 다루는 방법은 아니다. 모델의 성능을 향상시키기 위해 주로 모델의 width, depth를 각각 조절하거나 입력 이미지의 해상도(resolution)를 scaling하는 방법을 많이 사용하였었다. width는 입력 채널 수를, depth는 적용되는 레이어의 수, 즉 모델이 얼마나 깊은지를 나타낸다. Backbone이 되는 EfficientNet 논문에서는 각 요소들을 개별적으로 변경하는 것이 아닌 3가지 모두를 적절하게 scaling 했을 때 가장 좋은 성능을 낼 수 있음을 실험을 통해 증명하였다. 이를 EfficientDet에도 적용한 것이다.

단, Classification에 비해 훨씬 복잡한 Object detection이기 때문에 논문에서 적용된 방식은 저자들이 생각한 휴리스틱에 의해서 설정된 값이다. 더 좋은 값이 존재할 수 있지만 적용된 방법을 통해서도 실험에서 좋은 결과가 나왔음을 확인할 수 있다.

성능 평가

[그림 6] 성능 평가

 

[그림 6]은 성능 평가가 이루어진 표이다. COCO 데이터 셋에 대해서 성능 평가가 진행되었으며 주요 봐야 할 항목은 AP와 FLOPs의 비율 차이이다.

같은 행에 비교되는 것은 EfficientDet과 AP가 유사한 기존의 모델들이다. 표에서 확인하게 되면 성능을 나타내는 AP는 유사하지만 필요한 총 파라미터 수(Params)와 FLOPs가 EfficientDet에서 훨씬 적게 나타나는 것을 확인할 수 있다. 이를 비율로 표현했을 때 최대 42배까지 FLOPs 차이가 남을 표에서 확인할 수 있다.

정리

* EfficientDet은 one-stage 방식의 object detection 모델이다.
- Bi-FPN의 구조와 가중치 방식을 통해 feature fusion 과정에서 필요한 연산의 수를 줄일 수 있었다.
- EfficientNet 백본과 Compound scaling을 통해 모델의 성능을 높힐 수 있었다.
반응형