- 분류: Object Detection
- 저자: Ross Girshick, ,Jeff Donahue, Trevor Darrell, Jitendra Malik
- 소속: UC Berkeley
- paper: Rich feature hierarchies for accurate object detection and semantic segmentation
- 키워드: R-CNN, bounding-box regression, semantic segmentation, fine-tuning
주로 HOG(Histogram of Oriented Gradients) & SIFT(Scale-Invariant Feature Transform) 사용
→ 저수준 특징(low-level features) 활용으로 모델 구성
가장 좋은 성능을 보인 것은 여러 모델을 조합한 복잡한 앙상블 시스템
ImageNet에서의 획기적인 성능 향상 → 딥러닝 기반 접근법이 주목 받기 시작
→ 하지만, 이미지 분류/객체 검출은 다른 분야, CNN이 객체 검출에도 좋은 성능을 보일지 의문
⇒ 지역 제안(Region Proposals) + CNN = R-CNN 제안

전체 이미지를 처리하지 않고 선택적 탐색(selective search)로 존재 가능성이 높은 약 2000개의 지역(Region Proposals) 생성 후, CNN에 입력하여 특징 추출
→ 기존의 슬라이딩 윈도우 방식(OverFeat)보다 더 효율적 & 정확한 방법으로 활용
Selective Search(선택적 탐색)
객체 검출에서 바운딩 박스 후보 영역을 생성하는 기법
selective search가 필요한 이유: 기존 슬라이딩 윈도우의 문제점
→ Selective Search는 이러한 문제를 해결하기 위해 제안된 기법, 슬라이딩 윈도우 대신 ‘의미있는 후보 영역(region proposals)’만 선택하여 연산량을 줄이는 방법
Selective search 알고리즘 원리
저수준(low-level) 이미지 분할 기법을 기반으로 객체 후보 영역을 생성하는 방식
주요 과정
(1) 초기 이미지 분할(inital segmentation)
(2) 유사한 영역 병합(region merging)
(3) 다양한 크기 및 비율의 후보 영역 생성
(4) 최종 region proposals 출력
Selective search의 장점과 단점
연산량 감소
객체 크기 및 비율 고려 가능
객체의 윤곽과 일치하는 후보 영역 생성 가능
selective search는 색상, 텍스처, 크기 등을 고려하여 유사한 픽셀을 병합하므로 ,객체의 윤곽을 더 잘 따르는 후보 영역을 생성할 가능성이 높음
여전히 연산량 많음
end-to-end 학습 불가능
selective search는 딥러닝 모델이 아닌 전통저인 컴퓨터 비전 기법, CNN과 함께 학습이 불가능, 딥러닝 기반 최적화가 어려움
객체 탐지 정확도의 한계
selective search는 객체가 아닌 부분을 포함하는 바운딩 박스도 생성할 가능성이 높음. 작은 객체를 정확하게 찾기 어려울 수 있음
- 대규모 데이터셋(ILSVR2012)로 CNN을 학습한다.
- 학습된 모델에 객체 검출용 데이터셋(PASCAL VOC)로 fine-tuning을 한다.
-> 기존 방식(DPM 등)은 작은 데이터셋에서 학습하기 어려웠지만, 사전 학습 + 미세조정으로 적은 데이터로도 CNN 성능 극대화 가능
입력 이미지에서 지역 제안(region proposals) 생성
selective search 알고리즘으로 약 2000개의 후보 영역 탐색
제안된 영역을 CNN으로 특징 추출
→ 특징 추출기의 가능성, 전이 학습(Transfer learning)의 기반이 됨
SVM으로 feature vector 분류
객체별 선형 SVM 학습, 해당 영역이 특정 객체인지 판단
비최대 억제(Non-Maximum Suppression, NMS) 적용
중복된 검출 결과 제거, 최종적으로 객체 위치 결정


사전 훈련(ILSVRC) + fine-tuning(PASCAL VOC)의 효과 입증하기

→ 적은 데이터에서도 CNN의 성능을 극대화하는 데에 효과적
R-CNN은 높은 성능을 보이지만 속도가 느림
selective search는 고정된 제안 방식, CNN과 통합된 방식으로 개선이 가능함
→ 이후, Faster R-CNN, YOLO, SSD 등의 기반이 됨
bounding-box regression을 넘어 보다 정확한 객체 위치 조정 방법 개발 피리요
→ bounding-box regression은 객체 검출에서 필수적 기법이 됨
Bounding-Box Regression
객체 검출(Object Detection)에서 예측된 바운딩 박스의 위치를 더 정확하게 조정하기 위한 방법
필요한 이유
기존 객체 검출 모델은 객체가 존재하는 영역을 CNN을 통해 분류하는 방식 사용. 그러나,
초기 바운딩 박스가 정확하지 않음
selective search/region proposal network에서 생성된 바운딩 박스는 대략적 객체 위치만 제공 → 경계가 맞지 않거나 너무 크거나 작을 가능성 높음
객체의 크기와 위치가 다양함
→ bounding box regression을 통해 바운딩 박스의 위치를 조정하면 객체의 검출 정확도 향상
원리
단순히 바운딩 박스를 다시 예측하는 것이 아니라, 기존 바운딩 박스를 작은 범위 내에서 조정하는 방식
수학적 표현
모델은 기존 박스에서 보정값(offset)을 학습하여 적용
보정 후의 새로운 바운딩 박스
바운딩 박스 보정
bounding box regression의 학습 과정
일반적으로 회귀(regression) 문제, L2 손실(mean squared Error, MSE) 사용하여 학습
학습 데이터 구성
손실 함수
예측된 박스가 실제 정답 박스에 가깝도록 조정하는 것. 손실 함수로 L2 손실(MSE) 사용
*이 손실 함수가 최소화되도록 회귀 모델을 학습하여, 정확한 바운딩 박스를 예측할 수 있도록 함
bounding box regression의 성능 향상 효과
한계
- 바운딩 박스를 보정하는 방식이지만, 여전 객체의 형태까지 정확히 표현
- 객체의 위치를 조정하는 것만 가능, 픽셀 단위의 마스크(instance segmentation)까지 제공하지 못함
- 작은 객체 또는 겹쳐 있는 객체의 경우, bounding box regression만으로는 한계가 있음