旋转人脸的检测及检索

旋转人脸的检测及检索

上海市大同中学 刘留

E-Mail: Geo(DOT)Cra[AT]gmail{DOT}com

[PDF版本]

摘要:本文论述了一种基于眼睛粗定位划分可能人脸区域后送入分类器进行判别的人脸检测方法,该方法能够正确检测360°旋转人脸图像,对于非监视环境下的人脸检测具有错误报警低,速度快的特点,本方法应用在人脸检索中已经取得了比较好的效果,同时本文还对该方法的推广进行了探讨,提出了一种具有图像平面内旋转缩放不变性的物体检测方法。

 

 

关键字:人脸检测、眼睛定位、凸包填充、分类器、神经网络、人脸检索、特征点配准

 

 

1. 引言

 

 

在实际生活中,人脸检测技术有着广阔的应用空间。首先,它是人脸识别实用化的关键一步,对人脸识别的精度有很大的影响。另一方面,人脸检测技术在基于内容的搜索[4]中也有极大的价值,比如著名的NameIt系统即是人脸检测技术应用在这一方面的实例。

 

 

本文提出了一种基于眼睛定位与分类器的人脸检测新方法,该方法将基于彩色图像的人脸检测和基于灰度图像的人脸检测方法结合起来,这种方法在现阶段能实现非监视环境下图像平面内360°的旋转人脸检测,拓展了人脸检测的角度范围,并且有效地降低了错误报警数。基于此,本文实现了一个桌面检索系统和一个互联网人像搜索系统,桌面检索系统对于普通家庭数码照片的检索具有速度快,检出率高的特点;互联网人像搜索系统对海量人脸数据的检索速度较快,检出率较高。在本文提出的人脸检测方法分析的基础上,还提出了一种广泛的基于特征点匹配的物体检测算法,该算法具有图像平面内的旋转缩放不变性。

 

 

2. 相关工作

 

 

人脸检测技术[1]从上世纪80年代开始作为人脸识别的一部分进行研究,但随着研究的深入,人们发现人脸检测,又特别是非监视环境下的人脸检测难度和人脸识别相当,甚至更难。至今,人脸检测技术经过几十年的发展,许多方法应用于其中,但大多数差强人意,而人们的注意力也主要集中在了对于监视环境下的实时人脸检测,并且提出了一些很好的方法,例如AdaBoost [2-5],这些方法实现监视环境下的人脸检测无疑是适用的,但是,对于非监视环境下的人脸检测,特别是一些复杂环境下的人脸检测,AdaBoostANN [6-8]SVM [9]等方法的错误报警数仍然较高。

 

 

人脸检测的任务是在多种环境中将人脸检测出来,其中存在伪人脸、光线不均匀等种种噪声。就人脸本身而言,由于各个人的不同,而且表情差异极大,也是这一问题的难点所在。经过多年的发展,监视环境中的人脸识别技术已经臻于成熟,但是人脸检测技术的研究,特别是在复杂背景中的人脸检测技术仍然方兴未艾。

 

 

虽然人脸检测技术经过数十年的发展已经有了长足的进步,现阶段也有很多的人脸检测程序,但是尽管大多数方法中采用的分类器和训练方法不同,大致思路仍然是一致的,即建立多分辨率的金字塔图像,然后再沿x,y轴开始用一个固定窗口进行检测。

1. 现阶段的人脸检测方法大致思路

 

 

这样的方法大多数对于旋转人脸的检测有着先天的不足。因为依照这样的思路,必须对多个方位建立分类器,在实际检测中费时太多,不够实用,而如果用旋转人脸来训练分类器则会导致分类器错误率直线上升,无法使用。

 

 

2001Viola-Jones[2]提出AdaBoost方法以后,监视环境下的人脸检测问题基本上被认为解决了,经过近几年的发展,这一方法又得到了进一步完善[3,5]和应用上的推广[4]AdaBoost是这样一种方法:先根据图像建立积分图像,将(x,y)点的积分图像值定义为 ,如图2.所示。

2. (x,y)处积分图像值

3. AdaBoost使用的四种矩形特征

 

 

AdaBoost方法采用矩形特征(图3.)这一类弱分类器,这类分类器应用于积分图像中仅仅通过10多次的加减运算就可以得到分类结果。通过提升算法的训练,对弱分类器进行筛选,将多个弱分类器组成一个强分类器,达到快速检测的目的。

 

 

可以看出,AdaBoost方法对于旋转人脸的检测[5]需要建立多个强分类器,影响了精度,而就训练时间而言也需要几个星期甚至几个月。

 

 

3. 基于眼睛定位与分类器的人脸检测

 

 

3.1. 眼睛粗定位方法

 

 

通过对各种脸部特征的分析,由经验所得,确定了眼睛的位置也就基本确定了人脸的位置。因此,本文将眼睛粗定位作为论述人脸检测方法的核心,并且不断优化方法从而获得较高的正确检测率和较低的错误报警数。较高的正确检测率能够保证不丢失人脸,而较低的错误报警数则可以用较快的速度完成人脸的判别,同时也降低了后期对于人脸判别分类器的性能要求。

 

 

在许多文献[10]中已经提到,眼睛具有灰度不变的特征,即在大多数情况下,眼睛与周围环境相比是灰度最低的部分。在早期的人脸检测文献中,也有利用眼睛和嘴的三角关系进行人脸检测的,虽然效果不好,但是不失为一种有益的尝试。

 

 

而本文的眼睛粗定位方法是一种基于彩色图像的定位方法,其方法流程如图4.所示:

 

 

4. 眼睛定位方法流程

 

 

首先,我使用Anil K. Jain[11]建立的皮肤颜色模型,将皮肤部分提取出来,同时,使用凸包填充算法(见算法1.),将大多数皮肤部分填充为计算几何中所谓的凸包形状,这样,即可以肯定在填充后的这些区域中,必定含有眼睛部分。

 

 

由于眼睛具有灰度不变的特征,因此可以对处理区域进行最优阀值二值化[1.1.],在二值化后,图像中表现为低亮度的区域几乎可以肯定包含眼睛部分。

 

 

很显然,在这样处理后,仍然无法避免眼睛和其他区域粘连的情况,同时,大量的边缘部分在凸包填充的过程中被填充进处理区域,而皮肤边缘多是低亮度区域,这样就造成了大量的错误眼睛检测,错误报警数很高。

 

 

算法1. 凸包填充算法

5. 凸包填充示例

凸包填充是这样一种算法,考虑在坐标系中,若存在一封闭图形G,且在G外有一点A(x, y),作过A点交G的两条切线(若存在)ll’,则ll’有向G外的夹角θ,若

θ< 180°,则可知A点必在G填充后的凸包内。

由此,我可得出凸包填充算法如下:

1.   G图形外存在类似A的一点,则将两切点到这一点设置为G图形的新的轮廓;

2.   重复以上步骤直到G外不存在类似A的一点为止。

你可能感兴趣的:(图像模式识别,算法,图像处理,网络,测试,人脸识别,互联网)