Related to: Applications
개요
기존 2-Stage Detector를 사용하면서 “왜 마지막 feature map 만을 사용해야하는가?”에 대한 의문에서 시작하여 연구를 통해 Neck이라는 구조가 생겨났습니다.
Backbone에서 extract된 feature들을 적절하게 조화시키는 계층으로, 다양한 크기의 객체를 더 잘 탐지하기 위해 필요합니다.
핵심 개념
등장 배경
- 기존 2-Stage Detector의 Pipline
- Input → Backbone → RPN(Region Proposal Network) → Prediction
- Backbone에서 마지막 Feature Map만을 사용
- 연구를 통해 중간 과정의 Feature map들도 사용할 수 있겠다는 결론
- 중간단계의 Feature map들도 활용 시작
- 크기 별로 feature를 추출하기 때문에 검출에 유리
- Low Level의 Feature는 Semantic 정보가 약하고, Local한 정보가 강함
- High Level의 Feature는 Semantic 정보는 강하나 Local한 정보가 약함
- 다양한 크기의 객체를 더 잘 탐지하기 위해 필요
Neck 구조

- FPN(Feature Pyramid Network), PANet(Path Aggregation Network), BiFPN(Neck, EfficientDet) 등이 대표적인 예시
- 이전 map을 upsampling하여 크기 키우고, backbone에서의 feature map을 concat 등의 방식으로 같이 반영
- Top-down 방식, bottom-up 방식 모두 존재
관련 개념
- FPN(Feature Pyramid Network) — 대표적인 Top-down Neck 구조
- PANet(Path Aggregation Network) — Bottom-up path도 추가한 Neck
- BiFPN(Neck, EfficientDet) — EfficientDet에서 사용하는 양방향 FPN
- Two-stage detector vs One-stage detector — Neck이 사용되는 맥락
- RPN(Region Proposal Network) — Neck과 함께 사용되는 Region Proposal 구조
참조
https://velog.io/@peterkim/Object-Detection에서-말하는-Backbone-Neck-Head