[AAAI 2020]CBNet: A Novel Composite backbone Network Architecture for Object Detection

Figure 0. CBNet과 다른 Detecter와 비교한 Leaderboad, 출처: paperwithcode

Abstract

  • CNN base detector들에게 backbone network는 feature extraction의 역할로써 성능 향상 여부에 매우 중요한 역할을 한다.
  • backbone의 성능을 올리는 방법으로 인접한 동일 backbone을 composite connection하는 전략을 이용한다. -> CBNet : Composite Backbone Network
  • 반복적으로 이전(k-1 th)의 backbone의 output features을 다음(k th) backbone(같은 층 input)에 넘겨준다.
  • 마지막 backbone(Lead Backbone)을 Object Detection에 사용한다.
  • 제안하는 backbone들을 sota detectors(FPN, Mask R-CNN, Cascade Mask R-CNN)에 적용 시, 1.5~3.0 percent의 성능 향상을 보여주었다.
  • Cascade Mask R-CNN에 제안하는 backbone을 적용함으로써, COCO dataset_test_dev(mAP of 53.3)에서 state-of-the-art를 달성하였다.
  • https://github.com/PKUbahuangliuhe/CBNet

Proposed method

  • Architecture of CBNet
    • k개의 동일한 backbone으로 구성된다. (k >= 2)
      • k=2, Dual-Backbone(DB)
      • k=3, Triple-Backbone(TB)
    • Lead backbone B_{L} , Assistant backbone B_{1...k-1}
      • 각각의 backbone은 L stage로 구성 ( L = {1, 2… l-1, l}, 일반적으로 L = 5)
      • Adjacent Higher-Level Composition(AHLC) – Main
        • x_{k}^{l} = F _{k}^{l} \left( x_{k}^{l-1} + g \left( x _{k-1}^{l} \right) \right) , l >= 2
        • x_{k}^{l} , k th backbone, l th stage feature
        • F_{x}^{l} non-linear transformation
        • g\left(\right) compsite connection, 1\times 1 conv, batch-normalization
        • g\left(\right) compsite connection, 1\times 1 conv, batch-normalization
      • 수식에 대해 설명하자면, k-1번째 backbone에서 같은 stage에 존재하는 feature(output)를 k 번째 backbone의 같은 stage에 존재하는 feature(input)에 전달함
  • we do not need to pre-train CBNet for training a detector integrated with it. For instead, we only need to initialize each assembled backbone of CBNet with the pre-trained model of the single backbone : CBNet은 pre-train이 필요하지 않다. pre-trained backbone 모델 하나로 CBNet을 구성하면 된다.
  • Other possible composite styles (+ 추가로 이런 구조도 가능하다. 건너뛰어도 무방)
    • Same Level Composition (SLC)
      • x_{k}^{l} = F _{k}^{l}\left( x_{k}^{l-1} + g\left(x _{k-1}^{l-1} \right) \right), l >= 2
      • 이전 backbone 의 input 값을 다음 backbone의 input에 전달
    • Adjacent Lower-Level Composition (ALLC)
      • x_{k}^{l} = F _{k}^{l}\left( x_{k}^{l-1} + g\left(x _{k-1}^{l+1} \right) \right), l >= 2
    • Inverse Level Composite (ILC)
      • x_{k}^{l} = F _{k}^{l}\left( x_{k}^{l-1} + g\left(x _{k-1}^{l} \right) \right), l >= 2
    • Dense Higher-Level Composition (DHLC)
      • x_{k}^{l} = F _{k}^{l}\left( x_{k}^{l-1} + \sum_{i=1}^L g\left(x _{k-1}^{l} \right) \right), l >= 2
      • 위의 방식을 이용하여 값을 받은 B_{K} Lead backbone을 Detector에 적용

Conclusion

  • 이전 backbone의 output이 composite connection을 통해 병렬하게 위치한 다음 backbone에 흘러들어간다.
  • 마지막 backbone의 feature map(Lead backbone)을 object detection에 사용한다.
  • 실험 결과가 성능 향상 보여줌
  • 특히 Mask R-CNN, Cascade R-CNN, Cascade Mask R-CNN등 instance segmentation에서 아주 좋은 효과를 보여주였다.
  • 결론 Cascade Mask R-CNN에 제안하는 backbone(base on ResNeXt152)을 사용하여 COCO dataset SOTA를 달성하였다.
  • ++ SOTA model에서는 Adjacent Higher-Level Composition(AHLC)를 이용했다고 합니다.

방법이 간단하고 범용성을 가지고 있어 활용도가 커 보인다. 거기다가 현재 detection에서 sota를 달성한 방법이기도 하다. 추후 다른 연구에서 backbone을 사용할 일이 생기면 해당 논문의 방법을 사용하는 것을 고려해볼 필요성이 있어 보인다.

Author: 김 태주

2 thoughts on “[AAAI 2020]CBNet: A Novel Composite backbone Network Architecture for Object Detection

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다