通过人脸检测与五官定位进行人脸识别及年龄、性别、表情姿态等属性分析,得到更好的认识;此外,根据实际业务需求,如视频中一些艺人本身独有的气质,得到一些特殊的属性,这部分的处理方法是我们根据实际业务场景进行“量身订作”的。除了人脸信息外,还会用到人体信息,如人体姿态的估计(体型、服饰)、行为数据(手势、动作)、人体RE-ID特征提取、从人物的声音提取声纹特征,这这些都有助于我们对人物进行属性分析与人物身份判断,我们也在实际工程中用到人脸,人体,声纹这三种信息组成多模态信息识别。
有了多模态识别的基础数据信息,接下来就是多模态技术的算法,如图所呈现的是我们整体算法框架及工程逻辑。
目前,我们人脸别相关算法使用的人脸数据库 ID数达到了550万,可直接识别名字的名人数量达到30万左右,为了支持这么大规模的人物数据训练,我们自研一个定制化分布式框架,虽然也有一些开源的框架,不过更多情况下适合一些简单任务,针对有定制化需求的任务难以满足,所以我们自研的框架无论是整体训练的精度还是训练速度,都可以取得非常大的提升。
我们可以针对模型定型、数据定型,包括GPO、进程的通讯,都做了优化处理;在识别的精度方面,我们在自己的数据集上进行了评测:第一个数据集是中学生库,数据分布主要集中在证件照或证件照相匹配的实际应用场景;二是爱奇艺员工数据库,是我们内部员工的数据库,里面包含了大量的人脸、姿态、表情等变化;三是爱奇艺在多模态人物识别竞赛中发布的数据集,里面主要是针对明星的视频数据进行身份识别。
实际业务场景中面临非常多人脸属性的相关需求,现在人脸属性已支持到27个,包含常见属性(表情、男女、年龄)和独有的人脸属性,比如说气质、微表情属性。(微表情指的是人脸基本活动单元的一个激活状态,也叫做一个A,目前微表情除了十一个常见的AU基本能源外,我们根据实际业务中有着强需求的类别,比如吐舌头,翻白眼,嘟嘴,眉毛上升进行处理)微表情指的是人脸基本活动单元的一个激活状态,也叫做一个A,目前微表情除了十一个常见的AU基本能源外,我们根据实际业务中有着强需求的类别,比如吐舌头,翻白眼,嘟嘴,眉毛上升进行处理;在这方面,我们提出了一个创新性工作:利用微表情和数据库中的表情包来自动生成视频中的微表情包数据,具体做法是将库中微表情的一个表情包数据来分别提取人脸的微表情特征与表情包文案同时与长视频中取到的人物微表情素材进行匹配,最后再进行文案迁移,来实现表情包的自动生成,这个方法不仅可用于人脸微表情生成,也已经实际用于卡通人物的微表情生成。
面对这么多人脸数据,如何处理噪声是一项非常艰巨的一个任务。图中是我们有一系列噪声的处理流程,以算法为主,人工为辅,将人脸数据集的噪声比例降到了非常低,使模型精度有较大提升。通过模型量化、剪枝、蒸馏等处理优化模型速度,同时对CPU版本进行定制优化,节省了大量资源。
另外,除了已知ID信息,还要充分利用爱奇艺站内视频资来源获取无标签数据辅助人脸模型训练,下面主要讲一下我们如何利用这些无标签数据进行训练,这个相关工作的论文《利用无标签数据优化人脸识别模型》今年发表于被 ICCV 2019 Workshop大会收录。
如果想要所有数据都是已知ID是比较困难的,需要大量人工标注工作,但是获取无标签数据是非常容易的,我们可以获取海量的无标签数据来辅助人脸识别模型训练,主要的一个思路是利用无标签数据填充有标签数据分布的未知区域,使有标签数据分布变得更紧,即有标签数据的分类间隔更大,分类内间隔变紧致,最终获得更好的分类效果,具体做法如下图,令无标签数据得到一个额外的Loss,叠加到之前训练的Loss 中,辅助最终的模型训练。
- 具体模型与算法解读:Unknown Identity Rejection(UIR)Loss