이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

FPN (Feature Pyramid Network) 요약

  • 2023.02.01 14:13
  • Deep Learning/공부 노트
반응형

Object Detection에서, Feature Pyramid는 다양한 크기의 물체들을 탐지하기 위한 주효한 방법 중 하나이지만, 많은 (당시) 최근 모델들이 다양한 scale의 feature map들을 만드는 데 컴퓨팅 성능이 너무 많이 요구되기에 feature pyramid를 만드는 접근을 피해왔다.

FPN은 적절한 수준의 연산을 통해 Feature Pyramid를 생성하여 Faster R-CNN에 적용한 결과 COCO 데이터셋 SOTA를 달성하였고, 6FPS 속도를 보였다.

Feature Pyramid

Fig 1. 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

https://herbwood.tistory.com/18

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

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 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
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (281) N
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (47) N
      • 회고 & 계획 (19) N
      • 내 이야기 (9)
      • 리뷰 (3)
      • 군대에 간 공돌이 (10)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바