技术流:数码相机中的人脸检测技术与发展
市场上许多数码相机带有“人脸识别”功能,拍照的时候通过定位人脸进行准确聚焦。它的工作原理就是实时人脸检测(Face detection)技术,把它称为人脸识别其实是不准确的。检测或者定位是指在一个图像中找到人脸的位置,而识别(Recognition)是要指出这人是张三还是李四。识别是检测的后续步骤,只有当人脸正确定位后,识别才能进行。
在1990年代之前,很多人脸检测的方法是通过提取图像中脸的明显轮廓,比如鼻子眼睛和下巴的轮廓来进行的。比如先对图像进行边缘提取,根据人脸形状为椭圆这一先验知识找到脸部轮廓;或者通过对图像水平和垂直方向的灰度值进行累加(称为积分投影),在一维投影曲线上判断眼睛或者嘴的位置。在人们用计算机进行人脸检测的早期阶段,这样的思路是比较普遍,它看起来和一个普通人对“在图像中怎样找到人脸?”的回答一致:“先找眼睛鼻子或者嘴巴的轮廓......”。也许也有人会回答:“先根据皮肤颜色......”。实际上,形状轮廓,或者肤色都不是很好的检测线索。对于复杂的图像通过设置简单的阈值提取轮廓,很难奏效;而肤色也容易和图像背景颜色相混淆,更何况颜色信息在黑白图像中根本不存在。
进入90年代,随着计算机处理能力不断增强,进行图像处理运算的门槛大大降低了。人们在一台普通的PC上也可以进行人脸检测和识别算法的研究,大量人脸识别和检测的相关算法涌现出来。人脸检测方法也从之前的基于形状轮廓的思路,转向基于图像的方法。
数字图像处理通常把一个图像表达成矩阵的形式,一幅黑白图像矩阵中每个元素(称为像素)用8Bit(可表达0~255)的整数表示图像亮度。这样的矩阵也可以看做一个3维曲面,如下图。一个8Bit黑白图像一般称为灰度图像,彩色图像则是由3层分别表示红黄蓝的8Bit图像(一个像素24Bit)叠加而成的。一个64×64的人脸图像矩阵,它所能提供的全部信息都包含在这个矩阵里,不会更多(实际上它也可能是有冗余的),所以利用图像的信息进行人脸检测是当前最常规的方法。
人脸检测的基本方法是用一个一系列小窗口扫描照片,窗口的尺寸可视实际人脸的大小选择,比如{16,20,24,32,..., 120} 。扫描窗口,这可以说是人脸图像或者其他目标检测的基本的工作方式,只有这样才能覆盖可能出现在不同位置、不同大小的人脸。对窗口中的图像块提取一系列特征,当这些特征表现出的统计信息满足条件,才判断这个图像为人脸图像。这是模式识别(Pattern recognition)领域的一个典型的两类(“人脸”和“非人脸”)分类问题。
MIT媒体试验室的Turk和Pentland在基于图像的人脸检测和识别方面做出了开创性的工作。1991年他们发表基于主成份分析(PCA)的方法。他们把人脸图像二维矩阵每行首尾相接组成一个向量,这个向量可以看做是高维空间中的一个点。比如16×16的一个灰度图像,可以看成是256维空间中的一个点。大量的人脸图像在这样的空间中应该是聚在一起的,叫做聚类(俗称扎堆)。一个“非人脸”图像离开这个“堆”则比较远。这样扎堆的人脸与非人脸图像的边界并不光滑,所以一般通过降低维数(高维空间投影到低维子空间,PCA就是干这个的)的方法去除噪声,另一方面在低维空间的计算量也会大大减小。作为人脸判断的依据,“远”和“近”是相对的概念,可以转化为某种概率表达,比如高斯分布的形式,但作为最终判断Yes或No是需要一个阈值,它要在正确率和错检率之间取得平衡。这样的阈值的选取非常微妙,在图像处理和模式识别领域里是避免不了的。所以有人说,无论多么好的算法,归根结底都是trade-off(权衡)。
基于PCA的方法,需要先对扫描窗口进行归一化,变成长度一致的矢量,再通过一个变换矩阵进行投影,变到低维子空间。这样的矩阵乘法,其实是由一系列矢量内积运算组成的,简单说,就象一个2维矢量(4,9)投影到x坐标轴(1,0),只要做内积即可:4*1+9*0=4。这样的简单的步骤,对于大量扫描窗口来说,计算量还是很大的。这对数码相机的系统(比如Arm系统或者加上图像处理DSP芯片)来说,负担太重,几乎无法做到实时处理。
另外,检测算法的缺陷也导致无法有很好的鲁棒性(robustness)。把图像窗口矩阵简单地首尾相接,实际上忽视了人脸在空间上的连续性,而仅仅是把图像看成一个矢量,没有更充分地利用人脸的先验知识,比如眼睛区域的总是比脸部颜色深一些。
真正突破性的进展出现在2001年,P. Viola和M.J. Jones发表的会议论文,提出了基于“积分图像”和AdaBoost训练的著名方法,才使得实时人脸检测变成可能。这篇文章几乎可以说是具有划时代的意义,可以毫不夸张地说,现在市场上几乎所有的人脸算法都是以它为基础的。我在一段很长的时间里所做的工作都和它有关。以后有空我们再来谈它吧,今天就到这里。
相关文献:
[1] 基于PCA方法在这里可以查到,第一篇就是M. Turk, A. Pentland, Eigenfaces for Recognition。
[2]Viola-Jones论文Robust Real-time Object Detection-
世界人像摄影作品Matteo Zanvettor 摄影作品
人像摄影需要的技巧性比其他摄影类型更高,一幅精美的人像摄影能够拍摄出每个元素的不同纹理,我喜欢反光板的简单和灵活,以及它带来的风格,这样一张照片从拍摄符号性的图像开始就经过深思熟虑,并且能够传递除了照片内容本身之外更多的东西。今天我们将给你献上一组非...
-
镜头下的足尖艺术 舞台外的曼妙芭蕾舞姿
就算未曾学习过芭蕾舞,也会轻易被那优雅曼妙的身姿给吸引,而如果你对于芭蕾舞的印象还停留在舞台上那有些距离的模样,那么以下这组名为BallerinaProject的摄影系列想必会让你大大改观!纽约摄影师DaneShitagi持续将近14年的BallerinaProject摄影计画,利用镜头记录芭...
-
抓拍运动中的动物摄影作品
爱摄影的人有着对世界无限的探索精神和无穷的快乐,一幅精美的动物摄影能够拍摄出每个元素的不同纹理,我喜欢反光板的简单和灵活,以及它带来的风格,这样一组作品布光发挥了至关重要的作用,并且能够传递除了照片内容本身之外更多的东西。这里有一篇抓拍运动中的动物摄...
-
几张奇妙的大自然风景图片
大自然经常在不经意间就创造出了令我们叹为观止的神奇景色。...