使用HOG进行面部检测的特征选择

时间:2016-03-22 14:26:43

标签: face-detection feature-selection

早上好,我正在Matlab中实现面部检测的代码。我正在使用定向梯度直方图(HOG)进行特征提取。作为数据集我使用19x19图像:训练集:2,429个面部,4,548个非面部。我想知道如何调整HOG参数以便使用最佳的特征选择过程。我刚刚选择了cellsize参数为4X4。这是我正在使用的代码:

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]);

1 个答案:

答案 0 :(得分:0)

取决于图像尺寸"面部维度"。如果图像分辨率和脸部尺寸很小,最好使用较小的细胞。 4x4或8x8 但如果分辨率非常高,你可以使用更大的尺寸。

根据我的经验,我觉得8x8可以解决我工作中遇到的大多数问题。但是对于你的问题,你需要做多个实验。尝试使用不同的单元格大小来执行培训和测试,并根据结果确定最佳尺寸。