1.测试项目总览
本次测试主要测试以下几个方面:
- 模组的基本属性和SDK基本功能;
- 华捷艾米提供的人脸防伪算法性能;
- 模组的逆光性能。
2.基本属性和SDK基本功能
图像属性:
模组提供的3d深度数据标称分辨率最大为640x480,另外提供320x240等比例缩放的分辨率。不过使用过程中发现,实际的有效分辨率大概为640x400,上下存在一定黑边。
自带的UVC摄像头帧率为30帧,分辨率最大为1920x1080,另外提供1280x720、640x480、320x240三种分辨率,图像保持1920x1080的原比例缩放,并根据新分辨率进行裁剪,例如640x480为1920x1080的图像原比例缩放到853x480,再对称裁剪到640x480。
深度测量范围:
水平视角60度,垂直视角47度。1米款标称测量距离0.2m~1m,2米款标称测量距离0.3m~2米。
SDK基本功能:
基础SDK提供了windows、linux、android三种版本,提供C和C++接口。其中windows版和linux版有提供额外的人脸相关算法SDK,需要华捷艾米授权。
基础SDK提供了包含但不限定于如下的功能:
- 读取深度图数据;
- 读取彩色图数据;
- 保存图片(深度图和彩色图);
- 保存一段数据流(深度数据和彩色数据);
- 彩色和深度数据帧同步;
- 彩色和深度图配准;
- 深度坐标和世界坐标的互相转换;
- 深度坐标转换成点云。
人脸相关算法的SDK提供了包含但不限定于如下的功能:
- 人脸检测;
- 人脸防伪。
- 人脸防伪算法性能
算法效果:
防伪算法在伪样本判断方面的效果非常优秀,在实际体验中,无论是打印照片还是手机上的照片,采用各种角度以及纸张不同方向弯曲的方法,未找到任何可以骗过防伪判别的角度,仅在打印照片挖洞露出少部分五官的情况下,有一定概率会被判断为活体,防伪失效。
不过相应的,活体被判断为伪样本的效果相对稍差,除了正脸的情况效果很稳定,大概在15度以上侧脸时,效果就开始出现波动,尤其在脸有一定斜向上的情况下,很容易被判定为伪样本。
算法速度:
算法的SDK提供一个输入深度图和彩色图检测框坐标,输出是否活体的接口,测试速度为该接口正常调用一次的平均速度。
在win7 64位,cpu i5-6500的配置下(算法未使用GPU,也未提供开启GPU的选项),测试得到的平均速度约为40-43ms,该速度即单人判断活体算法的速度。
注意事项:
当检测目标靠近深度图边缘,或距离摄像头太近或太远时,该算法会直接进行提示相应的情况,而不进行真伪判别。但由于深度图的视角范围不算大,使用中很容易出现靠近边缘的情况。从用户体验来说,实际算法的可用范围稍微小了一点。
- 逆光性能
在有阳光的环境下,测试该模组的逆光性能。
当阳光直射在结构光模组的接收模块时,深度画面会受到一定污染,在一定情况下,会影响到人脸区域,而获取不到正确的人脸深度数据,因而防伪算法会失效。如下图所示: