OpenCV目标识别
来源:互联网 发布:python读取csv文件 编辑:程序博客网 时间:2024/05/01 01:58
Viola和Jones提出了著名的Viola-Jones识别器,是一种快速可靠的图像目标识别器。OpenCV在CascadeClassifier中实现了这一识别器。
CascadeClassifier类可以从视频中识别目标:
String face_cascade_name = "haarcascade_frontalface_alt.xml";
String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
CascadeClassifier face_cascade;
CascadeClassifier eyes_cascade;
具体来说通过load函数来导入.xml分类器文件,支持两种类型的分类器:Haar 分类器和 LBP 分类器。通过detectMultiScale函数来实施目标的识别。
具体的识别操作过程如下:
Load 分类器 —— face_cascade.load
读取视频数据 —— cvCaptureFromCAM
处理识别一帧数据 —— detectAndDisplay( frame )
在实际应用中,我们需要自己定义所待识别的目标对象,如卡片图形、各类水果、常见物品等。重新训练过程按照标准的模式识别流程进行,包括以下步骤:
数据准备:目标对象的图像(足够的数量,包含各种光照姿态条件);非目标对象的图像(足够的数量,包含常见的各场景背景)。
图像读取和增强(见上文的光照均衡、图像降噪算法)
特征提取(在OpenCV例子中可以采用Haar特征)
模型训练(即CascadeClassifier检测器的重训练)
具体的重训练操作过程如下(参见OpenCV User Guide):
我们可以使用这两个工具进行重训练:opencv_traincascade 或者 opencv_haartraining。推荐使用前者,其为包含了Haar特征和LBP特征的更新版本。
第一步,通用参数设定:
• -data <cascade_dir_name>
保存训练好的分类器的路径。
• -vec <vec_file_name>
保存正性样本的文件,可以使用opencv_createsamples生成。
• -bg <background_file_name>
背景描述文件
• -numPos <number_of_positive_samples>
• -numNeg <number_of_negative_samples>
训练中的正性和负性样本数量
• -numStages <number_of_stages>
需要训练的分类器的级联阶数。
第二步,与分类器级联结构有关的参数:
• -stageType <BOOST(default)>
仅支持Boost分类器类型
• -featureType<{HAAR(default), LBP}>
特征类型: HAAR - Haar特征,LBP - local binary patterns特征。
• -w <sampleWidth>
• -h <sampleHeight>
训练样本尺寸
第三步,Boosted分类器参数:
• -bt <{DAB, RAB, LB, GAB(default)}>
各种boosted算法类型选择: DAB - Discrete AdaBoost, RAB - Real AdaBoost, LB - LogitBoost, GAB
- Gentle AdaBoost.
• -minHitRate <min_hit_rate>
各阶分类器最小命中率
• -maxFalseAlarmRate <max_false_alarm_rate>
各阶分类器最大期望的false alarm rate
其他与算法有关的具体参数设定(略)。
第四步,Haar特征参数设定:
• -mode <BASIC (default) | CORE | ALL>
选择特征类型:BASIC 为正面特征, ALL 为包含45度Rotation特征。
注:若使用Local Binary Patterns(LBP)特征,无需额外参数设定。
第五步,opencv_traincascade训练。结果保存在 cascade.xml 中,路径由前面 -data 指定。
- OpenCV目标识别
- 使用opencv进行目标区域识别
- 【opencv】目标识别——轮廓匹配
- 【opencv】目标识别——HSV颜色识别
- 【opencv】目标识别——HSV颜色识别
- OpenCV-识别图中目标点和方向
- opencv目标识别之HMM 模型(隐马尔可夫模型)
- 目标识别
- 目标识别
- 目标识别
- 目标识别
- Android-图像识别项目OpenCV(3):程序目标以及单独发布
- Android-图像识别项目OpenCV(3):程序目标以及单独发布
- OpenCV中HOG人检测以及Part Model latent SVM目标识别
- OpenCV中HOG人检测以及Part Model latent SVM目标识别
- 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
- 基于OpenCV的目标物体颜色及轮廓的识别方法
- 接深度学习,opencv人脸识别,目标检测等项目
- 串的表示和实现javascript
- 初次使用SQLiteOpenHelper
- 搭建简单web项目:spring3.0基本配置
- CSDN新博客——Markdown语法测试
- Java面试--Spring技术要点--Spring概述
- OpenCV目标识别
- 一切成功源于积累——20150513 美国4月零售数据不及预期 黄金1192-1218 2600点 短短2个小时
- 程序员——C语言之数据类型、基本运算、流程控制 易错知识点
- 黑马程序员——c语言基础:循环结构练习
- 黑马程序员————网路编程UDP和TCP协议
- HDU2473 并查集的删除
- 用:hover伪类设置导航菜单背景图片的感悟
- cocos2dx3.2+mac+LUA 安卓移植
- 设计模式之禅学习笔记--装饰者模式