Mar*_*rio 5 matlab image-processing object-detection feature-detection matlab-cvst
我想知道,如果对于像"汽车"这样的对象的HOG描述符有任何实现,而对于MATLAB中的人类则不是吗?
但万一,只有人类,你能指导我到那个代码,并给我如此提示,以改善用于"汽车或摩托车等对象"的代码
这是一个优秀的 Matlab 代码,它完全实现了 Dalal 算法。我已经在许多重大学术项目中测试并使用了该代码。
http://hi.baidu.com/fpmaldfoamdfmze/item/4f3b3ac881affcb00c0a7b11 所有功劳归发布此内容的人!
HOG 并不特定于行人检测。您可以将它与任何刚性(或近似刚性)物体一起使用。
要使用此代码,您需要了解如何在区域上计算 HOG。该区域被划分为重叠的“块”。块由许多“单元”组成。在每个块中计算空间方向直方图。最终向量是通过连接这些空间直方图形成的。您可以调整的参数是
cellpw, cellph:分别是单元格的像素宽度和高度。
nblockw, nblockh:分别按 x 和 y 方向上的单元数计算的块大小。
nthet:角度箱的数量。
issigned:是否采用有符号或无符号梯度
重叠:指定为分数的块之间的重叠量
isglobalinterpolate:3d 直方图的全局插值还是局部插值
normmethod : 使用的范数类型
您可以先尝试使用默认参数 -
细胞pw = 8; 细胞PH=8;n块w = 2; n块=2;nthet = 9;重叠=0.5;isglobalinterpolate = 'localinterpolate'; 已签名 = '未签名'; 规范方法 = 'l2hys';
在 matlab 中获取该功能就像
I = imread('car.png');
Ig = rgb2gray(I);
F = hogcalculator(Ig, 8, 8, 2, 2, 9, 0.5,'localinterpolate', 'unsigned', 'l2hys');
Run Code Online (Sandbox Code Playgroud)
F 的尺寸/长度取决于您选择的参数。
回答您的评论,是的,您必须为正面(汽车)和负面(非汽车)图像构建这些功能来构建检测系统。SVM 通常用作分类器。我建议使用 libsvm 库 -
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
构建训练集后,即可使用训练集进行训练。调整 SVM 参数以获得最高精度。示例中给出的参数可能不是最好的,您可以随时尝试不同的设置。我会先尝试更改 nthet、cellpw 和 cellph。祝你好运!