人脸识别——Haar特征、积分图及Haar级联

2023-05-16

    人脸识别(检测)技术主要涉及到Haar特征、积分图和Haar级联三大类,下面我简单概述一下这三类知识,并给出相应学习链接。


Haar特征

    Haar特征分为四类:边缘特征、线性特征、中心特征和对角线特征,将这些特征组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和‘减’去黑色矩形像素和。 Lienhart R.等对Haar-like矩形特征库作了进一步扩展,扩展后的特征大致分为4种类型:边缘特征、线特征环、中心环绕特征和对角线特征,如下:


    关于Haar特征不少国内外研究者都对其矩形特征库进行扩展,以找到最佳的特征模版。

    Haar特征的提取简单说就是通过不断改变模版的大小、位置和类型,白色矩形区域像素和‘减去’黑色矩形区域像素和,以得到每种类型模版的大量子特征。


积分图

    计算Haar的特征值需要计算图像中封闭矩形区域的像素值之和,在不断改变模版大小和位置的情况下,需要计算大量的多重尺度区域,这可能会遍历每个矩形的每个像素值且同一个像素如果被包含在不同的矩形中会被重复遍历多次,这就导致了大量的计算和高复杂度,因此提出积分图的概念。

    积分图原理概述:将图像以线性时间初始化(仅第二次遍历图像时),并可以通过矩形区域四个角的值,提供像素的总和。通过下图可以更好地理解这个概念:


    如果需要计算图像中任意矩形区域的,不需要遍历区域内的所有像素。想象下图中左上的点和任何相对的点P形成的矩形。设AP表示这个矩形的面积,如前图所示,AB表示通过去左上角点和相对的B点形成的5*2矩形的面积。为了清楚起见,看下图:


    上图中的左上部分,着色像素表示左上角与点A之间的区域。这个区域用AA表示,剩下的图用AB、AC、AD表示。若想计算上图ABCD区域,将使用下列公式:


     这个特定公式有什么特别之处呢?正如我们所知,提取图像的Haar特征需要计算多个尺度矩形的和。这些计算是重复的因为反复遍历了同一个像素。运行速度如此之慢,对一构建一个实时系统来说是不可行的。正如所见,不需要多次遍历相同的像素。如果要计算任意一个矩形区域,上述公式等号右边的所有值在积分图像中都是易于获取
的,只需要用正确的值替代它们就可以提取特征了。


Haar级联

    Harr级联是一个基于Haar特征的级联分类器,级联分类器是什么?它是一个把弱分类器串联成强分类器的过程。弱分类器和强分类器分别是什么?弱分类器是性能受限的分类器,它们没法正确地区分所有事物。如果你的问题很简单 弱分类结果可接受。强分类器可以正确的对数据进行分类。
    建立一个实时系统需要保证分类器运行良好并且足够简单。唯一需要考虑到的是简单分类器不够精确,若试图更精确就会变成计算密集型且运行速度慢。精确度和速度的取舍在机器学习中相当常见。所以串联一群弱分类器形成一个统一的强分类器可以解决这个问题。弱分类器不需要太精确,串联起来形成的强分类器具有高精确度。    

关于Haar特征及积分图的学习资料推荐:

http://blog.csdn.net/zouxy09/article/details/7929570   适合初始了解、学习Haar和积分图

http://blog.csdn.net/lanxuecc/article/details/52222369  可以学习Opencv人脸检测源码

http://blog.csdn.net/liulina603/article/details/8617281  人脸检测整体流程的原理详细解释 包括公式 适合进阶。

http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html  Haar分类器

http://www.cs.ubc.ca/~lowe/425/slides/13-ViolaJones.pdf   2001年Paul Vioal和Michael Jones发表了创造性的论文 里面描述了级联步骤中的技巧,从而更快更有效的检测对象


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

人脸识别——Haar特征、积分图及Haar级联 的相关文章

  • MySQL笔记

    MySQL Version 5 7 25 一 常见面试问题汇总 1 select for update会锁表还是锁行 如果是纯select是不会加锁的 xff0c 但是这里会加锁 xff0c 而且还是悲观锁 xff0c 但是具体锁表还是锁行
  • mybatis-plus最好用的逻辑删除

    文章目录 前言一 逻辑删除1 添加全局配置2 设置实体中的字段 总结 前言 为了防止人为的因素导致误删除无法恢复的情况所以我们需要逻辑意义上的删除 xff0c 而通常最简便的方式就是打标记 xff0c 这个步骤可以由mybatis plus
  • IDEA Git常用操作

    前言 Git的操作可以使用命令行 xff0c 当然为了偷懒熟练使用IDEA的git未尝不是一个好办法 xff01 一 当前修改的分支想要暂存怎么办 xff1f 这个需要是因为当前修改的分支还没有修改完 xff0c 突然有另外的需求需要去处理
  • Ubuntu14.04安装build-essential失败,包依赖问题如何解决?

    正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态信息 完成 有一些软件包无法被安装 如果您用的是 unstable 发行版 xff0c 这也许是 因为系统无法达到您要求的状态造成的 该版本中可能会有一些您需要的软件 包尚未
  • 关于需求沟通的一点思考

    作为一名程序员 xff0c 可能会来自各方的需求沟通问题 xff0c 而且更多的时候是横插进来的任务 xff0c 每个人都说这个任务优先级高 xff0c 尽快做 xff0c 是不是有点焦头烂额了 xff0c 马上就开始啪啪敲代码了吗 xff
  • Go同目录下多个main声明会导致编译失败的问题

    问题 xff1a Go同目录下多个main声明会导致编译失败的问题 main redeclared in this block 表示在同级目录下main重复声明 xff0c 在学习中可以依照不同的文件夹进行分割 xff0c 也可以按照如下方
  • 嵌入式debian没有lsusb命令解决

    问题 bash lsusb command not found 解决
  • Python学习笔记-PyQt6状态栏

    QMainWindow有自带的状态栏 xff0c 可以通过statusBar 方法获取自身的状态栏 xff0c 或者通过实例化QStatusBar类 xff0c 然后使用QMainWindow setStatusBar 方法将状态栏添加到主
  • 未完成的IT路停在回车键---2014年末总结篇

    时间都去哪儿了 xff1f 一晃而过 xff0c 越来越能体会到这个词的真实感 特别是过了二十岁 xff0c 这种感觉越来越深刻 xff0c 越来越强烈 xff0c 犹如小编做公交车的时候一直向后排排倒的香樟树 xff0c 还记得有首歌叫时
  • 这一次,VR离我们真的很近

    从高考作文开始 今年号称是VR元年 xff0c 虽然目前VR还没能像手机一样走进千家万户 xff0c 但关于VR设备的关讨论是层出不穷 而今年高考 xff0c 浙江省的作文题就与VR相关 网上购物 视频聊天等在我们生活中越来越普及 有人预言
  • 补.从零开始学习C语言--scanf的%c前为什么加空格

    include lt stdio h gt int main void int i char ch scanf 34 d 34 amp i scanf 34 c 34 amp ch 这行的 C前有个空格 printf 34 i 61 d n
  • svn status 返回值详解

    转http blog linuxphp org archives 652 svn 是在提交前查看本地文本和版本库里面的文件的区别 返回值有许多种具体含义如下 xff1a url 61 L abc c svn已经在 svn目录锁定了abc c
  • ubuntu杀毒软件clamAV运维笔记

    1 安装 xff1a apt get install clamav 2 守护进程安装 xff1a apt get install clamav daemon 3 更新病毒库 xff1a freshclam 或手动下载安装 cvd文件 备注
  • shell 教程一:变量,字符串,传参

    一 xff0c hello shell strong span class pln style color rgb 72 72 76 vi hello span span class pun style color rgb 147 161
  • 树莓派Ubuntu20.04创建虚拟内存文件并设置开机自动启用

    目录 一 检查有没有虚拟内存 二 创建虚拟内存文件并设置权限 三 设置并激活虚拟内存文件 四 设置开机自动启用虚拟内存 五 重启后检测虚拟内存是否正常启用 一 检查有没有虚拟内存 树莓派Ubuntu20 04默认没有虚拟内存 xff0c 可
  • 随着稻香河流继续奔跑 ——致2016

    写在前面 xff0c 2016于我而言 xff0c 是丰收的一年 这一年 xff0c 我收获了能力与本领 xff0c 收获了美丽与自信 xff0c 收获了欣赏和肯定 2017 xff0c 我会不忘来时路 xff0c 继续前行 2016的驿站
  • 浅谈strtok函数的使用心得

    经常使用strtok函数进行文本操作 xff0c 其实他是一个很好用的函数 xff0c 很方便 xff0c 能够简单的实现一行文本的切分操作 xff0c 总结一下使用心得 函数原型char strtok char s const char
  • 局域网内Windows使用RealVNC远程连接CentOS6.5桌面

    1 进入root终端 xff0c 检查是否安装VNC server xff1a rpm q tigervnctigervnc server 2 如果未安装VNC server xff0c 则 xff1a yum install ytiger
  • CentOS7安装tigerVNC

    一 首先系统是已经安装了图形界面 并默认是启动到图形界面 xff0c 如果你的系统没安装图形界面 xff0c 就请给系统安装图形界面 xff1a yum y span class token function groups span spa
  • openstack主要版本亮点

    openstack主要版本亮点 1 Stein 在Stein新增的几十项功能特性中 xff0c 主要亮点有三 xff1a 容器功能的强化 用于支持5G 边缘计算和网络功能虚拟化 xff08 NFV xff09 用例的网络升级功能 资源管理和

随机推荐

  • OpenStack 学习之 OVN : L2网络 ( Logical switches 逻辑交换机)

    OVN Manual install amp Configuration Open vSwitch 官网 参考 OVN学习 xff08 一 xff09 OVN实战一之GNS3操作指南及OVN入门 简单理解和知识 按照 OVN Manual
  • linux vncserver设置及配置自动启动

    VNC 服务端 vncserver 启动VNC vncserver kill num num一般从1开始 因为0被x server占用了 vncpasswd 设置vnc连接密码 要使用VNC图形界面修改 vnc xstartup配置文件中末
  • 【125】Linux 中 ps -ef|grep和ps、grep详解

    一 ps ef grep详解 xff08 原文见公众号python宝 xff09 ps命令将某个进程显示出来 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找 xff0c 是一种强大的文本搜索工具 xff0c 它能使
  • Pycharm Debug调试(纯干货)

    内容目录 xff08 原文见公众号python宝或www xmmup com xff09 一 打断点二 代码调试三 界面小图标介绍四 控制台介绍 数字转换为大写人民币 import sys import io sys stdout 61 i
  • 【217】#!/usr/bin/env 的意义

    题目部分 xff08 原文见公众号 xff1a python宝 xff09 python宝 https mp weixin qq com mp profile ext action 61 home amp biz 61 MzU5NjIyOT
  • 使用Scrum进行敏捷项目管理

    Scrum是一种敏捷方法 xff0c 旨在指导团队进行产品的迭代和增量交付 通常被称为 敏捷项目管理框架 xff0c 其重点是使用经验过程 xff0c 使团队能够快速 xff0c 有效 xff0c 有效地做出改变 传统的项目管理方法确定了需
  • 【246】Python -继承(父类、子类、super)

    题目部分 xff08 原文见公众号 xff1a python宝 xff09 python宝 xff1a https mp weixin qq com mp profile ext action 61 home amp biz 61 MzU5
  • 【250】Python 的基本数据类型

    题目部分 xff08 原文见公众号 xff1a python宝 xff09 python宝 xff1a https mp weixin qq com mp profile ext action 61 home amp biz 61 MzU5
  • 【252】Python3 常见异常和处理方法

    题目部分 xff08 原文见公众号 xff1a python宝 xff09 python宝 xff1a https mp weixin qq com mp profile ext action 61 home amp biz 61 MzU5
  • 500 : Internal Server Error(jupyter)

    如需转发 xff0c 请注明出处 xff1a 小婷儿的python https www cnblogs com xxtalhr p 10739036 html 一 报错 jupyter notebook能打开目录页 xff0c 但是打不开i
  • 聚类总结(二)聚类性能评估、肘部法则、轮廓系数

    文章目录 一 聚类K的选择规则1 1 肘部法则 Elbow Method1 2 轮廓系数 Silhouette Coefficient 二 聚类性能评估2 1 外部评估 xff08 external evaluation xff09 2 1
  • keil工程的文件

    打开工程前 tree span class token punctuation span project span class token punctuation span uvoptx project span class token p
  • vmware 中减少硬盘vmdk大小

    一般的话 span class token punctuation span 我用一个文件代表所有的磁盘上 span class token punctuation span xxx span class token punctuation
  • 各种 RTOS 对比

    商业解读 RTOS种类是否开源是否免费厂家官网uclinux 并入linux mainline 是是linux基金会linux orgucosII是是Micriumweston embeddeducosIII是是Micriumweston
  • 使用adb命令取出手机中已安装的apk

    1 查看手机中安装的apk列表 xff1a adb shell pm list package 2 根据包名找出apk在内部存储空间的路径 xff1a adb shell pm path com baicells voip 3 使用adb
  • STM32学习过程记录8——蜂鸣器

    零之前言 最近想用无源蜂鸣器来播放曲子 xff0c 但是看了好多博客讲的都是马马虎虎 xff0c 没有讲的太清楚 xff0c 所以我只好自己重新学习了一下 xff0c 音乐发声的原理 xff08 因为硬件基础够啦QAQ xff09 和简谱
  • 软件工程:软件开发生命周期 (SDLC)

    软件构建的基本概念之一 软件开发生命周期模型 或者只是SDLC模型 SDLC 是一个连续的过程 xff0c 从决定启动项目的那一刻开始 xff0c 并在它完全从开发中移除的那一刻结束 没有一个单一的SDLC模型 它们分为主要组 xff0c
  • Matlab数字图像处理学习记录【8】——图像分割

    图像分割 一 点 线和边缘检测1 1 点检测1 2 线检测1 3 使用edge函数进行边缘检测 二 使用Hough 霍夫 变换的线检测2 1 使用Hough变换做峰值检测2 2 使用Hough变换做线检测和连接 三 阈值处理3 1 全局阈值
  • google-breakpad在Linux平台下各CPU编译

    span class token function git span clone https chromium googlesource com breakpad breakpad 1 x86 64 执行 configure 得到Makef
  • 人脸识别——Haar特征、积分图及Haar级联

    人脸识别 xff08 检测 xff09 技术主要涉及到Haar特征 积分图和Haar级联三大类 xff0c 下面我简单概述一下这三类知识 xff0c 并给出相应学习链接 Haar特征 Haar特征分为四类 xff1a 边缘特征 线性特征 中