我是靠谱客的博主 鳗鱼招牌,最近开发中收集的这篇文章主要介绍hog+svm_行人检测matlab程序【仅供大家理解用】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转自 http://hi.baidu.com/nokltkmtsfbnsyq/item/60fa118c32ecb023110ef352

很抱歉好久没有登录博客,看到这个博客的好多人都问我与SVM结合的问题,我把HOG相关的程序整理了下,有一部分被弄丢了,准备重新写,不过好在最后在邮件的附件里面又找到。。。汗。。拖了点时间。程序压缩上传到了115网盘,下载链接:http://115.com/file/angcz83d

关于这个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搞定了。

转载于:https://www.cnblogs.com/wszzdyyp/archive/2012/10/14/2723619.html

最后

以上就是鳗鱼招牌为你收集整理的hog+svm_行人检测matlab程序【仅供大家理解用】的全部内容,希望文章能够帮你解决hog+svm_行人检测matlab程序【仅供大家理解用】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部