2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 树莓派基于分类器的识别环保标志(四)

树莓派基于分类器的识别环保标志(四)

时间:2018-10-10 07:49:45

相关推荐

树莓派基于分类器的识别环保标志(四)

接着上一篇我们创造完优良条件后,呦西,接下来开始搞分类器xml。

本文是在样本处理完成情况下,进行分类器训练。关于分类器训练网上有很多讲解,但是对于初学者还是有一定难度,这可能与个人学习笔记的习惯有关。对此我讲我学习的总结下来以图像方式展示给大家。

执行命令:opencv_traincascade.exe -data data -vec pos.vec -bg negdata.txt -numPos 242 -numNeg 1096 -numStages 20 -w 25 -h 25 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -mode ALL

命令讲解:opencv_traincascade.exe 这是一个opencv自带的可执行函数,用于实现对分类器的训练。直接在doc下用命令执行即可,存放路径一般为:..\opencv\build\x86\vc11\bin(一般我们用的是win32位环境下的运行程序(参考: /linmengran/p/5898303.html),因此在opencv环境配置时就只加入了x86的bin路径,因此在这里选取x86下的opencv_traincascade.exe)。这里我为了找路径方便与样本文件放在同一目录下这样可以找到 很容易调取 xml文件夹,和pos.vec、negdata.txt,也可以直接调用。 -data xml存储训练时的生成的文件。最终生成一个.xml文件,如下图:

xml文件夹内容:

-vec pos.vec 调用.vec文件,与neg.txt放在同一目录下。

-bg negdata.txt 负样本生成文件,可以理解成是负样本的索引。

-nstages 20 训练级数

-npos 242正样本数量

-nneg 1000 负样本数量

-mem 1280 训练时内存预留的空间1280MB

-mode all级联器的类型,all代表所有类型(就是使用harr的所有特征分类)

-w 25图片的宽25像素,必须与之前一致

-h 25图片的高25像素,必须与之前一致

执行结果如下:(这个不想自己再执行一遍了,搬运的图片)

训练结果:

运用其训练的结果测试了一下:

但是效果不是很稳定,有时会变得不准确,这与分类器的样本和测试方式,以及测试代码有关,目前修改中,以后附上测试代码。(可能是我图片有时候筛选的不是很好吧hhhhh)

其他参考命令:

"-data<dir_name>\n""-vec<vec_file_name>\n""-bg<background_file_name>\n""[-bg-vecfile]\n""[-npos<number_of_positive_samples=%d>]\n""[-nneg<number_of_negative_samples=%d>]\n""[-nstages<number_of_stages=%d>]\n""[-nsplits<number_of_splits=%d>]\n""[-mem<memory_in_MB=%d>]\n""[-sym(default)][-nonsym]\n""[-minhitrate<min_hit_rate=%f>]\n""[-maxfalsealarm<max_false_alarm_rate=%f>]\n""[-weighttrimming<weight_trimming=%f>]\n""[-eqw]\n""[-mode<BASIC(default)|CORE|ALL>]\n""[-w<sample_width=%d>]\n""[-h<sample_height=%d>]\n""[-bt<DAB|RAB|LB|GAB(default)>]\n""[-err<misclass(default)|gini|entropy>]\n""[-maxtreesplits<max_number_of_splits_in_tree_cascade=%d>]\n""[-minpos<min_number_of_positive_samples_per_cluster=%d>]\n"

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。