답변:
SVM을 구현할 수 있으면 기능을 양자화 할 수 있습니다. :)
일반적으로 기능은 k- 평균 군집화를 사용하여 양자화됩니다. 먼저 "어휘 크기"가 무엇인지 (예 : 200 "시각적 단어") 결정한 다음 해당 클러스터 수 (200)에 대해 k- 평균 군집화를 실행합니다. SIFT 디스크립터는 128 개의 요소, 즉 128 차원 공간의 포인트로 구성된 벡터이다. 따라서 다른 지점과 마찬가지로 클러스터를 시도 할 수 있습니다. 많은 기능을 사용하여 분류하려는 이미지와 유사한 많은 이미지에서 SIFT 설명자를 추출합니다. (이것은 별개의 이미지 세트 여야하지만 실제로 사람들은 종종 훈련 이미지 세트에서 기능을 얻습니다.) 그런 다음이 큰 SIFT 디스크립터 세트에서 k- 평균 클러스터링을 실행하여 200 개 (또는 그 밖의) 클러스터로 분할합니다. 즉, 각 설명자를 클러스터에 할당합니다. k- 평균은 200 개의 클러스터 센터를 제공합니다.
그런 다음 이미지의 각 SIFT 설명자를 가져와 가장 가까운 클러스터의 중심을 찾아 200 개의 클러스터 중 어느 클러스터에 속하는지 결정합니다. 그런 다음 각 클러스터의 기능 수를 세어보십시오. 따라서, SIFT 기능이 여러 개인 이미지의 경우에는 200 개의 빈이 있습니다. 이것이 SVM에 제공하는 기능 벡터입니다. (기능이라는 용어는 지나치게 과부하되어 있습니다).
내가 기억 하듯이,이 히스토그램이 어떻게 정규화되어야하는지에 관한 많은 연구가 있었다. 나는 틀렸을 수도 있지만, 이진 특징 벡터 (즉,이 클러스터에서 적어도 하나의 특징이 존재하면 1, 그렇지 않으면 0)가 히스토그램보다 더 효과적이라고 주장하는 논문을 회상하는 것 같습니다. 자세한 내용은 문헌을 확인해야하며 세부 사항은 중요합니다.
편집 : MATLAB 용 Computer Vision System Toolbox는 이제 다양한 기능을 제공합니다 .