Object Detection(객체 검출): R-CNN, Fast R-CNN, Faster R-CNN

Object Detection

Object detection은 다수의 사물이 존재하는 상황에서 각 사물의 위치와 클래스를 찾는 작업이다.

이미지 출처

Object Detection 방식

2-Stage Detector

  1. 위치를 찾는 문제(localization)
    • 물체가 있을법한 위치를 찾는다.
    • 하나의 이미지 안에서 사물이 존재할 법한 위치를 찾아 나열하는 과정을 region proposal이라고 한다. 위치에 대한 정보를 제안한다.
  2. 분류(classification) 문제
    • 각각의 위치에 대해서 class를 분류한다.
    • 여기서 regression은 이미지 내의 사물이 존재하는 bounding box를 예측하는 문제이다.
  • 2-stage Detector는 localization과 classification을 구분해서 순차적으로 해결하는 방식이다.

1-Stage Detector

  • 위치를 찾는 문제(localization)과 분류(classification) 문제를 한 번에 해결한다.
  • 정확도는 2-stage detector 보다 낮다.
  • 대표적인 예시는 YOLO이다.
    - Faster R-CNN 보다 정확도는 낮지만 속도가 훨씬 빠르다.

R-CNN 계열 기법


R-CNN (Regions with CNN features)

  1. Selective search를 이용해 2,000개의 RoI(Region of Interest)를 추출한다.
  2. 각 RoI에 대하여 warping을 수행하여 동일한 크기의 입력 이미지로 변경한다.
  3. Warped image를 CNN에 넣어서(forward) 이미지 feature (vector)를 추출한다.
  4. 해당 feature를 SVM에 넣어 class 분류 결과를 얻는다.
    • 각 class에 대해 독립적으로 훈련된 binary SVM을 이용한다.
  5. 해당 feature를 regressor에 넣어 위치(bounding box)를 조절해 예측한다.
- RoI == Region proposal

Bounding Box Regrssion

R-CNN의 한계점

  • 입력 이미지에 대해여 CPU 기반의 selective search를 진행하므로 많은 시간이 소요된다.
  • 전체 아키텍처에서 SVM, Regressor 모듈이 CNN과 분리되어 있다.
    - CNN은 고정되므로 SVM과 Bounding Box Regression 결과로 CNN을 업데이트할 수 없다. (end-to-end 방식으로 학습 불가능)
  • 모든 RoI를 CNN에 넣어야 하기 때문에 2,000번의 CNN 연산이 필요하다.
    - 학습과 평가 과정에서 많은 시간이 필요하다.

Fast R-CNN

  • 기존 R-CNN의 성능을 개선했다.
    - 속도적인 측면에서 많은 향상이 있었다.
  • Feature map을 뽑기 위해 CNN을 한 번만 거친다.
  • CNN 구조 상, feature map은 input image에 대해 각각의 위치에 대한 정보를 어느정도 보존하고 있다.
  • 이후에 RoI pooling을 통해 각각의 region들에 대해 feature에 대한 정보를 추출한다.
  • 기본적인 CNN 네트워크를 이용해 softmax layer을 거쳐 각각의 class에 대한 probability를 구한다.

RoI Pooling Layer


Faster R-CNN

  • RPN(Region Proposal Network)는 Region proposal을 위한 모든 연산을 GPU 상에서 가능하도록 한다.
    - Selective search의 시간적인 단점을 해결한 대안이다.
  • Feature map을 보고 어느 곳에 물체가 있을 법한지 예측할 수 있도록 한다.
  • 한 번의 forwarding만 수행하면 바로 어느 곳에 물체가 있을 법한지 예측할 수 있다.

  • RPN은 단순히 물체가 있을법한 위치를 제안하는 역할이므로, 전체 class에 대한 결과가 아닌 물체가 있는지 없는지에 대한 여부만 두 개의 output으로 알려준다.
  • Regression layer은 bounding box의 위치를 잘 예측할 수 있도록 한다.

R-CNN 계열 기법들의 발전 방향 및 장단점


Region Proposal

- Faster R-CNN은 sliding window 방식을 사용한다.


Object Detection 정확도 측정 방법

Precision & Recall

- 모든 영역에 대하며 전부 사물이 존재한다고 판단을 하면 재현율은 높아지지만, 정확도는 떨어진다.
- 매우 확실할 때만 (confidence가 높을 때만) 사물이 존재한다고 판단하면 정확도는 높아지지만, 재현율은 떨어진다.

Average Precision

- mAP: mean average precision

Intersection over Union (IoU)

- IoU는 true positive인지 false positive인지 결정할 수 있는 기준이다.
- Object detection 모델이 도출해낸 bounding box가 실제 정답 bounding box와 유사한지 평가하는 척도이다.

NMS (Non Maximum Suppression)

- 중복된 bounding box를 줄이는 방법이다.

Reference

나동빈님의 논문 읽기 영상을 참고하여 글을 작성했습니다.

  • 객체 검출(Object Detection) 딥러닝 기술: R-CNN, Fast R-CNN, Faster R-CNN 발전 과정 핵심 요약 (https://youtu.be/jqNCdjOB15s)
  • R-CNN: Regions with CNN features (CVPR 2014)
  • Fast R-CNN (ICCV 2015)
  • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (NIPS 2015)

좋은 웹페이지 즐겨찾기