2014-7-29 10:18| 发布者: tianzc| 查看: 240| 评论: 0
人脸总是无处不在。 你打开一张照片,里面是一个人脸;你打开一段视频,里面是一堆人脸;你打开朋友圈,里面是铺天盖地的人脸。陌陌,美颜,打分,识图,AR,pinterest到处都是人脸。人脸的故事持续了1年多时间,业界还在每3天传出一条关于人脸的新应用。身为一个开发人员,有美女看,有好玩的产品做总是好的,但是,苦心积虑的搜索人脸相关算法的开源包就不是那么令人开心了。 于是,我们推出了人脸开放平台。 人脸的应用无外乎人脸检测,人脸识别,人脸聚类和人脸处理。开放平台涵盖了所有与这些应用有关的技术,如下图所示。在给定的输入图像(或视频流下),可以实现人脸检测,眼睛定位,人脸形状定位,深度识别,人脸验证与识别及人脸验证等功能。在这些基础算法体系下,你可以根据需求来进一步开发不同应用场合下的算法扩展。
除了这些技术的web端接入,开放平台还提供了不同平台下sdk以供下载。针对用户的不同需求,我们还会持续完善这一平台,提供更多平台下的SDK下载,以及定制其他的服务。
人脸检测与识别早已发展数十年,但目前在互联网中的应用仍然差强人意。只能看到寥寥可数的识别方案(如facebook人脸标记,android4.0自带人脸识别登录,盛大相册等),大量的应用集中在人脸娱乐(如各类相机应用,人脸动画应用)和图像检索(百度识图,读图时代等)上。前一类方案集中于人脸识别与聚类,后一类主要依赖于人脸检测与形状定位。两类算法都有各自的侧重点,使得开发者很难从一类应用延伸到另一类应用去。开放平台搭建了多种算法下的集成框架,开发者可以更自由的想象出人脸上更好玩的应用。 之前的人脸开放平台有Face.com(被facebook收购),lambdaFace(face.com封闭之后出现的平台),FaceAPI(盛大),Face++(清华),但这些平台都各有侧重点,Face.com提供了性别,表情识别,人脸识别,而且现在停止了服务,FaceAPI极不稳定,lambdaFace只有检测和识别两类后台服务,Face++相对较全面,但也不包含形状定位这一重要的人脸基本技术。我们的开放平台基本涵盖了所有这些有关的技术,使得开发者可以在一个应用中实现多类不同的人脸图像操作。 开放平台在每类算法下进行了测试。与现有的开放平台相比,我们的平台在技术覆盖面,算法性能上均达到了业内领先的水平。如下图所示:
开放平台的技术源于我们之前人脸相关产品的技术积累。我们分别在QQ秀,Avatar等项目中使用了人脸检测和形状定位技术,在soso慧眼中加入了明星脸识别功能,在手机管家私密空间,TVQQ登录,PCQQ验证等项目中升级了人 脸识别与验证的算法性能,这之后,又逐渐开发了深度识别相关算法,搭建了人脸开放平台的完整框架。如果你继续看下去,会对该平台的技术有更深入的了解。 整个平台分为三部分:web前端,算法引擎和后台服务。 开发者通过该平台的web前端,试用demo,阅读文档,了解基本概念和使用方法后,与管理员联系,针对需求获得资源的分配,取得唯一的辨识参数:API key和API secret,就可以发送不同的服务请求到后台,来完成人脸认知相关的应用开发了。 1、 web前端 web前端包含这些内容:接入文档说明,演示demo试用,及相应的sdk下载,和我们之前的一些案例介绍。 在demo部分,我们给出了三种典型的应用。 1)人脸检测 在线上传一张图片,用框和点标注出图中人脸的位置坐标(眼睛和嘴角),鼠标移到框中显示框中人脸的性别、年龄。 2)明星脸搜索 在线上传一张图片,给出与图中人脸长相最接近的明星照片。 3)人脸相似度计算 在线上传两张图片,给出图中人脸之间的相似度数值(0-100)。 2、 算法引擎 在之前的一些文章(明星脸匹配,人脸验证登录系统等)中,我们已经介绍过人脸识别的算法及框架了,在这些技术的积累上,我们进一步升级了人脸检测,识别和深度识别的算法。 在传统的人脸检测算法中,通过boost算法选择最优的基于Haar特征的弱分类器级联来分类海量负样本包围下人脸正样本。由于正负样本的不平衡性,boost选择往往要求正样本具有较好的唯一性,而负样本具有较高的散度。在多姿态检测中,人脸正样本呈现不同的姿态变化,导致正样本散度很大。这里我们将姿态预估和人脸正负样本的boost分类器融合为一体,在获得人脸姿态估计的同时分类人脸正负样本,不仅减少了时间损耗,而且增加了多姿态人脸检测的鲁棒性。 在人脸识别算法中,基于传统的纹理特征,我们采用全局,局部以及特征选择的思想来避免人工特征的稀疏性,取得了较好的识别准确率。一些机器学习的方法也在该过程中得以体现。为了提供更丰富的明星脸匹配结果,我们还整理了10万级的明星脸图像,抽取特征模版存储在后台。整个明星脸识别过程可以在几十ms完成,而且在海量的明星脸数据库上,准确率也有了大幅度提升。 深度识别是一个新增加的功能。为了满足用户分析的需求,这里给出了人脸年龄,性别,种族的分析结果。该三类问题,可以近似为三个多分类(或两分类)问题。这里,我们针对人脸属性集中体现在形状与纹理两方面的特性,在特征和聚类上分别进行了改进,并细分整个分类问题,将三个分类问题转化为更多类别的多分类问题,最终实现了人脸属性分类。 目前业界的人脸识别的性能并未完全达到开放场景下完全实用的水平,在一些封闭环境下,如正面人脸图像,中等规模用户注册等尚可,但是开放环境下仍然会受到光照,姿态等干扰,在使用的过程中,可以考虑针对具体产品的需求在客户端或者用户交互上加入一些限制,使得人脸认知的性能发挥到最大。 此外,在现有算法基础上,我们还会陆续提供了人脸聚类和人脸娱乐的一些相关应用。 3、 后台服务 后台服务提供核心的人脸特征抽取,识别,比对等模块,同时也包含了检测,定位,形状定位等环节,因此用户可以以这两种方式接入后台,即仅进行特征抽取,或者整个人脸认知都在后台进行。 具体而言,包含人脸检测与分析,人脸相似度比较,明星脸搜索,人脸注册,人脸删除,人脸识别等6类API接口。每种接口均支持GET和POST两种方式调用,POST方式还支持加密和明文两种协议格式。以GET方式调用接口,图片以URL参数作为输入,使用前需先通过上传接口将图片上传并取得URL。以POST方式调用接口,图片直接在POST请求中传输即可。在某些比较严格的应用场合,不希望外界看到或伪造请求,需要使用加密协议,比如通过人脸做身份认证的应用。 以“人脸识别”为例,由于该部分应用场合比较严格,这个接口仅支持POST方式、加密协议传输。在“人脸注册”环节,用户提供一张人脸图片,并告诉系统该人脸对应的人的身份。系统以给定图片为模板,提取面部特征,与给定的身份绑定。输入参数为一张人脸图片及人脸的身份(tag标识)。相应的“人脸识别”环节,server会根据输入图像返回同一group下所有图像的相似度排序列表。这样,整个人脸识别的操作就完成了。 推出人脸开放平台只是很小的进步。接下来,我们还会不断完善人脸相关技术,提供更全面更底层的人脸及图像相关算法,同时逐渐升级现有的算法性能,来满足更恶劣环境下的人脸处理需求。我们会努力把这一开放平台打造成业界标准的人脸技术服务体系。欢迎大家的使用,也欢迎各位牛人的技术交流。 |