人脸识别算法终于超过了人类本身

简介:

计算机科学家已经开发出一种新的人脸识别算法,在识别人脸的能力上比人类本身更加强大。

我们每个人都有过认不出某个自己曾经认识的人的经历,在不同的姿势、光照和表情下,这其实是一件比较困难的事情。计算机识别系统同样存在这些问题。事实上,尽管全世界的计算机科学家努力了这么多年,还是没有任何一种计算机识别系统在识别人脸方面能够像人类一样强大。

但这并非是说人脸识别系统不够准确。恰恰相反,最好的人脸识别系统在理想情况下比人类识别的表现要好的多。但是一旦环境情况变糟,系统的表现就差强人意了。而计算机科学家们当然是非常想要开发出一种算法,在各种情况下都能够表现优异。

现在,中国香港大学的汤晓鸥教授和他的学生路超超(对不起,译者没有找到这名学生的名字,只能音译了)宣布他们攻克了这个难题。他们开发了一种叫“高斯”的人脸识别算法首次超过了人类自身。

新的识别系统对于各种平台都能够提供人类级别的识别能力,从手机到电脑游戏中的人脸识别,从安全系统到密码控制等等。

image

任何一个人脸自动识别程序,首先要考虑的就是去构建一个合适的数据集来测试算法。那需要一个非常大范围的,各种各样的,带着各种复杂动作、光线和表情的,不同脸的图像,各种人种、年龄和性别都要考虑在内。然后还要考察服装、发型以及化妆等其他因素的影响。

比较幸运的是,已经有这么一个拥有各种不同人脸的标准数据库——Labelled Faces。它拥有超过13,000张不同人脸的图片,它们是从网络上收集的6000个不同的公众人物。更重要的是,每个人都拥有不止一张人脸图片。

当然也存在其他的人脸数据库,但是Labelled faces目前是计算机科学家们所公认的最具参考价值的测试数据集。

image

面部识别的任务是去比较两张不同的图片,然后判断他们是否是同一个人。(你可以试试看,能否看出这里展示的每对图片是否是同一个人。)

人类在这个数据库上的表现可以达到97.53%的准确度。但是没有任何一个计算机算法能够达到这个成绩。

直到这个新算法的出现。新的算法依照5点图片特征,把每张脸图规格化成一个150*120的像素图,这些特征分别是:两只眼睛、鼻子和嘴角的位置。

image

然后,算法把每张图片划分成重叠的25*25像素的区域,并用一个数学向量来描述每一个区域的基本特征。做完了这些,就可以比较两张图片的相似度了。

但是首先需要知道的是到底要比较什么。这个时候就需要用到训练数据集了。一般的方法是使用一个独立的数据集来训练算法,然后用同一个数据集中的图片来测试算法。

image

但是当算法面对训练集中完全不同的两张图片的时候,经常都会识别失败。“当图片的分布发生改变的时候,这种训练方法就一点都不好了。”超超和晓鸥说到。

image

相反,他们用四个拥有不同图片的,完全不同的数据集来测试“高斯”算法。举个例子,其中一个数据集是著名的Multi-PIE数据库,它包含了 337个不同的物体,从15种不同的角度,在19种不同的光照情况下,分别拍摄4组图片。另一个数据库叫做Life Photes包含400个不同的人物,每个人物拥有10张图片。

image

用这些数据库训练了算法后,他们最终让新算法在Labelled Faces数据库上进行测试。目标是去识别出所有匹配和不匹配的图片对。

请记住人类在这个数据库上的表现是97.53%的精确度。“我们的“高斯”算法能够达到98.52%的精确度,这也是识别算法第一次击败人类。”超超和晓鸥说到。

image

这是一个令人印象深刻的结果,因为数据中的照片包含各种各样不同的情况。

image

超超和晓鸥指出,仍然有很多挑战在等着他们。现实情况中,人们可以利用各种附加的线索来识别,比如脖子和肩膀的位置。“超过人类的表现也许只是一个象征性的成就罢了”他们说。

另一个问题是花费在训练新算法上的时间,还有算法需要的内存大小以及识别两幅图所需要的时间。这可以用并行计算和特制处理器等技术来加快算法的运行时间。
image

总之,精确的人脸自动识别算法已经到来了,而且鉴于现在的事实,这只会更快。

image

文章转载自 开源中国社区 [http://www.oschina.net]

目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 人工智能
基于深度学习的活体人脸识别检测算法matlab仿真
基于深度学习的活体人脸识别检测算法matlab仿真
|
6月前
|
算法 计算机视觉 Python
基于人脸识别算法的考勤系统
基于人脸识别算法的考勤系统
74 0
|
8月前
|
机器学习/深度学习 数据采集 算法
基于Alexnet深度学习网络的人脸识别算法matlab仿真
基于Alexnet深度学习网络的人脸识别算法matlab仿真
|
9月前
|
机器学习/深度学习 数据采集 算法
基于Alexnet深度学习神经网络的人脸识别算法matlab仿真
基于Alexnet深度学习神经网络的人脸识别算法matlab仿真
|
算法 生物认证 语音技术
基于ORL人脸数据库和PCA特征降维算法的人脸识别matlab仿真
基于ORL人脸数据库和PCA特征降维算法的人脸识别matlab仿真
160 0
|
算法 PHP 数据库
如何使用PHP编写一个人脸识别算法?底层原理是什么?
如何使用PHP编写一个人脸识别算法?底层原理是什么?
154 0
|
机器学习/深度学习 存储 算法
秒懂算法 | 基于主成分分析法、随机森林算法和SVM算法的人脸识别问题
本文的任务与手写数字识别非常相似,都是基于图片的多分类任务,也都是有监督的。
188 0
秒懂算法 | 基于主成分分析法、随机森林算法和SVM算法的人脸识别问题
|
C++ 计算机视觉
CV之FC:人脸识别之判断相似度极高的国内外明星根据人工智能算法(AP云)预测判别是否为同一个人
CV之FC:人脸识别之判断相似度极高的国内外明星根据人工智能算法(AP云)预测判别是否为同一个人
CV之FC:人脸识别之判断相似度极高的国内外明星根据人工智能算法(AP云)预测判别是否为同一个人
|
前端开发 小程序 算法
【微信小程序】基于百度大脑人体检测、人脸识别以及调用阿里垃圾分类识别小程序利用canvas完成人脸画图、分割手部部分图片算法
【微信小程序】基于百度大脑人体检测、人脸识别垃圾分类人体出现在镜头里用红色框将人脸圈出来、用黄色框将手部圈出来,定时器触发后,通过百度返回的top+、left+、width+、height+将拍照的截图用canvas画出来,最后保存上传到阿里云垃圾分类识别检测博主用的是手部关键点识别,手部截取包括手肘部分,当出现手肘没有手掌时会出现截取不到目标的问题,目前解决办法:定时器设置时间长一点供演示员做好调整,另外就是出现手掌,可以尽量把掌心打开方便识别这样手肘部分就不会被检测到了在截取的时候canvas用不了..
260 0
【微信小程序】基于百度大脑人体检测、人脸识别以及调用阿里垃圾分类识别小程序利用canvas完成人脸画图、分割手部部分图片算法
|
机器学习/深度学习 人工智能 算法
自拍照被拿去训练AI?这款AI工具帮你「骗」过人脸识别算法
尽管公众监督的呼声很高,然而面部识别AI已悄然地被机构用作监视的手段。魔高一尺,道高一丈,科学家们也在如火如荼地开发阻止上传到社交网络的自拍被AI训练的工具。
357 0
自拍照被拿去训练AI?这款AI工具帮你「骗」过人脸识别算法

热门文章

最新文章