有关人脸识别的项目我们已经介绍了很多了,那么哪种人脸识别的api最好?本文将对比四种api,分别是亚马逊rekognition、谷歌cloud vision api、ibm watson visual recognition以及微软的face api,从成功率、价格和速度三方面分析上述四种软件服务商的产品。
人脸识别究竟如何工作?
深入分析之前,首先让我们探究一下人脸识别的工作原理。
viola-jones的人脸识别
2001年,paul viola和michael jone开始了计算机视觉的革命,当时的人脸识别技术并不成熟,识别准确度较低,速度也很慢。直到提出了viola-jones人脸识别框架后,不仅成功率大大提高,而且还能实施进行人脸识别。
自从上世纪90年代开展了各项人脸识别、目标识别挑战赛,这类技术得到了迅猛发展。
深度卷积神经网络
2010年,imagenet视觉识别挑战赛开始举办,前两年,大部分参赛队伍都用fisher vectors和支持向量机的结合。但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-detection
建立图像数据集
要做人脸识别,首先就要建立数据集。本文所用到的图像是从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还不错,微软就很一般了,它的分数最低。
微软竟然没检测出其中的人脸
在本系列的下一篇文章中,我们会对比opencv以及其他开源工具,请继续关注!
开关柜工作条件和要求
苹果高通诉讼未结,电池大功率消耗谁之过
都是今天开发布会:小米5X对魅族Pro7、Flyme6对MIUI9,魅族与小米究竟会擦出怎样的火花?
智能电网配电系统的工作原理、组成及应用
5G消息平台商业化落地按下加速键
人脸识别究竟如何工作?亚马逊、谷歌、IBM、微软现在在用什么?
小米MIUI系统3大升级确认
三相鼠笼式异步电动机的点动和自锁控制线路
桌面千兆像素显微镜的制作
TFT-LCD显示屏工作原理
PT2024触摸检测芯片概述、特性及应用电路
NVIDIA Jetson AGX Xavier助力JDL京东物流 打造全球首座“智能配送城”
ARM Cortex-M是最适合用于IoT的CPU内核
Qurv将先进的机器视觉功能引入当前SWIR传感器无法进入的市场?
购买防水测试仪时需要解决哪些问题?
拓攻机器人:从科研到商业,生存才是关键
智能风电系统是提升海上风电运维可靠性的数字抓手
The Freestyle三星投影仪:强大的投影功能和高清画质技术
毫米波人体成像设备将取代金属探测门用于民用机场
纳智捷锐3 旗舰版全方位测评