2014-02-26 2 views
0

MatLab 내에서 LIBSVM 및 HOG를 사용하여 훈련 데이터를 생성하려고합니다.호그 디스크립터와 함께 LIBSVM 사용

나는 3780 X 1 (더블) 짧은 조각 하나 개 이미지의 HOG 기술자를 계산 한

: 난을 분류하려면 어떻게

svmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']); 

: 나는 가정

0 
    0 
0.0181 
0.7746 
    0 
    0 
    0 
    0 
0.4692 
0.5279 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
0.4692 
0.5279 
0.0016 
0.0018 
0.2826 
0.2535 
    0 
    0 
0.2728 
0.0451 
    0 
    0 
0.1788 
0.0209 
    0 
    0 
0.0501 
0.0059 
    0 
    0 
0.1320 
0.0137 

가 training_instance_matrix입니다 이 벡터에서 생성 할 요소

training_label_vector 

?

+0

SVM은 바이너리 감독 방법입니다. 따라서 데이터 집합을 두 그룹으로 분리합니다. 교육을 위해 모델 매개 변수에 가치를 부여하기 위해 쌍을 이루는 데이터 (즉, 관찰, 레이블)를 제공해야합니다. 기본적으로 training_label_vector는 각 그룹에 속한 그룹을 말하는 바이너리 벡터 일 수 있습니다. 참고 : http://cs229.stanford.edu/notes/cs229-notes3.pdf – tashuhka

+0

응답 해 주셔서 감사 드리며 전제를 이해합니다. 그러나 저는 여전히 혼란 스럽습니다. 내 'training_instance_matrix'에 대해서는 3780 x 1 특징 설명자 벡터 인 하나의 이미지의 HOG 디스크립터를 생성했습니다. 제 문제는 요소를 어떻게 분류 할 지 모르겠다는 것입니다. – Gwenji

+0

예를 들어, 사진에 탐지하려는 사람이있는 경우 사람의 픽셀에 1을 사용하여 동일한 크기의 행렬을 만들고 그렇지 않은 경우 0을 만듭니다. 그런 다음 특성 벡터에 맞게 행렬의 크기를 조정하십시오. – tashuhka

답변

0

요약 :

SVM 이진 감독 방법이다. 따라서 데이터 집합을 두 그룹으로 분리합니다. 교육을 위해 모델 매개 변수에 가치를 부여하기 위해 쌍을 이루는 데이터 (즉, 관찰, 레이블)를 제공해야합니다. 기본적으로 * training_label_vector *는 각 그룹에 속한 그룹을 나타내는 바이너리 벡터 일 수 있습니다.

개인 또는 비거주로 각 사진을 포함하거나 포함하지 않는 것으로 분류하려는 경우. 당신은 N = 100 샘플을 가지고 있고, 각 샘플은 M = 3780 특징을 가지고 있습니다. 마지막으로, 귀하의 피처 행렬의 크기는 NxM = 100x3780이고 레이블 벡터의 크기는 Nx1 = 100x1입니다. 레이블 벡터는 사람이있는 사진에 1을, 그렇지 않으면 0을가집니다 (이 구성은 실제로 임의적입니다).