* 이 포스트는 컴퓨터 비젼에 대한 개인 학습용으로 작성한 포스트입니다.
Sliding-Window based Object Detection
물체를 인식하는 것보다, 인식해야할 물체가 어디있는지 탐지(detect)하는 과정이 우선되어야 할 것이다. 어떤 것을 탐지할지 sliding-window를 사용한다. 이미지에서 모든 sub window를 고려하고 각 window에 대해 decision (물체가 포함되어있는지 아닌지) 작업이 필요하다.
결국, 이미지 전체의 feature가 사용되고, feature extraction을 얼마나 잘하느냐가 중요한 문제가 된다. 앞에서 포스팅한 것처럼 color histogram 등의 pixel based representation방법도 있지만 좀더 robust한 결과를 이끌어내기 위해 edge, contour등을 사용하는 gradient-based representation이 많이 사용된다.
Boosting
Boosting은 처음부터 강한 classifier를 사용하는 것보다 여러개의 weak classifier를 사용하여 전체적으로 강한 classifier를 만드는 방법이다. Weak classifier로 sample들을 분류했을 때, misclassified sample들은 weight를 강하게하여 다음 round에서 영향력이 커지도록 만든다.
최종적으로 원하는 만큼의 round를 실행하고, 최종 classifier는 weak classfier들을 wieghted sum하여 얻어진다. 이 때, 가중치는 해당 round에서 error가 클수록 작게 설계한다.
Example - Face Detection (AdaBoost)
AdaBoost는 매우 간단한 "Rectangular" filter들을 사용하여 학습한다. Filter들은 180,000개 이상으로 매우 많으며, 각 round마다 classified, misclassified sample을 분류하고 가장 좋은 threshold를 선택한다.
Sub window가 많을수록 시간이 매우 많이 소요되므로, Efficiency를 위해, 빠르고, negative를 잘 분류할 수 있는 (이거는 face가 절대 아니다) classifier를 먼저 사용한다.
SVM (Support Vector Machines)
Feature 공간상에 positive, negative sample들이 존재할 때, linear classifer를 사용하여 분류하고자 한다. 이때, margin을 최대로 하는 classifier를 사용한다. 이때, 그 기준이 되는 sample을 support vector라 한다.
Classifier (w, b)를 기준으로 sample들은 아래의 식에 따라 positive, negative로 분류되고, 최종 아래의 부등식으로 나타낼 수 있다. 정확히 1이 되는 vector는 support vector가 된다.
Margin을 최대화 하는 문제는 아래의 quadratic optimization problem을 푸는 것과 같다.
아래의 식으로 constraint를 포함한 식으로 바꿀 수 있다.
Linearly separable하지 않은 경우에는 kernel trick을 사용하여 해결한다. Kernel function을 사용하면 더 높은 차원의 space로 확장하는 효과를 주어, linearly sparable해지게 되므로 SVM을 사용할 수 있다.
여러가지 label에 대해 classify를 하는 경우에는 두가지 방법이 있다. 첫번째는 하나의 label과 나머지 모든 label에 대해 분류하는 것이고, 두번째는 하나의 label에 대해 voting하는 방법이 있다.
Image recognition를 위한 SVM는 다음 절차로 요약할 수 있다.
1. 각 example에 대한 representation을 define
2. kernel function을 선택
3. pairwise kernel value를 계산
4. kernel matrix를 통해 SVM optimization 진행
'Basic Learning > Computer Vision' 카테고리의 다른 글
Categorization I (0) | 2020.11.20 |
---|---|
MRF and MAP Inference (0) | 2020.11.18 |
Epipolar Geometry and Stereo (0) | 2020.11.13 |
Homography & Alignment (0) | 2020.10.27 |
Fitting (0) | 2020.10.25 |