APP下载

基于卷积神经网络的视频人脸检测与识别

2018-11-07李淑

电脑知识与技术 2018年21期
关键词:人脸检测人脸识别

李淑

摘要:随着人们对公共安全关注度的提升,智能监控系统将代替人工监控成为主流。如何实现实时性与准确性并存的视频人脸检测与识别系统成了重点。本文首先介绍卷积神经网络模型的基本知识,并基于Google在2015年公开发表的FaceNet人脸识别系统实现视频的实时人脸检测与识别。

关键词:人脸检测;人脸识别;CNN; FaceNet

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)21-0210-02

Abstract: With the improvement of public safety attention, the intelligent monitoring system will replace the manual monitoring and become the mainstream. How to realize the real-time and accuracy of video face detection and recognition system has become the focus. This paper first introduces the basic knowledge of the convolution neural network model, and realizes the real-time face detection and recognition of video based on the FaceNet face recognition system published by Google in 2015.

Key words:face detection; face recognition; CNN; FaceNet

1 引言

隨着社会的快速发展,公共安全受到了人们广泛的关注与重视。小到公司内部的监管,大到平安城市的建设视频监控都发挥着重要的作用,但是传统的视频监控大多是基于人工的监管,耗费人力的同时也受到看管监控的工作人员注意力等因素的影响,使得人工监控的视频系统难以满足现代社会的要求,智能监控系统将成为主流。在智能化的视频监控系统中,可以通过加入人脸检测与识别算法来检测非法入侵人员,从而保证人身与财产安全。

基于视频的人脸识别算法相较于静态图片的人脸识别来说具有很大的挑战,需要考虑环境变化和人脸角度变化不定等因素,所以在静态图片中表现好的人脸识别算法在视频中不一定适用。由于深度学习与神经网络的快速发展,越来越多的企业将其应用到人脸识别领域。其中卷积神经网络(convolutional neural networks, CNN)[1]作为深度学习中神经网络的一个代表性结构,因为其局部感知野和权值共享的优点被广泛采用。

2 卷积神经网络

CNN最开始是为了处理二维图像而建立的一种多层感知机,可以将原始图片不经过复杂的预处理直接输入网络。

2.1 CNN的特征概述

CNN具有如下几个重要的特征。

局部感知野:模拟人眼看东西时目光聚焦在一个较小的局部区域的特性,通常认为图像中局部区域的像素关联性更大,而距离较远的像素关联性较低。所以在CNN中,一个隐藏层的神经元节点只需连接到输入图片的某一局部像素点上,即对局部区域做出感知,极大减少了训练的参数数量,减少了运行时间。

权值共享:即使CNN采用了局部连接的方式减少了参数数量,但参数数量依然过大。由于图像中一个区域的统计特征和其他区域的可能相同,则可通过权值共享进一步减少训练参数数量,即认为在一个区域学到的特征也可以用于其他的区域。由此,在CNN中规定,一个卷积层中同一通道的不同位置的卷积核的权值参数是一样的。

卷积层:卷积层是为了得到图像中的多种特征,由多个卷积核构成。将卷积核的权值和相对应区域的像素值进行乘法后求和,通常会加上偏置参数,以此来计算输出。

池化层:通过把输入区域划分成若干个矩形子区域,再对每一个子区域都输出一个采样值,用输出的采样值代表其子区域。池化层可以通过减小数据空间的大小来降低参数数量和计算量。一般池化层采用的采样操作为max pooling(将池化窗口中最大的值作为采样结果)、mean pooling(将池化窗口中所有输入的平均值作为采样结果)。

2.2 CNN的结构

CNN由多层网络结构组成,对图像进行从底层到高层的特征提取。层数不同,对特征的提取程度不同。如果网络层数越多,每层的神经元的个数越多则需要学习的未知参数越多,计算量越大。最常用的分类器有softmax分类器。不同的网络结构就是通过改变中间位置进行改变,调整卷积层和池化层的数量以及次序都可以得到不同的网络结构。

3 视频人脸检测与识别的步骤

1) 创建适合实验应用的人脸数据库;

2) 通过截取、对齐等方式对人脸数据进行预处理;

3) 将处理好的人脸数据输入到模型中进行训练,得到各自的人脸特征数据di;

4) 获得进行测试所需的视频;

5) 获取视频序列中的当前帧vi;

6) 利用算法检测当前帧是否含有人脸,如果不含人脸,则转入步骤(5),否则标记人脸框;

7) 跟踪人脸,并检测是否有新的人脸加入,若有,利用步骤(6)进行处理。

8) 利用算法得出所有捕捉到人脸的特征,与人脸库中的人脸特征数据进行对比,求出相似度pi。

9) 当相似度pi超过某一阈值时,选出与视频中人脸特征相似度最高的人脸数据库中的个体标记为所识别的个体,否则进入步骤(5)。

4 FaceNet系统

FaceNet[3]是一个通用的系统,可以用于人脸验证(是同一个人),识别(这个人是谁?)和聚类(在所有人脸中找到相似的人)。采用的方法是通过卷积神经网络学习将图像映射到欧几里得空间,最后以得到的欧氏距离进行分类。网络训练使得空间中的L2距离的平方直接和图片相似度相关:同一个人不同图片的面部距离很小,不同的人的面部距离很大。

与现有使用分类层(classification layer)深度神经网络的人脸识别模型不同的是FaceNet直接使用基于triplets的LMNN(最大边界近邻分类)的损失函数训练神经网络,网络直接输出为128维的向量空间。选取的triplets由两张匹配脸部缩略图和一张非匹配的脸部缩略图组成,损失函数的目的是通过距离边界区分正负类。如图1为模型结构,网络由一个批量输入层经过一个深度卷积神经网络,然后是L2归一化,接着进入embedding层,随后使用triplet损失函数进行分类。

5 實验结果与分析

本实验通过监控办公室的出入人员,判定是否有外来人员进入。实验的训练数据采集了全班20个人的人脸图像,每人50张,共1000张图像,图3是其中三个学生的部分训练图像,训练图像是从各自的视频中截取出来的,经过预处理后生成182×182的人脸图像,其中会有表情、光照等的不同。图中人的身份从上到下分别用各自的姓氏作为标记,为:“Yao”、“Yi”、“Li”。首先对所使用的模型进行训练,再进行视频的测试实验。

在测试的视频实验中,视频中的人会出现走动,快速转头等一系列活动,通过晃动来测试算法的容错性,以帧速率为29.52/帧每秒的视频为例,在总类别为20的情况下,其中上述三人的识别错误率分别为表1所示。其中“Yi”同学识别错误率略高的主要原因是其在视频中头部摆动速率与幅度过大。

测试视频时,当检测到人脸后,算法会提取检测到人脸的特征并与人脸特征库中所有的人脸特征进行对比,分别得到一个对比度,然后选取所有对比度中最大的值与阈值进行比较,如果此值大于设定的阈值(0.53),则判定检测到的人脸与特征库中的人为同一个人,并在视频中的矩形框中进行名字的标记。图4所示为视频中“Yao”与人脸数据库中“Yao”“Li”“Yi”特征对比图,选取的视频帧数为150帧。

图5给出关于“Li”“Yao”“Yi”3人的测试视频效果图,实验表明,本方法可以用于不同角度,不同环境下的多人脸检测与识别。

6 结语

视频中多人脸的同时识别与跟踪能够应用于目前的智能监控系统中,这对于平安城市的建设有很大的意义,如何在强光照、故意遮挡、快速移动的情况下更有效的实现视频中的人脸检测与识别是进一步的研究方向。

参考文献:

[1] Lecun Y, Bottou L, Bengio Y. etal. Gradient-based learning applied to document recognition[J].Proceedings of the IEEE,1998;86(11):2278-2324.

[2] 毛艺.基于深度神经网络的人脸识别算法研究[D].浙江:浙江大学,2017.

[3] Florian Schroff,Dmitry Kalenichenko,James Philbin. Facenet: A unified embedding for face recognition and clustering[C].In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2015,815-823.

【通联编辑:唐一东】

猜你喜欢

人脸检测人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
基于人脸特征定位的SNS网站应用组件研究与设计
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别