AI人脸识别的测试重点
最常见的 AI应用就是人脸识别,因此这篇文章从人脸识别的架构和核心上,来讲讲测试的重点。
测试之前需要先了解人脸识别的整个流程,红色标识代表的是对应AI架构中的各个阶段
首先是人脸采集。
安装拍照摄像设备之后,需要在动态的场景与复杂的背景中判断是否存在人脸,并分离出这种面像。然后采集到人脸的照片。
因此采集过程是非常重要的,一需要能够采集到内容,二采集的内容能够分离出来是人脸。
而特征提取的原理是,将获取的人脸照片进行色彩矫正、光线调整,五官定位和脸部分割,将人脸的鼻子、眼睛、嘴巴等视为一个个特征点,计算每个特征点所在的位置、距离、角度。
正常场景下,在合适的光源下,采集人脸的正面,包含正常完整的人脸轮廓,毫无遮挡的五官,清晰的被拍照设备拍到,这样才能够准确的捕捉到特征,并判断出来。
但对于测试同学来讲,还要考虑异常场景的表现,即任何可能造成拍不到,拍不清晰,判断不出是人脸,或者不完整的表现。
另外判断拍摄的样品是否包含人脸时,原理上一般会通过样品学习、或者是参考模版来,比如先设计一个标准人脸的模版,包含标准的特征、有一定的结构分布、相对规律的肤色分布。
那么针对这个原理,在测试时需要考虑不同肤色,或者是面部特征过于复杂的案例,比如脸上有皱纹的老人。
再看人脸比对。
实际应用场景中,人脸比对的本质是照片的比对。比对两张脸中,其中一张脸一般来自于当前场景拍摄的照片,另一张照片一般来自于数据库中的照片。
数据库的照片是用来作为比对标准的,也是固定且一般不可随意篡改的。
因此,从测试角度来看,需要覆盖到这些特殊照片的行为。
目前市面上主流的几种抗攻击的照片采集方式主要有三种:活体检测、连续检测、3D检测。
1) 活体检测:判断用户是否为正常操作,通过指定用户做随机动作,一般有张嘴、摇头、点头、凝视、眨眼等等,防止照片攻击。 判断用户是否真实在操作,指定用户上下移动手机,防止视频攻击和非正常动作的攻击。
2) 3D检测:验证采集到的是否为立体人像,能够防止平面照片、不同弯曲程度的照片等。
3) 连续检测:通过连续的检测,验证人脸运动轨迹是否正常,防止防止跳过活体检测直接替换采集的照片,也能够防止中途切换人。
其中活体检测是现在应用最广的一种抗攻击人脸数据采集方式。
因为不管是直接对照片检测,还是对活体进行检测,最终的目的都是采集人脸不同角度的照片。因此如果活体检测要与连续性检测和3D 检测结合使用。
计算机只会告诉我们比对的两张脸的相似程度,是80%或者是20%,但不会告诉我们这两张脸是否为同一个人。
因此人脸比对有一个阈值的概念。设置相似度大于x%的时候,视为人脸比对通过,小于x%的时候,视为人脸比对不通过。设定阈值的过程就是模型评估。
阈值设定过低,则人脸比对通过率高,误报率可能也会升高。
阈值设定过高,则人脸比对通过率低,误报率可能也会降低也可能会增高。
因此在人脸识别的测试中,除了要关注通过率,还要关注误报率。这两项也可以统称为是查准率。
举个例子:
有8个样本,分别拿十张照片与数据库证件照进行人脸比对,其中3个确实是人证统一,另外四个人证不同。比对的结果相似度如下:
假设阈值设定60%,则人脸比对通过率=4/8=50%,误报率=1/8=12.5%。
假设阈值设定70%,则人脸比对通过率=2/8=25%,误报率=1/8=12.5%。
假设阈值设定50%,则人脸比对通过率=5/8=62.5%,误报率=2/8=25%。
目前人脸识别在金融、教育、景区、出入境、机场等领域已经大量应用,方便的同时也带来了一些问题,怎么做好人脸识别的测试,还是一个需要思考和深挖的课题。上述只是我近期在测试过程中的总结,分享大家。
————————————————
版权声明:本文为CSDN博主「alice_tl」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/alice_tl/article/details/79736342
AI人脸识别的测试重点的更多相关文章
- AI人脸识别SDK接入 — 参数优化篇(虹软)
引言 使用了虹软公司免费的人脸识别算法,感觉还是很不错的,当然,如果是初次接触的话会对一些接口的参数有些疑问的.这里分享一下我对一些参数的验证结果(这里以windows版本为例,linux.andro ...
- 虹软AI 人脸识别SDK接入 — 参数优化篇
引言 使用了免费的人脸识别算法,感觉还是很不错的,但是初次接触的话会对一些接口的参数有些疑问的.这里分享一下我对一些参数的验证结果(这里以windows版本为例,linux.android基本一样), ...
- 基于百度AI人脸识别技术的Demo
编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...
- 技能节-AI人脸识别
我们收到技能节项目的通知是在两周之前,项目要求做个人脸评分系统. 两周时间写一个"人脸评分系统",好像时间比较紧了,还好我们完成了~这个项目是将摄像头捕获到的包含人脸的图像传输到百 ...
- 百度人脸识别api及face++人脸识别api测试(python)
一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...
- openFace 人脸识别框架测试
openface 人脸识别框架 但个人感觉精度还是很一般 openface的githup文档地址:http://cmusatyalab.github.io/openface/ openface的安 ...
- 百度AI人脸识别的学习总结
本文主要分以下几个模块进行总结分析 项目要求:运用百度AI(人脸识别)通过本地与外网之间的信息交互(MQService),从而通过刷脸实现登陆.签字.会议签到等: 1.准备工作: 内网:单击事件按钮— ...
- 基于C# 调用百度AI 人脸识别
一.设置 登录百度云控制台,添加应用-添加人脸识别,查找,对比等. 记住API Key和Secret Key 二.创建Demo程序 1.使用Nuget安装 Baidu.AI 和 Newtonsoft. ...
- 干货 | AI人脸识别之人脸搜索
本文档将利用京东云AI SDK来实践人脸识别中的人脸搜索功能,主要涉及到分组创建/删除.分组列表获取.人脸创建/删除.人脸搜索,本次实操的最终效果是:创建一个人脸库,拿一张图片在人脸库中搜索出相似度最 ...
随机推荐
- liteos MMU(十八)
1. 概述 1.1 基本概念 MMU全称"Memory Management Unit",顾名思义就是"内存管理单元". 1.2 运作机制 建立页表描述符号表, ...
- [Go] gocron源码阅读-go语言web框架Macaron
gocron源码中使用的是马卡龙框架,下面这个就是安装这个框架,和一般的MVC框架很像go get gopkg.in/macaron.v1git clone https://github.com/go ...
- 卷积层输出feature maps尺寸的计算
默认feature maps的宽和高相等. 常规卷积 输入的feature maps尺寸为i,卷积核的尺寸为k,stride为s,padding为p,则输出的feature maps的尺寸o为 当pa ...
- mysql命令大全一
mysql -u root -p;create database qa;show databases;use qa; create table results(id int not null auto ...
- bcftools
beftools非常复杂,大概有20个命令,每个命令下面还有N多个参数 annotate .. edit VCF files, add or remove annotations call .. SN ...
- Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) G. Polygons 数论
G. Polygons Description You are given two integers
- 队列和 BFS —— 栈和 DFS
队列和 BFS: 广度优先搜索(BFS)的一个常见应用是找出从根结点到目标结点的最短路径. 示例 这里我们提供一个示例来说明如何使用 BFS 来找出根结点 A 和目标结点 G 之间的最短路径. 洞悉 ...
- vue中使用better-scroll的2种方式简述
前言 better-scroll官方demo展示:https://ustbhuangyi.github.io/better-scroll/#/examples/en better-scroll官方文档 ...
- mysql 8.0 group by 不对的问题
select version(),@@sql_mode;SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
- Entity Framework 6 中如何获取 EntityTypeConfiguration 的 Edm 信息?(五)
直接贴代码了: NewsInfo 实体类: public class NewsInfo { public int NewsInfoId { get; set; } public string News ...