opencv级联分类器训练

这个博客写的挺详细的  https://blog.csdn.net/qq_30028077/article/details/50483205

下面来写一下我训练的过程

1.训练时正样本图片的寻找:可以参考我上一篇的文章,通过url下载网络图片快速寻找正样本,这里我做的是草莓识别

https://blog.csdn.net/qq_35971623/article/details/79684219

负样本集合我是网上下载的一共5000个 链接:

2.准备好正负样本后就是生成样本描述文件(txt)

用cmd命令进入对应样本文件夹下,cd 路径名

然后输入dir /s/b>info.txt生成样本描述文件,去掉最后一行

注意正样本的描述文件需要添加 1 0 0 width height,其中width,height指的是正样本的宽和高,负样本不需要这样做,但是需要在生成的描述文件前加上图片的绝对路径,否则可能报错


3.在生成正样本时需要归一化图片的大小,这里可以用到美图秀秀,批量修改大小









4.在下载的opencv文件夹中找到opencv_createsamples.exe和opencv_traincascade.exe这两个exe文件粘贴至训练文件夹


5.如图创建两个bos命令文件.bat用法和cmd命令行相同,优点是可以保存查看

create_vec.bat文件用于生成pos.vec文件,我里面的内容命令是C:\Users\Administrator\Desktop\xml-strawberry\pos\opencv_createsamples.exe -vec C:\Users\Administrator\Desktop\xml-strawberry\pos\pos.vec -info C:\Users\Administrator\Desktop\xml-strawberry\pos\info\pos.txt  -w 100 -h 100 -num 850

pause

这里注意最好写绝对路径,否则容易出错

6.生成完pos.vec后用data.bat文件生产训练后的.xml文件,我的命令C:\Users\Administrator\Desktop\xml-strawberry\pos\opencv_traincascade.exe -data C:\Users\Administrator\Desktop\xml-strawberry\pos\data -vec C:\Users\Administrator\Desktop\xml-strawberry\pos\pos.vec -bg C:\Users\Administrator\Desktop\xml-strawberry\neg\bg_pic\neg.txt -numPos 600 -numNeg 2400 -numStages 15 -featureType HOG -mem 600 -w 100 -h 100 -minHitRate 0.99 -maxFalseAlarmRate 0.4 -mode ALL

pause

这里注意-data后面的那个文件夹是用来存放生成后的.xml文件的,这个文件夹需要自己新建否则会报错

6.后面来展示下我的训练情况


训练比较慢,耐心等待,我训练了才13层就花了30+小时

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV是一个用于计算机视觉和机器学习的开源库,其中包含了许多功能强大的算法和工具。级联分类器是其中的一个重要功能,它可以用于目标检测和识别。 在训练级联分类器时,我们需要准备正样本。正样本是包含我们所关注目标的图像,比如人脸、车辆、文字等等。为了训练级联分类器,我们需要大量的正样本图像,这样才能让分类器具备更好的泛化能力。 训练级联分类器的过程可以分为以下几个步骤: 1. 收集正样本图像:我们可以通过各种方式来收集正样本图像,比如在网上下载、自己标注、从已有的数据集中提取等等。收集的正样本图像应该尽可能多样化,包含不同的姿势、光照条件、背景等等,以提高分类器的鲁棒性。 2. 创建样本描述文件:在训练级联分类器时,我们需要提供一个样本描述文件,用于描述每个样本图像的位置和标签。这个描述文件可以是一个XML文件,其中包含了每个样本图像的文件路径、位置和标签信息。 3. 训练级联分类器:在训练过程中,我们需要提供正样本图像和对应的样本描述文件,以及一些训练参数。通过迭代的方式,级联分类器会学习到目标的特征,并不断优化自身的分类能力。训练的过程通常需要较长的时间,特别是当样本数量较多时。 4. 评估和调优:在训练完成后,我们需要对训练得到的级联分类器进行评估。可以使用一部分已经标注好的测试图像来评估分类器的性能,计算准确率、召回率等指标。如果分类器的性能不理想,我们可以调整训练参数,或者增加更多的正样本进行训练,以提高分类器的性能。 通过以上步骤,我们可以利用OpenCV训练级联分类器,用于目标检测和识别任务。随着训练的迭代次数增加,分类器会逐渐提高自身的准确性和鲁棒性,从而更好地适应各种实际场景中的目标检测需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值