如何使用opencv 训练分类器以及训练过程中的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用opencv 训练分类器以及训练过程中的问题相关的知识,希望对你有一定的参考价值。

参考技术A 网上提供的级联分类器训练都是基于opencv_haartraining。照着上面的步骤成功训练出了xml,但是用于识别的过程中,识别率很低。改换几次样本后,检测效果还是一般。想想估计是自haar特征不能很好区分,所以想通过opencv_traincascade训练下Lbp。将经验写下来,供自己以后回顾和其它人参考。 工具/原料 opencv2.1 (2.0版本以上均可) 方法/步骤 1 准备好正负样本图片,正样本就是含有目标的图片,负样本就是不还有目标的图片,建好文件夹,如图所示。其中正样本图片最好是裁剪成同一尺寸,我这里是建成30*30,便于后期的说明文件的建立。图片的编辑我使用的是美图看看,批量编辑工具,可以批量将图片改成同一尺寸。 2 建立正负样本说明文件,在cmd下进入pos文件夹目录里,输入 dir /b > pos.txt,用editplus打开该文件,删除最后一行,最后将名字归一化如下所示:同样的方法进入neg文件夹内,用同样的方法建立描述文件neg.txt,用editplus打开该文件,只需删掉最后一行 3 创建vec文件:将opencv_createsamples.exe和 opencv_traincascade.exe放到图片文件夹的上层目录,利用opencv_createsamples.exe应用程序在该目录下使用如图cmd命令: 其中的-vec是指定后面输出vec文件的文件名,-info指定正样本描述文件,-bg指定负样本描述文件,-w和-h分别指正样本的宽和高,-num表示正样本的个数。执行完该命令后就会在当前目录下生产一个pos.vec文件了。 4 使用opencv_traincascade.exe文件进行训练 首先在当前目录下新建一个dt文件夹用于存放生成的.xml文件。 在当前目录使用cmd命令: D:\>opencv_traincascade.exe -data dt -vec pos.vec -bg neg/neg.txt -numPos 100 -n umNeg 300 -numStages 16 -precalcValbufSize 200 -precalcdxBufSize 1000 -featureTy pe LBP -w 30 -h 30截图如下:其中-data 输出目录,-numPos正样本数目-numNeg负样本数目-numStages训练级数

opencv训练好的分类器都有哪些

参考技术A opencv3训练好的分类器有基于haar特征的双眼,左眼,右眼,鼻子,嘴巴,人脸,人体上半身,笑脸级联分类器以及对应的cuda环境下的分类器;基于lbp特征的人脸级联分类器;基于hog特征的人体SVM分类器.
以上分类器均在在路径opencv-sources-data中.版本OpenCV3.

以上是关于如何使用opencv 训练分类器以及训练过程中的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用OpenCV中的AdBoost算法训练分类器

如何利用opencv进行样本训练

如何在 Python 中使用 OpenCV 3.0 中的 HOG 功能训练 SVM 分类器?

opencv训练好的分类器都有哪些

如何使用opencv自带工具训练人脸检测分类器

如何利用OpenCV自带的级联分类器训练程序训练分类器