Contribution
- Fast R-CNN에서 모든 과정을 통합시켰지만 여전히Selective search 알고리즘은 외부에서 연산하므로 ROI 생성단계에서 병목현상이 발생
-> Region Proposal도 네트워크 내에서 수행할 수 있는 모델 개발
Model
Selevtive search는 cpu를 사용하여 느리기 때문에 RPN과 결합하여 모든 연산을 gpu를 통해 할 수 있는 통합된 모델을 만들었다.
Region Proposal Network(RPN)
- 고정된 크기의 윈도우를 sliding하여 객체 탐지
- 가운데 픽셀(파란점)을 기준으로 k개의 anchor box 생성(다양한 크기와 비율의 객체 반영)
- 객체 존재 여부(2k)와 위치(4k)를 출력
Fast R-CNN
- 이후 과정은 Fast R-CNN과 동일
- ROI에 대해서 classification과 Bounding box regression을 수행
Loss function
i: 앵커의 인덱스
pi: 해당 앵커가 객체일 확률
ti: bounding box regression을 통해 얻은 박스 조정 값 벡터
pi∗,ti∗: ground truth 라벨
Ncls: 미니배치 사이즈
Nreg: 앵커 개수
Lcls: logloss 이용
Lreg: L1 smooth loss
λ: 가중치
RPN Process
- CNN에서 뽑은 feature map을 input으로 받는다.
- feature map에 3x3의 필터를 256 or 512 채널만큼 컨볼루션 연산하여 intermediate layer를 얻는다. padding을 통해 HxW는 유지한다.
- 1x1 필터를 통해 classification과 bounding box regression을 수행한다. (입력 이미지의 크기와 상관 없이 모두 수행 가능)
- Classification: 2(객체 여부) * 9(앵커의 개수) 채널 수 만큼 수행. HxW의 각 좌표마다 18개의 채널이 생기는데 해당 좌표를 중심으로 하는 9개의 앵커 박스들이 object인지 아닌지에 대한 확률값이 담겨있다.(Softmax)
- Bounding Box Regression: 4(x,y,w,h) * 9(앵커의 개수) 채널 수 만큼 수행.
- Classification을 통해 얻은 object일 확률 값을 내림차순으로 정렬 후 K개의 앵커만 뽑는다. K개의 앵커들에 대해 각각 Bounding box regression 적용 후, NMS를 통해 ROI를 구한다.
Reference