查看原文
其他

【技术大讲堂】人脸识别:应用开启创新潮,算法进展才起步

2015-06-30 孙剑 微软研究院

微信公众账号:微软研究院


作者:微软亚洲研究院首席研究员 孙剑


近期,微软发布了一款有趣的应用 ——“微软我们TwinsOrNot.net,只需任意上传两张人物照片,就可以知道他们长的有多像,比如,测试你是否和某个明星长得很像,或者夫妻/男女朋友是不是有夫妻相等。与前一阵风靡全球的How-Old.net相似,它们都很巧妙地将人脸识别与社交网络中的人际交往结合在一起,虽然不能做到百分之百精确,但高科技加诙谐的人际交往和传播效果,可以说是人脸识别技术和社交网络发展到一定阶段、自然而然的应用创新。



在可以预见的未来,这样的创新会越来越多,而且将不仅限于娱乐或是创造茶余饭后的谈资。在Build 2015开发者大会上,微软推出了基于云计算平台Azure的牛津计划(Project Oxford),它可以提供一系列基于机器学习的技术服务,除了人脸识别,还有语音处理、计算机视觉和语言理解等智能服务,赋予开发者开发人工智能应用的能力。每个开发者都可以利用这些汇聚微软研究院多年研究成果的API设计、开发自己的应用,而无需成为数据科学家或者掌握相关基础技术。基于牛津计划的人脸识别API,微软工程师仅用了几个小时就开发出前文提到的人脸识别应用最初的演示版。



开发者们可以用牛津计划的API实现很多有趣的想法,而作为提供人脸识别技术的中国研究团队,我们要做的除了根据用户反馈快速迭代精进API,更要从研究本源上不断优化人脸识别算法。


大量”阅读“照片学习辨识,深度学习成主流识别方式


微软亚洲研究院在人脸识别领域已经耕耘了近20年时间,从最早的子空间方法,到后来的局部描述子方法,再到现在的深度学习方法,我们历经了所有人脸识别技术的主流研究方法。


20世纪8090年代,人脸识别的误差还比较大,应用领域也很有限,通常在检查证件照等特定领域才会使用。当时的技术颇为简单,通常是将图像经简单的预处理后线性地映射到一个高维向量空间中。由于只是线性模型能力的不足,那时的识别准确率与今天相比大概是数10倍的差距。


2000年~2010年,局部描述子方法成为研究主流。它在人脸的局部区域(如眉、眼、鼻、嘴等)抽取局部描述子,再线性或非线性地映射到高维向量空间中去。这类方法的识别准确率较上一阶段的子空间方法有很大提升。不过因为特征和模型始终是人工设计的,所以仍然存在一定的局限性。


2012年至今,深度学习方法在学术界被迅速地广泛使用。通过深层神经网络训练出来的人脸识别算法极大地提高了识别精度。简而言之,就是让已经在网络结构中预设了人脸识别先验知识的神经网络大量“阅读”很多人在各种环境(例如光照,视角,表情)下拍摄到的不同人脸照片,自动学习并提取人脸各个部位和尺度的低,中,高层特征。在大量学习之后,它便能根据所提供的监督信息将不同的人分开。


随着计算机技术的发展,廉价的PC+GPU的方式可以提供上千个并行的计算单元,这让深度学习一下子在多个计算机研究领域异军突起,成就了相当多全新的研究方法。


人脸识别的基础环节


How-Old.net和“微软我们”主要是对静态的人脸照片进行识别,这只使用了人脸识别技术中的一小部分。一个完整的人脸识别系统,可以在含有人脸的图片或视频流中自动检测和跟踪人脸,进而达到识别目的,通常也叫做人像识别、面部识别。总的来说,人脸识别系统可以大致分为以下四个部分:


首先,检测人脸在哪里。首先要从照片中识别出人脸在哪里,它的大小、位置等。目前常用的是级联分类器,可以利用人工设计的特征模型或深度学习模式进行一级一级的筛选。若要加快速度,可在前期使用人工设计的特征模型,快速筛去不是人脸的部位,后期利用深度学习去精细化地判断每一个留下的部位是否是人脸。


其次,定位人脸和各个部位。在给定人脸之后,再确定出鼻子、眼睛、嘴巴等,这通常采用回归预测的方法。回归器可以有很多种,随机森林方法、深度学习方法都能实现。以深度学习为例,训练的时候告诉回归器到底眼睛在哪里、鼻尖在哪里,预测值和真实值的距离越小越好,并据此不断调整回归器的参数,用成千上万的人脸照片反复训练,直到回归器能够准确输出人脸各个器官的准确位置信息。


第三,人脸特征的匹配与识别。这个过程是将待识别的人脸特征与已经得到的人脸特征模板进行比较,根据详细程度对人脸的身份信息进行判断。使用深度学习方法可以大大简化这一过程,因为所有的特征匹配都是由神经网络自动实现,这也是目前最有效的识别方法。


最后,人脸属性的识别。用户感兴趣的人脸属性可能包含很多,比如年龄(使用在How-Old.net中),性别,表情,种族,发型,是否戴眼镜,胡子的类型。这类属性通常使用深度学习方法可直接进行分类或回归。


高识别率与用户体验


虽然经常听说有人脸识别算法的准确率在某个特定的评测数据库上已经超过人类的识别率,但在实际应用场景中,并没有一个放之四海的基准可以去衡量人脸识别算法的准确率。针对不同的应用,训练数据和算法共同决定了识别率和用户体验。


错误接受率是人脸识别中的一个重要指标,通常错误接受率越低越好。不能错放任何一个人进去,严格确保安全,但同时也可能意味着真正的用户在多次尝试刷脸之后也进不去,这大大降低了最终的用户体验。所以在实际应用中,安全与用户体验的谨慎平衡是必须要考虑的重要因素。所以,当我们看到人脸识别应用的巨大进步时,仍需要客观、严谨地对待人脸识别算法本身,时刻提醒自己,它的局限性犹存,我们还需要不断寻求更多、更有效的方法去提升它。


结束语


科学研究的每一次进步,都会催生多种多样的创新应用。深度学习、社交网络、移动互联网的兴起相互交叉,加之人脸识别研究多年的积累,开启了人脸识别应用的创新潮,它们或有趣、或实用,并且一定会越来越多。或许在不久的未来,计算机就能够通过人类的表情和肢体语言体会人类的喜怒哀乐。




和朋友家人一起测年龄拼颜值,请回复“How-Old.net

看你是否有明星脸夫妻相,请回复TwinsOrNot.net

了解中英实时语音翻译助手,请回复“Skype Translator



如果觉得好,就鼓励一下作者吧!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存