资源简介
经典的行人检测算法,利用HOG和SVM实现此算法。已调试可以正常运行。

代码片段和文件信息
%Matlab版HOG代码
function F = hogcalculator(img cellpw cellph nblockw nblockh...
nthet overlapissigned normmethod);
% HOG特征由Dalal在2005 cvpr 的一篇论文中提出
% NORMMETHOD:重叠块中的特征标准化函数的方法
% e为一个设定的很小的数使分母不为0
% v为标准化前的特征向量
% ‘none‘ which means non-normalization;
% ‘l1‘ which means L1-norm normalization; V=V/(V+e)
% ‘l2‘ which means L2-norm normalization; V=V/根号(V平方+e平方)
% ‘l1sqrt‘V=根号(V/(V+e))
% ‘l2hys‘l2的省略形式。将V最大值限制为0.2
if nargin < 2
% 在DALAL论文中指出的在rows:128*columns:64情况下的最佳值,设定为DEFAULT
cellpw = 8;
cellph = 8;
nblockw = 2;
nblockh = 2;
nthet = 9;
overlap = 0.5;
issigned = ‘unsigned‘;
normmethod = ‘l2hys‘;
else
if nargin < 9
error(‘输入参数不足.‘);
end
end
[M N K] = size(img); %M为行数,N为列数,K为维数
if mod(Mcellph*nblockh) ~= 0 %行数必须为块的高度的整数倍
error(‘图片行数必须为块的高度的整数倍.‘);
end
if mod(Ncellpw*nblockw) ~= 0 %列数必须为块的宽度的整数倍
error(‘图片列数必须为块的宽度的整数倍.‘);
end
if mod((1-overlap)*cellpw*nblockw cellpw) ~= 0 ||... %要使滑步后左边是整数
mod((1-overlap)*cellph*nblockh cellph) ~= 0
error(‘滑步的像素个数必须为细胞单元尺寸的整数倍‘);
end
%设置高斯空间权值窗口的方差
delta = cellpw*nblockw * 0.5;
%计算梯度矩阵 梯度的计算【-1,0,1】效果是很好的,而3*3的sobel算子或者2*2的对角矩阵反而会系统的降低效果
hx = [-101];
hy = -hx‘; %转置
gradscalx = imfilter(double(img)hx); %imfilter是滤波器,hx表示滤波掩膜
gradscaly = imfilter(double(img)hy);
if K > 1
gradscalx = max(max(gradscalx(::1)gradscalx(::2)) gradscalx(::3)); %取RGB中最大值
gradscaly = max(max(gradscaly(::1)gradscaly(::2)) gradscaly(::3));
end
gradscal = sqrt(double(gradscalx.*gradscalx + gradscaly.*gradscaly)); %梯度矩阵 gradscal
% 计算梯度方向矩阵
gradscalxplus = gradscalx+ones(size(gradscalx))*0.0001; %防止为0,所以gradscalx加了0.0001
gradorient = zeros(MN); %初始化梯度方向矩阵
% unsigned situation: orientation region is 0 to pi.
if strcmp(issigned ‘unsigned‘) == 1 %无向的情况
gradorient =...
atan(gradscaly./gradscalxplus) + pi/2; %加pi/2因为atan的区间取值从-pi/2开始
or = 1;
else
% signed situation: orientation region is 0 to 2*pi. %有向的情况
if strcmp(issigned ‘signed‘) == 1
idx = find(gradscalx >= 0 & gradscaly >= 0);
gradorient(idx) = atan(gradscaly(idx)./gradscalxplus(idx));
idx = find(gradscalx < 0);
gradorient(idx) = atan(gradscaly(idx)./gradscalxplus(idx)) + pi;
idx = find(gradscalx >= 0 & gradscaly < 0);
gradorient(idx) = atan(gradscaly(idx)./gradscalxplus(idx)) + 2*pi;
or = 2;
else
% error(‘Incorrect ISSIGNED parameter.‘);
error(‘参数ISSIGNED输入有误‘);
end
end
% 计算块的滑步
xbstride = cellpw*nblockw*(1-overlap); %x方向的滑步
ybstride = cellph*nblockh*(1-overlap);
xbstridend = N - cellpw*nblockw + 1; %x方向块左角能达到的最大值
ybstridend = M - cellph*nblockh + 1;
% 块总数=ntotalbh*ntotalbw
ntotalbh = ((M-cellph*nblockh)/ybstride)+1; %除了第一个,后面每
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 42770 2011-10-30 21:59 pedestrain\alpha.mat
文件 173 2011-10-30 21:59 pedestrain\bias.mat
文件 9572 2011-05-11 18:32 pedestrain\HOG.m
文件 3809 2013-01-18 11:51 pedestrain\main.asv
文件 3811 2011-10-21 15:40 pedestrain\main.m
文件 290 2011-05-14 15:28 pedestrain\myplot.m
文件 211 2011-11-04 16:42 pedestrain\narrowarray.mat
文件 1072 2013-01-17 20:31 pedestrain\newSVM.asv
文件 1072 2011-10-30 22:46 pedestrain\newSVM.m
文件 176 2011-10-30 21:59 pedestrain\nsv.mat
文件 234689 2011-05-12 14:43 pedestrain\people0.png
文件 234689 2011-05-12 14:43 pedestrain\postive\people0.png
文件 234689 2011-05-12 14:43 pedestrain\postive\people0_2.png
文件 234689 2011-05-12 14:43 pedestrain\postive\people0_3.png
文件 234689 2011-05-12 14:43 pedestrain\postive\people0_4.png
文件 1556 2011-05-15 15:42 pedestrain\readimg2.m
文件 965 2011-10-28 21:50 pedestrain\readneg.m
文件 983 2013-01-18 11:51 pedestrain\readpos.asv
文件 984 2011-10-28 20:37 pedestrain\readpos.m
文件 1279012 2013-01-17 17:25 pedestrain\testvector.mat
文件 815 2013-01-17 22:51 pedestrain\TSVM.asv
文件 803 2013-01-17 22:54 pedestrain\TSVM.m
目录 0 2013-01-24 17:20 pedestrain\postive
目录 0 2013-01-18 10:28 pedestrain
----------- --------- ---------- ----- ----
2521519 24
相关资源
- Anti-biofilm Activity of Resveratrol and Ursol
- 基于蚁群算法优化SVM的瓦斯涌出量预
- 基于模糊聚类和SVM的瓦斯涌出量预测
- 基于CAN总线与ZigBee的瓦斯实时监测及
- SVM-Light资料,使用说明
- 果蝇算法融合SVM的开采沉陷预测模型
- BoW|Pyramid BoW+SVM进行图像分类
- 基于libsvm的图像分割代码
- 基于SVM及两类运动想象的多通道特征
- 小波包和SVM在轴承故障识别中的应用
- 林智仁教授最新版本LibSVM工具箱
- 台湾林教授的支持向量机libsvm
- 3D_HOG 代码
- 新闻分类语料
- libsvm-3.20
- 7种支持向量机SVM工具包
- A Practical Guide to Support Vector Classifica
- libSVM的代码详细解析,注释非常详细
- 台湾林志恒的LIBSVM的中文简体说明文
- SVM算法-回归拟合程序.zip
- hog特征提取,c版本代码
- 基于Grid-Search_PSO优化SVM回归预测矿井
- 新冒落带高度算法FOA-SVM预计模型
- 官方最新版本libsvm-3.23
- 基于PCA和SVM的个性化睡眠分期研究
- 基于svm四种工具箱
- 自然语言处理之文本主题判别
- HOG+SVM实现数字识别
- 人车分类识别 HOG特征+KNN分类器
- opencv自带SVM分类器使用程序
评论
共有 条评论