2016-03-22 17 views
0

おはよう、私はMatlabで顔検出用のコードを実装しています。私は、特徴抽出のための方向性勾配(HOG)のヒストグラムを使用しています。データセットとして、私は19x19画像を使用しています:トレーニングセット:2,429人の顔、4,548人の非顔。私は知りたいと思う最高のフィーチャ選択プロセスで作業するためにHOGパラメータを調整するにはどうすればいいですか?私はちょうど4X4にcellsizeパラメータを選択しました。これは、私が使用しているコードです:顔検出にHOGを使用した機能選択

cellSize = [4 4]; 
hogFeatureSize = length(hog_4x4); 


trainingFeatures = []; 
trainingLabels = []; 

%Load Faces Training 

for i=1:nface 
    string = [face_folder,folder_content(i,1).name]; 
    img = imread(string); 
    % Apply pre-processing steps 
    lvl = graythresh(img); 
    img = im2bw(img, lvl);  
    features(i, :) = extractHOGFeatures(img, 'CellSize', cellSize); 
    trainingLabels = [trainingLabels; 1]; 
end 

trainingFeatures = double([trainingFeatures; features]); 

%Load Non-Faces Training 

folder_content = dir ([non_face_folder,'*',file_ext]); 
nface = size (folder_content,1); 
features=[]; 

for i=1:nface 
    string = [non_face_folder,folder_content(i,1).name]; 
    img = imread(string); 
    % Apply pre-processing steps 
    lvl = graythresh(img); 
    img = im2bw(img, lvl);  
    features(i, :) = extractHOGFeatures(img, 'CellSize', cellSize); 
    trainingLabels = [trainingLabels; -1]; 
end 

trainingFeatures = double([trainingFeatures; features]); 

答えて

0

画像サイズ「顔の大きさ」によっては。画像の解像度と顔のサイズが小さい場合は、より小さなセルを使用する方が良いです。 4x4または8x8 解像度が非常に高い場合は、より大きなサイズを使用できます。

私の経験に基づいて、私は8x8が私が取り組んでいた問題のほとんどのために良い結果につながると感じます。あなたの問題では、複数の実験を行う必要があります。さまざまなセルサイズを使用してトレーニングとテストを実行し、その結果に基づいて最適な次元を把握できます。