Kim Seon Deok
4.Fast-R-CNN 본문
R-CNN의 단점 개선
-2000개의 region proposal이미지를 cnn으로 feature extraction하지 않고, 원본 이미지만 CNN으로 feature map 생성
-feature map으로 투영된 서로 다른 크기를 가진 Region Proposal 이미지를 SPP Net의 고정된 크기 벡터로 변환해 FC에 1D Flattened 된 input 제공
Bag of words(BoW)
영상에서 feature들을 뽑은 후, 이들 Feature들을 대표할 수 있는 값(code)들로 구성되는 코드북(codebook)을 생성.
코드북은 다수의 이미지들로부터 추출한 물체를 분류하는데 있어서 중요하다 생각되는 주요 feature들을 전체에 대해 클러스터링(k-means clustering)을 수행해 획득한 대표 feature들로 구성된다.
어떤 이미지 A가 있을 때, A로부터 feature들을 추출한 후 추출된 각각의 feature들에 대해 코드북 내에서 대응되는 가장 유사한 코드워드(codeword)를 찾는다. 그리고 코드워드들의 히스토그램(histogram)으로 이미지의 특징을 표현한다.
하지만 Bag of words 방법은 기본적으로 feature들의 히스토그램으로 이미지를 표현하기 때문에 feature간의 기하학적위치관계를 잃어버리는 문제점을 갖고있다.
Spatial pyramid Matching
이미지를 여러 단계의 장면으로 분할한 후 각 단계의 분할 영역마다 히스토그램을 구하여 이것들을 전체적으로 비교하는 방법.
Bag of words방법과는 다르게 추가적으로 이미지를 점진적으로 세분화해 가면서 분할 영역마다 히스토그램을 구해 이것들을 전부 모아 피라미드를 형성하고, 이렇게 형성된 히스토그램 피라미드를 서로 비교하며 두 이지 유사도를 측정하는 방식
이미지의 spatial 정보 유지 & 다른 featuer 레벨의 정보를 추출
SPP(Spatial pyramid Pooling)
CNN image classification에서 서로 다른 이미지의 크기를 고정된 크기로 변환하는 기법
오래전부터 컴퓨터 비전 영역에서 활용한 Spatial Pyramid Matching 기법에 근간을 둠
SPP - Net - Image Classification
1.image를 CNN에 통과시켜 feature map을 추출
2.미리 정해진 4*4, 2*2, 1*1 영역의 피라미드로 feature map을 나눠줌.
피라미드 한 칸을 bin이라 하는데, bin 내에서 max pooling을 적용해 각 bin마다 하나의 값을 추출하고,
최종적으로 피라미드 크기만큼 max값을 추출해 3개의 피라미드 결과를 쭉 이어붙여 고정된 크기의 vector를 만든다.
3.생성된 고정된 크기의 vector는 FC layer의 input으로 들어간다.
기존 RCNN에서는 selective search를 통한 2000개의 region proposal output을 CNN 모델에 넣어 2000번 연산을 해야 했던 것이, 개선된 방식에서는 spp를 통해 1번으로 줄어들었다.
SPP-net의 한계
여전히 모델을 학습시키기 위해선 여러 단계를 거쳐야 했음
Fully connected layer밖에 학습시키지 못함
RoI Pooling
Feature Map 상의 임의의 Roi(Region of interest)를 고정 크기의 grid의 Pooling 영역으로 매핑
매핑 시 max pooling 사용해 고정된 크기의 feature vector 추출
피라미드의 크기는 7*7
정수로 떨어지지 않을 경우 보간법 이용
Multi-task loss
feature vector를 Classification과 Regression Loss를 함께 반영한 Loss함수를 사용해 동시에 학습시킨다.
두 모델을 한번에 학습시키므로 각 모델을 독립적으로 학습시켜야 했던 RCNN과는 다르게 번거로움이 없다.
Multi-task Loss함수
classification loss와 regression loss를 합한 형태
p : softmax를 통해 얻어낸 k+1개의 확률값.
u : 해당 roi의 ground truth라벨 값t : 예측한 bounding box좌표를 조정하는 값v : 실제 bounding box 좌표의 값
Regression 함수
요약
1.CNN
input image1장을 selective search를 통해 region proposal을 뽑아냄
전체 이미지 1장을 CNN 모델에 넣어 생성된 feature map에 Roi Projection을 진행
2.Roi Pooling
Roi영역은 각기 다른 크기를 가지고 있으므로 ,크기를 고정해주기 위해 Roi Pooling을 진행해 fixed length feature vector생성
3.Classification & Bounding Box Regression
fixed length feature vector를 Fully Connected layer에 넣은 후 classification과 Bounding box Regression 진행
결과
1. R-CNN과 SPPnet을 뛰어넘는 성능을 보임
2.End-to-End로 Single Stage Training을 진행
3.Backpropagation가능
모든 computation을 share하여 End-to-end training을 진행해 역전파가 가능하다.
4.저장공간이 필요 없다.
RCNN의 경우 CNN에서 나온 feature map을 SVM진행단계에서 다시 불러와야 했는데, 이와 같은 과정이 없어졌다.
'AI > Computer Vision' 카테고리의 다른 글
5.Faster R-CNN (0) | 2022.03.20 |
---|---|
3.RCNN (0) | 2022.03.19 |
2.Object Detection과 Segmentation을 위한 주요 Dataset (0) | 2022.03.19 |
1. Object detection의 이해 (0) | 2022.03.16 |