哈尔特征Haar

  哈尔特征Haar-like features) 是用于物体识别的一种数字图像特征。它们因为与哈尔小波转换 极为相似而得名,是第一种即时的人脸检测運算。

历史上,直接使用图像的强度(就是图像每一个像素点的RGB值)使得特征的计算强度很大。帕帕乔治奥等人提出可以使用基于哈尔小波的特征而不是图像强度[1] 。维奥拉和琼斯[2]进而提出了哈尔特征。哈尔特征使用检测窗口中指定位置的相邻矩形,计算每一个矩形的像素和并取其差值。然后用这些差值来对图像的子区域进行分类。

例如,当前有一个人脸图像集合。通过观察可以发现,眼睛的颜色要比两颊的深。因此,用于人脸检测的哈尔特征是分别放置在眼睛和脸颊的两个相邻矩形。这些矩形的位置则通过类似于人脸图像的外接矩形的检测窗口进行定义。

在维奥拉-琼斯目标检测框架的检测阶段,一个与目标物体同样尺寸的检测窗口将在输入图像上滑动,在图像的每一个子区域都计算一个哈尔特征。然后这个差值会与一个预先计算好的阈值进行比较,将目标和非目标区分开来。因为这样的一个哈尔特征是一个弱分类器(它的检测正确率仅仅比随机猜测强一点点),为了达到一个可信的判断,就需要一大群这样的特征。在维奥拉-琼斯目标检测框架中,就会将这些哈尔特征组合成一个级联分类器,最终形成一个强分类群。

  哈尔特征最主要的优势是它的计算非常快速。使用一个称为积分图的结构,任意尺寸的哈尔特征可以在常数时间内进行计算。

  矩形哈尔特征:

维奥拉和琼斯的部分特征

  一个矩形哈尔特征可以定义为矩形中几个区域的像素和的差值,可以具有任意的位置和尺寸。这种特质也被称为2矩形特征(2-rectangle feature)。 维奥拉和琼斯也定义了3矩形特征和4矩形特征。这个值表明了图像的特定区域的某些特性。每一个特征可以描述图像上特定特性的存在或不存在,比如边缘或者纹理的变化。例如,一个2-矩形特征可以表明一个边界位于一个亮区域和一个暗区域之间。

  计算方式:

维奥拉和琼斯的一个重要贡献是使用积分图[3] 。 积分图是一个二维矩形的查找表,与原始图像具有一样的尺寸。积分图的每一个元素是原始图像在对应位置左上角所有像素的和。这就使得在任意位置计算任意尺寸的矩形的像素和时,只需要进行四次查表:

{\displaystyle {\text{sum}}=I(C)+I(A)-I(B)-I(D).\,}

其中点A,B,C,D属于原始图像,如下图所示。

每个哈尔特征的查找次数取决于它的定义。维奥拉和琼斯的2矩形特征需要六次查询,3矩形需要八次,而4矩形則需要九次。

参考文献:

1 https://zh.wikipedia.org/wiki/%E5%93%88%E5%B0%94%E7%89%B9%E5%BE%81 

转载于:https://www.cnblogs.com/dylancao/p/9087028.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乐鑫科技2022笔试面试题

来源于读者投稿,作者来源于牛客网的 galun 。投递方式:内推。岗位:嵌入式软件实习生。个人情况:本科双非电子信息工程,硕士华五软件工程研一在读;本科做过一些很水的项目 ,也拿项目搞了一些奖&a…

每日一题(29)—— 如何引用一个已经定义过的全局变量

如何引用一个已经定义过的全局变量? extern关键字 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如…

Tcpdump的使用

tcpdump采用命令行方式,它的命令格式为:tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ][ -T 类型 ] [ -w 文件名 ] [表达式 ] 1. tcpdump的选项介绍   -a    将网络地址和广播地址转变成名字…

同事在RTOS临界区嵌套使用栽了跟头~

1裸机与RTOS的理解首先这里只针对单核CPU架构的芯片展开讨论,大部分是MCU吧,而多核CPU的讨论相对比较复杂,暂不涉及~玩RTOS的朋友都知道,裸机与OS的最大区别就是实现多任务的并发,其实你说裸机就不能实现任务的并发吗 …

每日一题(30)—— 局部变量能否和全局变量重名?

局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对…

一道内存分配的面试题

这是读者在知识星球上写的面试题我之前写的文章有很完整说过这部分C语言,函数不可返回指向栈内存的指针C 语言内存分配堆和栈的区别(转过无数次的文章)看完上面的文章,我觉得你至少对C语言程序变量内存有一个概念了解了。然后看下…

终于解决了

困扰很长事件的问题今天终于得到解决,或许是思维定式的原因,没有及时的绕过调整思路,也不知道今天晚上脑子这么开窍了,一下把问题给解决了,实在是开心啊改天还是把自己的成果贴出以示奖励自己的努力。转载于:https://w…

数据可视化插件

1、前端数据可视化插件:Highcharts、Echarts和D3 : https://blog.csdn.net/u013511989/article/details/72236788 (Echarts是canvas实现的,推荐) 2、Echarts学习:http://www.echartsjs.com/tutorial.html#5%20%E5%8…

一道内存分配的面试题后续

昨天写的题目,在VC6.0上面测试一下一道内存分配的面试题结果发现一个问题,发现输出结果竟然没有问题,我很慌,如果这样的输出结果没有问题的话,那肯定是跟我们的理论对不上号的。所以我只能继续调试先把问题抛在printf上…

每日一题(31)—— 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?

全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值&#…

Qt学习之路(11): MainWindow

尽管Qt提供了很方便的快速开发工具QtDesigner用来拖放界面元素,但是现在我并不打算去介绍这个工具,原因之一在于我们的学习大体上是依靠手工编写代码,过早的接触设计工具并不能让我们对Qt的概念突飞猛进……前面说过,本教程很大程…

要毕业了,我应该做点啥?

这几天是高考的日子,高考结束,也意味着有很多人要离开学校,距离我毕业已经过去很多年了,现在还能记得那些无忧无虑的日子,毕竟人这一辈子,能这么肆无忌惮的时间并不多。最近因为发了几个不错的岗位招聘&…

每日一题(32)—— 联合体大小

设有以下说明和定义: typedef union {long i;int k[5];char c; } DATE; struct data {int cat;DATE cow;double dog; } too; DATE max;则语句 printf("%d",sizeof(struct date)sizeof(max));的执行结果是: 分析: 16位编译器中&…

开始→运行→输入的命令集锦

mstsc--远程桌面连接 logoff--注销命令 rononce -p --15秒关机 tsshutdn--60秒倒计时关机命令 iexpress--木马捆绑工具,系统自带 tourstart--xp简介(安装完成后出现的漫游xp程序) winchat--XP自带局域网聊天 sndrec32--录音机 Nsl…

我那个37岁的大神朋友,后续

还记得我之前写的这篇文章吗?我一个37岁的程序员朋友写这篇文章的时候,我建议我的这个朋友跳槽找更好的工作,可以换个行业,换一个更有钱的领域,做技术不能单单是做技术,需要有点眼光,比如选择行…

[洛谷P1231] 教辅的组成

题目大意:有n1本书,n2本练习册和n3个答案,然后又一些条件,说明某本答案可能和某本书对应,某本练习册可能和某本书对应,求最多有多少本完整的书(有书,练习册,答案&#xf…

每日一题(33)——用两个栈实现一个队列的功能?要求给出算法和思路

用两个栈实现一个队列的功能?要求给出算法和思路。 设2个栈为A,B, 一开始均为空. 入队: 将新元素push入栈A; 出队: (1)判断栈B是否为空; (2)如果不为空,则将栈B中最顶元素pop出;如果为空,则将A中所有元素POP出并…

可以用在任何人身上:百战百胜人生10大成功秘诀

这里介绍的10个成功秘诀,可以接受时代变迁的考验,可以用在任何人身上,更可以与时推移,永不落伍。尽管它们不是立杆见影的妙药,但只要你身体力行,定能改善你的生活方式。  1.必须先在内心深处感受到爱&…

扒一扒中断为什么不能调printf

[导读] 大家好,我是逸珺。前面说会写一下Modbus-RTU的实现,写了1000多字了,有兴趣的稍等一下哈。前面在一个群里看到一个朋友在一个串口接收中断里打印遇到了问题,今天聊下这个话题。扒一扒printf 对于单片机中printf到底向哪里打…

P4555 最长双回文串

题目描述 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为abc,逆序为cba,不相同)。 输入长度为 n的串 S ,求 S的最长双回文子串 T ,即可将 T 分为两部分 X, …