人脸识别技术
基于计算机的人脸识别技术研究发轫于20世纪中期,最早是模式识别(Pattern Recognition)的一个分支,后来逐渐发展完善了人脸检测、人脸配准、人脸属性识别、人脸验证和识别等多种算法。现在这些技术已经广泛应用在日常生活中,包括手机和相机的人脸捕捉功能、上班自动人脸识别打卡,一些新型住宅小区已经加入了具有人脸识别功能的门禁系统。
人脸检测
人脸识别算法的第一步就是确定当前图像和视频中是否有人脸的存在,并且把对应的人脸范围圈定出来。2001年,Paul Viola与Michael Jones共同发明了著名的Viola-Jones目标检测方法,这是后来人脸检测算法的基础。
Viola-Jones算法包括特征和分类器两部分。算法利用了人脸的Haar特征,也就是由黑白矩形形成的、可以模拟目标的不同部分之间明暗关系的特征。这些特征可以用来寻找正面人脸上存在的一些明暗对比的区域,比如鼻梁部分比眼睛更亮、嘴巴部分一般会比其他区域更暗等等。这些特征可以匹配图像中一些候选框,再用这些候选框经过AdaBoost分类器,输出“是人脸”或“非人脸”的标记。值得指出的是,在Viola-Jones算法中,多个分类器级联形成一个集成分类器。这样的好处是逐级减少候选框的数量,提高了算法的计算速度。
后续的一些研究也立足于特征和分类器两个方面。在特征方面,现在的安保系统倾向于使用一些相对复杂的特征替代Haar特征,一方面可以提高系统的检测率,另一方面可以更好地解决非正面脸部带来的检测失败问题。在分类器方面,非极大值抑制(NMS,Non-Maximum Suppression)方法可以组合位置和大小相近的候选框,从而大规模地减少候选框的数量;深度神经网络可以利用显卡来进行大部分运算,极大提升运算速度。
图2(图片来源:Sp3n/Shutterstock.com)
人脸配准
由于标准的人脸可以让人脸识别等算法的结果更加稳定,因此一个关键步骤就是将不同角度、不同分辨率的人脸经过算法匹配到标准的位置,这就是人脸配准(Facial Alignment)。从这个角度上说,所有人的脸都可以看做是标准人脸经过仿射变换(缩放、旋转、平移)之后的结果,而人脸配准算法的目标就是根据人脸的特征点还原这个变换过程。
计算机科学家首先定义了人脸的68个特征点,可以勾勒出人脸的主要特征。一个经典的算法思路就是让计算机学习标准的人脸图像在这些特征点上是如何一步一步变换成真实图像的。它通过训练级联的回归器,让每一个回归器都学习一部分变换的信息,从而在真实人脸图像上找到了标准人脸图像的映射。
人脸属性识别
人脸的属性包括性别、种族、年龄、表情等,对于这些属性的精准区分可以更好地判断当前人物的喜好和心理状态等。如果完成了人脸的检测和配准,人脸属性识别相对简单,其实质就是一个在大数据帮助下的图片分类和回归问题。
2015年,微软开发了一款预测年龄的应用(how-old.net),根据用户上传的图片给出图中人物年龄的预测。在这个系统中,人脸先被圈出,然后提取出的特征向量会经过分类器给出性别的标签,再经过年龄的回归分析器得到相应的年龄数字。如果利用深度神经网络,特征提取和分类回归就可以集成在一个算法中,同时实现多个属性的实时预测。类似地,对人脸表情也可以实现相应的分类和回归,这可以用在一些智能家居和安保系统的控制系统中,遇到危险时,可能仅仅眨眨眼就可以把报警信息传递出去。
人脸验证与识别
基于上述算法,就可以判断两张图片是否是同一个人,这就是人脸验证。推而广之,对于输入的任意一张人脸图像,计算机可以从数据库中匹配到相关人员,并输出其身份信息和属性信息,这个过程就是人脸识别。
由于要进行输入图片和数据库内大量图片的对比,算法的速度对用户的体验至关重要。一个解决的方案就是从图片中提取特征。一个方法是主成分分析 (Principal Component Analysis),也就是从检测出来的人脸选框中获得其特异性特征,然后通过相关性分析获得最一致的人员信息。另一个重要的特征是SIFT(Scale-Invariant Feature Transform,即尺度不变特征变换),即使图像有旋转、尺度变化甚至分辨率的变化或者使用不同的相机,都可以从图像中匹配特征点,准确率很高。
人脸在不同光照、不同媒介中的样子是不同的,直接的特征提取方法可能无法满足所有人脸识别场景的需求,因此就需要把人脸的特征跟光照等信息完成去耦合。经典算法LBP(Local Binary Patterns,即局部二值模式)所做的就是去掉光照信息。在LBP算法中,每一个像素会跟相邻像素作比较,然后保留整张图片中像素之间的大小关系,但去掉了其具体的数值。这样一来面部特征仍然得到保留,但光照或纹理造成的像素值偏移就会被去掉。近几年发展的去耦合表示法(Disentangled Representation)使用了类似的想法,把深度神经网络提取出来的人脸特征分成形状(Shape)和外观(Appearance)两部分,可以更好地保留人脸图像的特征,提升了识别准确率。
图3(图片来源:Helloabc/Shutterstock.com)
人脸识别技术
基于计算机的人脸识别技术研究发轫于20世纪中期,最早是模式识别(Pattern Recognition)的一个分支,后来逐渐发展完善了人脸检测、人脸配准、人脸属性识别、人脸验证和识别等多种算法。现在这些技术已经广泛应用在日常生活中,包括手机和相机的人脸捕捉功能、上班自动人脸识别打卡,一些新型住宅小区已经加入了具有人脸识别功能的门禁系统。
人脸检测
人脸识别算法的第一步就是确定当前图像和视频中是否有人脸的存在,并且把对应的人脸范围圈定出来。2001年,Paul Viola与Michael Jones共同发明了著名的Viola-Jones目标检测方法,这是后来人脸检测算法的基础。
Viola-Jones算法包括特征和分类器两部分。算法利用了人脸的Haar特征,也就是由黑白矩形形成的、可以模拟目标的不同部分之间明暗关系的特征。这些特征可以用来寻找正面人脸上存在的一些明暗对比的区域,比如鼻梁部分比眼睛更亮、嘴巴部分一般会比其他区域更暗等等。这些特征可以匹配图像中一些候选框,再用这些候选框经过AdaBoost分类器,输出“是人脸”或“非人脸”的标记。值得指出的是,在Viola-Jones算法中,多个分类器级联形成一个集成分类器。这样的好处是逐级减少候选框的数量,提高了算法的计算速度。
后续的一些研究也立足于特征和分类器两个方面。在特征方面,现在的安保系统倾向于使用一些相对复杂的特征替代Haar特征,一方面可以提高系统的检测率,另一方面可以更好地解决非正面脸部带来的检测失败问题。在分类器方面,非极大值抑制(NMS,Non-Maximum Suppression)方法可以组合位置和大小相近的候选框,从而大规模地减少候选框的数量;深度神经网络可以利用显卡来进行大部分运算,极大提升运算速度。
图2(图片来源:Sp3n/Shutterstock.com)
人脸配准
由于标准的人脸可以让人脸识别等算法的结果更加稳定,因此一个关键步骤就是将不同角度、不同分辨率的人脸经过算法匹配到标准的位置,这就是人脸配准(Facial Alignment)。从这个角度上说,所有人的脸都可以看做是标准人脸经过仿射变换(缩放、旋转、平移)之后的结果,而人脸配准算法的目标就是根据人脸的特征点还原这个变换过程。
计算机科学家首先定义了人脸的68个特征点,可以勾勒出人脸的主要特征。一个经典的算法思路就是让计算机学习标准的人脸图像在这些特征点上是如何一步一步变换成真实图像的。它通过训练级联的回归器,让每一个回归器都学习一部分变换的信息,从而在真实人脸图像上找到了标准人脸图像的映射。
人脸属性识别
人脸的属性包括性别、种族、年龄、表情等,对于这些属性的精准区分可以更好地判断当前人物的喜好和心理状态等。如果完成了人脸的检测和配准,人脸属性识别相对简单,其实质就是一个在大数据帮助下的图片分类和回归问题。
2015年,微软开发了一款预测年龄的应用(how-old.net),根据用户上传的图片给出图中人物年龄的预测。在这个系统中,人脸先被圈出,然后提取出的特征向量会经过分类器给出性别的标签,再经过年龄的回归分析器得到相应的年龄数字。如果利用深度神经网络,特征提取和分类回归就可以集成在一个算法中,同时实现多个属性的实时预测。类似地,对人脸表情也可以实现相应的分类和回归,这可以用在一些智能家居和安保系统的控制系统中,遇到危险时,可能仅仅眨眨眼就可以把报警信息传递出去。
人脸验证与识别
基于上述算法,就可以判断两张图片是否是同一个人,这就是人脸验证。推而广之,对于输入的任意一张人脸图像,计算机可以从数据库中匹配到相关人员,并输出其身份信息和属性信息,这个过程就是人脸识别。
由于要进行输入图片和数据库内大量图片的对比,算法的速度对用户的体验至关重要。一个解决的方案就是从图片中提取特征。一个方法是主成分分析 (Principal Component Analysis),也就是从检测出来的人脸选框中获得其特异性特征,然后通过相关性分析获得最一致的人员信息。另一个重要的特征是SIFT(Scale-Invariant Feature Transform,即尺度不变特征变换),即使图像有旋转、尺度变化甚至分辨率的变化或者使用不同的相机,都可以从图像中匹配特征点,准确率很高。
人脸在不同光照、不同媒介中的样子是不同的,直接的特征提取方法可能无法满足所有人脸识别场景的需求,因此就需要把人脸的特征跟光照等信息完成去耦合。经典算法LBP(Local Binary Patterns,即局部二值模式)所做的就是去掉光照信息。在LBP算法中,每一个像素会跟相邻像素作比较,然后保留整张图片中像素之间的大小关系,但去掉了其具体的数值。这样一来面部特征仍然得到保留,但光照或纹理造成的像素值偏移就会被去掉。近几年发展的去耦合表示法(Disentangled Representation)使用了类似的想法,把深度神经网络提取出来的人脸特征分成形状(Shape)和外观(Appearance)两部分,可以更好地保留人脸图像的特征,提升了识别准确率。
图3(图片来源:Helloabc/Shutterstock.com)
举报