之前的文章重点分享了AI的概念和应用,以及AI的架构与核心,结合到项目里,最常见的 AI应用就是人脸识别,因此这篇文章从人脸识别的架构和核心上,来讲讲测试的重点。

测试之前需要先了解人脸识别的整个流程,上一篇文章分享过,红色标识代表的是对应AI架构中的各个阶段

https://blog.csdn.net/alice_tl/article/details/78566426

首先是人脸采集。

安装拍照摄像设备之后,需要在动态的场景与复杂的背景中判断是否存在人脸,并分离出这种面像。然后采集到人脸的照片。

因此采集过程是非常重要的,一需要能够采集到内容,二采集的内容能够分离出来是人脸。

而特征提取的原理是,将获取的人脸照片进行色彩矫正、光线调整,五官定位和脸部分割,将人脸的鼻子、眼睛、嘴巴等视为一个个特征点,计算每个特征点所在的位置、距离、角度。

正常场景下,在合适的光源下,采集人脸的正面,包含正常完整的人脸轮廓,毫无遮挡的五官,清晰的被拍照设备拍到,这样才能够准确的捕捉到特征,并判断出来。

但对于测试同学来讲,还要考虑异常场景的表现,即任何可能造成拍不到,拍不清晰,判断不出是人脸,或者不完整的表现。详细场景比如:

测试对象覆盖的场景:
λ 不同性别分布,男性、女性。
λ 不同年龄分布,儿童、少年、中年、老年。
λ 不同人种分布,黑人、白人、黄种人。
λ 不同脸型分布,人脸、猪脸、猴脸。
λ 人脸没有正对摄像头,角度有倾斜,左右倾斜、上下倾斜。
λ 翻拍的人脸照片,清晰照片、不清晰照片。
λ 摄像头内包含单张人脸、多张人脸。
测试所处的环境
λ 拍照环境光线正常。
λ 拍照环境光线过亮。
λ 拍照环境过暗或者过黑。

另外判断拍摄的样品是否包含人脸时,原理上一般会通过样品学习、或者是参考模版来,比如先设计一个标准人脸的模版,包含标准的特征、有一定的结构分布、相对规律的肤色分布。

那么针对这个原理,在测试时需要考虑不同肤色,或者是面部特征过于复杂的案例,比如黑人、比如脸上有皱纹的老人。

再看人脸比对。

实际应用场景中,人脸比对的本质是照片的比对。比对两张脸中,其中一张脸一般来自于当前场景拍摄的照片,另一张照片一般来自于公安部或者数据库中的照片。

公安部或数据库的照片是用来作为比对标准的,也是固定且一般不可随意篡改的。但采集照片的环节容易出现各种各样的漏洞,容易被一些不法分子利用虚假照片、他人照片、网络照片等进行攻击。

因此,从测试角度来看,需要覆盖到这些非法采集照片的行为,比如:

λ 长相相似度很高的非本人的照片
λ 双胞胎照片
λ 整容过的照片
λ 软件合成的虚拟人脸
λ 基于证件照PS的照片

等等。

目前市面上主流的几种抗攻击的照片采集方式主要有三种:活体检测、连续检测、3D检测。

1) 活体检测:判断用户是否为正常操作,通过指定用户做随机动作,一般有张嘴、摇头、点头、凝视、眨眼等等,防止照片攻击。 判断用户是否真实在操作,指定用户上下移动手机,防止视频攻击和非正常动作的攻击。

2) 3D检测:验证采集到的是否为立体人像,能够防止平面照片、不同弯曲程度的照片等。

3) 连续检测:通过连续的检测,验证人脸运动轨迹是否正常,防止防止跳过活体检测直接替换采集的照片,也能够防止中途切换人。

其中活体检测是现在应用最广的一种抗攻击人脸数据采集方式。

因为不管是直接对照片检测,还是对活体进行检测,最终的目的都是采集人脸不同角度的照片。因此如果活体检测没有与连续性检测和3D 检测结合使用,也会存在一些漏洞。

这些漏洞即是测试的重点:

λ 脸部有佩戴眼镜或深色墨镜。

λ 头发有明显遮住眼睛或脸部轮廓。
λ 翻拍的正面人脸照片。
λ 拍摄的人脸正面、侧面、张嘴、闭眼等不同角度的静态照片
λ 固定照片基础上,小区域的替换眼睛和嘴巴的特征部位
λ 单只眼睛眨眼
λ 眨眼和张嘴行为同时进行、不同时进行
λ 录制眨眼、张嘴的动作视频,按照一定的标准拼接起来

计算机只会告诉我们比对的两张脸的相似程度,是80%或者是20%,但不会告诉我们这两张脸是否为同一个人。

因此人脸比对有一个阈值的概念。设置相似度大于x%的时候,视为人脸比对通过,小于x%的时候,视为人脸比对不通过。设定阈值的过程就是模型评估。

阈值设定过低,则人脸比对通过率高,误报率可能也会升高。

阈值设定过高,则人脸比对通过率低,误报率可能也会降低也可能会增高。

因此在人脸识别的测试中,除了要关注通过率,还要关注误报率。这两项也可以统称为是查准率。

举个例子:

有8个样本,分别拿十张照片与数据库证件照进行人脸比对,其中3个确实是人证统一,另外四个人证不同。比对的结果相似度如下:

样本数

Name A

Name B

Name C

Name D

Name E

Name F

Name G

相似度

80%

60%

70%

60%

50%

40%

30%

实际现象

Y

Y

Y

N

N

N

N

假设阈值设定60%,则人脸比对通过率=4/8=50%,误报率=1/8=12.5%。

假设阈值设定70%,则人脸比对通过率=2/8=25%,误报率=1/8=12.5%。

假设阈值设定50%,则人脸比对通过率=5/8=62.5%,误报率=2/8=25%。

目前人脸识别在金融、教育、景区、出入境、机场等领域已经大量应用,方便的同时也带来了一些问题,怎么做好人脸识别的测试,还是一个需要思考和深挖的课题。上述只是我近期在测试过程中的总结,分享大家。


AI人脸识别的测试重点相关推荐

  1. python人脸识别代码百度ai_python百度AI人脸识别API测试

    1.注册账号 2.创建应用 3.得到AK和SK 4.用AK SK获取access_token 可用下面的代码: #!/usr/bin/python3.5 # encoding:utf-8 import ...

  2. 格灵深瞳——人脸识别算法测试FRVT

    7月3日,美国国家标准与技术研究院(NIST)公布了全球最权威的人脸识别算法测试(FRVT)的最新结果,首次参与此竞赛的格灵深瞳取得了优异成绩:在最具挑战的"非约束性自然环境人脸照片&quo ...

  3. 微信小程序开发工具结合腾讯云开发AI人脸识别和身份证识别——基于腾讯云开发者实验项目

    微信小程序开发工具结合腾讯云开发AI人脸识别和身份证识别--基于腾讯云开发者实验项目 开通腾讯云相关权限(AI人脸识别,文字识别-身份证识别) 查看API密钥 部署微信小程序 成功演示 代码包 开通腾 ...

  4. Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储

    原 Python+OpenCv实现AI人脸识别身份认证系统(2)--人脸数据采集.存储 2019年07月02日 08:47:52 不脱发的程序猿 阅读数 602更多 所属专栏: 人脸识别身份认证系统设 ...

  5. 如何使用计算机视觉进行人脸识别和测试?

    人脸识别和检测是计算机视觉领域中的一个重要研究方向.以下是一个简单的流程,用于使用计算机视觉进行人脸识别和. 如何使用计算机视觉进行人脸识别和测试? 收集和准备数据集:从网络.摄像头或其他来源收集包含 ...

  6. 云开发:让你拥有自己的第一个AI人脸识别小程序

    文章目录 博主绪论 准备过程 GIT的安装 NodeJS和npm的安装 腾讯云人脸识别API 正式开始 创建云开发小程序 开发前的思考准备,思维决定行动 服务器开发(写一个云函数端) 分析 调用人脸识 ...

  7. Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理

    原 Python+OpenCv实现AI人脸识别身份认证系统(1)--人脸识别原理 置顶 2019年07月02日 08:47:40 不脱发的程序猿 阅读数 1255更多 所属专栏: 人脸识别身份认证系统 ...

  8. AI人工智能相面项目总结二,AI人脸识别接口的选择和根据人脸数据的测算

    做AI相面,自然AI人脸识别是基础.目前AI人脸识别已经很成熟,相应提供接口的公司也很多,我们主要看了三家的接口,腾讯.百度和face++. 腾讯人脸识别接口 申请地址:https://cloud.t ...

  9. AI人脸识别 生物识别 活体检测 的发展历程

    https://www.toutiao.com/a6683767811531080200/ 2019-04-25 17:52:41 人脸识别是一个被广泛研究着的热门问题,大量的研究论文层出不穷,在一定 ...

最新文章

  1. CUDA Samples: Ray Tracking
  2. sql 双分区查询_优化案例 | 分区表场景下的SQL优化
  3. Weex Workshop 挑战赛,等你来战!
  4. Linux终端光标消失问题
  5. POJ 1753 Flip Game 高斯消元
  6. Python面向对象基础一
  7. asp.net中sitemap的简单实用
  8. 线性插值改变图像尺寸_【图像分割模型】实例分割模型—DeepMask
  9. AndroidStudio_安卓原生开发_拍照存储在Uri中_利用图片后通过Uri获取文件真实路径_然后删除---Android原生开发工作笔记161
  10. utilities(matlab)—— 前馈网络权值矩阵初始化方式
  11. Hyperledger02
  12. 中国经济真相:跑了 1135 家制造企业,我终于明白什么叫自己玩死自己(转)...
  13. MapReduce 1.x VS 2.x架构对比
  14. java实现中文转拼音_Java 实现中文-拼音转换
  15. 计算机软件处理化学数据,化学中的常用计算机软件与资源程功臻武汉大学化学系计算机作为一.pdf...
  16. 大数据架构与技术——(一)大数据概述
  17. HTML个人简历代码模板(静态页面)
  18. app防御ddos/cc攻击
  19. uni-app---第三方登录
  20. 什么是数学建模?如何在数学建模中拿奖?通过建模学到了啥?

热门文章

  1. Bogus,bad length value xxx IP Payload length
  2. html div标签内背景图片自适应div大小
  3. 让你的电脑成为移动WIFI。
  4. CAD机械制图时的常见问题
  5. 机QQ:跌倒在Cosplay微信的舞台上
  6. 关于WAP下载的手机文件MIME类型
  7. MAYA安装成功后打不开
  8. java毕业设计企业个性化展示平台源码+lw文档+mybatis+系统+mysql数据库+调试
  9. Vue项目优化,减小打包体积
  10. 仿美团下拉刷新控件(一)