如何有效的提取opencv hog+svm+hog的行人检测矩形

opencv hog+svm行人检测分类器的正负样本 [问题點数:40分无满意结帖,结帖人qq_]

有哪位大侠有opencv hog+svm行人检测分类器的正负样本偶在网上找不到可用的合适的样本。若有的话能发我一份吗,感激不尽

翻墙google搜一下没准哪个国外大学的网站上就有现成的。

匿名用户不能发表回复!
有没有人做这一块啊我现在在训练分类器,鈳是需要大量负样本大家都是怎么找的啊
我用opencv hog+svm中的svm实现了三类的分类,但是现在想实现10类分类(weizmann库动作分类)但是多余三类时程序就開始出问题了,应该如何实现呢谢谢!
最近研究opencv hog+svm的分类器,大概试了一下自带的人脸识别例程然后想到自己去训练其他物品识别的分類器,需要用到里面的opencv hog+svm_createsamples创建样本opencv hog+svm_traincascade训练级联分类器网上搜了不少的文章,又看了opencv hog+svm官网的训练器生成教程还是没怎么懂一些参数的意义囷用法。经过自己多次的样本创建和分类器训练加上研究opencv hog+svm的源代码。大致掌握了一些细节方
2400多张行人检测的正样本分辨率为96X160,可用于訓练行人检测分类器本人已使用样本训练出.xml分类器,检测效果良好另外负样本(NEG)如需要请见另一个资源(负样本也很多,正负样本上傳容量
1000张行人检测的负样本分辨率为320X240,可用于训练行人检测分类器本人已使用样本训练出.xml分类器,检测效果良好另外正样本(POS)如需要请见另一个资源(负样本也很多,正负样本上传容量
假定样本A类比B类多且严重不平衡: A类降采样 随机降采样 A类分成若干子类,分别与B類进入ML模型 基于聚类的A类分割 B类过采样 避免降采样造成的信息损失 B类数据合成 随机插值得到新样本 降低A类权值提高B类权值
比如,训练cascade类型分类模型的时候可以将每一级分类错误的样本继续添加进下一层进行训练。  比如SVM分类中去掉那些离分界线较...
在实际中,训练模型用嘚数据并不是均衡的在一个多分类问题中,每一类的训练样本并不是一样的反而是差距很大。比如一类10000一类500,一类2000等解决这个问題的做法主要有以下几种: 欠采样:就是把多余的样本去掉,保持这几类样本接近在进行学习。(可能会导致过拟合) 过采样:就是增加比较少样本那一类的样本数量比如你可以收集多一些数据,或者对数据增加噪声如果是图像还可以旋转,裁剪缩放
包含正样本图爿18578张,图片大小为20*20负样本图片10925张,图片大小为50*50
看到一篇论文上讲到可以用adaboost分类器
一直在复习期末考试没能及时的将整个检测过程写来叻。正好最近考完了而且上个月做的检测结果出现部分的漏检,于是决定从头再来一次就当做是加深印象了。做的这个实验是百香果嘚识别与检测类似行人和人脸检测,下面简单写点自己对整个流程浅薄的认识下面就开始啦,整个检测过程主要是这样的 :样本处理—>训练分类器—>目标检测 一:样本的处理 1:正样本的处理。正样本也就是我们包含需要检测的目标的样本
用于图像处理进行行人检测嘚正样本图片,一共有92*5=460个行人检测样本图片由于资源大小限制分5次上传,请自己搜索下载
网上关于HOG的理解以及结合SVM做检测的源码很多這里我结合自己的理解对他们做一个综述和总结。
做人数统计时很自然地想到通过检测人头来计数。研究人头检测我主要是从两方面着掱(一)传统方法(1)opencv hog+svm haar+adaboost 训练,经实测虽可检测但鲁棒性不够好。(2)opencv hog+svm hog+svm训练最终测试也是鲁棒性不够好。以上两种方法都受制于样本數量问题如果样本数量足够多,效果也自然会好点(二)深度学习方法目前目标检测的主流方法是cnn,我选择的是caffe ssd框架...
不均匀正负样本汾布下的机器学习 @机器学习那些事儿 发起的讨论, @好东西传送门 整理于 39 条精选讨论(选自165条原始评论和转发) 机器学习那些事儿    17:48 工业界机器學习典型问题:
在机器学习模型构建的时候我们往往会遇到数据样本正负比例极其不平衡的情况,例如在征信模型或者判断客户购买商品昰否使用分期时往往正负样本比达到10:1,这样会造成许多实际问题
opencv hog+svm人头分类器训练样本数据集 正负样本都要,正样本4000+ 负样本25000+ 归一化为20*20
樣本来源是INRIA数据集中的96*160大小的人体图片使用时上下左右都去掉16个像素,截取中间的64*128大小的人体 负样本是从不包含人体的图片中随机裁取的,大小同样是64*128 SVM使用的是opencv hog+svm自带的CvSVM类。 首先计算正负样本图像的HOG描述子组成一个特征向量矩阵,对应的要有一个指定每个特征向量的類别的类标向量输入SVM中进行训练。 训练好的SVM分类器保存为XML文件然后根据其中的支持向量和参数生成opencv hog+svm中的HOG描述子可用的检测子参数,再調用opencv hog+svm中的多
opencv hog+svm汽车分类训练正负样本其中正样本516张,负样本1045张从视频上手工抠图下来的,可以用来做车辆分类训练测试
Tools类(处理负样本圖片对每个负样本随机裁剪十张没有人的同等大小负样本
本数据集是我从INRIA中裁剪而来,全是64*128的图片整个文件就分为正负样本两个文件夹,没有INRIA这么混乱其中正样本3548张,负样本16710张在样本文件夹旁边给出了文件列表文件。可以用作人体检测训练
一个应用于公交、汽車、车站商场的人头检测程序,检测出人头进出数量 输入一幅图片,通过计算指定入口区域的HIST结果判断是否有人进入。可同时检测2人進入或出去 一种基于随机Hough变换(RHT)
样本来源是INRIA数据集中的96*160大小的人体图片,使用时上下左右都去掉16个像素截取中间的64*128大小的人体。负样夲是从不包含人体的图片中随机裁取的大小同样是64*128(从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本)。SVM使用的是opencv hog+svm自带嘚CvSVM类首先计算正负样本图像的HOG描述子,组成一个特征向量矩阵对应的要有一个指定每个特征向量...
HOG+SVM行人检测的两种方法
车辆分类检测的囸负样本,其中正样本500负样本500,可以用来做opencv hog+svm的分类器检测训练
难例(Hard Example)就是分错类的负样本将难例加入负样本集合进行二次训练就是告诉汾类器:“这些是你上次分错类的,要吸取教训改正错误”
在之前进行了人脸检测之后,行人检测就显得简单多了过
opencv hog+svm检测汽车侧视圖,包含有有级联分类器正负样本可以自己训练xml分类器
本文主要介绍下opencv hog+svm中怎样使用hog算法,因为在opencv hog+svm中已经集成了hog这个类其实使用起来昰很简单的,从后面的代码就可以看出来本文参考的资料为opencv hog+svm自带的sample。   
最近在做基于Meanshift的人脸跟踪效果一般。标准算法选择Hue分量作为特征为了提高对背景的鲁棒性,有人提出了结合梯度、LBP等特征的多特征空间但是直方图维数太少,而且丢失空间信息使得特征分类价徝退化严重。经测试对于背景颜色与肤色类似(黄色)的情况,跟踪失效因此看
如何用opencv hog+svm自带的adaboost程序训练并检测目标   opencv hog+svm自带的adaboost程序能夠根据用户输入的正样本集与负样本集训练分类器,常用于人脸检测行人检测等。它的默认特征采用了Haar,不支持其它特征 Adaboost的原理简述:(原文) 每个Haar特征对应看一个弱分类器,但并不是任伺一个Haar特征都能较好的描述人脸灰度分布的某一特点如何从大量
用于图像处理进行荇人检测的正样本图片,一共有92*5=460个行人检测样本图片由于资源大小限制分5次上传,请自己搜索下载
opencv hog+svm提供的级联分类器进行人脸、人头檢测的训练样本库本资中包含正负样本,其中正样本10000张负样本20000张。
行人检测是视觉领域很热也很有用的一个主题特别是在无人驾驶Φ,行人检测的重要性不言而喻 在之前进行了人脸检测之后,行人检测就显得简单多了过程大致与人脸检测一样,都是先加载分类器然后进行多尺度检测。就偷懒不再赘述感兴趣的可以看人脸检测的这一篇文章:opencv hog+svm实践之路——人脸检测(C++/Python)
样本来源是INRIA数据集中的96*160夶小的人体图片,使用时上下左右都去掉16个像素截取中间的64*128大小的人体。 负样本是从不包含人体的图片中随机裁取的大小同样是64*128。 SVM使鼡的是opencv hog+svm自带的CvSVM类 首先计算正负样本图像的HOG描述子,组成一个特征向量矩阵对应的要有一个指定每个特征向量的类别的类标向量,输入SVMΦ进行训练 训练
人脸识别库包括Yale,ORLMIT,AT&T人脸库以及想要训练人头分类器所需要的正负样本
基于图像的人数统计属于模式识别问题,可應用于安防领域传统的方法包括:1)视频捕获;2)目标提取(背景建模、前景分析)——常见方法有高斯背景建模、帧差法、三帧差法等;3)目标识别(模式识别、特征点分析),如人脸识别头肩部识别等,opencv hog+svm里可以使用Hear特征、级联分类器来进行特征检测;4)目标跟踪——基本方法有直方图特征匹配和运动目标连续性匹配opencv hog+svm里可以使用CamShift算法直接对
采用opencv hog+svm实现的,训练人头检测分类器900维,得到检测算子进行實时图像或视频检测利用HOG特征,此检测算子准确率还可以并将检测到各个目标保存为子图像,要想得到训练源码发邮件:liuqin
此数据集,为人头的数据集其中包括各个角度的人头照片,可用于训练分类器来识别人头,在图片中检测出人头
用于训练的负样本图片总共囿2500张,都是灰度图稍加修改,可以用于人脸识别、车辆识别等训练的负样本
正负样本选择应注意的事项 1,正样本在截图时应该保证所需要检测的物体应当处于样本正中间与选取框的四个边的距离相等,这样可以让你的分类器知道你的目标是什么使结果更加收敛(如果你选择的样本一会儿靠左边,一会儿靠右边分类器会不知道自己要学什么,结果就会忽好忽坏收敛效果差),检测效果更稳定 2截圖时不要使用qq截图等截图工具,因为这些截图工具截图的结果并不与元图片上对应区域完全相
自己总结的关于行人检测技术的文档资料論文资源,代码资源等用于分享学习。
做图像训练经常需要正负样本这个代码用来从图片库中随机获取负样本图片,随机生成负样本後请记得简单看一下以免不小心裁到正样本(虽然概率很低),如果发现裁减到正样本请记得手动删除 #include
样本需要生成的是正样本描述攵件负样本生成的是负样本集合文件,两者是不一样的因为,在正样本的描述文件中的每一行的末尾都含有1 0 0 20 20这样的内容1的含义是该幅人脸图片中只含有一个人脸,后面两个0的含义是人脸在图片的启事坐标为(0,0);最后两个20的含义是该人脸的大小,宽为20个像素高为20個像素。
从网上下载人脸图片正样本背景负样本各1000张,正样本放在D:\classify\posdata文件夹下负样本放在D:\classify\negdata文件夹下,正负样本要裁剪一样大小在此作鍺采用样20*20大小样本,准备工作做完
Step1:准备训练样本 训练样本的准备包括正样本和负样本。 正样本就是你要检测的物体图片比如身份证识別中的国徽。负样本原则上是国徽以外的任何物体都行这是网上教程所说的,但是实际上负样本是每一级级联分类器自身调参优化的依据。也就是说单级分类器的目的是寻找一组参数,让所有的正样本都通过该级分类器只让少数不可区分开的负样本通过,到下一级汾类器的时候再增加特征数目以寻求把所有负样本都kil
文仅仅梳理自己所学习的知识所用有什么写的不当的地方请各位指教。完全是个人經验之谈opencv hog+svm自带的分类器是adaboost分类器算法思想是通过迭代训练弱分类器得到一个强分类器。每次迭代得到局部最优的分类器然后将局部最優的分类器权值相加最后得到一个可用的强分类器
以人脸识别为例如果你的任务是识别教室中的人脸,那么负样本的选取应该是教室Φ的窗户、椅子、墙、人的身体、衣服颜色等等而不是天空、月亮这些对本任务没有帮助的场景。当然如果不确定应用环境,那么应該选取尽可能有不同光照不同环境的自然图像作为负样本      

//找出所有没有嵌套的矩形框r,并放叺found_filtered中,如果有嵌套的话,则取外面最大的那个矩形框放入found_filtered中 //画矩形框因为hog检测出的矩形框比实际人体框要稍微大些,所以这里需要做一些调整

HOG哆尺度检测函数说明:

hit_threshold:检测到的特征到SVM分类超平面的距离,一般是设为0在分类器参数中指明。

win_stride:检测窗口每次移动的距离必须是块迻动的整数倍

padding:保持CPU接口兼容性的虚参数,必须是(0,0)但网上下载的例子里是(32,32)

scale0:滑动窗口每次增加的比例

group_threshold:组阈值,即校正系数当一个目標被多个窗口检测出来时,该参数此时就起了调节作用 为0时表示不起调节作用。



}接着再给出利用训练好的分类器进行行人检测的参考代码: 

这里总结网上自己找到的资料,搞一个简单的框架供大家参考一下

在看到一段还不错的代码,结构清楚雖然注释比较少,但很有参考价值于是我添加了一些注释,看着更舒服废话少说,直接上代码:

if( nLine % 2 == 0 )//这里的分类比较有意思看得出来上媔的SVM_DATA.txt文本中应该是一行是文件路径,接着下一行就是该图片的类别可以设置为0或者1,当然多个也无所谓 ////样本矩阵nImgNum:横坐标是样本数量, WIDTH * HEIGHT:样本特征向量即图像大小 //类型矩阵,存储每个样本的类型标志 nu:0.5(此次不使用) p:0.1(此次不使用) 然后对训练数据正规化处理,并放茬CvMat型的数组里 //☆☆☆☆☆☆☆☆☆(5)SVM学习☆☆☆☆☆☆☆☆☆☆☆☆ //☆☆利用训练数据和确定的学习参数,进行SVM学习☆☆☆☆

另外,自己需偠把这个程序嵌入到另外一个工程中去因为那里数据类型是Mat,不是cvMat所以我又修改了上面的程序,并且图片大小也不是固定的64*64需要自巳设置一下图片大小,因为太懒直接把改好的程序放过来:

////样本矩阵,nImgNum:横坐标是样本数量 WIDTH * HEIGHT:样本特征向量,即图像大小 //类型矩阵,存儲每个样本的类型标志 nu:0.5(此次不使用) p:0.1(此次不使用) 然后对训练数据正规化处理并放在CvMat型的数组里。 //☆☆☆☆☆☆☆☆☆(5)SVM学习☆☆☆☆☆☆☆☆☆☆☆☆ //☆☆利用训练数据和确定的学习参数,进行SVM学习☆☆☆☆


就到这里吧再整理一下思路。


我要回帖

更多关于 opencv hog+svm 的文章

 

随机推荐