///
Search

구조 이해 (1)

Backbone
Input을 feature map으로 변환해주는 부분
ImageNet dataset으로 pre-train시킨 VGG, ResNet50 등이 대표적인 예
단순히 말해, input을 여러 conv layer에 통과시켜 feature map을 내놓는 것(각 layer를 통과할 때마다 feature map이 나옴. 보통 layer를 통과할수록 edge - part - ... 이런 식으로 feature가 extract됨)
Neck
Backbone에서 extract된 feature들을 적절하게 조화시킴(feature map을 좀 더 정교하게 조정하는 과정이라고도 볼 수 있음)
FPN, PANet, BiFPN 등이 대표적인 예
이전 map을 upsampling하여 크기 키우고, backbone에서의 feature map을 concat 등의 방식으로 같이 반영시킴
Top-down 방식, bottom-up 방식 모두 존재
Head
Localization 및 classification 수행 (Predictor)
Neck에서 여러 map을 두었기 때문에, 각 map에 대해 위 두 작업을 수행하고 결과적으로 하나의 image에서 여러 object를 효과적으로 detect할 수 있음(이 부분에 대해 궁금한 점이 있어 아래 Question에 적어둠)
backbone : 기존의 분류 task로 학습된 모델들 (VGG, resnet 등)을 이용하여 feature를 뽑는 역할
RPN : backbone으로 뽑은 feature를 이용하여 이미지의 위치를 대략적으로 잡아주는 network
ROI : RPN에서의 proposal region을 fc layer의 인풋으로 넣기 위해 고정된 크기의 feature를 만들어 주는 역할
ROI box head
ROI box feature extractor : ROI box를 예측하기 위해 fc layer로 feature를 만들어주는 역할
ROI box predictor : ROI box를 예측(regression, classification) 하는 역할
ROI mask head
ROI mask feature extractor :
ROI mask predictor : ROI mask를 segmentation 해 주는 부분 (sigmoid, binary mask)
Head는 feature extractor, predictor로 나뉜다. 보통 피처를 뽑고 예측을 하는 부분을 head라고 부른다.
backbone에서 FPN을 사용하는 이유는 다양한 스케일로 이미지를 봐서 잘 검출하기 위함이다.