训练分类器,并且用训练好的分类器进行花朵的检测

本文介绍了如何使用opencv库,通过计算Haar特征和级联分类器来训练花朵检测器。首先收集昙花和非昙花样本,接着计算特征值和积分图,挑选最优分类器并利用Adaboost训练成强分类器,最后进行级联。通过设置不同的参数,如样本大小、正负样本数量和训练层数,进行训练并生成cascade.xml文件,用于目标检测。最后展示了利用训练好的分类器进行花朵检测的代码及结果。
摘要由CSDN通过智能技术生成

利用Haar特征,结合级联分类器进行花朵检测,整体思路分为5大步:1 准备昙花、非昙花样本集 2 计算特征值和积分图 3 挑选最优分类器 4 利用Adaboost把这些分类器训练成一个强分类器 5 级联,也就是所谓的强强联手。本文选用窗口是20×20,从这些很多的特征,筛选出有用的特征(即最优弱分类器),然后将这些最优弱分类器训练成一个弱分类器,最后将强分类器进行级联。

集成开发环境(IDE):Anaconda 4.3.30 Python 3.5.3 Opencv 4.5.0
方法:
opencv_createsamples,opencv_traincascade,haar特征+cascade分类器
目标检测分为三个步骤:样本的创建 训练分类器 利用训练好的分类器进行目标检测。
本文花朵图片的来源有3个:1 在网上一张一张下载图片 2 按关键字从百度图片上爬取图片 3 自己拍摄的图片

样本的创建
1 首先,把照片的原图放在pos原图和neg原图文件夹下,把经过美图秀秀软件修改后的图片放在pos和neg文件夹下。图片的格式是jpg,把图片的长,宽变成20,20,把昙花当做正样本,把除昙花以外的花朵当作负样本,其中,正样本有350张,负样本有8367张, pos和neg分别是图片的正样本,负样本,pos正样本如图1所示。
在这里插入图片描t述
neg负样本如图所示。
在这里插入图片描述
2 训练分类器
把Opencv_createsamples.exe和Opencv_traincascade.exe放到同一文件夹下面
在这里插入图片描述
3 生成正样本描述文件和负样本描述文件
使用cmd进入到pos目录下,执行

在这里插入图片描述
执行完后可在pos文件夹中找到pos.txt,打开记事本,删去pos.txt,将文件改成如下格式。
在这里插入图片描述
参数说明:1 表示图片中只有一个要识别的目标。0 0 20 20是待识别物体在图片中的位置
使用cmd进入到neg目录下,执行
在这里插入图片描述生成负样本描述文件,删掉neg.txt
4 生vec文件
使用cmd进入opencv_createsamples.exe目录下,执行

opencv_createsamples.exe -vec pos.vec -info pos/pos.txt -bg neg/neg.txt -w 20 -h 20 

参数分析:

-vec pos.exe 指定生成的文件,最后生成的是pos.vec

-info pos\pos.txt 图片目标描述文件,本文把图片放在pos\pos.txt

-bg neg\neg.txt 背景图片描述文件,本文把图片放在beg\neg.txt

-w 训练样本的宽 本文训练样本的宽设置为20

-h 训练样本的高 本文训练样本的高设置为20

5 训练样本
使用cmd进入opencv_traincascade.exe 目录下,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_43142545

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值