Object Detection(객체 검출): R-CNN, Fast R-CNN, Faster R-CNN
Object Detection
Object detection은 다수의 사물이 존재하는 상황에서 각 사물의 위치와 클래스를 찾는 작업이다.
Object Detection 방식
2-Stage Detector
- 위치를 찾는 문제(localization)
- 물체가 있을법한 위치를 찾는다.
- 하나의 이미지 안에서 사물이 존재할 법한 위치를 찾아 나열하는 과정을 region proposal이라고 한다. 위치에 대한 정보를 제안한다.
- 분류(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)
- Selective search를 이용해 2,000개의 RoI(Region of Interest)를 추출한다.
- 각 RoI에 대하여 warping을 수행하여 동일한 크기의 입력 이미지로 변경한다.
- Warped image를 CNN에 넣어서(forward) 이미지 feature (vector)를 추출한다.
- 해당 feature를 SVM에 넣어 class 분류 결과를 얻는다.
- 각 class에 대해 독립적으로 훈련된 binary SVM을 이용한다.
- 해당 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)
Author And Source
이 문제에 관하여(Object Detection(객체 검출): R-CNN, Fast R-CNN, Faster R-CNN), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeongjae96/Object-Detection객체-검출-R-CNN-Fast-R-CNN-Faster-R-CNN저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)