互联网场景下人脸服务基线方案总结

2.人脸服务引擎的基本原理

        本文档描述的人脸服务是基于现有的人脸引擎1910版本的基础进行二次开发完成的。整个服务主要分为两个模块:目标库的构建、网络视频中目标库人物的检索。

2.1 目标库的构建

根据互联网场景的实际需求,构建目标人物的底库。具体的需求包括:目标库创建、目标库删除、目标库新增图片文件、目标库信息查询、目标库删除图片文件。

目标库创建:创建一个目标库,用于存储目标人的注册人脸图片特征以及相对应的ID。

目标库删除:将创建好的目标库,进行删除。

目标库新增图片文件:若已经创建了目标库,并且有的新的目标人物,需要支持将新的目标人的注册到目标库当中。

目标库删除图片文件:若已经创建了目标库,并且发现其中部分的目标人物失效,需要支持将失效的目标人物从目标库中删除的操作。

2.2网络视频中目标库人物的检索方法

目标库建立完成之后,需要用目标库中的关键人在互联网视频中检索,目标库关键人物的检索的需求包括:人脸检测,人脸跟踪,人脸关键点定位,人脸质量评价,人脸特征提取,人脸比对,人脸检索。

人脸检测:对视频解码后的互联网视频没隔15帧做一次人脸检测,检测结果作为后续人脸跟踪的初始化以及终止标准;

人脸跟踪:利用人脸检测的结果进行人脸跟踪的初始化,并对互联网视频解码出的每一帧进行人脸跟踪的操作;

人脸关键点定位:对获得的人脸框提取21个关键点,用于人脸特征的提取;

人脸质量评价:对获得的人脸进行质量评价,输出得分,角度等评价指标,只有通过质量评价的人脸才会进行后续的人脸特征提取以及人脸比对;

人脸特征提取:利用提取的人脸关键点,用于提取人脸的特征,这个特征可以用于人脸的特征比对;

人脸比对:利用提取两个人脸的特征比较两个人脸的相似度,并输出人脸相似度的得分;

人脸搜索:利用提取的人脸特征去目标库去检索匹配,做人脸比对。

2.3互联网场景下人脸服务基线方案

经过调研发现互联网场景下的网络视频相比与监控摄像头来说,多了视频的跳变部分,也就是电视中经常见切镜的画面。而视频的切镜会影响人脸的跟踪模块,因为人脸的跟踪模块是不能应付切镜这种情况的。所以为了解决这种问题,需要在人脸服务中添加跳帧检测的功能,及时发现视频切镜的地方,及时终止并清除当前所有跟踪,基线方案中使用的方案如下:

跳帧检测:对解码后的视频的相邻两帧进行相似度度量,判定当前帧是否发生跳变,即视频的切镜。

人脸图片的选取:对于人脸轨迹中用于人脸检索的人脸图片的选取方法是对于同一个跟踪ID的人脸轨迹中选取一张质量评价最好的一张图片进行特征提取,将利用提取的特征代表当前跟踪ID的轨迹,并将结果送入目标库进行检索和人脸比对。

整体的互联网场景下人脸服务的基线策略的流程图如图1所示:

图1 互联网场景下人脸服务的基线策略的流程图

其中:

IFRDFaceDetect:表示人脸引擎中人脸检测的主要接口;

IFRTInitTrack和IFRTUpdateTrack:表示人脸引擎中人脸跟踪的主要接口;

       IFRDQualityAcess:表示人脸引擎中图片质量评价的主要接口;

       IFRAFaceAlign:表示人脸引擎中人脸图片关键点提取的主要接口;

       IFRVGetFea:表示人脸引擎中人脸图片特征提取的主要接口;

       IFRVCompFea:表示人脸引擎中人脸特征比对的主要接口

3. 互联网场景下人脸服务基线方案效果验证设计

3.1 测试验证标准

视频中标注一个人脸出现的时间段,该人脸在人脸服务引擎的目标库中注册,引擎开启目标跟踪,每段视频只标注特定的一个人。

数据集:

  1. 400多段视频(平均时长4分钟);
  2. 目标库中42张注册人脸。

判定条件:

  1. 优先级1:标注结果和引擎输出结果交并比阈值 0.5;
  2. 优先级2:标注结果和引擎输出结果的交差比为25帧。

相关定义:

  1. 交并比:引擎输出后的帧区间与人工标记的帧区间的交叠率,即它们的交集与并集的比值,例如0.5。最理想情况是完全重叠,即比值为1; 
  2. 交并差:引擎输出后的帧区间与人工标记帧区间交集与并集的差值,例如小于25帧(即1秒),默认为可接受范围,即使交并比低于阈值,也认为是通过的。
  3. A:平台返回目标人脸所在帧区间的交并比满足阈值的个数。
  4. B:平台返回目标人脸所在帧区间的交并比不满足阈值的个数。
  5. C:目标人脸标记的帧区间没有结果匹配到的个数。
  6. 召回率(R):交并比满足0.5的人脸服务处理后帧区间数量/标注的帧区间数量(A/A+C)
  7. 准确率(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.总结

    从人脸服务基线的测试结果中,可以看出,在当前的测试标准下,人脸服务的效果不理想,最大的召回率和准确率都比较低,其中的问题有的是出现在测试标准中所以需要对测试的指标重新进行制定,也有的问题是出现在服务,所以需要对人脸服务引擎本身进一步的优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/38646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++读取文件时出现中文乱码

原因:UTF-8格式不支持汉字编码 解决:改成ANSI,因为ANSI编码支持汉字编码

Python学习路线图(2024最新版)

这是我最开始学Python时的一套学习路线,从入门到上手。(不敢说精通,哈哈~) 一、Python基础知识、变量、数据类型 二、Python条件结构、循环结构 三、Python函数 四、字符串 五、列表与元组 六、字典与集合 最后再送给大家一套免费…

KVB App:中国制造业数据支撑澳元,分析师预计挑战0.6750阻力

摘要: 中国6月财新制造业PMI上升至51.8,反映出制造业生产经营活动的持续扩张。这一数据不仅高于预期,还为澳元提供了强有力的支撑。技术分析显示,澳元/美元可能会在短期内挑战0.6750阻力水平。 中国制造业数据解析 6月&#xff0…

python异常、模块与包

目录 了解异常异常的捕获方法python模块python包安装第三方包 了解异常 什么是异常 当检测到一个错误时,python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG bug单词的诞生 早期…

Python tkinter: 开发一个目标检测GUI小程序

程序提供了一个用户友好的界面,允许用户选择图片或文件夹,使用行人检测模型进行处理,并在GUI中显示检测结果。用户可以通过点击画布上的检测结果来获取更多信息,并使用键盘快捷键来浏览不同的图片。 一. 基本功能介绍 界面布局&am…

智芯开发板----时钟的使用

一、开发板时钟概述 介绍 Z20K11xM 的时钟结构,分布以及各个外设时钟源的选择。SCC 模块用于选择系统时钟,产生 core clock、bus clock 和 flash clock,分 别用于驱动 core 及高速外设、普通外设和 flash。PARCC 模块用于单独设置 每个外设的…

中霖教育怎么样?税务师通过率高吗?

中霖教育怎么样?税务师通过率高吗? 我们在税务师考试培训方面有着不错的成绩,这都是老师与学员共同努力的结果。 采用小班教学模式,确保每位学员都能得到足够的关注和指导,在学习过程中针对学员的薄弱环节进行专项突破。 因为大部分学员…

【C语言】常见的字符串函数

©作者:末央& ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨,书写未来之大梦 目录 strlen函数模拟实现 strstr子串查找函数模拟实现 strtok字符串分割 strlen函数 strlen函数是一个用于求字符串长度的库函数。它的参数是被求长度的字…

【爱上C++】详解string类2:模拟实现、深浅拷贝

在上一篇文章中我们介绍了string类的基本使用,本篇文章我们将讲解string类一些常用的模拟实现,其中有很多细小的知识点值得我们深入学习。Let’s go! 文章目录 类声明默认成员函数构造函数析构函数拷贝构造函数深浅拷贝问题传统写法现代写法…

泛型的使用(<T>)

文章目录 前言一、泛型是什么?二、泛型的使用 1.定义泛型类2.泛型的常规用法总结 前言 强制类型转换存在一定隐患,如数据丢失、内存溢出、运行时错误、程序逻辑错误等。所以提供了泛型机制,使程序员可以定义安全的数据类型进行操作。通俗的理…

CEPH 系统盘挂了,如何使用数据盘恢复

硬盘损坏是早晚的时,CEHP数据盘坏了,使用CEPH的基本都轻车熟路了,如果系统盘坏了呢?不知道的可能会采取整个系统盘全做的方式 前提条件:使用cephadm搭建集群 如果换服务器,请确保CEPH数据盘放到其它服务器上…

Python基础教程——一次搞懂 Python 字典!Python字典的20种神奇用法

Python 字典(Dictionary)是数据结构中的一种重要类型。它以键值对的形式存储数据,具有快速查找的特性。今天我们将通过生动有趣的案例,来探讨字典的20个经典操作,帮助大家深入理解和掌握这些概念。 1. 创建字典 字典…

Python从0到100(三十四):Python中的urllib模块使用指南

1. urllib模块概述 在Python中,除了广泛使用的requests模块之外,urllib模块也是处理HTTP请求的重要工具。urllib模块在Python 2中分为urllib和urllib2两个模块,而在Python 3中,它们被合并为一个urllib模块。本文将重点介绍Python…

【鸿蒙学习笔记】Column迭代完备

属性含义介绍 Column({ space: 10 }) {Row() {Text(文本描述).size({ width: 80%, height: 60 }).backgroundColor(Color.Red)}.width(90%).height(90).backgroundColor(Color.Yellow) } .width(100%) // 宽度 .height(200) // 高度 .backgroundColor(Color.Pink) // 背景色 .…

pcap包常见拆分方法

文章目录 Wireshark 拆分流量包SplitCap使用简介魔数报错示例结果 在进行流量分析时,经常需要分析pcap流量包。但是体积过大的流量包不容易直接分析,经常需要按照一定的规则把它拆分成小的数据包。 这里统一选择cic数据集里的Thursday-WorkingHours.pcap…

二、 操作系统知识(考点篇)

一、操作系统概述 操作系统定义: 能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。 操作系统有三个重要的作用: 第一&am…

【办公软件使用分享—Word篇】实用技巧 一学就会 沈阳电脑办公软件基础培训

在平时的工作学习中,Word真真是让很多人头疼的一件事,今天给大家分享20个案例,感受下Word真正的力量! 1.插入自动目录 没有目录的文档不是一份合格的文档,很多人认为在Word里插入目录是一件很麻烦的事,其…

Soul打造安全社交元宇宙环境,全力守护用户线上社交安全

在数字化时代的浪潮中,智能安全线上社交正成为人们日常生活中的重要组成部分。随着人们对社交媒体和在线平台依赖程度的不断增加,保障个人信息安全和网络安全变得至关重要。在此背景下,社交平台致力于采取多种措施来保障用户的隐私安全,提升社交体验的质量和安全性。而Soul全方…

咖啡消费旺季到来 为何想转让的库迪联营商却越来越多

文 | 智能相对论 作者 | 霖霖 去年还在朝“三年万店”计划狂奔的库迪,今年已出现明显“失速”。 早在今年2月,库迪就官宣其门店数已超过7000家,如今4个多月过去,据极海品牌监测数据显示,截至6月27日,其总…

[Shell编程学习路线]——shell脚本中case语句多分支选择详解

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月21日16点30分 🀄️文章质量:95分 ————前言———— 在Shell编程中,处理多种条件…