SPP -net은 Spatial Pyramid Pooling의 준말이다.

 

R-CNN의 단점은 crop/warp를 거치면서 이미지가 찌그러져 가지고있는 정보를 잃는다는 점이다. 

warp는 feature vector의 크기를 맞추기 위하여 사용되었는데

다른 방법으로 feature vector의 크기를 맞출 수 있다면 정보를 보전한 상태로 분류에 사용할 수 있을 것이다.

이를 극복한 방법이 SPP다.

 

 

SPP net의 과정은 다음과 같다.

 

1. 이미지를 cnn에 통과 시켜 feature map을 얻는다.

2. selective search를 통해 찾은 ROI들을 featuremap에 대응시키고 spp를 적용하여 고정된 feature vector를 얻는다

3. R-cnn과 같이 svm, bbr을 적용시킨다.

 

고정된 feature vector를 얻는 방식을 제외한다면 R-cnn의 과정과 같다고 볼 수 있다.

 

1. SPP - Spatial Pyramid Pooling

 

 

위의 그림처럼 먼저 cnn을 이용하여 featuremap을 얻고 SS를 통해 얻은 ROI를 대응시킨다.

 

위와 같이 crop된 feture map을 얻게 될텐데 이를 4x4 , 2x2, 1x1로 쪼갠이후 각 영역별로 맥스풀링한 결과를 얻게된다.

이를 spatial pyramid pooling layer 라고한다. 

위의 경우 16 + 4 + 1 = 21크기의 vector를 얻을 수 있을 것이다.이는 하나의 채널에 대한 내용이고 채널이 256개있다면 

총 21 x 256개의 고정된 vector를 얻을 수 있는것이다.

저자들은 1x1, 2x2, 3x3, 6x6 총 4개의 피라미드로 SPP를 적용합니다.

 

 

2. R-cnn과의 비교

 

r-cnn은 2000번의 cnn을 거친데 반에 spp는 1번의 cnn을 거치기 때문에 속도차이가 있을 것이고

warp과정에서 정보손실이 적어 더 좋은 결과를 가져올 수 있들 것이다.

하지만 rcnn의 다른 단점이었던 cnn, svm, bbr이 여전히 나누어져있다는 점은 여전히 해결되지 않았다는 점에서 한계를 가지기도 한다.

'CV > object detection' 카테고리의 다른 글

[CV] fast-R-cnn  (0) 2022.06.01
[CV] R-CNN  (0) 2022.06.01
[cv] object detection 기본용어  (0) 2022.05.25

+ Recent posts