我目前正在尝试在一系列真实镜头图像中检测头部,并使用 HOG 特征描述符和 SVM 作为分类器。
目前我在这个链接中找到的 MATLAB 中 使用Dalal 的 HOG 实现代码:http: //www.mathworks.com/matlabcentral/fileexchange/46408-histogram-of-orientation-gradients--hog--code-using-matlab
目前我正在使用此链接中找到的libSVM MATLAB版本: http ://www.csie.ntu.edu.tw/~cjlin/libsvm/
我准备了 350 张正面训练图像和 1243 张负面训练图像。
将训练图像中提取的hog特征向量转换为libsvmFormat,输入libsvm训练方法,得到模型。hog 向量长度是 1764 的长度。
关于 libSVM,我选择了这些作为参数:
-s 0 (i.e. C-SVC)-c 1 (i.e. cost = 1)-t 2 (i.e. kernel = RBF)-g 3 (i.e. gamma = 3 (this is for kernel))
关于 HOG 版本,我保留了 cell、bin 和 block 参数,因为它们在上面链接中显示的实现中。
我正在使用大小为 128x128 和 256x256 的扫描窗口扫描整个图像以检测可能的头部。在每个窗口中,为每个图像提取 hog 特征向量并输入到 libsvm predict 中,以测试是否应将其分类为头部。
但是,在完成上述所有操作之后,我有大量的假阴性并且无法弄清楚我做错了什么。
有经验的人可以就可能出现的问题提供一些建议吗?我真的需要弄清楚这一点。非常感激!