M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

Scale의 변화는 object detection분야에서 중요한 요소중 하나이며 다양한 방법론들이 제안되고 있다.

우리가 알고 있는 SSD의 scale에 따른 강인성을 높이기위한 방법.
R-CNN개열에서는 Proposal의 크기에 따라 weight를 다르게 주어 scale에 강인성을 높이려고 한다.(scale-aware)
본 논문에서는 scale의 강인성을 높이기 위해 Multi-level Feature Pyramid Network (MLFPN)을 제안한다.

Proposed Method

  1. backbone과 Multi-Level Feature Pyramid Network(MLFPN)에서 features를 추출한다.
  2. SSD와 유사하게 bounding box와 class에 대한 정보를 얻는다.
  3. NMS를 통해 최종적인 값을 불러온다.

MLFPN – Multi-Level Feature Pyramid Network

  • 구성
    • FFM – Feature Fusion Module.
    • TUM – Thinned U-shape Module.
    • SFAM – Scale-wise Feature Aggregation Module.

FFMv1 – 백본의 피쳐 맵을 융합하여 의미 정보를 기본 피쳐로 풍부하게 한다. 

TUM – 멀티 스케일feature 그룹을 형성한다. 그후 FFMv2와 같이 멀티 레벨feature를 추출한다.

Xbase = base feature, T = TUM, F = FFMv1

SFAM – scale-wise feature concatenation operation와 adaptive attention mechanism를 통해서 multi-level feature pyramid로 feature를 종합한다.

MLFPN – Multi-Level Feature Pyramid Network – Detail

  • FFM
    • conv 1 * 1을 사용한다.
    • FFMv1는 backbone으로부터 서로다른 두개의 feature map을 받아 출력되는 feature map을 upsample을 통해 맞춘후 concatenation한다.
    • FFMv2는 FFMv1에서 받은 feature를 conv 1*1를 통과시켜 TUM에서 받은 feature를 concatenation한다.
  • TUM
    • encode는 conv 3*3에 stride는 2이다.
    • decode는 output의 feature map을 참고한다.
    • decoder branch부분의 upsample 과 elementwise sum operation이후에 conv 1*1을 추가해 학습 성능 향상과 feature의 자연스러움을 향상 시켰다고한다.
    • decoder의 output은 현재 level의 multi-scale features를 출력한다.
    • 깊이에 따라 shallow-level features, medium-level features, deep-level features 순으로 다단계의 feature를 출력한다.
  • SFAM
    • TUM에서 나온 다양한 scale level의 feature을 same scale로 concatenate한다.
    • channel-wise module을 사용하여 가장 의미있는 channel에 초점을 맞춘다.
    • SE(Squeeze Excitation) block을 채용하여, channel-wise의 속성을 global average pooling를 사용하여 squeeze단계에서 얻으며 아래의 수식에서 z이다.
    • 조금더 정확한 channel-wise를 얻기위해 2개의 Fully connected layer 를 통해 학습한다.
식에 대한 부족한 설명 또는 이해를 돕기 위함. 식 2에서는 ReLU 함수와 Sigmoid 함수를 사용하며, r은 reduction ratio 를 뜻한다. (이 실험에서는 r = 16) 마지막 출력에서는 입력 x를 활성화 s 로 Re-weighting 하여 얻는다. 식 3에서 X는 각 특징은 리스케일링 작업으로 향상되거나, 약화된다. 
  • Squeeze Excitation
    • channel-wise feature response를 적절하게 조절해주는 역활을 한다. 해당 네트워크는 아래의 그림과 같으며 Classification 네트워크든 마지막단에 붙여 성능향상을 보인다고 한다.

Network Configurations

FFM, TUM, SFAM세가지로 구성되어 있는 네트워크는 두개의 네트워크를 앙상블로 사용 하였다. 전체 신경망을 학습하기 전에 ImageNet 2012 데이터 세트에서 백본을 사전에 훈련해야한다. MLFPN의 모든 기본 구성에는 8개의 TUM이 포함되어 있으며, 각 TUM에는 5개의 striding-convs 및 5개의 업샘플링 작업이 있으므로 6개의 스케일로 특징을 출력한다. 그리고 파라미터 수를 줄이기 위하여 256개의 체널로 각각의 TUM feature 스케일을 고정 시킨다. 또한 입력 영상의 크기는 SSD, RefineDet 그리고 RetinaNet들과 동일하게 설정한다.(320,512,800)

6개의 pyramidal features에 location regression과 classification을 하기위해 두개의 conv를 추가한다. 6개의 default boxes를 추출할때는 기존의 SSD와 동일하게 한다. 입력 크기가 800 x 800 이라면, 가장 큰 특징 맵의 최소 크기를 유지하는 것을 제외하고 스케일의 범위가 비례적으로 증가한다. pyramidal features 의 각 픽셀에서 3개의 비율로 6개의 앵커(Anchor) 를 설정했다. 이후에 낮은 스코어를 가지는 앵커를 걸러내기 위해 threshold 을 0.05로 사용하였다. 그 다음 Post-processing 을 위해 선형 커널(Linear-kernel) 과 함께 soft-NMS를 사용하여 경계 상자를 탐지한다. threshold를 0.01 로 줄이면 성능향상을 기대할 수있지만, inference time이 느려질 수 있으므로 이이상 실험을 진행하지 않았다고 한다. 

Author: rcvlab

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

2 thoughts on “M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

  1. TUM에서 decoder와 encoder를 가지고 있는 U shape을 썻다고 하는데 이 모듈의 의미는 무엇인가요? reconstruction할 때 전체 network에 가져다 주는 메리트가 있나요?

  2. scale에 강인하게 되면 얻게되는 이점이 무엇인가요?
    기존 ssd가 scale에 관련해 어떤 문제가 있기에 이를 강인하게 만드는지
    예시를 들어 설명해주시면 감사하겠습니다.

답글 남기기

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