Feature Extractor Network (이미지 분류에서 활용하는 CNN 네트웍 모델을 따라간다, backbone 이라고도 불린다. 맵의 크기는 줄어들지만 개수는 늘어나는 구조. 원본이미지에서 주요 feature 들을 뽑아내는 구조를 말함!)
Object Detection Network (별도의 네트웍. 바운딩박스는 어떻게 계산할 것이며, Classification 은 어떻게 할 것이냐?를 계산하는 범위. 계산된 Region Proposal을 받아 마무리 계산.)
288에서 544로 오르면 mAP는 늘었지만 (성능은 굿) FPS 는 떨어진다 (시간이 늘어난다)는 것을 알 수 있다.
결론적으로 두마리 토끼 사이에서 무엇을 잡을지, 둘 다 1등할 순 없지만 크게 뒤떨어지지 않게 잘하는 모델이 좋은 모델이라 할 수 있다. (이마저도 도메인에 따라 중요한 모델이 다를 것이다.)
Object Detection 에 처음으로 딥러닝을 적용한 모델이다.
Object Localization 은 기존 분류 모델(이미지 > Feature Extractor > Feature Map > FC Layer > Softmax score) 에 좌표값을 찾는 Regression 문제가 포함된 것이다. (Feature Map > Bounding Box Regression)
Detection 의 경우 여기에 Object 가 있을만한 위치를 먼저 예측하는 Region Proposal 을 더한다고 했다. (색, 무늬, 형태의 차이로 계층적 결합 vs. Sliding Window)
이렇게 Region Proposal 은 어디에 더해질까? 2000개의 Region proposal 을 뽑는다고 했을 때, 이들의 사이즈를 맞추고 Feature Extractor 네트웍에 집어넣는다.
다음은 논문의 그림이다.
따라서 각 proposal (2000개) 마다 CNN 계산을 적용시킨 후 SVM, regression 적용시킨다고 생각하면 된다. Inference 자체에서도 이 과정을 거치기 때문에 연산량이 많고 시간이 오래걸린다.
✅ Classification
분류는 어떻게 훈련될까?
✅ Regression
가운데 좌표와 너비로 구성된다.
모델의 목표는 SS proposal 영역의 가운데, GT의 가운데가 최소화되는 것이다. 너비의 차이도 최소화되어야 한다.
예측값을 만들 땐
Target
따라서 손실함수에선 위 x, y, w, h 를 모두 손실로 감안하여 계산하고, 앞의 Target 에서 뒤의 di(p) 를 뺀 것을 Objective 로 사용한다. 이때 d(p)는 위의 예측값을 좌변으로 조작하고 나눈 그 값이다! d(p) 는 결국 가중치의 값인데 이 loss 계산시 계산값이 아니라 가중치값만 이용하고 싶었던 거다.)
높은 Detection 정확도, but
너무 느린 Detection 시간과 복잡한 아키텍쳐, 학습 프로세스
이라는 문제들이 있었다.
그러나 RCNN은 딥러닝 기반에서 Object Detection 성능을 입증한 논문이며, Region Proposal 아이디어를 내었다는 점에서 의미가 깊다.