猪圈子,一个有个性的订阅号


01
测量人脸识别的主要性能指标有

1.误识率(False;Accept;Rate;FAR):这是将其他人误作指定人员的概率;

2.拒识率(False;RejectRate;FRR):这是将指定人员误作其它人员的概率。

计算机在判别时采用的阈值不同,这两个指标也不同。一般情况下,误识率FAR;随阈值的增大(放宽条件)而增大,拒识率FRR;随阈值的增大而减小。因此,可以采用错误率(Equal;Error;Rate;ERR)作为性能指标,这是调节阈值,使这FAR和FRR两个指标相等时的FAR;或FRR。

02
影响人脸识别性能的因素&解决方法

(1)背景和头发:消除背景和头发,只识别脸部图象部分。

(2)人脸在图象平面内的平移、缩放、旋转:采用几何规范化,人脸图象经过旋转、平移、缩放后,最后得到的脸部图象为指定大小,两眼水平,两眼距离一定。

(3)人脸在图象平面外的偏转和俯仰:可以建立人脸的三维模型,或进行三维融合(morphing),将人脸图象恢复为正面图象。

(4)光源位置和强度的变化:采用直方图规范化,可以消除部分光照的影响。采用对称的从阴影恢复形状(symmteric;shape;from;shading)技术,可以得到一个与光源位置无关的图象

03
采集场景

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

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

1) 人脸没有正对摄像头,角度有倾斜。

2) 拍照环境过暗或者过黑。

3) 有佩戴黑框眼镜或墨镜拍照。

4) 头发有明显遮住眼睛或脸部轮廓。

5) 摄像头内包含多张人脸。

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

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

再看人脸比对。

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

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

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

1) 翻拍后的照片。

2) 长相相似度很高的非本人的照片

3) 软件合成的虚拟人脸

4) 基于证件照PS的照片

等等。

  

04
照片采集方式

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

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

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

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

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

  

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

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

1) 拍摄人脸正面、侧面、张嘴、闭眼等照片,用不同角度的静态照片绕过本人现场检测。

2) 录制各种动作视频,按照一定的标准拼接起来,绕过本人现场检测。

计算机只会告诉我们比对的两张脸的相似程度,是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%。

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

推荐理由:致力于python爬虫系列及python相关经典好文集中地,以及程序员娱乐生活圈趣事分享(小编从业测试岗位四年SAAS平台+一年电商平台测试相关工作)积极分享趣事的90后,关注作者后台回复【测试】【Python】领取系统资料。

文章图片部分来源于网络如果侵权请及时联系删除


—END—


Just do it

简 单 快 捷

vx:shichaogg

长按关注

Face Recognition 人脸识别该如何测试的更多相关文章

  1. 基于虹软的Android的人脸识别SDK使用测试

    现在有很多人脸识别的技术我们可以拿来使用:但是个人认为还是离线端的SDK比较实用:所以个人一直在搜集人脸识别的SDK:原来使用开源的OpenCV:最近有个好友推荐虹软的ArcFace, 闲来无事就下来 ...

  2. 基于Python与命令行人脸识别项目(系列一)

    Face Recognition 人脸识别 摘要:本项目face_recognition是一个强大.简单.易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,方便大家使用.对于本项目可以使用 ...

  3. paper 50 :人脸识别简史与近期进展

    自动人脸识别的经典流程分为三个步骤:人脸检测.面部特征点定位(又称Face Alignment人脸对齐).特征提取与分类器设计.一般而言,狭义的人脸识别指的是"特征提取+分类器"两 ...

  4. [DeeplearningAI笔记]卷积神经网络4.1-4.5 人脸识别/one-shot learning/Siamase网络/Triplet损失/将面部识别转化为二分类问题

    4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.1什么是人脸识别 Face verification人脸验证 VS face recogniti ...

  5. face recognition[翻译][深度人脸识别:综述]

    这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...

  6. 基于机器学习人脸识别face recognition具体的算法和原理

    引自:http://blog.csdn.net/eclipsesy/article/details/78388468?utm_source=debugrun&utm_medium=referr ...

  7. 论文阅读:Face Recognition: From Traditional to Deep Learning Methods 《人脸识别综述:从传统方法到深度学习》

     论文阅读:Face Recognition: From Traditional to Deep Learning Methods  <人脸识别综述:从传统方法到深度学习>     一.引 ...

  8. AI大厂算法测试心得:人脸识别关键指标有哪些?

    仅仅在几年前,程序员要开发一款人脸识别应用,就必须精通算法的编写.但现在,随着成熟算法的对外开放,越来越多开发者只需专注于开发垂直行业的产品即可. 由调查机构发布的<中国AI产业地图研究> ...

  9. 用2263份证件照图片样本测试how-old.net的人脸识别

    上一年也就是这个时候微软根据自己的人脸识别API推出了一个识别照片中人脸年龄和性别的网站--http://how-old.net,小伙伴们各种玩耍,一年后的今天突发"奇想"地想测试 ...

随机推荐

  1. Java--平台版本、跨平台、JVM、JDK、JRE

    Java2平台版本 Java2平台包括标准版(J2SE).企业版(J2EE)和微缩版(J2ME)三个版本 J2SE 包含那些构成Java语言核心的类. J2EE 包含J2SE 中的类,并且还包含用于开 ...

  2. iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码

    iOS精选源码 iOS高仿微信完整项目源码 Khala: Swift 编写的iOS/macOS 路由框架 微信左滑删除效果的实现与TableViewCell的常用样式介绍 实现阴影圆角并存,渐变色背景 ...

  3. Python 爬虫 爬取图片入门

    爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 用户看到的网页实质是由 HTML 代码构成的,爬 ...

  4. spark docker java kubernetes 获取cpu内核/线程数问题

    升级服务从spark2.3.0-hadoop2.8 至 spark2.4.0 hadoop3.0 一日后导致spark streaming kafka消费数据积压 服务不是传统的部署在yarn上,而是 ...

  5. Django框架篇

    Django框架 1.HTTP超文本传输协议 8中请求方法 GET , POST ,HEAD ,PUT ,DELETE , TRACE ,OPTIONS ,CONNCT 状态码 1xx ;服务器收到请 ...

  6. iTOP4412开发板-使用buildroot搭建最简单的linux

    本文档介绍的是使用buildroot搭建最简单的linux文件系统,Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfi ...

  7. 二、linux-mysql -cmake方式安装mysql 5.5

    1.安装解压cmake包  cmake软件cd /home/oldboy/tools/tar xf cmake-2.8.8.tar.gzcd cmake-2.8.8./configure#CMake ...

  8. ionic 打包时所遇问题记录

    问题1 ----------------------- Error occurred during initialization of VM Could not reserve enough spac ...

  9. spring cloud解决eureka的client注册时默认使用hostname而不是ip

    eureka的client注册到server时默认是使用hostname而不是ip.这样的话使用feign client通过eureka进行服务间相互调用时也会使用hostname进行调用,从而调用失 ...

  10. 零基础学习Web前端开发

    目录 技术背景 开发环境 学习过程 参考资料 结束语 技术背景 什么是前端开发? 前端开发是创建Web页面或App等将界面呈现给用户的过程.通过使用 HTML,CSS,JavaScript,以及它们衍 ...