728x90
반응형

키워드

1. EfficientNet을 기반으로 한 스케일러블 객체 검출 모델. 크기와 계산량을 조절하여 다양한 요구에 맞출 수 있음.

2. "EfficientDet: Scalable and Efficient Object Detection"

3. EfficientDet, EfficientNet, BiFPN, Compound Scaling, 

Efficient Detection (EfficientDet)

  Detection 모델의 추세는 효율적인 아키텍처 구조인 1 stage 방식을 많이 채용한다. 다만 이 구조는 나은 효율성을 달성하는 경향이 있지만 일반적으로 정확성이 저하되는 단점이 있다. 이는 추후 모바일, 로봇 공학, 자율 주행 자동차, 데이터 센터에 이르기까지 다양한 실제 응용 분야에서 활용성을 저하시킬 수 있다. 이에 효율과 정확성을 모두 향상시키는 방법이 필요하다.

  EfficientDet은 이전 classification을 위한 EfficientNet을 backbone으로 사용하며, BiFPN과 compound scaling을 통해 이러한 문제를 해결하였다. BiFPN은 다중 scale의 feature를 효율적으로 합하는 방법으로, 단순 합을 사용하는 다른 모델과 달리 파라미터를 추가한 가중합을 사용한 방식이다. 또한 top-down, bottom-up 방식을 혼합한 Bi-directional Feature Pyramid Network다.

  또한 다른 모델들은 모델의 확장을 위해 단순히 더 큰 backbone을 활용했다면, EfficientDet은 backbone 뿐 아닌, detection network의 확장도 중요하다 판단하였다. 이에 따라 backbone, feature, box/class 네트워크에 대한 해상도/깊이/너비를 한번에 확장하는 단일 compound 계수를 도입한 compound scaling을 적용하였다.

BiFPN

EfficientDet

 

  이전의 detector들은 다양한 feature를 합하는 과정에서 입력 별 구분 없이 단순 합(a)을 이용한다. 그러나 이러한 방식은 feature의 해상도가 다르기 때문에 합쳐진 출력 feature에 불균형을 유발하는 것으로 관찰되었다. 이를 해결하기 위해 cross-scale 연결 및 weighted feature fusion을 활용(d)하였다.

Cross-scale connection

  모델 효율성을 향상시키기 위해 몇 가지 최적화 방법을 적용하였다. 첫째, 단일 입력을 가지는 노드를 전부 제거하였다. 이렇게 connection이 없는 노드는 다양한 feature 합을 목표로 하는 feature 네트워크에 대한 기여도가 낮다고 판단할 수 있다. 둘째, 많은 cost를 추가하지 않고 더 많은 feature을 합하기 위해 원래 입력에서 출력 노드가 동일한 크기인 경우 connection(보라색)을 추가하였다. 셋째, PANet과 달리 단일 top-down, bottom-up 만 사용하지 않고 bi-directional connection을 하나의 feature 네트워크 레이어(repeated block)로 처리하여 해당 레이어를 여러 번 반복하여 더 높은 수준의 feature가 융합되도록 하였다.

EfficientDet

  이에 따른 다양한 connection 구조의 정확도와 모델 복잡성를 측정한 표다. BiFPN은 반복된 FPN+PANet과 비슷한 정확도를 달성하지만 훨씬 적은 파라미터와 FLOP를 사용하였다. 또한 바로 아래에 설명할 weighted feature fusion을 통해 BiFPN은 더 적은 수의 파라미터와 FLOP로 최고의 정확도를 달성했다.

Weighted feature fusion

  서로 다른 해상도의 기능을 합할 때 일반적인 방법은 먼저 동일한 해상도로 크기를 조정한 다음 합산하는 것이다. 이는 모든 입력 feature를 구별 없이 동일하게 처리한다. 하지만 서로 다른 해상도의 서로 다른 feature는 출력에 불균형적으로 기여한다는 것이 관찰되었다. 이에 각 입력에 가중치를 추가하고 네트워크가 각 입력 feature의 중요성을 학습하도록 설계하였다. 이를 위한 방법은 세 가지가 있다.

  • 제한 없는 단순 합: 단순 학습 가능한 가중치를 활용하는 방법이다. 최소한의 계산 비용으로 다른 접근 방식과 비슷한 정확도를 달성할 수 있다. 다만 가중치에는 제한이 없으므로 잠재적으로 훈련 불안정성을 초래하여, regularization을 활용해야 한다.
  • Softmax 기반 합: 가중치에 softmax를 적용하여 모든 가중치가 각 입력의 중요성을 0에서 1 사이의 값으로 regularization 한다. 이는 softmax 연산으로 인해 속도가 크게 느려지는 결과를 초래한다.
  • Fast normalized 합: 가중치에 ReLU를 통과시키면 0 이상이 보장된다. 이를 활용하여 normalize를 진행하면 동일하게 0과 1 사이에 속하게되며, softmax 연산이 없기 때문에 훨씬 효율적으로 연산을 수행한다.

EfficientDet

  모델 크기가 서로 다른 세 가지 detector의 softmax 및 fast normalized를 비교한 결과이다. Fast normalized은 softmax 기반과 유사한 정확도를 달성하지만 1.26x - 1.31x 더 빠르게 실행되는 것을 확인 할 수 있다. 또한 BiFPN 레이어에서 무작위로 선택된 3개의 feature fusion 노드의 가중치를 확인해보면, normalized된 가중치는 훈련 중에 빠르게 변하며 이를 통해 서로 다른 feature가 출력에 불균형하게 기여한다는 것을 확인할 수 있다. 또한 fast normalized 방식은 세 노드 모두에 대해 softmax 방식과 매우 유사한 경향을 보인다.

수식화

EfficientDet
(좌) 단순 합 FPN (우) BiFPN

  Cross-scale feature와 weighted feature fusion을 합친 방식을 그 중 레벨 6 feature 레이어를 수식화 하면 위와 같다. 비교를 위해 가장 기본적인 단순 합의 예시도 함께 소개한다. Ptd는 top-down 경로 출력의 수식이며, Pout은 bottom-up 경로 출력의 수식이다.

728x90

Architecture

EfficientDet

  ImageNet에서 pre-train된 EfficientNet을 backbone 네트워크로 사용하였다. 또한 BiFPN을 기반으로 EfficientDet을 구현하였으며 BiFPN은 레벨 3~7 feature를 사용하는 feature 네트워크 역할을 한다. 마지막으로 feature 네트워크의 출력은 클래스 및 박스 네트워크에 공급되어 각각 객체 클래스 및 bounding box 예측을 수행한다.

Compound scaling

  EfficientDet의 목표는 정확성과 효율성을 모두 최적화하는 것이다. 이를 위해 간단한 compound 계수 φ를 사용하는 compound scaling 방법을 사용하였다. φ는 backbone, BiFPN, class/box 네트워크의 모든 해상도와 차원을 한번에 조정한다. 이러한 방법을 활용하지 않는 모든 차원에 대한 그리드 검색은 엄청난 비용을 요구한다. 다만 heuristic한 접근 방식을 사용하여 효율적으로 계수를 찾기 때문에, 훨씬 더 좋은 계수가 존재 할 수 있다.

EfficientDet

  기본적으로 backbone 네트워크 EfficientNet의 동일한 너비/깊이 스케일링 계수를 재사용한다. BiFPN feature네트워크는 깊이를 선형적으로 증가시키며, 소수점은 정수로 반올림한다. 폭/너비의 경우엔 exponential하게 증가하는 공식을 사용한다. Class/Box 네트워크의 경우 크기는 항상 BiFPN과 동일하며, 깊이는 똑같이 선형적으로 증가시키나 그 비율이 다르다. 마지막으로 입력 이미지 resolution은 BiFPN의 구현을 위해 2로 나눠질 필요가 있으며, 이를 기반으로 선형적으로 증가시킨다.

EfficientDet

  이를 통한 EfficientDet-D0 ~ D7의 네트워크 구조다. 이러한 간단한 scaling 방법은 다른 단일 차원을 scaling 하는 방법보다 효율성을 크게 향상시킨다. 차트는 단일 차원의 해상도/깊이/너비를 확장하는 다른 대체 방법과 비교한 결과이다. 이를 통해 복합 scaling 방법이 다른 방법보다 더 나은 효율성을 달성한다는 것을 확인할 수 있다.

결과

EfficientDet

  다른 detector와 비교하기 전 BiFPN과 backbone이 정확성과 효율성 향상에 얼마나 기여하는지 확인한 결과이다. RetinaNet을 활용하여 backbone과 BiFPN의 영향을 비교하였고, EfficientNet과 BiFPN이 모두 최종 모델에 중요하다는 것을 알 수 있다.

EfficientDet

  EfficientDet과 다른 detector와 비교한 결과이다. 일반적으로 EfficientDet은 여러 조건에서 유사한 정확도에 4 ~ 9배 더 작고 13 ~ 42배 더 적은 FLOP를 사용하여 더 나은 효율성을 달성했다. Latency를 기준으로 비교하면, EfficientDet 모델은 GPU에서 4.1배, CPU에서 10.8배 더 빠르며, 이는 실제 하드웨어에서도 효율적임을 시사한다.

Reference

논문 링크 : https://arxiv.org/abs/1911.09070

728x90
반응형

'딥러닝 > Object Detection' 카테고리의 다른 글

[Object Detection] DETR  (0) 2024.10.10
[Object Detection] YOLOv4  (2) 2024.10.05
[Object Detection] YOLOv3  (1) 2024.09.28
[Object Detection] RetinaNet  (0) 2024.09.26
[Object Detection] YOLOv2 (YOLO9000)  (3) 2024.09.21

+ Recent posts