해결된 질문
작성
·
157
1
안녕하세요 궁금한 것이 있어 질문을 드립니다.
현재 수강중이면서 계속 나오는 단어들이 있습니다.
[1] 카테고리별 알고리즘
- Two-Stage Detector : RCNN, SPPNet, Fast RCNN, Faster RCNN, Mask RCNN
- One-Stage Detector : SSD, YOLO, RetinaNet
[2] Backbone
- Inception, ResNet, MobileNet, VGG, ImageNet
[3] 딥러닝 프레임워크
- OpenCV DNN, Tensorflow, Keras
강의를 들으면서 알고리즘과 Backbone이 서로 어떻게 다른건지 잘 구분이 되지 않습니다.
StackOverflow에서 찾아보니 Backbone을 아래와 같이 묘사하는 것을 확인했습니다.
- Feature Extractor
- Feature Extracting Network
- Neural Network Architecture
그렇지만 여전히 알고리즘과 Backbone이 정확하게 어떻게 다른건지 잘 구분이 가지 않는 상황입니다.
혹시 이 부분에 대해서 자세한 설명 (또는 자세한 설명이 담긴 website url) 정보를 주신다면 정말 감사하겠습니다.
답변 1
5
안녕하십니까,
해당 부분에 대해서는 섹션 2의 Object Detection 네트웍 개요 및 FPS/Resolution/성능 상관관계 에서 설명을 드리고 있습니다.
추가적으로 말씀드리면 Object Detection을 위한 Deep Learning 모델인 Faster-RCNN, SSD, Yolo, RetinaNet은 Feature Extractor라고도 불리는 Backbone network을 기반으로 해서 개별 Dection 모델별로 추가적인 형태의 딥러닝 모델을 가지고 있습니다.
즉 Object Detection을 위한 Deep learning 모델은 Feature Extractor + Detection을 위한 추가 layer들로 네트웍이 구성 되어 있습니다.
Feature Extractor는 일반적으로 저희가 익숙한 CNN Classification에 사용되는 네트웍 모델에서 최종 classification layer만 제거된 모델을 이용합니다. 주요 CNN Classification 네트웍 모델인 VGGNET, INCEPTION, RESNET 등을 Feature Extractor로 이용하며, 이들 네트웍 모델에서 Fully connected Layer 부분을 제거하고 원본 이미지를 feature map으로 변환하는 layer만 Object Detection 모델에서 사용합니다.
이렇게 하는 이유는 이들 CNN Classification 네트웍 모델이 보통은 1000개의 분류세트를 가지는 imagenet 데이터 세트로 pretrained 되어 있는데, 우리가 Detection하는 Object들의 1000개의 분류가 아니므로, 최종 1000개의 분류를 담당하는 layer인 fully connected layer를 제외하고 feature map 변환 layer들만 활용을 합니다.
feature extractor를 Object Detection에서는 backbone이라고도 하는데, Object Detection에서도 feature extractor를 기반으로 Detection을 수행하기 때문이기도 하고, feature extractor를 VGG나 Resnet으로 교체할 수 있기 때문에 backbone 이라고도 부릅니다.
요약하자면 Object Detection deep learning network(Fast RCNN, SSD, YOLO, Retinanet등)은 기존 CNN Classification의 feature extractor(VGG, Inception, Mobilenet, Resnet)에 해당하는 layer들을 재 활용하여 feature map을 만들고, 이렇게 만들어진 feature map을 개별 고유의 Object Detection 모델들이 각자만의 방법으로 학습/Detection하는 layer들로 전체 네트웍이 구성되어 있습니다.
감사합니다.