Kinect Identity(身份识别)三要素:人脸、服装信息、身高
本文由《Helping Kinect Recognize Faces》翻译而成
作者:Douglas Gantenbein
在Xbox 360游戏设备上使用Kinect,就是见证奇迹的时刻。随着不同的人不断地进出Kinect的视野,Kinect能够识别出不同玩家的身份并做出相应反应。尽管Kinect所见千差万别,但它仍然能够完成这一复杂任务。譬如房间内光线随时会改变,玩家时而接近时而远离Kinect。当玩家投入游戏的时候,他们的面部表情每一秒钟也都会变化。
身份识别要素
Kinect身份识别,即设备中玩家识别的工具集,主要通过以下三条视觉线索识别玩家身份:
- 玩家的身高
- 玩家的服装颜色
- 玩家的面孔
其中最后一个是关键因素。因为在身份识别过程中,玩家们的身高可能很相近,也可能会穿着同样颜色的衣服。但他们的面孔是各不相同的。这也正是微软亚洲研究院在帮助Kinect识别“谁是谁”的过程中所发挥的重要作用所在。微软亚洲研究院视觉计算组高级研究员孙剑与微软之外的同事们合作解决了这一复杂难题,使得机器在玩家改变姿势、改变一颦一笑、或者面部光影忽明忽暗时同样能够识别他们的身份。
对于一台机器来说,识别人脸并不是一件容易的事情。“最根本的困难在于同一个人的变化,”孙剑说,“同一个人的面部在不同条件下可能会有很大的差异。在照明、表情或姿势等因素的影响下,这样的差异有时甚至比两个人之间的还要明显。”
主要研究概述
孙剑于三年前开始着手人脸识别的研究。Windows Live Photo Gallery中的面部识别功能就应用了孙剑的研究,此应用实现了让用户通过人脸识别来标记和搜索朋友或家庭成员的照片。
孙剑坦言,至少目前机器无法100%成功地识别出同一个面孔上的所有变化。他说,其中的诀窍在于让Kinect学会非常科学的猜测。
Kinect人脸识别技术在很大程度上是基于一篇题为《基于学习型的人脸识别》
(Face Recognition with Learning-based Descriptor)的论文。该论文由孙剑、香港中文大学曹志敏、清华大学殷琪、香港中文大学汤晓鸥教授共同撰写。
大部分人脸识别工具都采取一个看似显而易见的方法,将所看到的任何面孔与数据库中存储的面孔进行比对。这种方法虽然简单,但是在面部照明条件发生变化时,或最初作为参考的面孔是笑脸,而需要识别的面孔却皱着眉头时,识别过程就显得磕磕绊绊了。
孙剑和论文的共同作者们开发了一种技术,教会机器在不同姿势或照明条件下把玩家最突出的面部特征作为基础来识别人脸。比如说,在特定姿势的识别中,鼻子、左眼或右眼的识别可能会比其他特征更为关键。
这项技术由两步完成。首先,从一张面孔对中提取9个主要标志性特征:鼻子、嘴、眼睛等。图像经过过滤,去除照明条件的变化,然后为它分配给一个紧凑的计算机代码片段。接下来,系统要确定面部姿态——来确认主体是直视摄像头,还是将视线偏向了一边。当然,姿态可能会有很大的变化,于是Kinect使用一种算法来决定最有可能的备选项。然后,系统将主体的眼睛、嘴或鼻子特征与其数据库中的图像进行匹配,并找出契合度最高的图像。人脸识别工具也决定了人脸在其视野中出现的方位,并对面部大小加以“正常化”,对玩家距离Kinect的远近进行补偿。
在大多数情况下,人脸识别工具能够达到近85%的成功率。
完善识别功能
孙剑的团队还贡献了Kinect的另外两种玩家识别方法:基于服装和身高来确定玩家身份。孙剑和他的同事危夷晨与Kinect产品团队展开合作,协助开发了可以让Kinect避免误判的方法。误判确实时有发生,而且其令人印象深刻的程度不亚于人脸识别技术本身。这项技术并不完美。
在每一个新的游戏赛局,Kinect都会收集玩家的特点——面孔、身高和服装颜色等,并将它们与已储存的先前玩家信息进行匹配。为了让Kinect“识别”玩家,匹配信息必须有一个肯定的反馈,例如能够识别的身高等,同时不能有否定的反馈,例如错误的服装颜色。
面部识别组件的角色类似于决胜局。当然,它也是识别过程本身的组成部分之一。如果存在很明确的面部特征匹配,即使其他身份识别方式,如身高或衣物颜色,给出了不匹配的反馈,它也会认定为肯定的匹配。
从一定程度上说,Kinect采用微软研究院的研究成果也很偶然。现任Kinect开发团队重要开发负责人之一的Tommer Leyvand,曾于2005年在微软亚洲研究院实习,为此他很熟悉该院的人脸识别研究项目。
在2009年初,Leyvand成为雷德蒙Kinect团队一员。“在Kinect项目进展过程中,我们知道人脸识别将成为产品的一部分,而且我知道微软亚洲研究院已经写了大量有关这项技术的论文,”他还表示:“微软亚洲研究院向来就是我们视觉功能团队的组成部分,而且在那个关键的时刻,他们来到了雷蒙德帮助我们一起做好Kinect的上市准备。我们保持着非常密切的工作关系。”微软亚洲研究院危夷晨与孙剑和Kinect团队合作,一起确定了最终版本的Kinect身份识别工具集。
Kinect的身份识别功能有两个目的。其一是确定玩家身份,自动把他们登录到Xbox LIVE帐户,并设定他们的头像。当然,在玩家可以随时进入和退出的游戏过程中,Kinect还需要能够跟踪所发生的变更,并识别出游戏中正确的玩家。这也正是Kinect令人惊讶的原因所在。
未来研究展望
“它已经成为游戏体验的一部分,”Leyvand说:“神奇之处恰恰在于你并没有做任何事情。你只是站在那里,Kinect就知道了你是谁。”
孙剑正在研究下一代Kinect将如何进行身份识别。他在思考一种新的人脸识别方法,使机器能够像人类自身那样识别人脸。在第二篇有关人脸识别的论文——《用于人脸识别的联想推测模型》(An Associate-Predict Model for Face Recognition)中,孙剑及其共同作者殷琪和汤晓鸥推测,人类会调用之前有关其他人的记忆,并使用这些信息来预测这个人在不同环境下的表情。
为了识别不同姿势或不同光照条件下的人脸,联想推测模型的第一步是构建一个“通用”的人脸数据库。面部器官被分解成几个关键性的面部标志,如眼睛中心、嘴角和其他12个面部特征。这些信息用作识别引擎搜索不同条件下或以不同姿势呈现的人脸的基本“记忆”元素。下一步,将特定对象的面孔,如Kinect玩家与28种不同的“记忆”图像进行对比,也就是7种姿态乘以4种光照条件。识别引擎将对目标对象面部与记忆库存储的人脸展开“关联”,对一个或多个关键的面部特征进行匹配,如处于脸部阴影一侧并且正在向左看的眼睛等。然后,系统使用这些信息就对象脸部在不同姿势和不同光照条件下的样子做出科学的猜测。
目前Kinect的身份识别能力已经让人觉得不可思议了。让我们拭目以待未来几代设备将拥有的神奇功能吧!
相关阅读:
微软Kinect for Windows SDK:暮春时节如期而至