严 沛
(华南师范大学 计算机学院,广东 广州 510000)
人脸识别技术是指能在图像、视频中识别和认证人的一种技术[1],如今相较于其他生物识别技术,如:指纹认证、虹膜认证,人脸识别技术显得更加成熟,也更受到大家的欢迎。如今,深度学习方法的出现,极大的加快了人脸识别技术的进程,通过卷积神经网络进行训练和验证,精确率可达接近100%。
人脸识别系统通常由以下几块组成[1]:
人脸检测:使用设备标记人脸的面部特征,并记录重要部位的位置,重要区域需要用矩阵标记出来。
人脸对齐:使用一组参考点来定位图像中固定的几个重要的位置和区域,再通过图像的缩放和裁剪,进行对齐处理。在2D人脸对齐中,可以通过仿射变换完成人脸对齐操作,随着技术的发展,也有更加复杂的3D人脸识别算法能够实现人脸的转正,通过改变人脸的位置使其面向正前方。
人脸表征:人脸的像素值可以转换成特征向量,理论上属于同一人脸的不同图像都将被映射成相似的特征向量。
人脸匹配:将图片中人脸的特征向量做比对,当两幅图片特征向量的差异小于指定的阈值时,可以判定两张人脸图片来源于一个人。
如今,现在使用最广泛的视频监控技术通过摄像头捕捉信息,再将信息实时传回监控室,由工作人员监视视频的信息,这种做法不仅需要耗费人力,而且效果并不理想,人们的注意力最多仅能坚持20分钟,20分钟之后,能获取的有效信息不超过10%[2];随着人脸识别技术的发展,基于人脸识别技术的智慧监控也逐步运用到了安防行业中,从客观记录到主动识别,检测到目标时能发出警报并对目标进行跟踪,让安全防护更有保障。
2.1.1 问题背景
以往我们通过派驻专门的安防人员去维护治安,但这种方式也存在着许多弊端:其一,无法及时发现安全隐患;其二,需要耗费大量的人力物力。鉴于此,我们更需要一种能将摄像终端获取的图片和视频进行传输并存储,再用人工智能算法对存储内容进行分析,从而实现服务的集成和信息化的技术——智慧安防技术,为我们的生活安全提供更大的保障。
2.1.2解决方案:基于树莓派和TensorFlow的视频监控系统
(1)硬件设施
树莓派单片机。树莓派设备是基于Linux操作系统的单片机,体积小,但它能完成大部分计算机所能完成的功能:如网络浏览、文字编辑、数据处理、信号发送,解决方案中采用的设备类型为:树莓派三代B型。
摄像设备。摄像头模块选择了:5MP Camera Board Module。摄像头的广角镜头最大旋转角度为120°,摄像头水平最大旋转角度为270°,宽广的视角有利于摄像头捕获更多的信息进行分析,追踪目标的运动轨迹。
(2)软件部署
在树莓派上用Linux语言部署Python环境,并安装TensorFlow和OpenCV框架。
(3)算法研究
Facenet使用TensorFlow框架下的卷积神经网络技术用于人脸识别,其中最核心的部分是三重损失方法。
首先,我们将图片x向量化,需要找到一个嵌入函数(f x),使得x能映射到d维特征空间Rd中,目标是让同一人的面部特征之间相对距离尽可能减小;不同人的面部特征之间的相对距离尽可能增大,从而达到区别人脸的效果。三重损失的主要思想是通过输入的三幅图片:目标图片(记为)、负样本图片(记为)、正样本图片(记为)。和可视为身份信息相似,和可视为身份信息不相似。然而对于这种方法而言,仍有一些特殊的情况要考虑进去,当模型在学习训练的过程中,可能会给不同的图片作出相同的编码,导致距离为0,因此我们要设置一个超参数α使得的距离总存在一个值。三重损失关系表达式为:
Facenet网络的结构为:第一部分是批输入层,第二部分是深度神经网络结构,这里我们采用卷积神经网络结构(以下简称CNN),连接的下一层局部连接层用于归一化处理,连接的下一层为嵌入层,最后一部分为三重损失函数。
(4)调试与分析
通过树莓派读取摄像头捕获的画面和视频进行分析,使用TensorFlow模型的卷积神经网络(convolution neural network,以下简称CNN)算法进行人脸识别和比对,检测是否有目标对象和异常事件,将捕获与分析的信息通过无线网络发送到指定终端。我们通过调整监控距离的大小,测试视频监控最多能检测到的人的数量,结果如表1所示。
2.1.3 总结
基于树莓派单片机的人脸识别技术,促进了安防工作智能化发展,与以往相比,减少了大量人力物力的消耗,关键信息记录和报告也更加准确及时。摄像头的摄像范围宽广,捕获的信息量大,方便了对特定成员的追踪;分析结果可以通过无线网络发送到终端。所有用户可以在几乎同一时间内收到信息,有效避免信息逐级报送产生的时延。人脸识别技术同样可以对异常事件进行检测,比如:打架斗殴、人群拥塞等,检测到异常事件时能够根据需要进行蜂鸣报警,并立即反馈信息。人脸识别技术可以识别人的特征信息,比如:大致年龄、性别,带有红外线探测功能的摄像头还可以检测人们的体温,有利于疫情防控常态化管理。
2.2.1 问题背景
乘坐火车或飞机的时候,工作人员要对我们每个人进行身份认证,防止无关人员进入侯乘区域,方便乘车人员轨迹追踪,为侯乘区域乃至整个旅途提供安全保障。以往身份认证是通过人工审核的方式进行。如今,随着智慧城市在全国各地遍地开花,身份认证的形式也更加智能化。
2.2.2 解决方案:基于DeepFace的人脸验证技术
(1)方案主要步骤
图1是人脸验证系统流程图。首先,通过摄像头和云端感应设备,捕获人的头像、将身份证上的信息读入边缘管理设备。然后,由边缘管理设备向云服务器上传身份信息,云服务器根据信息回传对应的人像至边缘管理设备处,由边缘管理设备对这两张人像进行比对,最后将结果回传至响应端和云服务端。
(2)DeepFace人脸验证算法分析[5]
表1 视频监控系统在不同距离下人流量的统计
图1 人脸验证系统流程图
人脸验证的主要步骤为:人脸检测、人脸对齐、人脸表示、人脸比对。
人脸检测:目前,深度学习算法是目前比较受欢迎的人脸识别算法,通过图像中的面部特征从多个复杂混合的物品对象中识别出人脸,并用方框标记出人脸的大致区间。
人脸对齐:人脸对齐是一种计算机视觉领域的修正技术,目前主要用于识别数字图像中的人脸结构。假如能给定脸部的位置和尺寸大小,系统就能自动估算出面部组成部分的形状,比如:眼睛、鼻子、耳朵等。人脸对齐程序通过反复调整可变形模型,对脸部形状和外貌特征进行编码,再从底层图像挖掘相关信息以证明所查找的人脸与给定图片中的人脸相吻合。
人脸表示:将尺寸为152×152像素经过3D对其处理的RGB3通道图片传递给具有32个11×11×3尺寸滤波器的卷积层C1,接着传入最大池化层M2,该层采用最大的3×3空间构成,每个通道的步长为2,之后连接的是含有16个尺寸为9×9×16过滤器的卷积层C3。这三层的主要目的是提取像简单边缘纹理的底层特征。之后的三层为局部连接层L4、L5、L6,就如同其他卷积层一样,应用了滤波器组。但是特征图中的每个位置都由不同的滤波器组进行采样处理。最后两层F7和F8为全连接层,每个输出单元对应输入单元,这些层能捕获到在图像边缘特征之间的相关性,例如眼睛和嘴巴的形状与位置。
人脸分类:人脸分类依靠加权χ距离完成,相似性通过下面的方程表示:
f1,f2表示经过DeepFace算法处理过的两个图片向量,权重参数用一个线性支持向量机算法直接训练,
当χ2(f1,f2)数值越来越小,且低于一定的阈值时,人脸识别设备可以判定该人确实是目标本人。
(3)调试结果与分析
在数据集中,我们使用了不同的规模,在数据集中选择1500人、3000人、4000人的面部数据作为测试集或训练集,并用DeepFace网络训练,训练后的网络名称记为:DF-1.5K,DF-3K,DF-4K,其分类误差率分别为:7.00%、7.22%、8.74%。
在YTW数据集上,我们为每一个视频创建了50个视频帧,并根据视频训练对,给他们标记为相同或不相同,用视频帧去训练模型。我们再从测试集中抽100帧用于测试,最终准确率为92.5%。
在LFW数据集上,将所有LFW图像在相同管道上处理并在SFC数据集上训练,采用无监督的训练方式,最终模型准确率可达97.5%。
2.2.3 分析
人脸验证技术发展相对成熟,精确率高达97%,识别时间也相对较快,捕获和比对的信息也能及时记录云端,为特定目标的轨迹追踪提供便利。但人脸认证技术依然有着其不足,戴眼镜、帽子、口罩都会导致人脸验证的精确度大打折扣。目前我们可以使用优化的注意力算法模型,尽可能地找出未被覆盖的面部特征去进行人脸识别操作。
人脸识别算法的成熟推进了智慧安防行业的发展,智慧安防需要三种设备共同协助完成:摄像设备、边缘处理设备、云服务设备。由摄像设备捕获信息并传入边缘处理设备,边缘处理设备使用人脸识别算法对信息进行处理,并将处理结果上传至云端进行匹配操作,最后将匹配结果回传至终端,如此,管理人员和安防人员就能实时在终端上看到信息。智慧安防最核心的部分是人脸识别算法,文中综述了基于TensorFlow的人脸识别算法和基于DeepFace的人脸验证算法。但人脸识别算法也有其不足,当人脸被部分遮盖时,识别精确率会降低,要如何提高人脸被部分遮盖时,人脸识别算法的正确率,也是后面人脸识别应用于安防领域的一个重要课题。