云识别-在一切看脸的时代,如何高效的打造人脸识别服务?

615 阅读4分钟


内容来源:2017年7月8日,涂图TuSDK架构师李扬在“不止云计算,云时代还有哪些宝典”进行《云识别-在一切看脸的时代,如何高效的打造人脸识别服务?》演讲分享。IT 大咖说(id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:1116 | 4分钟阅读

嘉宾演讲视频回顾及PPT:suo.im/4iGJPl

摘要

如何利用机器学习高效地打造人脸识别服务?

人工智能与深度学习

早在几十年前,美国就已诞生了人工智能技术,而机器学习是实现人工智能的其中一种方法。机器学习中还包括表示学习和深度学习两种方法。

深度学习和表示学习的关系就好比机器学习和规则系统,最早诞生的是规则系统,它的输入输出都是工程师或者科学家们都预先制定好的规则,输入怎样的内容就会得到相关的结果,输入内容的计算流程是工程师们手工设置的路径。

后来机器学习这门技术出现之后,它通过提取特征,某一类的输入内容都会得到相似的结果,就不再需要制定一个庞大的规则体系。

再往后发展,中间需要手工调节的东西越来越少,到了深度学习已经基本成为端到端的过程。

人脸识别

人脸检测:输入是一张照片,输出是这张照片中一个或多个人脸矩形框的坐标。

人脸配准:一张人脸中五官以及脸轮廓的位置。输入是一个人脸矩形框,输出是人脸的轮廓关键点位置。如果把这些点连成线的话就是一张人脸的轮廓。

属性识别:包括了人脸的性别、年龄、表情,以及更多的情绪属性。

特征提取:是用于标识人脸唯一的识别码。

利用每个人脸的特征,可以做出人脸比对、人脸验证以及人脸识别。这里的人脸识别特指把一张人脸的照片放到系统中逐个比对,得出它的身份是哪一个。接下来的人脸检索和人脸聚类,都是基于人脸的特征进行比较。

活体检测用于对安全要求比较高,需要做身份认证和鉴权相关的工作,会使用其它辅助验证手段,确保识别的对象是真人而不是照片或视频。

CPU与GPU

我们在观看电视或电影的时候需要解码视频格式,这是GPU的应用之一。虽然GPU每个核心的计算能力都比不上CPU,但它是利用核心的数量来超越CPU的计算能力。

在使用CPU时,程序的执行过程都是线性的,但是GPU是几千个核同时进行计算,以此发挥它的性能优势。

开发与部署使用Docker

Docker的出现大大提高了开发人员的效率,从研发原形到产品环境的持续迭代都离不开它。

API使用的是Swagger进行描述,使用对程序员非常友好的JSON和YAML。用它描述完API之后可以直接生成易于阅读的网页文档,还支持在线调试,用户使用起来就非常方便了。

如上图所示,这是我们提取人脸点位的一个示例。点位会用在比如直播系统里的人脸贴纸。这里会多涉及一些技术细节,比如手机客户端上在用的人脸识别技术其实是和服务端有比较大的差别。手机客户端受限于它的设备体积,它的GPU计算能力远不如服务端用的高性能设备,所以在算法的选择上就有所区分。

手机上一般会采用一些非深度学习的算法或者专为手机设计或优化的深度学习算法。深度学习虽然准确率很高,但是它相比传统算法对硬件的性能要求更高,所以机器学习的一个关键性能和效果之间的权衡。

我今天的分享就到这里,谢谢大家!