computer vision/object detection

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

loosiu 2024. 6. 11. 13:39

Abstract

Feature pyramid는 object instance에 scale variation로부터 발생하는 문제를 완화하기 위해 sota one stage detector와 two stage detector에 이용됐다.

 

feature pyramid를 가진 detector가 좋은 결과를 보였지만, 약간의 제한을 가졌다.

-> Multi-Level feature pyramid network(MLFPN)을 제시

 

- MLFPN 방법

1. 기존 feature인 backbone에서 추출된 multi-level feature를 융합

2. alternating joint Thinned U-shape Module과 feature fusion module의 block에 base feature를 얻고, object를 탐지하는 것에 대한 feature로서 U모양 module의 decoder layer를 이용

3. object detection를 위한 feature pyramid를 구성하기 위해 같은 scale로 decoder layer를 사용하고 모든 feature map은 multiple level의 layer로 구성

 

MLFPN의 효과를 평가하기 위해, M2Det을 사용합니다.

 

 MS-COCO benchmark로 M2Det은 single scale 방법으로는 41.0 AP, 11.8 FPS를 달성하고, multi-scale 방법은 44.2 AP를 달성합니다.

 

 

Introduction

object instance에서 크기 변동은 object detection task에서 주된 문제 중 하나였다.

 

- object의 크기 변동의 해결책

1. image pyramid에 있는 object를 detect하는 것

-> memory와 연산 복잡성이 증가해서 object detector의 효율성이 급격하게 감소

 

2. input image에서 추출된 feature pyramid에 있는 object를 detect하는 것 

-> 첫번째 해결책보다 적은 memory와 연산량을 가지고, feature pyramid로 구성된 module은 sota model로 쉽게 통합된다.

 

 

feature pyramid를 가진 object detector는 결과가 좋았음에도 불구하고 multi-scale, backbone의 pyramidal architecture에 따라 feature pyramid를 만들기 때문에 제한을 가진다. 

 

- 제한 2가지

1. pyramid에 있는 feature map은 detection task에 해당되지 않습니다.

2. pyramid에 있는 각 feature map은 backbone의 singe level layer로 구성되고 single level 정보를 포함한다.

 

일반적으로, 얕은 layer에 있는 low level feature가 regression sub task에 기여할 때, 깊은 layer에서 high level feature는 차이가 난다.

high level feature는 복잡한 object에 적절하다면 low level feature는 간단한 object를 가지는 object에 더 적합하다.

-> 비슷한 크기의 object instance라도 거리에 따라 달라지기 때문에 pyramid에 있는 feature map이나 single level로 구성된 feature는 detection 성능이 최적이 아니다.

 

 

이 논문은 제한을 피하고 다양한 크기의 object를 detect하기 위해 효과적인 feature pyramid를 만드는 것이 목표

 

- M2Det 구조

1. backbone에서 추출된 multi level feature를 융합

2. alternating joint TUM과 FFM의 block에서 base feature와 multi-level multi-scale feature를 얻는다.

3. object detection에 대한 최종 feature pyramid를 만들기 위해 같은 scale로 feature map을 구한다.

 

Multi-Level feature pyramid network(MLFPN): 마지막 feature pyramid에서 형성되는 decoder layer는 backbone에 있는 layer보다 훨씬 더 깊고, 마지막 feature pyramid에 있는 각 feature map은 multiple level로부터 decoder layer로 구성되어 있는 feature pyramid block

 

 

Proposed Method

 

M2Det은 backbone과 input image로부터 feature를 추출하는 Multi-Level Feature Pyramid network(MLFPN)을 사용하고, SSD와 비슷하게 NMS 연산으로 학습된 feature를 기반으로 bounding box와 category score를 만듭니다.

 

  •  MLFPN의 3가지 모듈

1. FFM

2. TUM

3. SFAM

 

FFMv1: backbone의 feature map을 융합함으로써 기존 feature에 semantic 정보를 풍요롭게 한다.

TUM: multi scale feature의 group을 생성

alternating joint TUM, FFMv2: multi-level multi-scale feature을 추출

SFAM: scale별 feature concatenation 연산과 attention 매커니즘을 통해서 multi-level feature pyramid에 있는 feature를 통합한다.

 

- Multi-level Feature Pyramid network

  • MLFPN의 3개의 part

1. FFMv1은 base feature를 만들기 위해 얕고 깊은 feature를 융합

2. 각각 TUM과 FFMv2는 번갈아가면서 쌓였다

-> 각 TUM은 다양한 scale을 가진 feature map을 생성

FFMv2는 이전 TUM의 가장 큰 output feature map과 base feature를 융합

3. SFAM은 scale별 feature concatenation 연산과 channel별 attention 매커니즘으로 multi-level multi-scale feature를 통합한다.

 

 

* FFM

FFM은 M2Det에 있는 다른 level로부터 feature을 융합

input feature의 channel을 압축하기 위해 1x1 convolution layer를 사용하고 feature map을 통합하기 위해 concatenation 연산을 사용한다.

 

FFMv1은 backbone에 있는 다양한 scale으로 두 feature map을 input으로 간주하기 때문에, concatenation 연산 전에 같은 scale의 deep feature를 rescale하기 위해 upsample 연산을 채택한다.

FFMv2는 이전의 TUM의 가장 큰 output feature map과 base feature을 얻는다.

 

* TUM

TUM은 얇은 U 모양의 구조이다.

encoder는 stride 2를 가지는 일련의 3x3 convolution layer이다.

그리고 기존 FPN은 Resnet backbone에 있는 각 stage의 마지막 layer의 output을 선택하는 동안 layer의 output을 feature map의 참조 set으로 얻는다.

학습 능력을 향상시키기 위해 decoder branch에 요소별 합 연산과 upsample 후에 1x1 convolution layer를 추가하고 feature에 대한 smoothness을 유지한다.

 

* SFAM

 

SFAM은 multi-level feature pyramid에 있는 TUM에 의해 생성된 multi-scale feature를 통합하는 것이 목표이다.

SFAM의 첫번째 stage는 channel 차원에 따라 동등한 scale의 feature를 연결하는 것이다.

두번째 stage에서, channel에 집중하는 feature를 장려하기 위해 channel별 attention module을 도입한다.

 

* Network Configuration

MLFPN은 8개의 TUM을 포함하고, 각 TUM은 4개의 striding conv, 5개의 Upsample 연산을 가진다.

그래서 6개의 scale을 가지는 feature를 output한다.

parameter의 수를 줄이기 위해, TUM feature의 각 scale에 있는 256 channel만 할당한다.

 

detection stage에서 location regression과 classification 각각 하기 위해 6개의 pyramidal feature에 두개의 convolution layer를 추가한다.

pyramidal feature의 각 pixel에서, 전체 3개의 비율로 6개의 anchor를 set한다.

나중에, 낮은 점수를 가지는 대부분 anchor를 거르기 위해 0.05 threshold를 사용한다.

그 후, 더 정확한 box를 남기기 위해 전처리로 linear kernel을 가지는 soft NMS를 사용한다.

 

 

Experiments

 

 

 

 

 

 

 

Discussion

backbone에 의해 추출된 multi-level feature를 융합하고 보다 표현적인 multi-level multi-scale feature, 즉 각 TUM의 decoder layer를 추출하기 위해 alternating joint 얇은 U모양의 module과 Feature Fusion Module의 block에 넣는다.

 

decoder layer는 backbone에 있는 layer보다 훨씬 더 깊고 object detection에 대해 더 표현된다.

 

기존 detector: 약간 깊이 증가를 가진 extra layer나 backbone의 layer를 사용

multi-level feature pyramid의 각 feature map은 multiple level로부터 decoder layer로 구성된 SFAM에 의해 생성됐다.

 

 

MLFPN이 다양한 scale과 큰 외형 변화를 가지는 object를 detect하는 것에 대해 효율적인 feature를 학습할 수 있다는 것을 입증하기 위해, scale과 level 차원 사이에서 classification conv layer의 활성화 값을 시각화한다.

 

- 시각화로 알게된 점

1. 더 큰 person은 large scale의 feature map에서 강력한 활성화 값을 가진다.

2. traffic light, 더 작은 person, 더 작은 car는 같은 scale의 feature map에서 강력한 활성화 값을 가진다.

3. person, car, traffic light는 highest level, middle level, lowest level feature map 각각에 강력한 활성화 값을 가진다.

 

M2Det은 object instance에서 scale 변동과 외형 복잡도 변화를 다루는 효과적인 feature을 학습한다

그리고 비슷한 크기를 가진 object를 detect하기 위해 multi-level feature를 사용하는 것은 필수적이다.

 

 

Conclusion

다른 크기의 object를 detect하기 위해  Multi-Level Feature Pyramid Network를 제시

 

- MLFPN에 있는 module

1. multi-level feature는 기본 feature로 Feature Fusion Module(FFMv1)에 융합된 backbone에서 추출됩니다.

2. 기본 feature는 alternating joint Thinned U shape Module(TUM)과 feature fusion module(FFMv2)의 block에서 얻었고, multi level multi scale feature가 추출됩니다.

3. 같은 크기인 추출된 multi-level multi scale feature는 Scale-wise Feature aggregation module(SFAM)으로 object detection에 대한 feature pyramid를 구성하기 위해 통합한다.

 

MLFPN에 기반된 M2Det은 MSCOCO benchmark에서 one stage detector 사이에서 sota를 차지했다.