移动学习网 导航

opencv 分类器训练 正负样本数量一般取多少比较好 如何使用opencv 训练分类器以及训练过程中的问题

2024-05-09m.verywind.com
opencv人脸正样本数量设置多少算合理~

检查下程序,看是不是有地方设置参数的时候写的200,改变样本数量的时候又没有改过来。

网上提供的级联分类器训练都是基于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训练级数

取决于你要识别什么东西。
如果是一个商标,那么正样本一般只需要一张,负样本需要多张,越多越自然越好。
如果是识别人脸之类,可以下载网上的人脸正样本库,大概在200张或更多,负样本也至少需要几百张。
总之,取决于你要识别的物体的识别复杂度。
不能过多,会导致过拟合

户户网菜鸟学习
联系邮箱
返回顶部
移动学习网