본문 바로가기

🤖딥러닝

[딥러닝] Object detection(Region proposal / Sliding window / Selective search)

반응형

 

1.  Object detection

이미지 내에서 사물을 인식하는 방법에는 다양한 유형이 존재하는데, 그중 Object detection에 대해 정리하고자 한다. Object detection은 이미지내에 불특정 다수의 object가 있을때, 각 object의 위치와 클래스정보를 알려주는 것이다. object detection을 접근하는 아이디어는 크게 2가지가 있다. 예를 들어, 한 장의 이미지에 고양이, 강아지, 오리 등의 다양한 object가 있을 때 고양이(클래스)는 여기에(위치), 강아지는 저기에 이러한 정보를 맞추는 것이다.

 

➰ 아이디어1️⃣: Regression

앞서 Localization을 regression으로 간주했듯, regression을 기반으로 object detection을 접근해보면 어떨까?

Localization은 object의 수가 정해져 있는 상태에서 regression을 적용했기 때문에 잘 작동했지만, object detection의 경우 이미지에 몇 개의 object가 있는지 확실하지 않은 상태에서 regression을 적용하게 되면 이미지에 따라 object의 수가 달라지고 그에 따라 output의 개수도 달라지므로 적절하지 못한 방법이다.

 

 

 

➰ 아이디어2️⃣ : Classification

object detection을 하는 방법에 대한 두 번째 아이디어는 classification으로 간주해보자는 것이다. 이미지의 각각 다른 부분에 claaifier를 돌림으로서 이미지마다 output의 사이즈가 변하는것(즉, 이미지 마다 object의 수가 달라지는것)을 해결하겠다는 아이디어이다. 하지만 이 방법에도 몇가지 문제점이 있는데, 우선 너무 많은 위치와 스케일에 대해서 테스트를 해야한다는것이다. 그럼에도 불구하고 다양한 크기의 window를 이미지의 다양한 영역에 시도하는것이 해결책으로 제시되고 있다. 두번째 문제점은 CNN 같은 무거운 classifier를 써야 하는 경우, 모든 영역에 모든 스케일을 보기에는 너무 연산이 많아진다는 것이다. 따라서 이러한 문제점을 해결하기 위해 object가 있을 것이라고 생각되는 영역만 보도록 하는 방법이 제시되었는데 이를 'Region proporsal'이라고 한다.

 

 

 

 

02.  Region proposal

'Region proposal'은 이미지에서 유사한 색/ 텍스쳐 등을 가지고 있어 object가 있을 것 같은 영역을 잡아내는 것이다. 이때 region proposal은 class-agnostic 하다. 즉 class와 무관한 detector로 class는 신경 쓰지 않고 그냥 object가 있을것같다 싶으면 모두 잡아내는 방법이다. region proposal은 매우 속도가 빠르다는 장점이 있지만 정확도에는 별로 신경쓰지 않는 방법이다. region proposal을 하는 방법은 크게 2가지가 있다. 

 

➰Sliding window

region proposal을 하는 첫 번째 방법은 sliding window를 사용하는 것이다.

sliding window에 대한 내용은 아래 링크 참고

🖇https://bigdaheta.tistory.com/49?category=975541

 

 

 

➰Selective search

region proposal을 적용하는 두 번째 방법은 selective search이다. 이는 어떠한 이미지에서 색상/텍스쳐가 유사한 픽셀끼리 묶어주는 것부터 시작한다. 그다음 픽셀 단위보다 조금 더 크게 덩어리 짓고, 또 한 번 merge 하여 더 큰 덩어리로 만들어주어 region proposal을 하는 것이다. 즉, 이미지 전체를 convolution으로 검사하는 것이 아니라 위의 사진에서, 초록색 네모 부분만 가지고 검사하도록 하여 훨씬 효율적으로 처리할 수 있게 된다.

 

 

 

03. object detection의 detector

object detection은 크게 2-stage 방식과 1- stage방식으로 나눌 수 있다.

 

 

➰ 2-stage detector

2-stage detector는 물체의 위치를 찾는 문제(localization)와 분류(classification) 문제를 구분해서 순차적으로 해결하며 대표적으로 R-CNN, Fast R-CNN, Faster R-CNN이 있다.

1) 하나의 이미지가 주어졌을 때 해당 이미지 내에서 물체가 있을법한 위치를 찾아 나열(region proposal) 

2) 각각의 위치에 대해 feature를 추출하여 클래스 부여(classification) & 물체에 대한 위치를 정확하게 조절(regression)

*이때, regression은 이미지 내, 사물이 존재하는 bounding box의 좌표를 예측하는 것

 

 

➰ 1-stage detector

 1-stage 방식은 물체의 위치를 찾는 문제(localizaion)와 분류(classification) 문제를 한 번에 해결한다. 일반적으로 2-stage 방식보다 더 빠르게 동작하지만 정확도는 더 낮으며, 대표적인 1-stage방식으로 YOLO가 있다. 

 

 

🖇참고문헌

-https://www.youtube.com/watch?v=y1dBz6QPxBc&list=PL1Kb3QTCLIVtyOuMgyVgT-OeW0PYXl3j5&index=7

-https://www.youtube.com/watch?v=jqNCdjOB15s

반응형