| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> OpenCV训练自己的物体检测分类器步骤 -> 正文阅读 |
|
[人工智能]OpenCV训练自己的物体检测分类器步骤 |
一、准备阶段 ?文件模板 ?positive_images放置正样本图片、negative_image放置负样本图片、xml为训练好的分类器文件 样本收集 正样本:我们想要正确分类出的类别所对应的样本,例如,我们要对一张图片进行分类,以确定其是否属于菠萝,那么在训练的时候,菠萝的图片则为正样本。 负样本:不是我们想要的分类对应的样本,就是除了菠萝的图片 样本数据越多检测效果越好,正样本的特征越明显越好,负样本背景越复杂越好。 1、去www.kaggle.com下载想要的数据集或者使用scrapy+selenium批量爬取图片 2、自己拍摄想要检测物体的图片 二、预处理 图像的注水处理:通过自动对图像的旋转、平移、缩放从而增加样本数量 比如:通过旋转
?调节亮度:
图像大小统一处理(40*40): 批量重命名文件夹中的图片文件
执行后? 批量修改图片尺寸
三、生成样本描述文件 生成正样本描述文件可以利用标注工具opencv_annotation.exe opencv_annotation.exe的使用,在当前目录cmd下输入opencv_annotation.exe可以看到是使用说明 ?比如:opencv_annotation.exe?-a=生成的pos.txt路径?-i=正样本文件夹路径 ? 用鼠标左键标记进行矩形框选想要识别的物体? ?英文下,’c'是确认框选,'d'删除所选的框,'n'是下一张,'esc'是停止。 如果图片中只有一个物体,可直接生成描述文件(尽量自己用opencv_annotation标注,效果更好)
生成pos.txt? 生成负样本描述文件(不用进行标注)
生成neg.txt 四、 合成样本vec文件 这里只需要合成正样本vec文件,负样本不需要,这里使用opencv_createsamples.exe opencv_createsamples.exe的使用,在当前目录cmd下输入opencv_createsamples.exe可以看到是使用说明 ?比如opencv_createsamples.exe -vec pos.vec? -info pos.txt -num 50 -w 40 -h 40 -vec 参数代表.vec文件的存储位置; -info 代表生成的annotation的位置; -num 生成的正样本的数目 -w 窗口的宽度;-h 窗口的高度; ?结束之后在当前目录下生成pos.vec文件 五、训练模型 训练模型使用opencv_traincascade.exe opencv_traincascade.exe的使用,在当前目录cmd下输入opencv_traincascade.exe可以看到是使用说明 ?比如:opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 10 -numNeg 2000 -numStages 15 -w 40 -h 40 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -mode ALL -data:指定保存训练结果的文件夹; -vec:指定正样本集; -bg:指定负样本的描述文件夹; -numPos:指定每一级参与训练的正样本的数目(要小于正样本总数); -numNeg:指定每一级参与训练的负样本的数目(可以大于负样本图片的总数); -numStage:训练的级数; -w:正样本的宽;-h:正样本的高;(必须与opencv_createsample中使用的-w和-h值一致) -minHitRate:每一级需要达到的命中率(一般取值0.95-0.995); -maxFalseAlarmRate:每一级所允许的最大误检率; -mode:使用Haar-like特征时使用,可选BASIC、CORE或者ALL;(ALL使用垂直和45度角旋转特征。) (这个截图是训练好模型后,再次运行opencv_traincascade.exe的结果) ?训练好分类器的文件在xml文件夹下 六、测试模型
?运行后生成检测后的图片detect.jpg(这里只是个展示,样本少,效果不是很好) ? ?以上只是一个简单的训练步骤展示,供参考学习使用 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 10:24:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |