FPN (Feature Pyramid Network) 요약
Object Detection에서, Feature Pyramid는 다양한 크기의 물체들을 탐지하기 위한 주효한 방법 중 하나이지만, 많은 (당시) 최근 모델들이 다양한 scale의 feature map들을 만드는 데 컴퓨팅 성능이 너무 많이 요구되기에 feature pyramid를 만드는 접근을 피해왔다.
FPN은 적절한 수준의 연산을 통해 Feature Pyramid를 생성하여 Faster R-CNN에 적용한 결과 COCO 데이터셋 SOTA를 달성하였고, 6FPS 속도를 보였다.
Feature Pyramid
Feature Pyramid란 객체 인식에 필요한 feature 들을 담고 있는 다양한 스케일의 feature map들을 말한다.
이미지에 포함된 객체들의 크기에 따라 다른 해상도의 feature map을 사용하는 것은 정확도에 큰 도움이 되지만, 문제는 이렇게 다양한 해상도의 feature map을 여러 개 만드는 것이 많은 컴퓨팅 자원을 요구한다는 것이다.
feature pyramid를 만들기 위한 방법 중 하나는, 각기 다른 크기의 입력 이미지로 여러 가지 크기의 feature map들을 만드는 것이다(a). 이는 OverFeat에서 사용된 방법으로, 가장 많은 메모리와 실행시간을 요구한다.
전체 신경망을 통과하여 완전히 압축된 feature map을 하나만 사용할 수도 있다.(b). YOLO가 이 방법을 사용했는데, 속도는 가장 빠르지만 성능이 떨어지게 된다.
SSD에서는 처음으로, 합성곱 신경망을 통과하며 생성되는 다양한 스케일의 feature map들을 사용해 적은 연산량으로 pyramid와 유사한 계층적 구조의 예측을 수행했다(c). 그러나 이 방법을 사용하면 고해상도 feature map에는 low-level feature들이 담기기 때문에, small object detection 성능이 떨어지게 된다.
Feature Pyramid Network에서는 합성곱 신경망에서 자연스럽게 생성되는 feature map들을 활용하여 연산량을 적게 유지하면서도, 예측을 위한 적절한 정보들을 포함한 feature pyramid를 만드는 방법을 소개한다.
Feature Pyramid Network
FPN은 한 개의 이미지를 입력으로 받아, 여러 가지 스케일의 feature map을 생성한다. 이때, 앞쪽 합성곱 계층에서 생성된 높은 해상도의 feature map 일수록 더 low-level feature들을 포함하고 있기에, 이 feature map들에 뒤쪽 feature map을 fusion하여 high-level한 sementic 정보들을 전달해준다.
Bottom-up pathway.
먼저, 입력 이미지를 $(n+1)$개의 합성곱 stage들을 거쳐 $n$개의 feature map들을 만들어준다.
(첫 번째 stage에서는 feature map을 만들지 않는다.)
각 stage마다 이미지의 해상도는 $\frac{1}{2}$로 줄어들고, 채널은 2배 증가한다.
논문에서는 5개의 stage로 모델을 구성하여 4개의 feature map ${C2, C3, C4, C5}$를 만들었다.
Top-down pathway and Lateral connections
이제 더 작은 해상도와 high-level feature들을 가지고 있는 후반 feature map을 전반 feature map에 합쳐줘야 한다.
$C(n+1)$과 $C(n)$의 크기를 맞춰주기 위해, 해상도를 2배로 upsampling 해준다.
$1\times 1$ 합성곱을 적용하여 모든 feature map들의 채널을 256으로 맞춰준 뒤, $C(n+1)$과 $C(n)$의 element-wise addition 연산을 수행해준다. 이렇게 fusion된 feature map에 $3\times 3$ 합성곱을 수행하여 최종 feature map인 ${P2, P3, P4, P5}$을 만들어준다.
정리
FPN은 한 장의 이미지와 합성곱 신경망 구조를 통해 연산량을 상대적으로 적게 가져가면서도 feature pyramid를 만들어 높은 성능을 낼 수 있었다.
(사실 논문에 Faster R-CNN과 합쳐서 테스트를 하는 부분이 있는데, 이 글에서는 스킵하였다.)
SSD를 공부하며 SSD가 small object 일수록 성능이 안 좋아 아쉬웠는데, 좋은 논문을 읽은 것 같아 좋다.
Reference
- Feature Pyramid Networks for Object Detection - Lin et al.
- FPN 논문(Feature Pyramid Networks for Object Detection) 리뷰 - herbwood님
'Deep Learning > 공부 노트' 카테고리의 다른 글
Multimodal Object Detection via Probabilistic Ensembling(ProbEN) 요약 (0) | 2023.02.09 |
---|---|
M2Det: SSD based on Multi-Level FPN 요약 (0) | 2023.02.02 |
YOLO v2(YOLO9000: Better, Faster, Stronger) 요약 (0) | 2023.01.30 |
FPPI, LAMR, MR: Object Detection을 위한 지표들 (0) | 2023.01.26 |
R-FCN: Object Detection via Region-based Fully Convolutional Networks 요약 (0) | 2023.01.20 |
댓글
이 글 공유하기
다른 글
-
Multimodal Object Detection via Probabilistic Ensembling(ProbEN) 요약
Multimodal Object Detection via Probabilistic Ensembling(ProbEN) 요약
2023.02.09 -
M2Det: SSD based on Multi-Level FPN 요약
M2Det: SSD based on Multi-Level FPN 요약
2023.02.02 -
YOLO v2(YOLO9000: Better, Faster, Stronger) 요약
YOLO v2(YOLO9000: Better, Faster, Stronger) 요약
2023.01.30 -
FPPI, LAMR, MR: Object Detection을 위한 지표들
FPPI, LAMR, MR: Object Detection을 위한 지표들
2023.01.26