SPPNet

2021. 1. 3. 22:26Computer vision ღ'ᴗ'ღ

728x90

 

github: github.com/chaeyeongyoon/ComputerVision_Study

 

chaeyeongyoon/ComputerVision_Study

Contribute to chaeyeongyoon/ComputerVision_Study development by creating an account on GitHub.

github.com

 

개발 순서로 보면 R-CNN -> SPPNet -> Faster RCNN순입니다.

SPPNet은 RCNN의 문제점을 많이 개선했습니다.

 

2000개의 region proposal이미지를 CNN에 입력하지 않고 원본 이미지만 CNN으로 Feature Map을 생성하여 뒤의 원본 이미지의 Selective search로 추천된 영역을 Feature map에 mapping (ROI Projection)합니다.

 

여기서 문제는 warp현상으로 인한 문제는 사라졌지만 영역별로 크기가 달라 FC Layer에 입력할 수가 없다는 것입니다.

 

이를 해결하기 위해 feature map에 mapping된 이미지들을 SPP Net의 고정된 크기 vector로 변환해 FC Layer에 1D Flatten된 input을 제공합니다.

 

SPP(Spatial Pyramid Pooling)

SPP에 대해 설명하기 위해서는 고전적인 방법인 Bag of Visual words를 보완한 것인 Spatial Pyramid Matching을 먼저 설명해야합니다.

Bag of Visual words는 문장을 단어별로 조각조각 내어 가방에 넣은 다음 encoding하는 문장 분석 방법을 컴퓨터 비전에 적용하여 이미지를 조각조각 내어 가장 많은 특성으로 판단하는 방법이라고 생각하면 됩니다. 고전적인 컴퓨터 비전 기법입니다.

Bag of visual words

 

그러나 이 방법은 여러 feature가 섞이면 적용하기 어렵습니다. Spatial Pyramid Matching, 즉 SPM은 이러한 단점을 해결하기 위해 이미지의 분면을 나눠줍니다.

https://www.semanticscholar.org/paper/1-Spatial-Pyramid-Matching-Lazebnik/ba8e0bda11af08b6037666b67cf54ae1f780822d/figure/2

각 히스토그램 값을 순서대로 일렬로 결합시켜주면 이미지 특징을 효율적으로 위치를 반영해 표현할 수 있습니다.

feature map의 크기와 상관 없이 몇분면으로 나누느냐만 같으면 모두 똑같이 63개 원소 vector값으로 표현이 가능합니다.

이방법을 SPM라고 합니다

 

 

 

 

 

SPP는 SPM과 유사하지만 MaxPooling만 적용해 1+4+16 = 21개의 원소를 갖는 벡터로 표현합니다.(1분면의 최댓값, 4분면 각각의 최댓값, 16분면 각각의 최댓값)

 

SPP-Net의 전체 과정을 그림으로 나타내면 다음과 같습니다.

이미지 하나는 CNN을 한번만 통과하면 되므로 RCNN보다 훨씬 빠릅니다. 정확도는 RCNN과 비슷합니다.

PASCAL VOC 2007 evaluation

spp net 1-scale과 5-scale의 차이는 이미지를 크게하여 VGG를 통과시키면 featuremap크기도 커지고, 그래서 분면을 나누거나 mapping이 더 쉬워져 성능이 더 좋아진다는 의미입니다.

728x90

'Computer vision ღ'ᴗ'ღ' 카테고리의 다른 글

SSD Network  (0) 2021.01.08
Fast R-CNN, Faster R-CNN  (0) 2021.01.03
R-CNN(Regions with CNN)  (0) 2021.01.03
COCO dataset 다루기  (0) 2020.12.26
주요 dataset 및 파이썬 이미지 라이브러리  (0) 2020.12.23