Rich feature hierarchies for accurate object detection and semantic segmentation(R-CNN)
on Review
Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik (2014)
53.3% mAP를 달성하는 간단하고 확장 가능한 detection 알고리즘을 제안.
object의 localize와 segment를 위해 high-capacity의 CNN사용.
라벨링 된 훈련 데이터가 부족할 때 보조적인 task에 대한 사전 훈련을 감독하고 domain별 fine tuning을 통해 성능 향상. OverFeat네트워크보다 향상된 성능을 보여줌
R-CNN의 작동원리는 다음과같다.
- 이미지를 입력한다.
- 약 2000개의 region proposals을 추출한다
- CNN을 이용해 각 region proposal의 feature를 계산한다. (이 때, CNN에 넣어주기 위해 크기를 맞추는 warped region작업이 필요하다)
- region을 분류한다.
R-CNN의 작동원리를 3가지 모듈로 설명하면 다음과 같다.
- Region Proposal : 검출기에 사용할 수 있는 후보 탐지 세트를 정의
- CNN : 각 region으로부터 고정된 길이의 특징 벡터를 추출하는 대형 Convolution Neural Network
- Linear SVMs : 분류를 위한 Support Vector Machine
먼저 Region Proposals은 Object가 있을 것으로 추정되는 지역을 제안하는 것이다.
예시)
- objectness
- selective search
- category-independent object proposals
- constrained parametric min-cuts(CPMC)
- multi-scale combinatorial grouping
R-CNN은 Selective search방식을 사용한다.(이후 발표된 Faster R-CNN에선 이 selective search를 대체하는 Region Proposal Network를 제안했다.)
selective search의 작동원리는 다음과 같다.
- Efficient GraphBased Image Segmentation방법을 이용해 초기 region을 지정한다.
- 지정된 박스와 주변의 다른 박스 사이의 유사도를 계산한다
- 유사도가 높은 영역끼리 합쳐짐을 반복한다.
- 박스가 겹치기 않고 single region될 때까지 반복한다. 첫 번째가 가능성있는 2000여개의 박스를 그린 것이고, 유사도가 높은 것끼리 점점 합쳐가는 과정을 거친 후 최종적으로 겹치는 부분없이 single region이 된다.