Home 딥러닝 모델의 Backbone(백본) 정리
Post
Cancel

딥러닝 모델의 Backbone(백본) 정리

최근 과제를 하나 받아서 수행하고 있는데 백본 네트워크에 대해서 정리가 필요했다. 평소 컴퓨터비전 객체추적, 상황인식에 대해서 어느정도 알고 있었다고 생각했지만 또 역시 자세히 들여다보니 많은 부분으로 나누어져있다. 그래도 하나하나 짚어가다보면 끝이 보이겠지

img1 daumcdn

객체검출에 있어서는 One-Stage와 Two-Stage로 나누어지는데 객체 검출을 할때 두단계를 사용할 것인가 한단계로 통합할 것인가로 구분된다. 단계의 구분은 내가 원하는 물체가 있을 만한곳을 탐색하는 Location의 문제이고 그 물체가 어떤 것인지 구분하는 Classification으로 구분되는데 지금은 이것을 따지고자 쓴 게시글이 아니니 Backbone이 무엇인지부터 보자

위 그림에서 처럼 이미지가 들어오면 Backbone - Neck - Head로 구분을 할 수 있다.

Backbone(백본)은 입력 이미지를 feature map으로 변형시켜주는 부분이다. ImageNet 데이터셋으로 pre-trained 시킨 VGG16, ResNet-50 등이 대표적인 Backbone이다. 헤드는 Backbone에서 추출한 feature map의 location 작업을 수행하는 부분이다. 헤드에서 predict classes와 bounding boxes 작업이 수행된다.

Neck(넥)은 Backbone과 Head를 연결하는 부분으로, feature map을 refinement(정제), reconfiguration(재구성)한다. 대표적으로 FPN(Feature Pyramid Network), PAN(Path Aggregation Network), BiFPN, NAS-FPN 등이 있다.

Head(헤드)는 크게 Dense Prediction, Sparse Prediction으로 나뉘는데, 이는 Object Detection의 종류인 1-stage인지 2-stage에서 구분된다.

YOLO v4의 아키텍쳐는 다음과 같다. 1) Backbone : CSP-Darkent53 2) Neck : SPP(Spatial Pyramid Pooling), PAN(Path Aggregation Network) 3) Head : YOLO-v3

ResNet의 이해와 정리

바로 앞 게시글에서 ResNet를 정리했는데 이는 백본을 정리하기 위해서였다.

ResNet이 Image Classification task에서 깊은 모델로 성과를 보였지만 이러한 깊은 Network는 단지 image classification에서만 사용되는 것이 아니다. Detection, Segmentation, Pose Estimation, Depth Estimation 등에서 Backbone으로 사용된다.

backbone은 입력이 처음 들어와서 출력에 관련된 모듈에 처리된 입력을 보내주는 역할이라고 생각할 수 있다. 여러가지 task가 몸의 각 부분이라고 생각하면 ResNet과 같은 classification model은 입력을 받아서 각 task에 맞는 모듈로 전달해주는 역할이다. 결국 객체를 검출하든 영역들을 나누든 Neural Network는 입력 이미지로부터 다양한 feature를 추출해야한다. 그 역할을 backbone 네트워크가 하는 것이다.

backbone

요약: 다시 정리해서 왜 백본이 필요한가?

Backbone은 큰 데이터셋(ImageNet등)에 사전 학습된(pretrained) 딥러닝 모델

Backbone은 feature extractor(특징 추출기)을 수행하며 Backbone에 이미지를 넣으면 feature가 추출됨

실 서비스에 딥러닝 모델을 적용하려면 (예: detection 서비스를 딥러닝 모델로 서빙 한다면) - Pretrained backbone을 기반 (즉 큰 데이터를 가지고 미리 backbone을 학습)으로 finetuning을 활용해서 target task의 데이터셋에서 학습하는 것이 성능을 확보하는 가장 좋은 방법

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.

ResNet의 이해와 정리

파이썬 패키지 관리 freeze requirements.txt에서 file @ 경로문제