Mask R-CNN 뿐만 아니라 Object Detection 네트워크에서 대부분 사용중인 FPN에 대해서 리뷰하도록 하겠습니다.
FPN 이전 시도 되었던 방식
(a) Featureized image pyramid
- 1개의 입력 이미지를 여러 개의 scale 이미지로 만들어 각각 네트워크에 입력
- 각 resized 이미지에 대한 피처는 독립적으로 계산됨. 속도가 느리고 메모리를 많이 차지함
(b) Single feature map
- 단일 scale 입력 이미지를 그대로 추론에 활용
- 속도는 빠름. 그러나 성능이 높지 않음
(c) Pyramidal feature hierarchy
- 특정 컨볼루션 layer에서 나온 feature map 추출하여 detect함
- multi-scale feature map을 활용하여 성능향상 있음
- 그러나 feature map 간 해상도 차이로 semantic gap이 발생. 고해상도 feature map은 저수준의 feature 를 가지고 있는데, 이것은 representational capacity에 안좋은 영향을 미침
(d) Feature pyramid network
- 목표는 기존 컨볼루션 네트워크에서 계층적 구조를 추가하여 사용하는 것. 그것은 저수준(low-level)에서 고수준(high-level)까지 의미 있는 feature 를 만드는 것
- 부분적으로 multi-level에서 feature map을 얻고, 최종적으로는 single-scale 이미지를 얻음
- feature map 을 얻는 과정은 Backbone 네트워크의 컨볼루션 과정과 독립적으로 처리됨
- pyramid 구조는 bottom-up pathway, top-down pathway, lateral connection 으로 이루어져 있음
Feature pyramid network 3가지 구성요소
1. Bottom-up pathway
- Bottom-up path는 컨볼루션 네트워크의 forward 과정임
- 이때 각 단계별로 2배씩 스케일링된 피쳐맵으로 구성됨
- 각 단계별로 마지막 레이어의 feature map을 선택함 (같은 사이즈의 feature map을 가지는 레이어는 같은 stage라고 봄 이중 가장 마지막 레이어를 의미)
- 특히, ResNet을 예로보면 각 단계의 마지막 residual block의 feature map을 선택함
- Conv2, conve3, conv4, conv5 의 feature map을 활용 (Conv1 은 메모리 사용이 커 사용하지 않음)
2. Top-down pathway and lateral connections
- Top-down path는 더 높은 resolution으로 upsampling하는 과정이다.
- upsampling으로 생성된 feature map은 bottom-up path에서 생성된 feature map과 연결되므로써 피쳐가 enhance됨
- 각 connection은 같은 spatial size로 합쳐짐
- Bottom-up path에서 생성된 feature map은 의미적으로 낮은 수준의 feature 이지만, subsampling된 횟수가 적기 때문에 위치 정보는 더 정확함.
- Upsampling은 nearest neighbor 기법을 적용함
- Upsampled feature map은 bottom-up path이 feature map과 합쳐지는데, 채널 수를 줄이기 위해서 1x1 컨볼루션 과정이 포함됨
- 해상도와 채널수가 일치하면 element-wise 더셈으로 merge 됨
- 각 merged feature map에 마지막으로 3x3 컨볼루션을 적용하여 마지막 feature map을 생성하는데, 그것은 upsampling 과정에서 발생한 aliasing 효과를 줄이기 위함
- 이 과정을 통해 최종적으로 생성된 feature map을 p2 p3 p4 p5 라고 부름
'논문리뷰' 카테고리의 다른 글
Test-Time Augmentation (0) | 2023.01.14 |
---|---|
Mask R-CNN 논문 리뷰 (1) (1) | 2023.01.01 |