• Haar特征


    最简单的利用特征区分目标就是使用阈值判决。

    那好,先解决什么是Haar特征

    上面蓝色背景代表(目标)定义图片,黑白特征是harr特征;

    将当前的黑白模板放到图像的任意位置上,假设模板大小为10x10矩阵,覆盖100个像素大小,黑色50个像素点,白色50个像素点;

    则:将白色区域在目标图片上所得的50个像素和-黑色区域的像素和=特征;

    或:整个区域的像素在目标图片上所得的100个像素和

    整体像素权重为1;黑色像素权重为-2;

    harr特征遍历图像过程:假设图像模板10x10大小,图片是100x100大小。模板沿着图片水平和垂直方向滑动,从上到下,从左到右遍历一次。

    在遍历过程中还要考虑到步长问题,也就是说模板一次滑动几个像素,如每次滑动10个像素,则需要滑动9次,加上最开始位置的1次,则水平竖直方向共计100个这样的模板;

    当然,有时候有的人脸可能小,有的可能很大,10x10的窗口可能检测不到,出现漏检的情况。这时就需要缩放;这时遍历子窗口进行了等比例的放大,那么矩形特征(a、b、c、d、e)也要进行一定比例的放大。然后计算Harr特征向量,再判别记录。

           如此循环计算,直到子窗口大小达到不超过原始图像的最大尺寸。然后,再将所有记录过的人脸的进行标记,由于人脸区域在不同尺度的窗口中可能会有重复检测到,所以需要将重叠检测到的人脸区域合并起来成为一个区域并标记。

    举例计算过程:

    如一个1080*720的图片;模板大小10*10;步长为2;缩放20级;

    若想对图片进行实时处理的话,每秒钟不能低于15帧每秒;

    一张图片需要1000亿次才能将Harr特征计算完毕;计算完成还需要判决等操作;因此计算量非常大;

    国外大神提出基于积分图的计算方式,能减少这种运算量;

     积分图计算

    A区域只包含自己,B区域包涵AB两部分,C区域包涵AC两部分;D包涵四个方框之和;

    1代表A区域,2代表B-A区域;3代表C-A区域;4代表最右边小方框区域。

    则计算4区域像素可以由原来的(10*10=100)变成下面原理;将10*10的运算变成3次加减运算得到;

    但是在最先开始计算时,还是需要全部遍历一次像素,在后面再次计算时,才能采用相邻区域计算

    Harr算法与AdaBoost级联分类器一般是一起使用:

  • 相关阅读:
    typeof与instanceof
    TCP与UDP的区别
    const、let、var关键字
    基本通用的使用jdbc文件java代码连接数据库
    HTML知识点01
    ADO.NET基础02
    ADO.NET基础03
    数据库语法01
    数据库语法02
    Ubuntu16.4 内核降级
  • 原文地址:https://www.cnblogs.com/fcfc940503/p/11338529.html
Copyright © 2020-2023  润新知