摩尔芯闻 > 行业新闻 > 半导体 > 人脸识别究竟如何工作?亚马逊、谷歌、IBM、微

人脸识别究竟如何工作?亚马逊、谷歌、IBM、微

·2018-08-23 14:02·电子发烧友
阅读:2100

有关人脸识别的项目我们已经介绍了很多了,那么哪种人脸识别的A PI 最好?本文将对比四种API,分别是 亚马逊 Rekogni ti on、谷歌Cloud Vision API、IBM Watson Visual Recognition以及微软的Face API,从成功率、价格和速度三方面分析上述四种软件服务商的产品。

人脸识别究竟如何工作?

深入分析之前,首先让我们探究一下人脸识别的工作原理。

Viola-Jones的人脸识别

2001年,Paul Viola和Michael Jone开始了计算机视觉的革命,当时的人脸识别技术并不成熟,识别准确度较低,速度也很慢。直到提出了Viola-Jones人脸识别框架后,不仅成功率大大提高,而且还能实施进行人脸识别。

自从上世纪90年代开展了各项人脸识别、目标识别挑战赛,这类技术得到了迅猛发展。

深度卷积 神经网络

2010年,ImageNet视觉识别挑战赛开始举办,前两年,大部分参赛队伍都用Fisher Vecto rs 和支持向量机的结合。但2012年,一切都变了。

多伦多大学的团队(Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton)第一次在目标物体识别任务上使用了深度卷积神经网络,并拿到冠军。他们使用的方法错误率为15.4%,而第二名的错误率为26.2%。到了2013年,前5名的队伍全部都开始用深度卷积神经网络。

所以,神经网络到底怎么工作的呢?

亚马逊、谷歌、IBM、微软现在在用什么?

目前为止,各大公司仍然使用深度卷积神经网络或者结合其他 深度学习 技术进行人脸识别。

亚马逊:aws.amazon.com/cn/rekognition/faqs/

谷歌:www.youtube.com/watch?v=OcycT1Jwsns&feature=youtu.be&t=2m41s

IBM:www.ibm.com/cloud/watson-visual-recognition

微软:docs.microsoft.com/en-us/azure/cognitive-services/face/overview

这四种工具看起来都差不多,但是结果还有些许不同。首先我们从价格看起。

价格

亚马逊、谷歌和微软三家的价格模式类似,都是用量越多收费越少。但是IBM不同,当你的免费额度用完后,每个API接口的价钱都是一样的。四种工具中,微软的免费额度是最高的,每月可处理30000张图片。

价格对比

现有以下三种情况:

A:小型创业公司每月处理1000张图片

B:数字生产商每月处理10万张图片

C:数据中心每月处理1000万张图片

动手试试

本文所用代码可在我的GitHub中找到:github.com/dpacassi/face-de te ction

建立图像数据集

要做人脸识别,首先就要建立数据集。本文所用到的图像是从pexels网站上下载的,你可以直接到我的GitHub中下载。

编写基础测试框架

说是“框架”,实际上我的自定义代码只有两种类别。然而,这两种类别很容易地就帮我分析了原始图像数据,在不同的任务上也只需要少量代码。

FaceDetectionClient中记录了图片存储的信息、四种工具的细节以及所有处理过的图像。

比较四种SDK

以下是四种工具支持的语言:

inter-rater 可信度

在让计算机进行人脸识别之前,我先记录下了自己所观察到的图片中人脸数量。同时,我还找了三位同时对图片进行识别。

什么是人脸?

我在进行手动标记时,只要露出四分之一脸就算一个人脸,而我的同事们有的会把不明显的也算作人脸,或者看到眼睛、鼻子就算一张脸。所以每个人的判断标准不同。

对这张图,我们四人有不同的结论,分别是10张、13张、16张和16张人脸。所以我打算取平均值,14。

比较结果

图中可以看出,微软智能达到17.55%的人脸检测率,为什么成功率如此低?首先,图片数据集中的确有一些故意刁难识别器的图像,另外要知道,机器的能力比人类还差得远,想提高人脸识别的效率,还有很大的进步空间。

虽然亚马逊的工具能检测出最多的人脸,但是谷歌和微软的处理时间明显更快。

另外,在人脸相对较小的图片中,同样还是亚马逊表现得更好:

在这张图片中,亚马逊检测出了10个人脸,而谷歌为4,IBM和微软都是0。

不同角度和不完整人脸

看了上面的例子,可能会觉得IBM不中用。IBM的作用在普通图片上一般般,但是在难度更大的图片上,IBM的能力就很大了。尤其是在不常见的角度进行人脸识别或者残缺人脸识别。例如下面三张图片的人脸只有IBM识别了出来:

边界框

没错,各家的边界框也有差别。亚马逊、IBM和微软都会返回只含有人脸的边界框。而谷歌不光会圈起来人脸,会连带整个头部一起选中。

谷歌

微软

看出差别了吗?

误报率

虽然我的数据集很小(只有33张照片),但是有两张图没有模型识别出人脸。

亚马逊和谷歌都只识别出了上图中纹身中的头像,而微软识别失败。只有IBM正确识别到了前面吉他手的人脸。恭喜IBM!

这张照片,谷歌在同一区域检测出了两张人脸。莫非看到了人眼看不到的东西?(细思极恐)

结语

虽然每种工具都有自己的有缺点,但总的来说,亚马逊、谷歌和IBM还不错,微软就很一般了,它的分数最低。

微软竟然没检测出其中的人脸

分享到:
微信 新浪微博 QQ空间 LinkedIn

上一篇:三家日本上市公司发布公告:将扩大加密货币挖矿业务

下一篇:三星刚性OLED销售在中国市场拓展初见成效

打开摩尔直播,更多新闻内容
半导体大咖直播分享高清观看
立即下载