Logical Scribbles
[객체 인식] Selective Search란? (Selective search for object recognition. IJCV, 2013) 본문
[객체 인식] Selective Search란? (Selective search for object recognition. IJCV, 2013)
KimJake 2023. 11. 20. 23:37
Sliding Window 방식의 단점은 이전 글에서 소개한 바 있다. 위의 글에서 sliding window 방식의 단점으로 여러개의 윈도우 사이즈, 그리고 여러개의 이미지 사이즈를 이용하여 찾아야 다양한 크기의 객체를 찾을 수 있어 모든 경우를 따져야 하므로 수행시간도 오래 걸리고, 생각보다 적절한 검출이 어렵다고 언급한 바 있다.
따라서 이러한 시간과 계산의 비효율성을 개선하기 위해 '물체가 있을 법한' 영역을 빠르게 찾아내는 알고리즘이 region proposal이다. 이러한 알고리즘 중 대표적인 Selective Search에 대해 알아보자.
" J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013. "
를 읽으면 더 자세한 내용을 알 수 있다.
Selective search 방식은 이 방식이 등장하던 시기 가장 효율적인 region proposal 방식이었다. 이 방식은 객체 탐지를 위해 객체가 있을 법한 영역을 빠르게 제안하여 계산 효율성을 높인다.
위 사진이 Selective Search를 찾아볼 때 가장 많이 등장하는 사진이다. 왼쪽에서 오른쪽으로 selective search의 과정을 한 눈에 보여주고 있다.
Selective search의 구체적인 작동 방식은 다음과 같다.
- 인풋 이지미에 대해 segmentation을 실시해서 이를 기반으로 후보 영역을 찾기 위한 seed를 설정한다
- 1번에 의해 알고리즘 초반에는 상당히 많은 region들이 생성된다.
- 이를 적절한 방식을 통해 통합해 나간다.
- segmentation은 후보 영역의 개수가 줄어들고, 결과적으로 이를 바탕으로 객체가 존재할만한 box의 후보 개수도 줄어든다.
이를 그림으로 이해해 보자.
1. 먼저 인풋 이미지에 대해 sub-segmentation을 진행한다. 이 때 엄청나게 많은 후보들이 생성된다.
2. 이후, 반복적으로 작은 영역을 큰 영역으로 결합한다.
- Set of regions에서, 가장 유사한 두 가지를 선택한다.
- 선택된 두 영역을 1개의 영역으로 합쳐버린다.
위의 두 Step을 iteration을 통해 반복적으로 수행해나간다.
3. Segmented region proposals를 사용하여 candidate object locations를 생성한다.
Selective Search 알고리즘의 고려사항 및 특징은 다음과 같다.
- Capture All Scales : hierarchical algorithm(Bottom-up 방식)를 사용해 모든 scale의 object를 계산한다. (이는 자연스럽게 수행된다.)
- Diversification : region들을 그룹화 하는 단 한 개의 최적 기준이 있는 게 아니다. 유사한 색으로 인해 하나의 객체로 묶일 수도 있고 질감, 테두리, 조명 등의 영향을 받을 수 있다.
- Fast to Compute : practical object recognition framework에 사용될 수 있을 정도로 빠르다.
이제 이 Selective Search 알고리즘을 pseudo code로 살펴보자.
인풋으로 이미지가 들어가고 아웃풋으로는 가능한 영역들이 나올 것이다.
먼저 초기 영역들을 구해주고(엄청나게 많을 것이다.) similarity set S(처음에는 공집합이다.)를 설정한다.
for문에서는 인근 영역에 대해 유사도를 계산하여 S에 넣어준다.
while문에서는 서로 다른 세그먼트 또는 그룹간의 유사성 중 유사도가 가장 높은 두 영역을 뽑아내어 합쳐주고, 그 두 영역과 관련되어 있는 모든 유사도를 지운다. 이 과정이 서로 다른 영역을 병합할지 결정하는 과정인데, 유사성 계산은 다양한 요소를 기반으로 한다.(색상, 질감, 크기, 그리고 모양을 고려하여 계산한다.)
이후 합쳐진 영역을 기반으로 합쳐진 영역 주변의 유사도를 계산하여 S를 업데이트 해주고, 기존의 R(region의 집합)에 새로운 영역을 업데이트 해준다.
만약 S가 다시 공집합이 되면 while문이 멈추고 제안된 영역들이 return된다.
다음 포스팅에서는 selective search를 적용하여 region proposal을 진행해보자.
끝!
'딥러닝 > 딥러닝 이론' 카테고리의 다른 글
[딥러닝] RNN(Recurrent Neural Network)이란? (1) | 2023.11.23 |
---|---|
[객체 탐지] NMS (Non-Maximum Suppression) (0) | 2023.11.21 |
[객체 탐지] Hard Negative Mining 이란? (0) | 2023.11.20 |
[최적화] 서포트 벡터 머신(SVM)은 Convex 문제? (0) | 2023.11.18 |
[객체 탐지] 2-Stage Dectector 와 1-Stage Detector (0) | 2023.11.18 |