부스트캠프 10주차 Neck 정리

kimkihoon·2022년 4월 10일
0

부스트캠프 AI

목록 보기
36/49

Neck

기존 RPN은 backbone network를 통과한 마지막 layer만 사용을 했다. 그것에 의문을 가진 연구자들이 중간에 있는 feature들을 사용하면서 neck이 등장하게 되었다.

Neck이 필요한 이유

backbone을 통과한 feature map에서 다양한 크기의 객체를 예측해야 한다. 여러 크기의 feature map에서 다양한 객체를 예측하게 되는데 큰 feauture map일수록 작은 범위를 작은 feature map일수록 큰 범위를 본다. 이 때 작은 feature map은 low level에서 등장한 feature map이다. 그렇기 때문에 마지막 layer에서 나온 feature map을 사용하게 되면 작은 객체를 detect 할 수 없게 된다.

Neck은 다양한 크기의 객체를 잘 탐지하기 위해서 필요하다. high level에서는 semantic 정보가 풍부한 대신 localization 정보가 부족하다. low level에서는 localization 정보가 풍부하지만 semantic 정보가 부족하다. 이것들을 잘 섞어서 골고루 풍부하게 만들어 주는 것이 Neck의 역할이라고 할 수 있다.

Feature Pyramid Network(FPN)

high level에서 low level로 semantic 정보를 전달하기 위해 top-down path way방법을 사용했다.

Lateral connections 방식으로 두 개의 feature를 merge해준다.

두 개의 feature의 shape가 다른 문제점이 있기 때문에 bottom-up 과정에서 나온 feature map은 1x1 Conv layer를 통과시켜서 channel size를 늘려준다.

Top-down에서 나온 feature는 Upsample하여 width와 height를 높여준다. 이때 Nearest Neighbor Upsampling 기버을 사용한다.

Pipeline

backbone: ResNet
ResNet은 총 4개의 stage가 있고 pooling을 통해 w,h가 절반으로 줄어든다.


출력된 많은 RoI를 대상으로 NMS를 수행한다.
1000개의 RoI를 뽑아낸다. Faster RCNN의 경우 Single Stage이기 때문에 어떤 stage의 feature map에서 나온 것인지 알 수 있지만 FPN은 Input Stage가 4개가 있기 때문에 출처가 어딘지 알 수 없다. 그렇기 때문에 Mapping을 하여 어디서 왔는지 알아내야한다.

Contribution

  • 여러 scale의 물체를 탐지하기 위해 설계를 하였다.
  • 여러 크기의 feature를 사용해야 한다.

Path Aggregation Network(PANet)

FPN의 단점을 해결하기위해 등장했다. ResNet의 Backbone Network는 많은 conv layer를 통과한다. 하지만 이렇게 많은 layer를 통과하기 때문에 bottom의 정보가 top으로 잘 갈 수 있는지 의문이 들어서 연구를 진행했다. 결과적으로 FPN에서의 TopDown이후에 다시 Bottom Up을 수행한다.

Adapted Feature Pooling을 사용하여 기존 RoI에서는 각 feature에서 RoI를 뽑은것과 다르게 전부 다 사용하여 뽑는다.

DetectoRS

같은 것을 두번씩 반복적으로 보면 성능이 좋아지는지 확인한 모델이다.

Recursive Feature Pyramid(RFP)

backbone을 통해 FPN한 결과물을 갖고 다시 Backbone을 학습한다.

학습속도가 매우 안좋다. 한번 Neck을 통과한 stage들은 ASPP를 거쳐서 다시 한번 feature map들과 합쳐진다.

ASPP

Receptive field를 늘리는 방법이다. 하나의 feature map에서 pooling을 진행할 때 diliation rate를 변화시켜가며 receptive field를 키워나가며 pooling한다.

Bi-directional Feature Pyramid (BiFPN)

기존의 PANet을 간소화시킨 모델이다. 효율성을 위해 Feature map들이 한 곳에서만 오는 노드들을 제거했다.

Weighted Feature Fusion

feature 별로 가중치를 통해 가중합을 한다.

NASFPN

기존 FPN, PANet의 문제점인 top-down, bottom-up 의 정해진 pathway로 feature map을 합치는 것을 해결한 모델이다. NAS (neural architecture search)를 통해서 최적의 FPN architecture를 찾으려고 시도했다.

단점
-COCO dataset, ResNet backbone을 기준으로 찾은 architecture이다. 범용성이 떨어지고 조합을 바꿀때마다 다시 최적의 FPN Module을 찾아야한다.

AugFPN

high level feature는 low level로 가기 위해서 channel의 수를 줄이는 연산만 수행했다. 그렇기 때문에 정보손시링 발생했는데 1개의 feature map에서 RoI를 생성하는 것으로 이 문제를 어느 정도 해결했다.

Residual Feature Augmentation

  • Residual featrue를 만들어서 이용했다. M6M_6을 만들어서 top-down해서 손실을 없앤다.
  • C5C_5를 이용하여 만든다.
  • Residual Feature Augmentation 과정에서 C5C_5를 이용하여 여러 개 scale의 output을 만들고 Adaptive Spatial Fusion을 하게 된다.

    이후 동일한 scale로 upscaling 한 후에 가중치를 두고 합친다.

0개의 댓글