人脸检测是图像处理中最常见的应用,如今已经有较多成熟的方法,常用的方法是根据人脸的特征(颜色、形状)进行识别,如采用机器学习建立分类器检测人脸,用AdaBoost、SVM等算法来实现人脸检测。
在行人检测过程中,需要对图像中的候选区域进行分析,判断是否为行人,为此,需要使用多特征来对行人进行建模,这些特征应具有一定的行人和非行人的区分性。采用Ada-Boost算法进行行人训练时,需要从行人样本图像中抽取大量的简单特征。
Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。在确定了特征形式后Haar-like特征的数量就取决于训练样本图像矩阵的大小,特征模板在子窗口内任意放置,一种形态称为一种特征,找出所有子窗口的特征是进行弱分类训练的基础。Haar特征是一种“矩形”对特征,描述图像模式相邻区域的特征差异如图4-4所示。
图4-4 Haar-like特征及计算示意图
类Haar的每个特征由2~3个矩形组成,分别检测边缘和线性特征,特征值计算为组成的矩形区域灰度积分之和。
式中,wi∈R为矩形的权;RecSum(ri)为矩形所围区域的灰度积分;N是组成的矩形个数。“积分图”能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。如图4-4所示,对于图像中的某一点A,定义积分图为
式中,g(m,n)为区域A中某点的灰度值;Px,Py为此点在图像中的坐标。可见,SA即为区域A中所有灰度值之和。同理,图中斜纹部分所围区域的积分图为
LBP是近年来人脸检测和人脸识别领域效果比较好一种特征,将LBP与AdaBoost算法结合起来进行人脸检测,可以获得比较好的检测结果。
在基于Haar特征进行人脸检测时,首先,利用样本(大约几百幅样本图片)的Haar特征进行分类器训练,得到一个级联的boosted分类器。训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本(例如人脸或汽车等),反例样本是指其他任意图片,所有的样本图片都被归一化为同样的尺寸大小(例如,20×20)。
分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本相同的尺寸)的检测。检测到目标区域(人脸)分类器输出为1,否则输出为0。为了检测整幅图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,分类器被设计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效。所以,为了在图像中检测未知大小的目标物体,扫描程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描。该方法利用分类器对整幅图像进行扫描,检测目标物体,在分辨率高的图像(如720P图像)上检测十分耗时。(www.xing528.com)
LBP算法本质上是一种局部的灰度特征。原始的LBP算子如图4-5所示,定义为在3×3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3×3领域内的8个点可产生一个8bit的无符号数,即得到该窗口的LBP值,并用这个值来反映该区域的纹理信息。
图4-5 原始LBP算子
如图4-6所示为改良过的LBP算子,记作LBPu2(P,R)这种LBP算子不仅限于3×3的方形格子内,可以扩展到以一个像素为中心的半径为R的圆内,并从此范围内获得P个像素的灰度值与中心像素进行比较。如果这P个点中存在无法同像素完全重合的点,则使用双线性差值来获得其灰度值进行计算,记作下标(P,R)。同时研究发现对于该8bit二进制数,当将整个数看作头尾相接的循环,那么其中0~1或1~0跳变不多于2次的占大多数,此种LBP算子被称为统一模式(Uniform Patterns),例如00000000,00 111 100,10 000 111都是Uniform Patterns。在实际应用中可以只使用Uniform Patterns作为图像特征,记作上标u2。常用的参数取值为P=8,R=2。
图4-6 改良的LBP算子
此时的LBP算子仍然只表现了图片的局部特征,为了得到其全局特征,可以将整幅图片分割为m个尺寸相同的小块R0,…,Rm-1,在每一个小块中计算算子,将计算结果进行直方图统计,然后将所有分块的直方图连接起来,得到一个总的直方图,作为整幅图片的特征。常用的分块尺寸为18×21,该尺寸能在保证识别效果的情况下,尽可能降低计算量。
对于球机视野中的每一帧(对于人员运动不激烈的场合也可根据情况进行跳帧操作,比如视频帧率为24帧/秒,实际操作可以以12帧/秒或更低的速率进行人脸检测),系统的人脸检测与规格化模块将进行以下操作:
(1)对图片使用LBP特征的AdaBoost算法进行人脸检测,如果检测得到人脸,则将检测结果中的人脸部分用方框标示出来,并分别保存为图片。否则输出提示无法检测到人脸。
(2)在有LBP算子提供特征的情况下(图4-7所示人脸图像LBP特征提取),使用AdaBoost级联分类器针对人脸进行训练,可以得到效果良好的人脸检测模块。
图4-7 人脸图像LBP特征提取
2001年Paul Viola和Michael Jones在积分图的概念下,选择haar特征,采用级联的思想,利用AdaBoost进行人脸检测,取得了较好的效果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。