AI/Baseline

Selective Search, one of the Region Proposal

아인샴 2021. 2. 22. 23:50

2021/02/22 - [분류 전체보기] - 1-stage Detector VS 2-stage Detector

 

1-stage Detector VS 2-stage Detector

이전에 DetectoRS 이해를 위한 스텝을 나눴다. 2021/02/22 - [분류 전체보기] - Detecto RS를 이해하기 위한 기반 다지기 우선, DetectoRS는 object detection 알고리즘이고, object detection 은 객체의 위치가..

cho-akashic-records.tistory.com

여기서 2-stage의 2번째 순서에 나오는 개념은 자주 언급되니 짚고 넘어가자 

 

 

Region Proposal 이란?

Sliding window 개념 

기존에는 이미지 안에서 객체를 검출하기 위해 sliding window라는 방식을 사용했다. 

그림 4에서의 사과하나를 검출하기 위해 sliding window방식을 이용하면, 다양한 크기의 사각형을 준비하여 왼쪽 위부터 오른쪽 아래까지 창문을 열듯이 모든 창에서 구한 score를 비교하여 사과의 위치를 찾는다. 

이건 속도 측면에서 좋지 않다. 

잘 설명한 sliding 윈도우 

 

그래서 먼저 '뭔지 모르겠지만 일단 물체가 어디있는지부터' 위치를 찾는다.  이 방법의 예시로는 가장 유명하게 Selectvie search가 있다. (그리고 Edge box라는 방식이 있는데 기회가 되면 다뤄보자)

비교적 최근(2011)에 나온 방식으로 가장 작은 단위서부터 유사도가 높은 순으로 탐욕적으로(greedy) 합쳐나간다. 

  • 여기서 말하는 Bottom up방식이란, 객체라기엔 너무 작아 잘개 쪼개진 픽셀덩어리들이 점점 물체에 가까운 상태(level)로 올라간다는 뜻이다. 

SS의 단계 

1. 초기 sub-segmentation 수행 - 픽셀덩어리 영역을 추출한다. 

각각의 객체가 1개의 영역에 할당이 될 수 있도록 초기에 많은 영역을 생성한다. 

2. Greedy 알고리즘으로, 영역에서 비슷한 영역을 골라 그것들을 더 큰 영역으로 통합한다. 

초기에 작고 복잡한 영역도 유사도에 따라 점점 통합이 되는거 ㅅ같다. 

 

3. 통합된 영역을 바탕으로 후보영역을 만들어낸다. 

영역을 통합하여 후보영역을 만드는 과정

일단 Selective search는 여기까지만 본다. 

 

+a : SS(Selective search)의 결과는 일정한 수의 후보 (박스) 영역이며, RCNN에서 일정한 크기로 resize되어 CNN 모델에서 학습된다. 

 

--

여기까지 2-stage 에서 객체의 위치를 검출하는 하나의 방법을 알아봤다. 

 

 

출처 : 

1. 라온피플 머신러닝 아카데미 2. Selective Search blog.naver.com/laonple/220918802749

2. OpenCV Selective Search for Object Detection

www.pyimagesearch.com/2020/06/29/opencv-selective-search-for-object-detection/

www.pyimagesearch.com/2015/03/23/sliding-windows-for-object-detection-with-python-and-opencv/

3. (논문리뷰) R-CNN 설명 및 정리 ganghee-lee.tistory.com/35

4. docs.google.com/presentation/d/1aeRvtKG21KHdD5lg6Hgyhx5rPq_ZOsGjG5rJ1HP7BbA/pub?start=false&loop=false&delayms=3000&slide=id.g137784ab86_4_969