안녕하세요~


이번글에서는 RCNN을 배우기전에 존재한 object detection 모델에 대해서 알아보도록 할게요~

이러한 개념들을 이해하고 있어야 RCNN이 등장한 Motivation에 대해서 이해하실 수 있어요. 그래서 이번글에서는 DPM이 동작하는 순서(architecture)에 대한 글을 다루려고 해요.






<1. DPM 동작순서>



1. Sliding window 


먼저 이미지 픽셀마다 (일정간격의 픽셀을 건너띄고) bounding box(window)를 그려줍니다.




2. block wise operation


하나의 이미지를 block단위로 나눕니다. 예를들어 아래와 같은 경우에는 8x8 pixel을 하나의 block 단위로 하여 여러 block들이 이미지를 구성하게 합니다.





3) SIFT or HOG block wise orientation histogram


Bounding box가 픽셀을 옮겨다니면서 하는 일에 대해서 말씀드릴게요.



Bounding box가 아래와 같은 위치에 있다고 가정해볼겠습니다. 그럼 해당 bounding box는 4x8 block ((4x8)x(8x8) pixles)을 포함하고 있어요.




그리고 해당 bounding box영역의 block 마다 Hog feature에 대해 histogram을 분석하여 해당 block의 특징들을 선별하게 됩니다. (Hog, SIFT와 같은 개념을 정확하게 모르셔도 되요. 그냥 이러한 특징들이 뽑힌다는 정도만 이해하시면 될 것 같습니다)






4) Classification


하나의 bounding box에 대한 feature들을 아래와 같이 수집했다면, 이를 토대로 classification 작업을 수행합니다.

    



Classification할 때에는 미리 template filter를 이용해요. 예를들어 얼굴에 대한 template filter가 bounding box영역의 block마다 얼굴 filter(=template filter)를 matching할거에요. 이렇게하면 template filter의 hog feature와 block의 hog feature들이 매칭될거에요 (이러한 방식을 template matching이라고 해요). Template matching결과 얼굴에 해당하는 block은 높은 값이 산출될 거에요.


 

얼굴 template filter가 bounding box내의 block을 돌아다니면서 어떤 block이 얼굴인지 SVM을 통해 classification하게 되요.



5) 요약


결국 아래와 같이 특정 bounding box에 해당하는 block들에 대해서 다양한 template filter들을 template matching 시키고 그 결과를 볼거에요. 예를들면,  이전에 사람객체에 bounding box가 되어 있으면 사람 전체에 대한 template filter(root filter=high context feature)를 bounding box에 적용시켜보고, 얼굴에 해당하는 template filter(low level image feature)를 적용해보고, 여러 template filter에 대해서 계산을 해보고 모두 합산한 결과 bounding box에 있는 feature가 사람이 갖고있는 특징 (여러 template filter) 을 포함하고 있다고 판단하면 해당 bounding box를 사람이라고 detection하게 될거에요. 


결국 다양한 template filter를 통해 SVM으로 classification 한 결과를 이용하여 최종적인 classification을 한 것이니까 ensemble 기법이 적용되었다고 할 수 있겠네요.


최종적으로 아래와 같은 구조로 DPM을 요약할 수 있겠네요. 







<2. 문제점>


뭔가 과정자체가 굉장히 복잡해요. low-level image들과 high-context 결과를 합산여 ensemble 기법을 적용하는 등... 



그리고, 일일이 sliding window를 통해 계산하면 굉장히 많은 bounding box가 형성될거고, 각각의 bounding box마다 복잡한 classification 과정을 거치게 될거에요.



기존에 갖고 있던 이러한 복잡한 object detection 방법들 때문에 한동안 object detection 영역에서 힘을 못쓰다가 CNN 분야인 AlexNet의 등장으로 획기적인 발전을 하게 되는데 그 모델이 R-CNN이에요.






[글 래퍼런스]

https://www.learnopencv.com/histogram-of-oriented-gradients/

(Oriented Gradient histogram에 대해서 설명)

http://darkpgmr.tistory.com/116

(HOG feature에 대해서 설명)

https://pdfs.semanticscholar.org/ca8b/11536d31cfc3dea486833296bcb67e1be780.pdf

(DPM 설명)

http://slideplayer.com/slide/8240331/

(DPM 수식 자세히 설명)


'Deep Learning for Computer Vision > Object Detection (OD)' 카테고리의 다른 글

6. SPP Net  (2) 2020.02.05
5. RCNN  (0) 2020.02.05
3. Object Detection과 CNN의 관계  (2) 2020.02.04
2-3. Object Detection 모델 평가지표 (FPS)  (6) 2020.02.04
1. Object detection이 뭔가요?  (0) 2020.02.03

+ Recent posts