Object Detection 문제는 CNN의 이미지 분류 문제와 유사하지만 거기에 더해 추가로 Localization 정보가 필요하다. Localization는 분류 대상이되는 물체가 이미지에서 1. 존재하는지 여부 2. 어디에 위치하는지 3. 사이즈는 어떻게 되는지 등의 정보를 담고있다.
거의 모든 Object Detection에 자주쓰이는 요소기술은 아래와 같다.
용어정리
Bounding Box : 사진에서 object를 detect한 박스를 Bounding Box라고한다.
Ground-truth : 녹색 bounding box로 실제 object영역이다. 참고로 빨간색은 예측된 영역이다.
Confidence Score : bounding box의 object 포함여부, 그리고 얼마나 정확하게 object를 포함하고있는지를 반영하는 스코어
region proposal이 object에 여러개의 bounding box를 그리는 과정이라면 non max suppression은 이렇게 겹쳐버린 많은 box중에 가장 confidence가 높은 box만 남기고 나머지는 제거하는 과정으로 다음과 같이 진행된다.
1. 가장 objectness score가 높은 bb를 선택한다. 아래 그림에서는 녹색 box가 될 것이다.
2. IOU 측정을 통해 녹색 box와 어느정도 overlap되는 box들을 모두 삭제한다. 여기서 어느정도라는 것은 사용자가 임의의 IOU threshold는 설정한 후 IOU 연산을 했을 때 이 값보다 높은 box들을 말한다.
3. 위의 절차를 나머지 box에 대해서 반복해서 수행함으로써 겹치는 bounding box들을 제거해나간다.
ROI를 통해 나온 결과는 flatten과 FC layer를거쳐 어떤 객체 class인지를 예측하는classifier 과정과 예측된 bounding box를 object에 맞게 미세조정하는 regressor과정을 최종적으로 진행한다.
아래 그림은 class가 bicycle포함 7개인 예시이고 따라서 오른쪽 벡터가 4x7개의 원소로 표현되었다. 여기서 4는 bounding box의 위치(x,y)와 넓이/높이(w/h)를 의미한다.
이 과정을 수식으로 표현하면 region proposal에 의해 대략적으로 제안된 bounding box가 Pj(k)로 주어졌을 때 실제 box인 B와의 IOU 연산을 통해 가장 근접한(IOU가 가장큰) Bi(k)가 추출된다. (j는 예측된 bounding box의 개수, i는 이미지 속의 object의 개수 또는 실제 bounding box의 개수)
ground-truth classification에서 IOU값이 0.5보다 작을 때 맨앞의 원소가 1인 것은 배경(background)를 의미하는 class이다.
RCNN의 손실함수(cost function)는 아래와 같이 corss-entropy함수를 통해 minimize되는 쪽으로 가중치를 갱신하게된다.