2016-03-22 4 views
0

Доброе утро, я реализую код для обнаружения лица в Matlab. Я использую гистограмму ориентированных градиентов (HOG) для извлечения функции. В качестве набора данных я использую 19x19 изображений: Набор для обучения: 2,429 лиц, 4548 лиц без лица. Я хотел бы знать, как настроить параметры HOG, чтобы работать с лучшими функциями выбора. Я только что выбрал параметр cellize для 4X4. Это код, который я использую:Выбор функции с использованием 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 приводит к хорошим результатам для большинства проблем, над которыми я работал. но для вашей проблемы вам нужно сделать несколько экспериментов. попробуйте выполнить обучение и тестирование, используя разные размеры ячеек, и на основе результатов вы можете найти лучший размер.