基于YOLO和FaceNet航拍行人目标识别

2020-11-18 13:10
制造业自动化 2020年11期
关键词:航拍人脸人脸识别

(西南科技大学 信息工程学院,绵阳 621000)

0 引言

近年来,无人机得益于传感器技术的快速发展以及控制理论的日益成熟得以快速发展[1]。四旋翼无人机飞行稳定性好,能够在较低的飞行高度低速巡航,且在装载摄像机与图像处理平台后,拥有更宽阔的视野空间,能够自主完成多种任务,方便无人机系统实现对目标的主动检测、跟踪、识别[2],对于提高我国的公共安全具有重要的科学和工程意义。

针对室外指定行人的目标识别,由于行人外观容易产生变化,使用行人的外观模型区分不同行人鲁棒性不强,容易产生错误的结果[3]。而人脸具有很强的唯一性,且难以被复制、仿冒,所以可以使用人脸识别的方式对需要识别的目标进行确认。人脸识别具有非接触性与非强制性,并且不需要特别的配合方式,适合多种场景下的应用。近年来计算机技术迅猛发展,人脸识别技术更是得到了前所未有的发展,目前许多人脸识别算法的准确率已经超过了人眼的准确率[4]。所以使用人脸识别的方式对需要识别的目标进行确认具有较强的鲁棒性。

为实现对特定目标快速高效的识别,设计实现了一种兼顾速度与精度的融合方法。首先通过Tiny-YOLOv3检测“行人”与“人脸”,返回人脸在图像中的位置,并将人脸部分裁剪后对齐,然后利用FaceNet进行人脸识别。通过航拍构建了不同场景不同高度和不同距离的大量视频用以制作航拍行人和人脸数据集,对Tiny-YOLOv3模型进行训练,得到用于检测的权重文件,利用其中的人脸图像训练分类模型,用于人脸验证。并通过实验验证了模型的有效性和目标验证的准确性。

1 目标识别无人机方案设计

本文构建的无人机系统主要包括四旋翼无人机、地面站系统和手持遥控器。其中四旋翼无人机搭载了飞行控制系统、图像处理系统和视频采集系统。机载图像处理系统用于处理采集到的视频,完成人脸及行人检测功能。无人机平台可将视频及处理信息发送至地面站以供监控。

无人机可使用地面站规划路径飞行,或使用遥控器控制飞行。在执行检测识别任务时,根据图像处理平台的指令,飞控系统执行偏航、俯仰与横滚等飞行要求,完成跟踪任务。系统整体示意如图1所示。

图1 无人机系统方案示意图

2 目标识别

人脸识别可以分为三个步骤:人脸检测、人脸对齐与人脸识别。人脸检测是在一张图片里找出所有的人脸位置,是人脸识别的基础条件;检测到人脸后进行人脸对齐,经过人脸对齐后的图像将更利于人脸识别。人脸识别包括特征提取与特征比对,基本思路就是抽取对齐后的人脸图片特征,然后根据阈值进行比对,来判断是否为同一个人。算法总体框架如图2所示。

图2 人脸识别框架图

首先从机载相机获取需要进行检测的图像,使用Tiny-YOLOv3对图像中的“人”和“人脸”进行检测,获取返回的人脸位置,从原图中裁剪出人脸区域,随后使用梯度提升决策树方法(Gradient Boosting Decision Tree,GBDT)进行人脸对齐。随后使用FaceNet抽取向量特征,进而通过1:N相似度对比验证获取到的人脸是否为需要识别的目标,如果不是则继续进行检测与人脸验证,如果人脸验证通过,即找到了需要识别的目标,则通过人脸检测框坐标和人脸大小与距离比例的先验关系计算行人坐标,随后将识别目标的相对GPS坐标发送给地面站。

2.1 人脸检测

人脸检测是指从图像中找出所有人脸,确定人脸在图像中的位置、大小和数量。人脸检测是人脸识别的第一步,其检测结果直接影响了后续步骤的准确性[5]。

传统目标检测算法并没有将特征提取与分类训练结合起来,当提取的特征丢失了部分有用信息时,将无法再次从训练中恢复,导致目标检测成功率降低,阻碍了传统检测方法获得更加详尽的特征描述。近年来基于深度学习的目标检测方法相比较于传统方法体现出了各方面的优势,其中YOLO目标检测算法利用卷积神经网络回归目标的位置并得到类别,实现了端到端的实时目标检测,具有较快的速度与泛化性。

YOLOv3在YOLO早期版本的基础上进行了多尺度检测、多标签分类等改进。Tiny-YOLOv3是YOLOv3的简化版本,简化后的网络虽然检测精度有所降低,但检测速度有了很大的提高。人脸检测部分使用Tiny-YOLOv3的网络结构如表1所示[6]。

相比较YOLOv3基础版,Tiny-YOLOv3网络层数由108层变为23层,网络层数减小,同时降低卷积层的维数,并且将3个yolo层改为2个yolo层,尽管损失了一些检测精度,但实时性效果极大提升。其中特征图中的每个单元格cell都会预测3个边界框,每个边界框都会预测三部分:1)每个框的位置(4个值:预测框的中心坐标x、y及框的高度和宽度);2)一个目标预测值;3)N个类别数,本文中N=2。因此对于本网络,网络的输出大小为3×(4+1+2)=21。

表1 人脸检测网络结构

(表1)续

2.2 人脸对齐

检测出人脸后需要对图片中的人脸进行裁剪、对齐。人脸对齐算法采用GBDT,GBDT是一种基于回归树的人脸对齐算法,通过建立一个级联的残差回归树来使人脸形状从当前形状一步一步回归到真实形状[7]。每一个GBDT的每一个叶子节点上都存储着一个残差回归量,当输入落到一个节点上时,就将残差加到改输入上,起到回归的目的,最终将所有残差叠加在一起,就完成了人脸对齐的目的。如图2(d)所示为进行人脸对齐前后的对比,经过GBDT算法进行人脸对齐后,将双眼、鼻尖、双嘴角(共五点)校准至同一位置,为人脸识别的预处理环节。

2.3 人脸识别

人脸识别的核心内容就是人脸特征的提取与比对,基本工作流程是将人脸检测后的人脸进行对齐,使用对齐后的人脸图像进行特征提取,将提取到的特征与目标人脸的特征进行对比,根据阈值判断是否为同一个人[8]。FaceNet是Google团队开发的人脸识别算法,具有简单直接的特点,且对多角度、多姿态以及局部遮挡具有一定的鲁棒性,是目前针对人脸识别方向比较优秀的算法之一[9]。

FaceNet最大的特点是没有像许多人脸识别系统使用softmax函数作为损失函数进行学习然后提取特征,而是使用了三元损失函数(Triple loss)进行训练,直接从原始像素值中学习特征表示,进行端到端的学习从图像到欧式空间的编码方法。FaceNet的网络结构如图3所示。

图3 FaceNet网络结构图

FaceNet使用了Inception和Zeiler&Fergus作为基础网络模型,使用三元损失函数进行训练,取得了非常好的效果。三元损失函数的核心思想就是使待测样本与正样本尽可能的相似与负样本尽可能不同。如图4所示,三元组就是三个样例,如Anchor、Positive与Negative三个样例,Anchor与Positive为同一类,Anchor与Negative为不同类,训练的目的就是使得三元组中,Anchor与Positive的距离要小于Anchor与Negative之间的距离,并获得这种表示模型。

图4 三元损失函数

假设xa代表参考图像样本(Anchor),xp是属于同一类的其他图像(Positive),xn为不同类的其他图像(Negative),则三元组可以用式(1)表示。

其中,α表示正负样本之间的边界值,τ表示训练集中可能的三元组集合,n为所有样本数量,变换后可得到如下目标函数。

目标函数的作用在于调整不符合规则的三元组,网络学习之前,Anchor和Positive的欧式距离可能很大,Anchor和Negative的欧式距离可能很小,在网络的学习过程中,Anchor和Positive的欧式距离会逐渐减小,而Anchor和Negative的距离会逐渐拉大。即通过学习,使得目标类别更容易区分。将人脸图像输入训练完成的FaceNet网络中,将会得到一个128维的特征向量,比较不同特征向量之间的欧式距离就可得到对应样本的相似性[9]。本文对两个图像对应特征向量之间的欧式距离根据整体训练集进行归一化,阈值取0.95。

3 实验结果分析

对目标检测与识别进行实验分析,其中包括人脸识别模型与目标检测模型的分开验证,以及两者算法结合后对于不同高度测试集的人脸识别准确度验证,用以确定无人机在进行目标检测识别时的最佳飞行高度。实验主机配置为:Intel i5-6300HQ处理器,内存8G DDR4,显卡为NVIDIA GTX960M独立显卡。机载图像处理系统采用英伟达TX2,装配64位Ubuntu16.04操作系统,使用OpenCV3.4.3。

3.1 数据集构建

为了分析无人机航拍人脸识别的可行性,使用无人机搭载摄像机在高度3米、4米以及5米拍摄行人由远接近的过程,视频分辨率为1280×720,使用OpenCV分割视频读取图片,手动框选图片中的人脸,通过程序计算人脸所占像素,分析人脸像素大小变化。

如图5所示,第一行展示了无人机飞行高度为3米时画面,行人在无人机8米远处人脸像素大小约为39×53,人脸所占像素大小随着行人的接近越来越大,当行人接近到距离无人机3米时,人脸像素值大小约为90×103。第二行展示了当无人机飞行高度为5米时,行人在无人机8米远处人脸像素大小约为21×27,人脸所占像素大小随着行人的接近越来越大,当行人接近到距离无人机4.0米时,人脸像素值大小约为62×76。

图5 人脸像素大小

经过无人机不同高度下航拍人脸像素值大小变化分析,人脸识别时无人机的飞行高度在3米~5米之间时,随着无人机与行人的接近,人脸所占的像素大小逐渐增大,即使无人机处于5米时,在行人比较接近的情况下人脸所占像素大小仍有约62×76。人脸识别常用人脸库AR与FERET中人脸图像大小分别为50×40和80×80,所以无人机在飞行过程中能够获得足以进行人脸识别的图像。

前期控制无人机在高度3~5米范围内进行视频数据采集,通过后期人脸以及行人数据标注构建航拍行人数据集,进行行人与人脸模型训练。

3.2 目标检测模型测试

采用训练好的权重文件,机载TX2的GPU单张航拍图片检测耗时159ms,其中两个行人的预测准确度均为99%,人脸预测准确度分别为96%和99%,其检测效果图如6所示,检测框准确。

图6 Tiny-YOLOv3检测效果图

3.3 人脸识别模型测试

实验采用连接到TX2平台的摄像头采集视频,使用预训练模型进行人脸识别测试。如图7所示,可知FaceNet对人脸局部遮挡具有较好的鲁棒性。

图7 FaceNet人脸识别效果图

3.4 目标识别算法验证实验

飞行器飞行高度不同,导致拍摄视频的视角不同,将会对目标检测和识别产生一定的影响,将Tiny-YOLOv3与FaceNet相结合,使用Tiny-YOLOv3检测人与人脸,将检测到的人脸使用dlib中对齐算法进行人脸对齐后使用FaceNet进行人脸验证。其检测识别示意图如图8所示,通过人脸确认目标后,将其标签更改为target_people,并记录坐标。

分别对高度3米、4米和5米的无人机拍摄的测试序列进行检测识别,摄像机为斜向下45度视角,无人机与人水平距离为从3米外逐渐接近,每个高度使用100张图片,实验结果如表2和表3所示。

图8 检测识别后确认目标

表2 目标检测实验结果

表3 人脸验证实验结果

从表中可以看出无人飞行高度逐渐升高对于Tiny-YOLOv3的目标检测影响较小。但是飞行高度对人脸验证有着较大的影响,对验证失败的数据分析以及进一步测试发现,在5米高度拍摄的图像人脸过小导致人脸验证成功率较低,而3米的成功率随着水平距离的接近成功率逐渐升高。考虑到无人机在接近过程中可进行多次人脸验证,同时考虑安全因素,设置飞行器检测识别时的飞行高度为4米。

增加无人机4 米高度拍摄的数据集,对Tiny-YOLOv3权重文件与FaceNet人脸验证模型进行再次训练,选取无人机4米高度下不同距离目标图像进行测试,每个距离选取50张图像,测试结果如图9所示。随着目标的接近目标识别成功率逐渐上升,但是目标过于接近时,人脸俯视角度较大导致成功率开始下降,所以最佳识别距离在4米左右。

4 结语

图9 目标识别成功率

本文首先针对指定行人验证问题进行了分析,介绍了人脸识别的基本框架流程。然后介绍了本文使用的Tiny-YOLOv3目标检测方法与FaceNet人脸识别算法。然后针对面向无人机的航拍行人检测与识别问题,首先通过航拍视频构建了不同高度的大量数据用以制作航拍行人和人脸数据集,对Tiny-YOLOv3网络进行训练,得到用于检测的权重文件;然后将数据集中的人脸图像进行检测分割,训练分类模型,用于人脸验证;然后使用训练好的Tiny-YOLOv3网络检测行人与人脸,并将人脸部分裁剪后对齐,利用FaceNet进行人脸识别。最后通过实验验证了本文方法的有效性。

猜你喜欢
航拍人脸人脸识别
人脸识别 等
有特点的人脸
一起学画人脸
航拍巴彦呼硕
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
三国漫——人脸解锁
航拍,苍穹下的醉美视角
难忘的航拍
人脸识别在高校安全防范中的应用