【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(三):级联分类器结构与XML文件含义
来源:互联网 发布:软件项目质量管理计划 编辑:程序博客网 时间:2024/05/29 08:26
转载:http://blog.csdn.net/zy1034092330/article/details/48929881
缩进前一篇文章分析了Haar特征,包括Haar特征生成、特征值计算和含义。这一篇则主要分析一下2个内容:
缩进1. OpenCV中的Adaboost级联分类器的结构,包括强分类器和弱分类器的形式;
缩进2. OpenCV自带的XML分类器中各项参数的含义,如internalNodes和leafValues标签里面的一大堆数字的意义。缩进下面进入正题。
-------------------------------------------
缩进众所周知,OpenCV中的Adaboost级联分类是树状结构,如图1,其中每一个stage都代表一级强分类器。当检测窗口通过所有的强分类器时才被认为是目标,否则拒绝。实际上,不仅强分类器是树状结构,强分类器中的每一个弱分类器也是树状结构。
图1 强分类器和弱分类器示意图
缩进这篇文章将结合OpenCV-2.4.11中自带的haarcascade_frontalface_alt2.xml文件介绍整个级联分类器的结构。需要说明,自从2.4.11版本后所有存储得XML分类器都被替换成新式XML,所以本文对应介绍新式分类器结构。
(一)XML的头部
缩进在了解OpenCV分类器结构之前,先来看看存储分类器的XML文件中有什么。图2中注释了分类器XML文件头部信息,括号中的参数为opencv_traincascade.exe训练程序对应参数,即训练时设置了多少生成的XML文件对应值就是多少(如果不明白,可以参考我的前一篇文章)。
图2 分类器XML文件头部含义
(二)弱分类器结构
1.计算第一个Haar特征的特征值haar1,与第一个弱分类器阈值t1对比,当haar1<t1时,进入步骤2;当haar1>t1时,该弱分类器输出rightValue2并结束。
2.计算第二个Haar特征值haar2,与第二个弱分类器阈值t2对比,当haar2<t2时输出leftValue;当haar2>t2时输出rightValue1。
1. 为了找到图像中不同位置的目标,需要逐次移动检测窗口(随着检测窗口的移动,窗口中的Haar特征相应也随着窗口移动),这样就可以遍历到图像中的每一个位置;
2. 而为了检测到不同大小的目标,一般有两种做法:逐步缩小图像or逐步放大检测窗口。缩小图像就是把图像长宽同时按照一定比例(默认1.1 or 1.2)逐步缩小,然后检测;放大检测窗口是把检测窗口长宽按照一定比例逐步放大,这时位于检测窗口内的Haar特征也会对应放大,然后检测。一般来说,如果用软件实现算法,则放大检测窗口相比运行速度更快。
OK,第二篇分类器结构分析就结束了,欢迎大家留言提问或者提出意见!
下一篇,我会介绍一个必须但又容易被忽略的问题——利用并查集合并检测结果窗口。
- 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(三):级联分类器结构与XML文件含义
- OpenCV中的Haar+Adaboost级联分类器分解(二):级联分类器结构与XML文件含义
- OpenCV中的Haar+Adaboost(三):级联分类器结构与XML文件含义
- OpenCV中的Haar+Adaboost(三):级联分类器结构与XML文件含义
- Haar+Adaboost级联分类器分解(二):级联分类器结构与XML文件含义
- 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(一):Haar特征介绍
- 人脸检测(Haar特征+Adaboost级联分类器)
- 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(四):利用并查集合并检测结果窗口
- Haar+Adaboost级联分类器分解(三):利用并查集合并检测结果窗口
- 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(二):积分图和45°旋转积分图
- Haar+Adaboost级联分类器分解(三…
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 索引缓存绘制方形
- C++ Assert()断言机制原理以及使用
- C++模板详解
- 正方体矩阵变换
- Souce Insight 学习笔记
- 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(三):级联分类器结构与XML文件含义
- 正确使用内存
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解(转)
- 正则表达式简易讲义
- 常用日历操作辅助类(CalendarUtil)
- 光照
- Eclipse中clean项目的作用
- 数据结构实验之串二:字符串匹配
- 编辑距离问题