• 深度学习之人脸检测算法


    检测方法

    • Haar cascade + opencv

    • HOG + Dlib

    • CNN + Dlib

    • SSD

    • MTCNN

    Haar特征

    1.Haar特征原理综述

    Haar特征是一种反映图像的灰度变化的,像素分模块求差值的一种特征。它分为三类:边缘特征、线性特征、中心特征和对角线特征。用黑白两种矩形框组合成特征模板,在特征模板内用 黑色矩形像素和 减去 白色矩形像素和来表示这个模版的特征值。例如:脸部的一些特征能由矩形模块差值特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述在特定方向(水平、垂直、对角)上有明显像素模块梯度变化的图像结构。

    2.Haar特征的计算方法

    通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。特征模板在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的值称为“特征值”。矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征,如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。

    3.利用积分图Haar特征的加速算法

    刚开始认为积分图(Integral image)是个高深的东西,其实很简单。对于一个灰度图像I而言,其积分图也是一张与I尺寸相同的图,只不过该图上任意一点(x,y)的值是指从灰度图像I的左上角与当前点所围成的举行区域内所有像素点灰度值之和,有点耳熟吧。类似于图像直方图与图像累积直方图的关系,这里只不过是二维的图像。

    当把扫描图像一遍,到达图像右下角像素时,积分图像就构造好了。积分图构造好之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到如图2所示。而Haar-like特征值无非就是两个矩阵像素和的差,同样可以在常数时间内完成。所以矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

  • 相关阅读:
    SpringBoot概念_项目的创建_和运行
    Web Component-处理数据
    c# Bartender打印开发详解
    从GitHub火到了CSDN,共计1658页的《Java岗面试核心MCA版》,拿走不谢
    Redis的Set类型、Sorted Set类型、Bitmap类型和HyperLogLog
    Word脚注如何插入?1分钟学会!
    Spring+SpringMVC+Mybatis(开发必备技能)03、图片上传
    Dropout在Python中的应用及源代码解析
    【C语言数据结构——————栈和队列4000字详解】
    ES6和CommonJS导入导出语法区别
  • 原文地址:https://blog.csdn.net/weixin_43227851/article/details/133625567