1.简介
1.1目的
在过去的一段时间里,因为听见科技业务对人脸服务的需求,所有针对互联网视频中关键人物定位的检索任务,进行了基于互联网场景的人脸基线服务的构建。本文档是针对当前基线解决方案进行优化的方案设计文档。
1.2范围
本文档描述的是针对人脸服务基线解决方案而进行改进的优化方案,主要介绍可能提高引擎效果准确率和召回率的方案。
1.3定义、首字母缩写词和缩略语
序号 | 术语或缩略语 | 说明性定义 |
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 |
1.4 参考资料
2互联网场景下人脸服务分类
2.1 视频中人物在底库中进行top1的检索
针对所有需要监控的互联网视频,维护一个存储重点监控人物的底库。然后将所有的监控视频中提取出来的人脸图片提取特征与底库中的重点监控人物的特征进行比对,给出每次匹配底库中top1的结果,并整理合并的相应的识别结果输出的重点监控人物在视频中的片段,我们将这类人物记作视频中人物在底库中进行top1的检索。
2.2 视频中特定人的检索
当维护的重点监控人物底库新增重点监控人物的时候,针对之前被检索过视频,需要对新增的重点监控人物进行一轮检索,例如某高官(记为目标A)落马,维护的重点监控人物的底库列表需要新增目标A,之前被底库检索过的所有互联网的视频都需要对目标A进行新一轮的检索,我们将此类任务记作视频中特定人物的检索,此类任务大多可以使用离线的视频处理策略。
3.人脸服务引擎的基本原理
本文档描述的人脸服务是基于现有的人脸引擎1910版本的基础进行二次开发完成的。整个服务主要分为两个模块:目标库的构建、网络视频中目标库人物的检索。
3.1 目标库的构建
根据互联网场景的实际需求,构建目标人物的底库。具体的需求包括:目标库创建、目标库删除、目标库新增图片文件、目标库信息查询、目标库删除图片文件。
目标库创建:创建一个目标库,用于存储目标人的注册人脸图片特征以及相对应的ID。
目标库删除:将创建好的目标库,进行删除。
目标库新增图片文件:若已经创建了目标库,并且有的新的目标人物,需要支持将新的目标人的注册到目标库当中。
目标库删除图片文件:若已经创建了目标库,并且发现其中部分的目标人物失效,需要支持将失效的目标人物从目标库中删除的操作。
3.2网络视频中目标库人物的检索方法
目标库建立完成之后,需要用目标库中的关键人在互联网视频中检索,目标库关键人物的检索的需求包括:人脸检测,人脸跟踪,人脸关键点定位,人脸质量评价,人脸特征提取,人脸比对,人脸检索。
人脸检测:对视频解码后的互联网视频没隔15帧做一次人脸检测,检测结果作为后续人脸跟踪的初始化以及终止标准;
人脸跟踪:利用人脸检测的结果进行人脸跟踪的初始化,并对互联网视频解码出的每一帧进行人脸跟踪的操作;
人脸关键点定位:对获得的人脸框提取21个关键点,用于人脸特征的提取;
人脸质量评价:对获得的人脸进行质量评价,输出得分,角度等评价指标,只有通过质量评价的人脸才会进行后续的人脸特征提取以及人脸比对;
人脸特征提取:利用提取的人脸关键点,用于提取人脸的特征,这个特征可以用于人脸的特征比对;
人脸比对:利用提取两个人脸的特征比较两个人脸的相似度,并输出人脸相似度的得分;
人脸搜索:利用提取的人脸特征去目标库去检索匹配,做人脸比对。
3.3互联网场景下人脸服务基线方案
经过调研发现互联网场景下的网络视频相比与监控摄像头来说,多了视频的跳变部分,也就是电视中经常见切镜的画面。而视频的切镜会影响人脸的跟踪模块,因为人脸的跟踪模块是不能应付切镜这种情况的。所以为了解决这种问题,需要在人脸服务中添加跳帧检测的功能,及时发现视频切镜的地方,及时终止并清除当前所有跟踪,基线方案中使用的方案如下:
跳帧检测:对解码后的视频的相邻两帧进行相似度度量,判定当前帧是否发生跳变,即视频的切镜。
人脸图片的选取:对于人脸轨迹中用于人脸检索的人脸图片的选取方法是对于同一个跟踪ID的人脸轨迹中选取一张质量评价最好的一张图片进行特征提取,将利用提取的特征代表当前跟踪ID的轨迹,并将结果送入目标库进行检索和人脸比对。
整体的互联网场景下人脸服务的基线策略的流程图如图1所示:
图1 互联网场景下人脸服务的基线策略的流程图
其中:
IFRDFaceDetect:表示人脸引擎中人脸检测的主要接口;
IFRTInitTrack和IFRTUpdateTrack:表示人脸引擎中人脸跟踪的主要接口;
IFRDQualityAcess:表示人脸引擎中图片质量评价的主要接口;
IFRAFaceAlign:表示人脸引擎中人脸图片关键点提取的主要接口;
IFRVGetFea:表示人脸引擎中人脸图片特征提取的主要接口;
IFRVCompFea:表示人脸引擎中人脸特征比对的主要接口
3.4互联网场景下人脸服务优化方案
3.4.1 准确率方向解决方案
基线人脸服务解决方案每一条跟踪轨迹中仅仅只给出一张质量评价最好的图片,送入识别线程中进行识别,会出现如下几个问题:1.如果被选中的这张图片被识别错误,那么整条轨迹都会被错检;2.如果引擎检出的一条轨迹中不仅仅只包含一种人脸,那么输出一个识别结果就会出现漏检的情况。
针对上述问题,建议将整条轨迹进行拆分识别,例如一条轨迹全长为90帧图片,拆分成15帧图片为一组的片段,共计6段。每个片段选取一张质量评价最好的图片送到识别线程进行识别,并对最后的识别结果进行融合处理。
融合策略如下:1.若拆分片段结果都相同,则对结果直接进行合并处理;2.若拆分的结果有多个,则对相同的结果进行合并,输出所有合并后不同的结果;
3.4.2 召回率方向解决方案
因为底库图片的风格可能和实际需要处理的视频的风格差异很大,所以会使得视频中需要被检出的目标人物被漏检。这样执行整个流程后实际检出的召回率很低。
针对上述问题,建议将底库在视频中检出的高分图片整合起来构建一个的临时底库,通过这个临时的底库在视频中进行二次检索,这样底库的图片和视频的风格就相匹配,从而可以增加实际的召回率
4. 互联网场景下人脸服务基线方案效果验证方案
4.1 性能需求
4.1.1 性能需求和指标
待定。
4.1.2 稳定性需求
待定。
4.2 验收标准
4.2.1 测试标准
1、底库要求和标注视频段的要求
a、底库的数量以75个国家领导人为准,不要在底库中添加无关的负例的人脸图片;
b、标注的视频段中有的目标在短时间里切换很多回,例如存在目标X,其在标注中的区间段为A,B,C,D , 若两帧区间段之间的时间差距小于5s(设置配置,后期可以协商),即C-B<5 ,则应该将这两个区间合并。
2、帧区间段数量层面:即以视频中检出人脸数量的维度考虑,所以统计的是帧区间段的数量
a、人脸服务引擎实际检出的人脸帧区间段与人工标记帧区间段的命中关系如下:
i、要求人脸服务引擎实际检出帧区间段与人工标记帧区间段起始和结束位置的偏差不超过30s(设置配置),才被视为当前帧区间段命中。即:人脸服务引擎实际检出人脸帧区间段记为A,B ,人工标记帧区间段记为[C,D] ,若满足A-C≤30 并且B-D≤30 ,则帧区间段命中。
ii、存在人脸服务引擎实际检出的人脸帧区间段和人工标记帧区间段有交集,但是不满足a)中的命中条件,此时的检出帧区间段原则上不能判定为错误,因为这样会引入非常多的高分虚警,例如检出帧区间段a,b,c,d 都和人工标记帧区间e 相交,假设c 帧区间段为命中,而将其他帧区间段因为不满足命中条件被判定为虚警,显然是不合理的。即:若人脸服务引擎实际检出的人脸帧区间段不满足条件a),但是A,B∩[C,D]≠∅ ,则需要抛弃当前人脸服务引擎实际检出人脸帧区间段,不参与后续评价指标的计算
b、评价指标
i、召回率:命中的数量/人工标记帧区间段的数量
ii、准确率:命中的数量/人脸服务引擎实际检出的人脸帧区间段的数量
3、帧区间段时间层面:即以视频中检出人脸持续时间的维度考虑,所以统计的是帧区间段的时间
a、人脸服务引擎实际检出的人脸帧区间段与人工标记帧区间段在时间上对应的关系如下:
i、要求将所有人脸服务引擎实际检出帧区间段与人工标记帧区间段相交的部分定义为有效的人脸帧区间段。即人工标记帧区间段记为[C,D] ,将人脸服务引擎实际检出并且与人工标记帧区间段相交的人脸帧区间段记为A0,B0,...,Ai-1,Bi-1,Ai,Bi,...,AI,BI ,人脸服务引擎实际检出有效并且正确的人脸帧区间段的时间为iIAi,Bi∩C,D ,其中I 表示的是和人工标记帧区间段相交的人脸服务检出帧区间段的数量。
b、评价指标:
i、召回率:所有人脸服务引擎实际检出有效并且正确的人脸帧区间段的时间之和/所有人工标记帧区间段的时间之和,即jJi=0IjAji,Bji∩Cj,DjCj,Dj ,其中J 表示的是人工标记帧区间段的数量。
ii、准确率:所有人脸服务引擎实际检出有效并且正确的人脸帧区间段的时间之和/所有人脸服务引擎实际检出的人脸帧区间段的时间之和,即jJi=0IjAji,Bji∩Cj,DjAji,Bji ,其中J表示的是人工标记帧区间段的数量。
4.2.2 验收标准
需要在上述的测试条件下,达到相应的需求的指标。