Boostcamp AI Tech

[Boostcamp Day-40] Neck

ju_young 2021. 10. 1. 01:17
728x90

기존 방식

1

(a) Featurized image pyramid
입력 이미지의 크기를 resize하여 다양한 scale의 이미지를 네트워크에 입력하는 방법이다. 속도가 매우 느리며, 메모리를 지나치게 많이 사용한다는 문제가 있다.

 

(b) Single feature map
단일 입력 이미지를 CNN에 입력하여 단일 feature map을 통해 object detection을 수행하는 방법이다. 속도가 매우 빠르지만 성능이 떨어진다.

 

(c) Pyramidal feature hierarchy
CNN에서 미리 지정한 convolution layer마다 feature map을 추출하여 detection하는 방법이다. multi-scale feature map을 사용하기 때문에 성능이 높다는 장점이 있지만 feature map 간 해상도 차이로 인해 학습하는 representation에서 차이인 semantic gap이 발생한다는 문제가 있다.


Feature Pyramid Network (FPN)

2

1. Bottom-up pathway

3

이미지를 CNN에 입력하여 2배씩 작아지는 feature map을 추출하고 각 stage의 feature map을 가져온다. 첫 번째 convolution layer에서의 feature map은 메모리가 크기 때문에 제외되었다고 한다.

2. Top-down path way

4

각 pyramid level에 있는 feature map을 2배로 upsampling해주고 channel 수도 동일하게 맞춰주는 과정이다. 이때 nearest neighbor upsampling 방식을 사용한다.

3. Lateral connections

5

Top-down 과정을 거치고 모든 pyramid level의 feature map에 1x1 conv 연산을 적용하여 channel을 256으로 맞춰준다. 그 후 다음과 같이 upsample된 feature map과 바로 아래 level의 feature map과 element-wise addition 연산을 수행한다.

그 다음 각각의 feature map에 3x3 conv 연산을 적용하여 [p2, p3, p4, p5]를 얻는다.

6

4. FPN의 문제

Top-down 과정에서 nearest neighbor upsampling 방식을 사용하는데 이 때 low-level의 feature가 high-level의 feature로 제대로 전달될 수가 없다.


PANet

7

1. Bottom-up Path Augmentation

위 그림 왼쪽에서 초록색 점선이 PANet의 흐름으로 FPN과 동일하게 Bottom-up을 추가해준 것이다. 이렇게 함으로서 low-level 정보가 온전하게 high-level로 전달되어 큰 객체를 검출하는 경우에도 low-level 정보를 활용할 수 있게 된다.

2. Adaptive Feature Pooling

8

Bottom-up Path Augmentation에서 얻은 feature map은 RPN에 적용되어 RoI를 생성한다. 생성된 RoI는 RoI Align을 거쳐 일정한 크기의 벡터가 생성된다. 생성된 feature vector는 max 연산으로 결합한다. 그리고 fc layer를 통해 class와 box를 예측하는 것이다.


DetectoRS

00

1. Recursive Feature Pyramid

9

앞에서 설명한 FPN을 recursive하게 진행한 것이다. recursive하게 진행하기 때문에 학습 속도가 상당히 느리다. $B_i$를 각 bottom-up backbone의 i-stage, $F_i$를 i번째 top-down FPN라 하고, 또한 $f_i$를 i-stage FPN의 output이라 한다면, FPN에서 output feature 는 아래와 같이 나타낼 수 있다.

 

10

 

(b)에 나타난 RFP (Recursive Feature Pyramid)가 포함된 FPN에서의 output features $f_i$를 나타내면 아래와 같다. 이때 $R_i$는 bottom-up backbone으로 연결해주기 이전에 가하는 feature transformations이다,

 

11

 

이러한 recursive 연산을 펼쳐서 위의 그림의 (c)처럼 나타내면 아래와 같이 나타낼 수 있다. 이때, $t$는 unrolled step을 나타냅니다.

 

connecting module로 ASPP를 사용하였는데 ASPP는 deeplab에서도 사용했으니 deeplab 부분을 참고하면 되겠다.

deeplab

ASPP를 통해 얻은 feature는 다음과 같이 1x1 conv를 거쳐 backbone에 더해진다.

12

3. Switchable Atrous Convolution

13

Atrous Convolution을 적용시키면 더 넓은 receptive field 가지게 된다. 이러한 점을 이용하여 다양한 receptive field를 바라보게 함으로서 성능을 향상시킨 것이다.


BiFPN

14

기존의 PANet을 변경한 형태이다. (d) 그림을 보면 한 방향에서만 오는 노드가 지워져있고 양방향을 지니는 레이어를 쌓은 것을 볼 수 있다.

1. Wighted Feature Fusion

FPN 내의 모든 input feature는 output feature에 동일하지 않는 영향력을 갖는다. 이러한 문제를 해결하기 위해 input feature에 가중치를 부여한다. 이때 모델이 더 무거워지지않고 중요한 feature를 강조하게 되면서 성능이 상승된다.

15


NASFPN

효율적인 FPN Architecture를 NAS(Neural Architecture Search)를 통해서 찾는 방법이다.


AugFPN

기존의 FPN에서 서로 다른 level 간 feature의 semantic 차이, Highest feature map의 정보 손실, 1개의 feature map에서 RoI를 생성한다는 문제가 있었다. 이러한 문제를 해결하기 위해 Consistent Supervidion, Residual Feature Augmentation, Soft RoI Selection을 사용하였다.

1. Residual Feature Augmentation

p5의 경우에는 1x1 conv과 3x3 conv만 수행하기 때문에 기존 채널이 줄어드는 정보 손실이 일어난다. 이러한 문제를 보완하기 위해 Residual Feature Augmentation를 적용한 것이다. Residual Feature는 C5에서부터 M6를 만들고 M6로부터 top-down 정보를 추가되게 한것이다.

C5는 Ratio-invariant Adaptive Pooling을 거쳐 다양한 feature map이 만들어지고 이 feature map은 Adaptive Spatial Fusion을 통해 M6가 만들어지는 것이다.

Adaptive Spatial Fusion에서는 각 feature에 대해 가중치를 두고 summation하고 1x1 conv -> 3x3 conv -> sigmoid 를 거쳐 가중 summation이 이루어진다.

2. Soft RoI Selection

기존의 FPN과 같이 하나의 feature map에서 RoI를 계산하는 경우 제대로된 방법이 아니라고 판단하여 PANet에서 모든 feature map에서 RoI를 계산하였지만 이 또한 정보손실이 일어날 것이라고 한다. 이러한 점을 해결하기 위해 Soft RoI를 제시한 것이다. 

우선 모든 feature map에 대해서 RoI Pooling을 통해 동일하게 고정된 크기의 feature vector를 만들어준다. 이후 channel-wise 가중치 계산 후 가중 합을 사용한다. 

 

[Reference]
https://herbwood.tistory.com/18
https://deep-learning-study.tistory.com/637
https://cdm98.tistory.com/49

728x90

'Boostcamp AI Tech' 카테고리의 다른 글

[Boostcamp Day-41] EfficientDet  (0) 2021.10.02
[Boostcamp Day-41] 1 Stage Detectors  (0) 2021.10.01
[Boostcamp Day-39] Object Detection Library  (0) 2021.09.30
[Boostcamp Day-38] Faster R-CNN  (4) 2021.09.30
[Boostcamp Day-37] Overview  (0) 2021.09.30