ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Object Detection Algorithm (Efficientdet)
    최신 기술동향/인공지능 (AI) 2022. 5. 1. 13:56
    반응형

     이번 리뷰에서 Object Detection Algorithm에서 사용되는 Efficientdet [1]에 대해 정리하려고 한다. Object Detection은 주어진 이미지에서 특정 위치에 어떤 물체가 있는지를 찾아내는 Task를 뜻하는데, Vision 관련 use case에 AI를 적용하는 연구의 대부분을 차지한다고 해도 과언이 아니다. 이미지의 feature를 뽑아내는데 자주 사용되는 CNN 모델을 기반으로 수많은 알고리즘이 나오고 있으며, 계속해서 state of the art (SOTA)를 갱신하고 있다.

     기본적으로는 연산량이 늘어날수록 AI의 성능이 올라가는 것을 볼 수 있는데, 연산량이 늘어날수록, 비싼 GPU를 써서, 속도를 올려줘야 한다는 단점이 있다. 따라서, 같은 연산량으로 어떻게 좋은 성능을 뽑을 수 있을지에 대한 많은 논의가 있다. 연산량을 늘릴 때는 얼마나 많은 layer로 (depth), 얼마나 많은 픽셀을 (resolution), 얼마나 많은 필터로 (filter) 이미지를 훑을지를 결정해야 하는데, 이런 최적의 조합을 찾아주는 AutoML을 사용해서 찾는 Compound Scaling방식을 제안한 것이 Efficientnet [2]이다. Efficientdet은 Efficientnet을 Backbone으로 활용한 알고리즘이다.

     Efficientnet부터 조금 더 설명을 하면, 최적의 depth와 width (filter), resolution의 조합을 고르기 위해, Compound Scaling이라는 방식을 사용한다.

    Model Scaling (Efficientnet) [2]

     Width와 resolution은 연산량에 거듭제곱형태로 연산량이 늘고, depth는 linear 하게 늘어나기 때문에, 같은 연산량에서 scaling을 해보기 위해, 아래와 같은 constraint를 세울 수 있다. 4번째 constraint 식에 2가 있는 것은 전체 연산량을 2의 $\phi$ 형태로 만들기 위함이다. 이렇게, 식을 세우고, $\phi$를 고정하고, $\alpha$, $\beta$, $\gamma$를 조금씩 넣어서 바꿔보는 노가다 알고리즘인 grid search를 하고, $\alpha$, $\beta$, $\gamma$를 고정하고, $\phi$를 늘려나가면서, 전체 size를 키우는 과정을 거쳐서, 최적의 비율을 찾아내는 것이 Efficientnet의 기본 컨셉이다.

     Efficientdet은 Efficientnet에서 활용된 Compound Scaling과 BiFPN (Bi-direction Feature Pyramid Network)이라는 알고리즘이 추가로 사용되었다. BiFPN의 기본 원리가 되는 FPN은 다양한 크기의 Object를 Detection 하기 위해서 제안되었다. FPN의 기본 Motivation을 쉽게 설명하면, 큰 자동차에서 뽑은 Feature map을 그대로 작은 자동차에 갖다 대면, 같은 물체라고 식별하는 능력이 떨어질 수 있기 때문에, 다양한 사이즈로 학습된 Feature map을 갖다대보자는 것이다. 그런데, 각각 Feature map을 전부 학습시켜서, 저장하고 있다가, 이미지에 전부 갖다대면, 메모리/연산량이 비효율적이기 때문에, 아래 그림처럼, 여러 층에서 뽑힌 Feature map을 재활용하여, 서로 잘 보완해 주게 만들어서, 다양한 사이즈의 이미지를 잘 Detection 할 수 있도록 한다.

    Feature Pyramid Network의 구조 [3]

     Bi-FPN은 방금 설명한 FPN에 Cross-scale Connection과 weighted feature fusion을 추가한 알고리즘이다. Cross-Scale Connection부터 설명하면, 기존 FPN이 아래쪽으로만 정보를 흘려보내준다면, 아래 그림의 (b)처럼 위쪽 방향의 흐름도 만들어주자는 PANet이 제안되었고, Bi-FPN은 한 단계 더 나아가, 이를 여러 Layer 쌓고, connection을 만들어주는 구조를 택한다.

    Efficientdet에서 사용되는 Bi-FPN [1]

     Weighted feature fusion은 (d)에서 P3~P7 등의 Input feature의 중요도가 다르니, 각각의 feature에 가중치를 줘서 output feature를 만들자는 내용이다.

     정리하면, Compound scaling을 통해, width/resolution/depth을 조절하는 Efficientnet을 Backbone으로 하고, Cross-scale connection/weighted feature fusion을 담은 Bi-FPN이 추가되어, Efficientdet이 제안되었다. Efficientnet의 scaling에 사용된 parameter인 $\phi$를 바꾸면서, Efficientdet의 D0~D7까지 만들어졌고, 각각의 scale마다 Accuracy/AP 값과 연산량 FLOPs가 다른 것을 알 수 있다.

     

    Conclusion

     이번 글에서는 Object Detection에서 사용되는 Efficientdet을 구성하는 주요 알고리즘에 대한 소개와 함께, parameter들이 어떤 것들을 의미하는지 정리했다. 단순히 AP가 높다고 좋은 것이 아니고, 자신이 사용할 GPU의 성능과 FPS (Frame per Seconds) 등을 고려하면서, 자신이 설계할 시스템에 어떤 Efficientdet 모델이 맞을지 사용하면 된다. 2020년까지는 state of the art였고, 이후, 많은 알고리즘이 나오지만, baseline으로 자주 언급되는 것이 Efficientdet이다. 새로운 알고리즘을 연구하는 사람, 자신의 Application에 사용할 알고리즘을 구하는 사람 모두 Efficientdet의 기본적인 원리를 아는 것이 필요하다고 생각한다. 이외에도 논문은 공개되어 있지 않지만, Object Detection의 또 다른 state of the art 알고리즘인 Yolo v5도 있고, 여러 알고리즘들이 제안되고 있는데, 추후, 이런 알고리즘들도 리뷰를 할 예정이다.

     

    Reference

    [1] M. Tan, R. Pang and Q. V. Le, "EfficientDet: Scalable and Efficient Object Detection, "2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020, pp. 10778-10787, doi: 10.1109/CVPR42600.2020.01079.

    [2] Mingxing Tan and Quoc V. Le. Efficientnet: Rethinking model scaling for convolutional neural networks. ICML, 2019.

    [3] Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, ´ Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection.

    반응형

    댓글

Designed by Tistory.