object detection이란 무엇인가?

1. motivation

 

semantic segmentation에서는 서로 다른 물체더라도 같은 class로 구분하는 한계가 있었다

 

최근에는 이런 서로 다른 물체도 구분하는 instance segmentation, panoptic segmentation 등이 등장했다

 

 

어떻게 가능할까? 서로 다른 물체를 구분하기 위해 필요한 기술이 object detection이라는 object를 탐지하는 기술이다

 

단순한 semantic segmentation보다 더욱 구체적으로 이미지를 인식하게 도와준다.

 

 

2. object detection이란?

 

classification과 bounding box를 동시에 추정하는 문제

 

구체적으로 이미지 내 특정 object를 bounding box로 위치를 특정하고

 

해당 박스내 물체의 category까지 분류해야한다.

 

 

3. bounding box는 어떻게 찾을까?

 

대표적으로 좌측 상단(top left) 점 1개와 우측 하단(bottom right) 점 1개로 유일하게 사각형을 결정시킨다

 

혹은 둘 중 점 1개와 높이(h), 너비(w)를 이용하여 결정시키기도 한다

 

 

4개의 bounding box 위치 결정 모수와 class 분류 모수로 5개를 추정

 

당연히 단순 class 분류보다는 더욱 고난이도

 

 

4. 어디에 사용할 수 있을까?

 

무인자동차에서 주변 물체를 탐지하는데 사용할 수 있다

 

무인자동차에서 object detection

 

object detection은 이렇게 산업가치가 커서 주목받고 있는 기술이다

 

OCR에서 특정 글자를 인식하는데 사용할 수 있다.

 

OCR에서 사용한 object detection

 

5. gradient based object detection

 

image내에서 개별 pixel들의 변화율을 계산한 pixel gradient는 경계선을 탐지하는데 중요하다

 

왜냐하면 object의 경계선 안밖에서는 pixel값이 급격하게 변할 것이기 때문이다

 

경계선 특징을 잘 모델링하면 물체의 detection을 잘 할 수 있을 것

 

이미지 내 경계선 별 특징을 뽑고 SVM으로 관심물체인지 판별하는 알고리즘이 Histogram of Oriented Gradient

 

방법이 복잡한데 요약해서 기술하면 이미지를 구역별로 나누고

 

거기서 edge를 검출하는 kernel로 edge 검출해서

 

다음으로 gradient 변화를 이용한 orientation map을 계산해서

 

이것을 한줄로 이어붙이면 histogram of oriented gradient가 되는데

 

이 과정을 구역별로 이동하면서 다 구해서 concat 후에 SVM에 넣어서 object detection을 한다고 한다

 

 

(a)는 경계선을 파악하는데 gradient가 중요하다는 것을 보여줌

 

(e)는 경계선별 특징을 파악한 분포인데 이것을 linear classifier에 넣어서 가중치를 학습하고

 

가중치를 visualization해보면 positive로 구분되는 것은 (f)로 사람형태

 

negative로 구분되는 것은 (g)로 형태를 알수없다

 

 

6. selective search

 

object detection을 위해서는 물체를 특정하는 bounding box를 구할 필요가 있는데 이것을 수행하는 box proposal 알고리즘이다

 

사람이나 특정물체 뿐만아니라 다양한 물체 후보군에 대해서 영역을 제한해준다

 

먼저 초기 영역을 최대한 많이 지정해준다. 각각의 객체가 1개의 영역에 할당될 수 있도록 많은 영역을 지정한다

 

분할된 이웃 박스 영역들 간에 유사도를 계산하여 순간 순간에 최대한  비슷한 영역들끼리 합쳐준다(greedy 알고리즘)

 

유사도의 기준은 gradient 분포부터 색깔 등 다양하다

 

서로 엉켜있는 모든 박스들이 single region이 될때까지 반복한다

 

 

1번에서 초기 영역을 지정하고 2번처럼 유사도를 기준으로 통합하는 과정을 거치며

 

3번처럼 모든 엉켜있는 box들이 최대한 single region이 될때까지 계속 반복

 

여기서 중요한 점은 greedy 알고리즘으로 학습할 수 있는 neural net 알고리즘이 아니기 때문에 최적을 보장하는 것이 아니다

 

box를 구하는것 자체가 사실 object detection의 일부분이라고 생각할 수 있어서 초창기부터 꽤 많이 사용해옴

TAGS.

Comments