树莓派基于分类器的识别环保标志(三)分类器xml创建
分类器的训练以分为以下三部进行:
1、 样本的创建
2、 训练分类器
3、 利用训练好的分类器进行目标检测。
对检测物体要确定其属性:是否为绝对刚性的物体,也就是检测的目标是一个固定物体,没有变化(如特定公司的商标),这样的物体只要提供一份样本就可以进行训练。
但绝大数时候我们想进行训练的目标是非绝对刚性的物体,如对人的检测,包括人脸识别、手势识别。
样本:分为正样本---------负样本
正样本处理步骤:
所谓所谓正样本就是只包含检测目标的图片(最好背景一致),对于这我个人认为最好是检测目标的最小外接矩,这样可以减少训练的计算量,减少目标检测的干扰,提高检测质量。
1、获取正样本,可以自己动手,也可以通过网络上的图像数据库,像人脸数据库就已经很全了,不必再自己制作。
2、图片处理
1)将正样本图片进行截取(自己收集的图片,主要是去掉训练时的不必要干扰)-----最小外接矩,
2)将处理后的图片进行归一化,将所有图像调整成一致大小,我用的“美图看看”这款软件,批量处理的,注意无论原图多大最好都处理成25*25以下的图像,这样计算机训练速度快,而且不容易出现内存不够用。
3 将归一化后的图像进行灰度处理,这里我用的是一段opencv代码,http://www.cnblogs.com/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文件拷贝到同一文件夹下。
这样正负样本就处理完了,训练见下篇---:
树莓派基于分类器的识别环保标志(三)分类器xml创建相关推荐
- 树莓派基于分类器的识别环保标志(四)
接着上一篇我们创造完优良条件后,呦西,接下来开始搞分类器xml. 本文是在样本处理完成情况下,进行分类器训练.关于分类器训练网上有很多讲解,但是对于初学者还是有一定难度,这可能与个人学习笔记的习惯有关 ...
- 树莓派基于分类器的识别环保标志(五)
我们之前搞到了xml文件,这里不想多说咧,直接啪嗒啪嗒,上代码 coding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf8') # ...
- 树莓派基于face_recognition人脸识别
作为目前最火的人脸识别,有了树莓派的我也想搞一下,查询后发现目前可行且开源的有 face_recognition 库,因为我是要实现实时人脸识别,所以结合了opencv+ face_recogniti ...
- matlab交通标志检测与分类,基于MATLAB的道路交通标志识别.doc
基于MATLAB的道路交通标志识别摘要:本文介绍用MATLAB强大的计算功能和各种功能齐全的函数,图像工具箱来进行道路交通标志的识别.介绍基于LAB颜色模型的颜色特征提取和基于radon变换的形状特征 ...
- opencv交通标志识别_教你从零开始做一个基于深度学习的交通标志识别系统
教你从零开始做一个基于深度学习的交通标志识别系统 基于Yolo v3的交通标志识别系统及源码 自动驾驶之--交通标志识别 在本文章你可以学习到如何训练自己采集的数据集,生成模型,并用yolo v3算法 ...
- 基于VGG19的识别中国人、韩国人、日本人分类器
向AI转型的程序员都关注了这个号??? 大数据挖掘DT数据分析 公众号: datadw 这是本学期机器学习课程的项目.通过这个项目了解了不少东西,希望通过博客记录下整个项目过程. 国外有一个网站 h ...
- 基于Matlab的交通限速标志的识别系统 数字图像处理大作业
本大作业为基于Matlab的交通限速标志的识别系统, 考虑到在科技发展的今天,智能汽车行业发展迅速,所以交通限速标志的快速检测及识别对车辆的安全行驶极为重要,因此本系统可以检测到图中的交通限速标志并对 ...
- 【交通标志识别】基于BP神经网络实现交通标志识别matlab代码
1 简介 近年来,交通标志识别在车辆视觉导航系统中是一个热门研究课题.为了安全驾驶和高效运输,交通部门在公路道路上设置了各类重要的交通标志,以提醒司机和行人有关道路交通信息,如指示标志.警告标志.禁止 ...
- 基于python-opencv实时识别黑线赛道(三)之上位机PID调控前篇
前言: 本篇文章是前两篇文章的进阶版本(基于python-opencv实时识别黑线赛道(一)与基于python-opencv实时识别黑线赛道(二)),在实时识别黑线的基础上标注了黑线的角度,同时,本篇 ...
最新文章
- python学习-day2_课堂作业
- 最短路径问题----Dijkstra算法的解释
- 3小时掌握10项产品数据分析技能
- SonarQube4.4+Jenkins进行代码检查实例之二
- QTP- 对输入格式的检查
- 容器学习 之 扩展镜像(五)
- A→CALL→B时防止B程序COMMIT掉A程序文件的方法
- python复制文件的代码_python 复制文件流程
- 【BZOJ1800】飞行棋,没有最好(ge pi)只有更好
- 安卓线程同步面试_面试BAT大厂,可少不了这些题目!
- (转)Python 面向对象编程(一)
- MongoDB使用经验总结
- Android11权限管理,Android 11 中的权限更新
- 【行业了解】天眼查、企查查、启信宝、爱企查
- 农夫山泉病毒性营销方案策划
- SpringBoot邮件发送
- Latex特殊符号、公式、颜色整合
- redis挂机问题搜查纪录
- Problem E: Pineapple
- 苹果电脑和手机浏览器的区分
热门文章
- batchnorm融合
- Stream跑分测试使用-输出结果查看
- word无法启动转换器html32,Word无法启动转换器(2种原因)
- Angular10教程--1.0 环境搭建
- Latex 参考文献格式GB/7714——2005如何将英文作者名自动大写改成普通的写法
- PS基础-通道、蒙版
- php是用于后端吗,后端技术_前端和PHP的有区别吗?-
中国it教程网
- 01基于HLS的加速器Overlay设计实例 - 快速生成硬件IP
- 轻量级大数据计算引擎esProc SPL,Hadoop Spark太重
- 深圳银行卡收单市场明年全部开放