Deep Learning/Thought on Deep Learning

Backbone Network in Object Detector

sekimm 2024. 9. 20. 18:04

Backbone Network란?

FCOS3D network의 backbone 예시

 

Object Detection, Semantic Segmentation, Image Classification 등 다양한 컴퓨터 비전 task에서 딥러닝 모델이 사용되는데, 이미지에서 feature를 추출하는 역할 하는 network이다. 이때 추출된 feature는 네트워크의 나머지 부분(Head, Classifier 등)으로 전달된다. 즉, Backbone은 주로 네트워크 앞단에서 원본 이미지를 다양한 feature로 추출해주는 네트워크딥러닝 모델에서 특징 추출기(Feature Extractor) 역할을 한다. 

 

Object Detection에서 활용되는 Backbone

Object detection model에서 backbone은 원본 이미지에서 feature를 추출하여 RPN이나 Detection Head에 전달한다. 그 예시로 Faster R-CNN에서는 ResNet이 Backbone으로 사용되어 이미지의 feature map을 추출하고, 이 feature map을 이용하여 RPN과 Fast R-CNN Head가 객체의 위치와 클래스를 예측한다. 

 

어떤 모델이 Backbone으로 사용될까?

Backbone network로 사용되는 model은 이미지를 분류하는데 사용되는 네트워크인 ResNet, VGG, MobileNet, EfficientNet, DenseNet 등이 주로 사용된다. 이미지의 low, high level feature를 추출하는데 적합하게 때문이다. 

 

  • ResNet: Residual connection을 통해 깊은 네트워크에서 발생하는 기울기 소실(vanishing gradient) 문제를 해결하고, 깊은 층에서도 효과적으로 feature를 추출할 수 있는 네트워크이다.
  • VGG: 단순한 구조와 고정된 필터 크기를 사용하여, 이미지 분류 작업에서 뛰어난 성능을 보이는 네트워크입니다.
  • MobileNet: 경량화된 네트워크로, 효율적인 연산을 통해 모바일 장치에서도 성능을 발휘할 수 있습니다.
  • EfficientNet: 모델의 크기(깊이, 너비, 해상도)를 균형 있게 조정하여 연산 효율성과 성능을 극대화한 네트워크입니다.

 

Backbone network로 ResNet이 많이 사용되는 이유? 

많은 object detection 논문들을 봤을 때, ResNet이 사용되는 경우를 많이 보았다. 여러가지 이유가 있겠지만, 내 생각은 크게 2가지이다. 

  1. Residual Connection의 사용
    Model이 더 깊은 layer를 사용하는 경우에 기울기 소실 문제가 발생한다. residual connection을 통해서 더 깊은 layer에서도 효과적으로 feature를 추출할 수 있다는 점이 매우 크다고 생각한다.
  2. 많은 데이터들로 검증된 Model
    지금까지 많은 논문들에서 ResNet을 backbone으로 사용되었다. 그만큼 검증되어 있고 많은 연구가 되어 있는 model이기 때문에, 최적화하기에도 더 용이하고 성능 개선을 검증하기에도 더 확실하다고 생각이 들었다.