早上好,我正在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]);
答案 0 :(得分:0)
取决于图像尺寸"面部维度"。如果图像分辨率和脸部尺寸很小,最好使用较小的细胞。 4x4或8x8 但如果分辨率非常高,你可以使用更大的尺寸。
根据我的经验,我觉得8x8可以解决我工作中遇到的大多数问题。但是对于你的问题,你需要做多个实验。尝试使用不同的单元格大小来执行培训和测试,并根据结果确定最佳尺寸。