CV 분야에서 모델의 효율성이 점점 더 중요해지고 있다. EfficientDet은 모델의 효율성을 상승시키기 위한 몇 가지 최적화 방법을 소개한다.
Preview
시간이 흐르면서 detection 모델들의 성능이 계속 향상되었지만, 대부분 많은 파라미터를 가지고, 복잡한 구조로 다양한 Device에 적용이 어려웠다. 자율주행 차량 등 제약사항이 많은 곳에 사용되는 효율적인 모델들에 대한 필요성이 대두되었지만 그 요구사항들을 충족시키기 위해서는 해결해야할 근본적인 문제들이 있었다.
높은 정확성과 더 나은 효율을 동시에 달성하는 것이 가능한가?
EfficientDet은 이 문제를 해결하기 위해 성능은 유지하면서 효율성을 증대시킬 수 있는 해결책을 두 가지 제시했다.
1. Efficient multi-scale feature fusion
input image의 여러 scale feature들을 fusion하여 성능을 높이는 방법인 FPN이 널리 사용되었지만, 기존 FPN은 scale을 단순 합한 것이기 때문에 각각 Scale이 output feature에 다르게 기여하는 것을 반영하지 못한다.
연구자들은 다른 Input feature를 가지는 중요도를 반영한 FPN인 BiFPN을 제안함으로써 기존 FPN이 가지고 있던 성능은 유지하고 계산방식을 더 효율적으로 변경한다.
2. model scaling
EfficientNet이 제안하는 compound scaling을 EfficientDet에 도입한다. compound scaling은 depth, width, resolution을 복합적으로 scaling하는 방식으로 각각 하나씩 scaling할 때 보다 더 좋은 성능을 보여준다.
저자들은 compound scaling을 적용할 때 Feature network 뿐만 아니라 box.class prediction network에도 적용해야 더 효율적이라는 것을 알아냈다.
BiFPN
efficient multi-scale feature fusion을 위해 제안된 BIFPN(d)이며, 아래와 같은 방식으로 구성된다.
Cross-Scale Connections
(a)에서 정보가 단방향으로 전달된다는 점에 (b)에서는 이를 해결하고자 extra pathway를 추가하였다. (c)에서는 NAS를 사용해 optimal scale connection을 찾았다. 연구진들은 (b)-PANet이 더 많은 파라미터를 갖고 있긴 하지만 (a)와 (b)와 비교해 더 나은 성능을 보이는 것을 발견했고, PANet을 수정해 정확도를 유지하면서 효율성을 달성하고자 했다. 이에 제안된 것이 (d)-BiFPN이다.
PANet에서 수정된 사항은 다음 3가지이다.
1. 하나의 dege만을 가지는 node를 제거한다.
하나의 edge만을 가지는 node는 실질적인 연산이 수행되는 바가 없기 때문에 FPN의 궁극적인 목표인 feature fusion에 기여하는 바가 적을것이라는 직관이 있었고, 이를 바탕으로 구축한 FPN은 다음과 같다.
2. 같은 level에서 original input을 Output에 더해주는 extra edge를 추가한다.
보라색의 edge가 추가된 사항으로, 이는 연산을 크게 늘리지 않고 feature fusion이 가능하게 했다.
3. 각각 하나씩의 top-dwon, bottom-up pathway를 가지고 있는 PANet을 여러번 반복한다.
이는 고차원의 feature fusion이 가능하게 한다.
Weighted Feature Fusion
이전 feature fusion들은 다른 resolution의 feature를 size에 맞게 resizing하여 concat 또는 더하는 방식으로 수행되었는데, 이는 각각 resolution이 output에 차별적으로 기여하는 바를 무시하기 때문에 변경할 필요가 있었다. 따라서 BiFPN에서는 각각의 input feature가 가지는 중요성을 학습하여 반영하기 위한 추가적인 weight를 추가한다.(여기서 말하는 input feature는 각각의 node가 양방향과 이전 Layer에서 오는 feature map들을 의미한다.)
위 수식은 Fast normalized fusion으로, softmax와 비슷한 역할을 하게 해 GPU 성능 저하를 없앴고 epsilon을 더해주어 학습 안정성도 보장한다. Cross scale connection과 Fast normalized fusion을 적용한 BiFPN은 level6에서 아래와 같이 수행된다.
td는 위 BiFPN구조 그림에서 가운데층의 output, out은 마지막층의 Output을 의미한다.
EfficientDet Architecture
FPN처럼 multi-scale feature maps를 추출하기 위한 backbone이 존재하고, 이후 BiFPN이 반복된 후 class prediction과 bbox prediction이 이루어지는 구조이다.
Compound Scaling
EfficientNet - https://2021-01-06getstarted.tistory.com/42
Compound Scaling은 모델의 scaling 대상인 depth, width, resolution 세 가지 요소를 전부 고려해 scaling하는 방식이다.
이를 통해 효율적인 scaling을 진행할 수 있다.
- backbone network
- EfficientNet과 동일한 scaling factor 사용
- BiFPN network
- bbox/class prediction network
- input image resolution
위 factor들은 heuristic하게 정해진 것이기 떄문에 최적의 결과라고 할 수는 없지만, simgle dimension scaling method들 보다는 더 좋은 성능을 보인다.
Experiment
scaling에 사용된 parameter인
'DL > Object detection' 카테고리의 다른 글
DETR : End-to-End Object Detection with Transformers (2) | 2024.01.25 |
---|---|
YOLO v4: Optimal Speed and Accuracy of Object Detection (0) | 2024.01.24 |
M2Det(M2Det: A Single-Shot Object Detector based on Multi-level Feature Pyramid Network) (2) | 2024.01.22 |
YOLO v3 (0) | 2024.01.22 |
[논문 리뷰] Object Detection in 20 Years: A Survey (0) | 2024.01.19 |