人脸识别和AI的关系
先了解 AI两个基本概念。
a) 计算机视觉
也称为机器视觉,是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。
最好理解的场景,比如拍一个花的照片,通过机器学习自动告知用户这是什么花。拍一个店铺的照片,机器学习自动分析出店铺的名字,以及店铺的位置。
b) 生物识别
通过计算机,与光学、声学、生物传感器、统计学的概念手段结合,利用人体固有的生理特性和行为特征进行个人身份的鉴定。比如通过人的指纹,和数据库录入的指纹比较,判断是否是同一个人。
机器视觉和生物识别都属于AI 的应用领域,机器视觉和生物识别的本质,都在于对于图像图像的识别和比对。人脸识别,则是将机器视觉与生物识别结合,对人类的面部特征应用计算机视觉的一个典型场景。
怎么测试图像识别
结合 AI 的架构和核心来分析。
1. 数据收集和处理
既然是视觉,必然是人肉眼所能看到的内容,动态和静态的景、人、建筑、动植物、书本等等,归根结底可以认为是图片。数据收集的过程是,在安装拍照摄像设备之后,从动态的场景与复杂的背景中判断是否存在识别的对象,并分离出对象。采集到照片。因此测试需要从至少这两方面来考虑。
a) 采集的素材
图片的像素、大孝清晰度、色彩、复杂度、噪声等,会直接影响到计算机识别的结果。
举个例子来说,下方的三个图,对于肉眼和计算机学习去区分的难度是明显不一样的。识别的难度A一定小于B和C。
图a、图b和图c
b) 采集的器材
图片一般是用摄像头拍摄获得的,那么不同品牌和参数的摄像头,拍摄出来的照片像素、清晰度、色彩,甚至是层次都会有差异。
2. 数据理解和特征提取
数据理解的目的在于,获取到原始数据之后,分析数据的有效性,并且将数据里有用的, 并且将有典型特征的抽取出来。比如我们拍摄的各种照片,需要从中识别出是包含一朵花的,还是包含一个人的,是一辆自行车还是一辆小汽车。
这个唯一的解决方案是,让机器拿到足够多的样本进行训练,训练的越多,模型将越准确。
测试模型的准确性,也要针对性的找足够多足够全的样本。假设识别的对象是花,那么就尽可能的测试到各地、各类、各种颜色、各种角度的花,真实材质非真实材质等等。假设识别的对象是车,那么就尽可能的测试到各种类别、各种品牌、各种款式的车。
3. 模型构建、训练和评估
计算机只会告诉我们比对的两张图片的相似程度,是80%或者是20%,但不会告诉我们这两张图里的内容是否是同一个东西。因此图片比对一定会有一个阈值的概念。设置相似度大于x%的时候,视为比对通过,小于x%的时候,视为比对不通过。
设定阈值的过程就是模型评估。阈值设定过低,则比对通过率高,误报率可能也会升高。阈值设定过高,则比对通过率低,误报率可能也会降低也可能会增高。
测试时,需要不断的尝试不同的阈值,找一个通过率和误报率的平衡点。要针对算法的优劣进行针对性的测试,因为有的算法过于严苛,有的算法不够精准。
人脸识别和图像识别的差异
1. 人脸 VS 普通图像
对于人脸来说,最大的问题在于面部特征部位多、可改变性强、面部表情丰富,并且具有动态变化的特性。
因此在数据收集的时候要考虑:
λ 不同性别、年龄、人种、民族的人脸,因为五官的特征差异度很大。
λ 人脸正对摄像头的,上倾、下倾、左倾和右倾不同角度的
λ 环境亮度正常和黑暗的时候,逆光、向光、弱光和强光的情况
λ 有佩戴黑框眼镜或墨镜的情况
λ 头发正常色和染色的情况
λ 人脸和非人脸的表现,尤其是跟人脸最相似的动物,比如猩猩、猿猴。
2. 人脸识别应用场景 VS 普通图像识别应用场景
人脸识别主要用于银行、机尝出入境的安防,因此相比一般的机器视觉来讲,安全方面显得更加重要,需要重点测试人脸识别的抗攻击能力。
在上一篇文章里讲过,人脸识别的流程主要存在四个环节:人脸捕获、活体检测、人脸采集、人脸比对。
攻击的行为一般是照片、面具和视频,比如:
λ 翻拍后的照片攻击。
λ 人脸面具,高仿真面具。
λ 长相相似度很高的人脸,软件合成的虚拟人脸等等。
λ GIF 图像和录制拼接的视频等等。
AI 测试和传统测试的异同点
综合来说,AI 测试,需要结合 AI 的架构、算法和应用场景做针对性的测试。除此以外,一般性的功能、性能、兼容和传统业务测试无异。