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

树莓派基于分类器的识别环保标志(三)分类器xml创建

时间:2020-11-02 15:38:01

相关推荐

树莓派基于分类器的识别环保标志(三)分类器xml创建

分类器的训练以分为以下三部进行:

1、 样本的创建

2、 训练分类器

3、 利用训练好的分类器进行目标检测。

对检测物体要确定其属性:是否为绝对刚性的物体,也就是检测的目标是一个固定物体,没有变化(如特定公司的商标),这样的物体只要提供一份样本就可以进行训练。

但绝大数时候我们想进行训练的目标是非绝对刚性的物体,如对人的检测,包括人脸识别、手势识别。

样本:分为正样本---------负样本

正样本处理步骤:

所谓所谓正样本就是只包含检测目标的图片(最好背景一致),对于这我个人认为最好是检测目标的最小外接矩,这样可以减少训练的计算量,减少目标检测的干扰,提高检测质量。

1、获取正样本,可以自己动手,也可以通过网络上的图像数据库,像人脸数据库就已经很全了,不必再自己制作。

2、图片处理

1)将正样本图片进行截取(自己收集的图片,主要是去掉训练时的不必要干扰)-----最小外接矩,

2)将处理后的图片进行归一化,将所有图像调整成一致大小,我用的“美图看看”这款软件,批量处理的,注意无论原图多大最好都处理成25*25以下的图像,这样计算机训练速度快,而且不容易出现内存不够用。

3 将归一化后的图像进行灰度处理,这里我用的是一段opencv代码,/linmengran/p/6513094.html

其实最简单的直接将这个代码加上便可实现图像灰度化input_img = cv2.imread('C:\\Users\\Administrator\\Desktop\\shujuxunlian 1\\negdata_2\\Img%d.jpg'%j,cv2.IMREAD_GRAYSCALE)

在处理后变成如下图像

这样正样本就处理好了,接下来要生成pos.txt文件

cmd运行控制台,切换到存放样本图片的文件目录下:输入如下命令(这些在自己电脑和树莓派上都可以操作)

总体上我们的文件是这样的

posdata文件生成的操作大致如此:

新建一个bat文件并重命名为pos.bat,输入上面的指令,生成含每个图片绝对路径的文件txt,然后替换文本如下所示

要注意的是其中绝对路径换成了相对路径,posdata是我们的文件夹名字,1代表处理一张图片,而0,0代表从图像左上角最初始位置进行测试,25,25是我们在美图看看里面处理的图像大小

之后不出错的话我们在cmd命令行进入posdata所在路径,最好将txt和图片放一起,然后在cmd命令行打入以下指令,

opencv_createsamples.exe -vec pos.vec -info posdata.txt -num 100 -w 25-h25(具体大小和数量自己设置)

生成vec文件,这样正样本基本处理完毕。、

负样本:不包含检测目标的任何图片。

1.不要求样本尺寸,但要大于等于正样本的大小;且负样本不能重复,要增大负样本的差异性。

2.负样本灰度化,同正样本操作相同。

就博主个人而言,使用了python的爬虫爬取百度图片的url,由于博主要识别的是垃圾桶的回收标志,所以爬取得负样本是垃圾桶标志大概1000张左右,正负样本在1:2-1:5之间即可。

其实网上的博客都认为彩色图片处理数据过大,但是对于博主这种小型比赛(智能车识别定点图片)小数量的图片恰恰不需要灰度处理emmmm

负样本处理和正样本处理差不多,负样本产生的txt文件直接保存为绝对路径就行,就是执行bat文件以后什么都不用改。

然后文件名命名为negdata.txt后和posdata.txt放在同一目录下。

最后将pos.vec和neg.txt文件拷贝到同一文件夹下。

这样正负样本就处理完了,训练见下篇---:

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