1.简介
1.1目的
在过去的一段时间里,因为听见业务对人脸服务方案的需求,针对网络视频中关键人物定位的检索任务,完成了基于互联网场景的人脸基线服务的构建。本文档是对当前基线服务以后之后解决方案的优化进行总结。
1.2范围
本文档描述的人脸服务是基于现有的人脸引擎1910版本的基础进行二次开发完成的,后根据开发的测试工具对人脸服务的性能进行分析。
1.3定义、首字母缩写词和缩略语
序号 | 术语或缩略语 | 说明性定义 |
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 |
1.4 参考资料
2.人脸服务引擎的基本原理
本文档描述的人脸服务是基于现有的人脸引擎1910版本的基础进行二次开发完成的。整个服务主要分为两个模块:目标库的构建、网络视频中目标库人物的检索。
2.1 目标库的构建
根据互联网场景的实际需求,构建目标人物的底库。具体的需求包括:目标库创建、目标库删除、目标库新增图片文件、目标库信息查询、目标库删除图片文件。
目标库创建:创建一个目标库,用于存储目标人的注册人脸图片特征以及相对应的ID。
目标库删除:将创建好的目标库,进行删除。
目标库新增图片文件:若已经创建了目标库,并且有的新的目标人物,需要支持将新的目标人的注册到目标库当中。
目标库删除图片文件:若已经创建了目标库,并且发现其中部分的目标人物失效,需要支持将失效的目标人物从目标库中删除的操作。
2.2网络视频中目标库人物的检索方法
目标库建立完成之后,需要用目标库中的关键人在互联网视频中检索,目标库关键人物的检索的需求包括:人脸检测,人脸跟踪,人脸关键点定位,人脸质量评价,人脸特征提取,人脸比对,人脸检索。
人脸检测:对视频解码后的互联网视频没隔15帧做一次人脸检测,检测结果作为后续人脸跟踪的初始化以及终止标准;
人脸跟踪:利用人脸检测的结果进行人脸跟踪的初始化,并对互联网视频解码出的每一帧进行人脸跟踪的操作;
人脸关键点定位:对获得的人脸框提取21个关键点,用于人脸特征的提取;
人脸质量评价:对获得的人脸进行质量评价,输出得分,角度等评价指标,只有通过质量评价的人脸才会进行后续的人脸特征提取以及人脸比对;
人脸特征提取:利用提取的人脸关键点,用于提取人脸的特征,这个特征可以用于人脸的特征比对;
人脸比对:利用提取两个人脸的特征比较两个人脸的相似度,并输出人脸相似度的得分;
人脸搜索:利用提取的人脸特征去目标库去检索匹配,做人脸比对。
2.3互联网场景下人脸服务基线方案
经过调研发现互联网场景下的网络视频相比与监控摄像头来说,多了视频的跳变部分,也就是电视中经常见切镜的画面。而视频的切镜会影响人脸的跟踪模块,因为人脸的跟踪模块是不能应付切镜这种情况的。所以为了解决这种问题,需要在人脸服务中添加跳帧检测的功能,及时发现视频切镜的地方,及时终止并清除当前所有跟踪,基线方案中使用的方案如下:
跳帧检测:对解码后的视频的相邻两帧进行相似度度量,判定当前帧是否发生跳变,即视频的切镜。
人脸图片的选取:对于人脸轨迹中用于人脸检索的人脸图片的选取方法是对于同一个跟踪ID的人脸轨迹中选取一张质量评价最好的一张图片进行特征提取,将利用提取的特征代表当前跟踪ID的轨迹,并将结果送入目标库进行检索和人脸比对。
整体的互联网场景下人脸服务的基线策略的流程图如图1所示:
图1 互联网场景下人脸服务的基线策略的流程图
其中:
IFRDFaceDetect:表示人脸引擎中人脸检测的主要接口;
IFRTInitTrack和IFRTUpdateTrack:表示人脸引擎中人脸跟踪的主要接口;
IFRDQualityAcess:表示人脸引擎中图片质量评价的主要接口;
IFRAFaceAlign:表示人脸引擎中人脸图片关键点提取的主要接口;
IFRVGetFea:表示人脸引擎中人脸图片特征提取的主要接口;
IFRVCompFea:表示人脸引擎中人脸特征比对的主要接口
3. 互联网场景下人脸服务基线方案效果验证设计
视频中标注一个人脸出现的时间段,该人脸在人脸服务引擎的目标库中注册,引擎开启目标跟踪,每段视频只标注特定的一个人。
数据集:
- 400多段视频(平均时长4分钟);
- 目标库中42张注册人脸。
判定条件:
- 优先级1:标注结果和引擎输出结果交并比阈值 0.5;
- 优先级2:标注结果和引擎输出结果的交差比为25帧。
相关定义:
- 交并比:引擎输出后的帧区间与人工标记的帧区间的交叠率,即它们的交集与并集的比值,例如0.5。最理想情况是完全重叠,即比值为1;
- 交并差:引擎输出后的帧区间与人工标记帧区间交集与并集的差值,例如小于25帧(即1秒),默认为可接受范围,即使交并比低于阈值,也认为是通过的。
- A:平台返回目标人脸所在帧区间的交并比满足阈值的个数。
- B:平台返回目标人脸所在帧区间的交并比不满足阈值的个数。
- C:目标人脸标记的帧区间没有结果匹配到的个数。
- 召回率(R):交并比满足0.5的人脸服务处理后帧区间数量/标注的帧区间数量(A/A+C)
- 准确率(P):交并比满足0.5的人脸服务处理后帧区间数量/人脸服务处理后的所有帧区间数量。(A/A+B)
3.2 效果验证设计
将上述A+B的所有人脸比对结果输出的得分作为PR曲线的阈值,即每一个得分阈值计算一组Precision和Recall的值,最后给出人脸服务的PR曲线,针对这个PR曲线分析人脸服务引擎的效果。
4.实验结果及其分析
针对上述的测试方案,对人脸服务的基线引擎进行了测试,具体的实验结果如下所示。
4.1 人脸服务基线引擎测试结果
图2 Precision and Recall 曲线
从PR曲线的趋势可以看出,准确率随着召回率先降后升再降的现象,这样的原因是人脸服务的引擎出现了高分虚警的情况。查看了阈值为0.999212的所有虚警,如图3所示,发现高分虚警基本上都是出现在简历视频中。
图3 阈值为0.999212时,人脸服务引擎输出的高分虚警列表
查看人脸服务的高分虚警视频,发现如下问题,视频的截图如图4所示,发现视频中出现了类似ppt翻页的操作,导致一段完整的视频被切成多段,而按照上述的测试标准,所有的被切出来的帧区间都和视频标注的帧区间不满足条件,所以这样的视频都变成了高分虚警,从而影响了人脸服务引擎的准确率。
图4 视频截图
从整体的PR曲线可以看出,实际人脸服务引擎的召回率比较低,并且准确率也不高,所以需要对人脸服务引擎进一步进行优化。
下一步工作:
- 修改人脸服务测试标准,需要对服务输出的结果进行合并操作;
- 需要对跳帧检测的阈值进行调节,避免类似PPT翻页这种视频带来的翻页误检;
- 考虑引入轨迹分段识别的方法,设法提高人脸服务的准确率;
- 针对召回率低的问题,考虑引入二次检索的功能,增加召回率;
5.总结
从人脸服务基线的测试结果中,可以看出,在当前的测试标准下,人脸服务的效果不理想,最大的召回率和准确率都比较低,其中的问题有的是出现在测试标准中所以需要对测试的指标重新进行制定,也有的问题是出现在服务,所以需要对人脸服务引擎本身进一步的优化。