hog 行人检测 matlab,hog+svm_行人检测matlab程序

转自:

hog+svm_行人检测matlab程序【仅供大家理解用】

关于这个matlab程序,需要说明的是:

1、检测时的运行速度超级慢,以16个像素作为扫描时的步长,从1000*1000的大图里检测出最终结果,在2.5GHz的CPU下需要20多分钟时间。主要的时间消耗在两个地方,一个是计算HOG,这个在之前的日志里已经说过了,还有一个是用libsvm的rbf核分类。如果用线性核的话,上述时间会降到十分钟以内,但也是令人难以容忍的,而且检测效果会打折。。。程序里所有的部分都是遵从原始文献中给出的算法写的,只求能运行起来,仅供大家理解原理用。。。

2、使用libsvm时对参数没有做任何的优化,全部默认。

3、关于各个m文件

produceTestSampleMatData.m

用于生成测试样本集(小图,用于检查train.m与train_with_hard_neg_samples.m的效果)

produceTrainSampleMatData.m

用于生成训练样本集(小图)

train.m

用于第一次训练(需要一两个小时)

produceTrainSamplesWithHardNegSamples.m

用于生成带有HardSamples的训练样本集(小图,需要消耗很长时间,将近两天)

train_with_hard_neg_samples.m

用于第二次训练(需要好几个小时,消耗很大内存,将近2.5G)

testPeople.m

在大图中测试,时间消耗在1中已经说了。这个是个GUI程序,先点击载入图像,然后点击检测,最后会把多个尺度下检测到的结果融合,融合调用的是clustering_loc.m,这个函数包括三个融合参数,delta_x,delta_y,delta_s,具体怎么调,我也没弄清楚,只是照论文把程序编出来了而已,但总的来说,数越大,融合的越狠,它们的物理意义可以参见dalal的博士论文。我只测试了几个大图,因为慢,没耐心等,效果一般,不算差,但也没多好。

这几个m文件的使用顺序同上面所列顺序一致,而且运行时需要手工点击一个一个来。前面的m文件都是为后边的m文件提供数据的(以mat格式保存,115网盘里上传了testPeople.m所需的文件MODEL_FANLE.mat,所以可以直接运行testPeople.m),需要注意的一点是train_with_hard_neg_samples.m里我直接用一个大矩阵把所有样本存起来了,最终大概有18000个样本,这样大的单一矩阵32bit版本的matlab下定义不了,而且svm训练时matlab占用的内存达到2.5G,内存小点的机器这个程序就不能跑了。。。我为了偷懒,直接找了台4GB内存的电脑,装了64bit的linux和matlab搞定了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值