굴러가는 분석가의 일상

[Object Detection] Slide Window & Selective Search 개념 본문

Computer Vision

[Object Detection] Slide Window & Selective Search 개념

G3LU 2024. 3. 16. 00:55

💡 Sliding Window & Regional Proposal

Object Detection은 여러 객체에 대한 위치와 클래스를 분류하는데, 복잡한 Feature Map이 도출되기에 객체를 분류하는데 어려움이 있습니다. 그럼 Feature Map를 간단하게 만들기 위해서는 어떻게 해야할까요? 생각보다 단순합니다. 입력 데이터를 일정한 크기의 간격으로 나누고, 각각의 나눈 영역에서 객체를 찾는다면 해결할 수 있습니다. 이러한 방식을 Sliding Window라고 합니다.  

 

즉, Sliding Window는 일정 크기의 Window(노란색 상자)를 왼쪽에서 오른쪽으로 움직이면서, 각각의 Window 내의 Feature Map를 도출하여 객체를 인식하는 방식입니다.

 

그렇다면 만약 일정 크기의 Window가 객체의 크기 보다 훨씬 크다면, 객체를 인식하지 못할 것 입니다. 아래의 사진과 같이 기린이라는 객체는 세로로 길쭉한데, 정사각형 모양의 Window로 찾기란 큰 어려움이 있습니다. 

 

이러한 문제점을 해결하기 위해서는, 아래의 GIF와 같이 Window 크기를 고정하되 입력 이미지의 크기를 변경하는 방식을 사용합니다. 

 

 "남자"라는 객체를 찾기 위해 Sliding Window가 지속적으로 좌우로 움직이며, 전체적으로 훑고 있습니다. 하지만 여기에서 문제점은 바닷가/돌/건축물 등 다양한 다중객체에 대해 탐색하고 있으며, 계산량이 상당히 많아지는 것을 알아챌 수 있습니다. 만약 이러한 Sliding Window의 문제점을 해결하기 위해, 추정해보면 어떨까요?? 

 

즉, 일일이 이미지를 전체적으로 훑는 것이 아니라, 입력 이미지의 유사한 특성을 가지고 있는곳에 객체가 있을거 같다 라는 추정을 하는 것이 Regional Proposal 이라고 합니다. Regional Proposal 방식은 Sliding Window에 비해 빠르다는 장점이 있으므로, Sliding Window는 거의 사용되고 있지 않습니다. Regional Proposal 방식을 활용하는 대표적인 모델인 Selective Search이며, 이에 대해서 알아보도록 하겠습니다. 


💡 Selective Search(선택적 탐색)

 

Selection Search가 존재하기전에는 후보가 될 만한 대상의 크기 및 비율이 모두 다른 상황을 고려하여 후보 영역을 찾는 기법인 완전탐색(Exhaustive Search) 방법이 있었습니다. 이러한 방식에서 Segmentation(픽셀단위 탐지)을 결합하여 개선한 것이 Selection Search입니다. 선택적 탐색은 아래와 같은 방식으로 진행됩니다.

 

1. 초기 영역 생성 : 입력된 이미지에 존재하는 각각의 객체(티비/사람 등)가 영역 한 개에 할당될 수 있도록 Segmentation을 진행하게 됩니다. 이를 통해 이미지의 각 부분이 어떻게 서로 연관되어 있는지 파악하는데 도움을 줍니다. 

 

2. 영역들의 통합 : 서로 연관되어 있는 조그만한 그룹화하여 더 큰 영역을 형성하게 됩니다. 이때 탐욕(Greedy) 알고리즘을 사용하여 더 큰영역이 될때 까지 반복을 하는데, 이는 객체의 잠재적인 위치를 표현하게 됩니다.

 

3. 유사성 계산 : 유사성을 기반으로 2단계에서 진행하였던 것 처럼, 유사한 영역들을 병합하여 조금 더 큰 영역을 형성하게 됩니다. 이후, 후보영역(바운딩 박스)을 추출하여, 객체를 탐지하게 됩니다.