Attention please

Object Detection이란 무엇일까? 본문

딥러닝/CNN

Object Detection이란 무엇일까?

Seongmin.C 2022. 12. 30. 21:08

Object Detection?

지금까지 CNN 모델은 분류(classification) 문제에 적용되어왔다. 즉, 어떤 image가 들어오게 되면 해당 image가 무엇인지 분류하는 작업을 해왔다. 이 classification에 객체의 위치를 특정해주는 Localization 개념이 포함되면 그것을 Object Detection이라 부른다.

 

 

Classification : 개, 고양이, 사자, 표범과 같이 특정 image가 어떤 객체인지 class를 분류하는 것을 의미한다. 보통 CNN 모델만을 사용하며 Object Detection과 Segmentation 모델의 backbone으로 사용된다.

 

Classification + Localization : Localization은 1개의 object의 위치를 bounding box로 특정해주는 것을 의미한다. 

 

Object Detection : 여러개의 object의 위치를 bounding box로 특정해주고 또 동시에 각각의 object의 class도 분류한다.

 

Segmentation : Pixel level로 Object Detection을 수행한다. bounding box 대신 object의 위치를 픽셀 단위로 특정한다. 

 

 

 

 

 

 

Region Proposal

Region Proposal은 object가 있을 만한 영역을 여러개 추출해주는 것을 의미한다. Image의 모든 픽셀이 object에 대한 픽셀일 수 없다. 배경에 대한 픽셀일 수도 있고 object에 대한 픽셀일 수도 있다. 즉, object를 나타내는 픽셀만을 찾기 위해 object가 있을 법한 픽셀의 영역을 대거 추출하는 것을 Region Proposal 이라고 한다.

 

Region Proposal에는 크게 Sliding Window, Selective Search 2가지 방법이 존재한다. 

 

 

 

Sliding Window

이 기법은 시계열 데이터를 cross-validation 할 때 자주 사용되는 방법이다. 이와 비슷한 방식으로 Object Detection에도 Sliding Window 기법이 존재한다. 

 

 

Image에서 object를 찾기 위해 전체 이미지에서 적당한 크기의 영역으로 나눈 후 각 영역에 대해 반복적으로 localization network를 적용해 보는 방식이다. 

 

 

마치 convolution kernel이 input image를 sliding하는 것과 비슷하다 볼 수 있다.

 

하지만 sliding window를 적용하면 의미없는 픽셀에 대해서도 network연산을 계속 해주어야하기 때문에 계산 속도가 느려진다. 그렇다고 stride를 넓히면 정확도가 떨어져 효율적인 기법이라 볼 수 없다. 

 

 

 

Selective Search

sliding window 기법의 단점을 보안하고자 나온 것이 바로 Selective Search 이다. selective search 알고리즘에 대해 간단히 설명하자면 Image 픽셀의 컬러, 무늬, 크기, 형태에 따라 유사한 Region을 단계적으로 그룹핑을 해주어 계산하는 방식이다. 

 

처음에는 Image의 object가 들어있을 법한 여러개의 bounding box를 생성한 후 selective search 알고리즘을 통해 최적의 bounding box을 선정하여 Region Proposal을 해준다.

 

 

 

 

 

 

 

Metrics

Detection 성능을 평가하기 위한 평가 지표는 크게 IoU, mAP 2가지가 있다.

 

이에 대한 설명은 이전 글에 설명되어 있다.

 

 

 

 

Comments