: CNN을 이용한 첫 알고리즘으로 R-CNN은 Regions with CNN features의 약자이다.
1. Image Input : takes an input image
2. Extract region proposal(~2k) : extracts around 2000 bottom-up region proposals(물체가 있을법한 2천개의 지역 추출)
++ region proposals : 바운딩 박스가 어디에 위치해 있어야 하는지 신경망 제안하는 절차
3. Compute CNN features : computes features for each proposal using a large convolutional neural network (CNN)
4. Classify regions : classifies each region using class-specific linear SVMs
이다.
RCNN은 물체가 있을 법한 2천개의 지역의 도출로부터 4096차원의 특성 벡터를 도출해 낸다. 위의 이미지처럼 선택적 탐색은 초기의 작은 크기의 세분화 영역을 설정하고, 이를 계층적으로 그룹 알고리즘을 사용하여 병합하고, 이를 바탕으로 영역을 제안하는 단계로 진행된다.
여기서 사용하는 CNN 모델은 227x227 컬러 이미지를 입력으로 받아서 5개의 컨볼루션 층과 2개의 fully-connected 층을 거쳐서 특성을 도출해주는 역할을 한다.
cnn을 통과하면서 SVM부분에서 분류를 하며, regessor부분에서는 bounding box regression을 진행하는데 이는 이전의 레이블과 cnn에서 형성된 바운딩박스의 차이를 구해 조정을 하는 절차이다.
이러한 과정을 통해서 분류를 진행하며 다수의 클래스에 대해 확률이 존재하여 가장 높은 확률의 값이 되게 된다.
또한, 바운딩 박스는 계속해서 크기를 조정해나가는 과정을 통하게 된다.
R-CNN은 계산시간이 너무 오래걸려서 추후에 나오는 Fast R-CNN, Faster R-CNN, Mask R-cnn으로 점차 발전해 나가게 된다.
R-CNN 논문 링크 : https://arxiv.org/pdf/1311.2524.pdf
참고 링크 :
1. https://www.youtube.com/watch?v=W0U2mf9pf8o
2. https://neurohive.io/en/popular-networks/r-cnn/