基于深度学习的人脸属性识别方法研究【字数:12299】
cial features, and can extract feature directly from the original image. In recent years, deep learning has gradually become the mainstream research direction in face attribute recognition.This study will use neural network to identify face attributes through the method of deep learning. For gender, age, and expression attributes, models will be established to identify and analyze these properties, and to use models to predict them.1 绪论1.1 研究背景及意义最近几年,由于谷歌的AlphaGo接连战胜众多顶尖的围棋职业选手,深度学习轰动一时。但其实深度学习并不是近几年才被提出来的概念,而是由来已久。早在1943年,神经科学家麦卡洛克(W.S.McCilloch) 和数学家皮兹(W.Pitts)便从生物神经元的工作原理和生理结构中获得灵感,构造出了人工神经网络的雏形。近十年,深度学习方法不仅在计算机视觉领域,在语音识别[7]等多个主流研究方向都有了重大突破,可以说是百花齐放。2012年,Hinton等人参加ImageNet图像识别大赛。他们研究的卷积神经网络Alexnet以极大的优势获得了冠军,远远超过了第二名的SVM方法的分类性能。这场比赛,让许多研究人员注意到了卷积神经网络在计算机视觉这个分支的优秀性能。人脸属性识别作为计算机视觉的重要分支之一,众多研究人员自然也将重心放在了卷积神经网络的研究上。人脸属性识别的研究对象非常广泛,包括性别、表情、年龄、发色等[8]属性。由此可见,人脸和指纹[10]一样,包含了非常多的生物特征,又比指纹更容易获取大型的数据集,对于身份识别是一个非常好的研究方向。近年来,基于卷积神经网络的人脸属性识别的研究成为了大热门。本研究将针对人脸属性中的性别、年龄以及表情属性,建立一个分析识别的模型。1.2 研究现状近1 0年来,深度学习方法,特别是在图像信息的提取与分析处理等方向,卷积神经网络技术取得了前所未有的成功。目前,人脸属性识别的工作基本都是着重于对人脸图像单独属性的估计,很少见有使用一个框架识别很多个人脸属性的。毫无疑问,对单个人脸属性的估计对与多属性估计工作有非常大的帮助。现如今已知的开源的很多人脸属性识别数据库也大多为单一属性或个别属性统一的数据库。如重点在收集年龄和性别标签的IMDB-WIKI数据集以及重点为表情标签的Fer2013数据集。受各大数据集侧重方向不同的影响,许多研究都是将性别属性和年龄属性一起识别,表情识别问题是一个独立的识别问题,不可避免的有一些局限性。Krizhevsky在2012年提出的AlexNet模型,夺得了当年的ILSVR的冠军,此后卷积神经网络飞速发展。VGGNet和GoogleNet在AlexNet的基础上,进行网络结构的优化,在计算机视觉领域意义重大。2015年Kaiming He等人提出的ResNet在ILSVRC和COCO 2015上取得了5项第一。Niu和Zhou使用多顺序输出回归的方法来实现年龄识别。其思路是将年龄抽象成K-1个2分类任务。如,第一个任务用来预测年龄是否大于1,第二个任务预测年龄是否大于2,以此类推。预测结果为0或者为1,若满足则为1,不满足则为0。最后综合所有的预测结果,得到最终的预测年龄。而Gil Levi和Tal Hassner直接将人的年龄划分为0-100,共101个类别,并获得每个预测年龄的可能性,再乘以各标签年龄,最终得到年龄。此外,他们还提出先将年龄分组,如0到10岁。然后再在每个分类中做回归预测。腾讯优图2017年公开的跨年龄人脸识别系统帮助许多家庭找到了失散多年的孩子。讯飞的语音识别准确率达到了98%,对方言的识别准确率也超过90%。来自香港中文大学的科研团队还公开了他们所收集的CelebA数据集,该数据集对于研究人脸属性识别问题的有非常大的帮助。以上算法都是利用数量巨大的数据集进行训练,利用卷积神经网络可从数据中学习,自动提取特征并分类的特性来达到研究目的。1.3 研究的主要内容(1)基于 CNN 模型的表情识别(2)基于深度标记分布的年龄和性别识别(3)人脸属性识别系统1.4 技术路线和开发环境技术路线示意图如图1.1所示。图1.1 总体流程技术路线开发工具华硕X550LC,CPU: i5-4200U GPU: GeForce GT720M开发环境Windows 10, Anaconda3 5.3.1,Python 3.6.0, Keras 2.0.3, Tensorflow 1.0.1, Opencv 3.2.0,numpy,dlib 19.7.02 卷积神经网络基础知识2.1 卷积神经网络卷积神经网络是一种前馈神经网络,也是一种性能十分强劲的人工神经网络技术。二十世纪六十年代,Hubel和Wisel研究猫大脑皮层中的神经元对于方向感应的工作原理。他们发现猫大脑皮层[10]中奇异的网络结构能可有助于抑制反馈神经网络的复杂程度。他们从中获得了灵感,并且因此提出了卷积神经网络。它的神经元能可响应一部分笼罩范围内的神经元,并保存了问题的空间结构,对计算机视觉以及自然语言处理等有出色的表现。因为网络避免了复杂的图像预处理,能可直接学习原始图像。目前被普遍应用于计算机视觉方面。卷积神经网络中通常蕴含卷积层、池化层和全连接层三种类型的层。2.2 卷积神经网络结构卷积神经网络中一般包含卷积层、池化层还有全连接层这三种类型的层。2.2.1 卷积层在图像处理中,往往会把图像数据转化成像素的向量。比如一个100*100的图像,能可用一个10000的向量来表达。假设神经网络中的隐藏层数目与输入层一样,即10000时,则输入层到隐藏层的参数数据为10000*10000,数据量巨大。卷积层是组成卷积神经网络的重中之重。卷积层包含的计算量在整个网络中的占比非常高。所以使用神经网络处理图像,需要先减少参数。卷积层用于从局部感知中提取特征,减少层数,加快训练速度。2.2.2 池化层在几个连续的卷积层中,通常会插入一个池化层。池化层压缩输入特征映射,这使得特征映射更小并且简化了网络计算复杂性。一方面,通过对输入的数据提取主要特征来减少参数。此外,池层可以忽略输入数据在相对位置上的变动,从而提高精度。且对于避免过拟合有一定帮助。池化层通常很简单,如VGGNet就是取最大值来生成池化层的的特征图。2.2.3 全连接层全连接层中的神经元衔接了所有前一层的激活数据。完全连接层通过Softmax等激活函数,来预测输出类别的可能性大小。在卷积层和池化层对数据进行如特征提取以及融合等操作后,使用网络端部的全连接层对特征建立最终非线性组合,且将之应用于预测。3 基于CNN模型的表情识别面部表情的研究最早可以追溯到 19 世纪。1872年,达尔文在他的著作《人与动物的表情》中,阐述了人的面部表情与动物面部表情之间的相似之处和不同之处。1971年,Ekman和Friesen完成了一个艰难的工作。他们研究了人类的六个基础的面部表达(即快乐,悲伤,惊讶,恐惧,愤怒以及厌恶),并在此基础上系统地建立了一个面部表情图像数据库。该数据库详细描述了每个表达。相应的面部变化,比如眉毛,眼睛,眼睑,嘴唇等,会有所不同。本研究将建立一个CNN模型,来完成表情识别。3.1 算法的选择2012年Geoffrey Hinton和他学生Alex组成的团队在ImageNet的比赛中,使用AlexNet[11-14]结构,打破了在图像分类比赛的记录。AlexNet的提出,决定了深度学习方法在计算机视觉中的重要地位。Alexnet首次在其网络结构中增加了激活函数ReLU。此外,为了防止过拟合,还使用了dropout和数据增强的方法。基于AlexNet结构,VGGNet网络结构使用更小的卷积核进一步降低参数,加深网络结构。这种方法优化了网络的特征表达能力。GoogleNet也在此基础提出了新的优化网络的思路。本研究将根据AlexNet,VGGNet分别建立模型进行训练,对结果进行对比,选择表现更好的算法。由于ImageNet的训练集包含超过127万张的图片,以及由于历史原因,当时的GPU无法容纳整个神经网络,AlexNet将网络拆分成两部分[9],在两个GPU里运行。而Fer2013数据集远远小于ImageNet比赛的数据集,为了防止过拟合,将AlexNet适当简化。AlexNet的网络结构如图3.1所示。表3.1展示了简化后的网络结构。/图3.1 AlexNet网络结构种类卷积核数目核尺寸步长填充方式丢弃输入卷积层1325*52valid池化层13*32卷积层2645*51same池化层23*32卷积层31283*31same卷积层41283*31same卷积层51283*31same池化层33*32全连接层150%全连接层250%表3.1 简化AlexNet网络结构简化后的AlexNet在训练集上的准确度为69.5%,在验证集上的准确度为57.6%,在测试集上的准确度为61.7%。接下来根据VGGNet中VGG16网络结构的思路,将所有卷积核尺寸改为3*3,构造简化模型。图3.2展示了VGG16的网络结构。简化的网络如表3.2所示。/图3.2 VGG16网络种类卷积核数目核尺寸步长填充方式丢弃输入卷积层1323*31same卷积层2323*31same池化层12*22卷积层3643*31same卷积层4643*31same池化层22*22卷积层51283*31same卷积层61283*31same卷积层71283*31same池化层32*22卷积层82563*31same卷积层92563*31same卷积层102563*31same池化层42*22全连接层150%全连接层250%表3.2 简化VGG网络简化后的VGGNet在训练集上的准确度为81.6%,在验证集上的准确度为61.3%,在测试集上的准确度为65%。由上述对照实验不难看出,VGGNet网络在本研究中的表现明显优于AlexNet网络。因此本研究将主要依据VGGNet的思路构建神经网络。3.2 表情识别CNN模型结构 本研究中,表情识别的思路如图3.3所示。图3.3 表情识别流程图中各个部分又可分为如下几个步骤。步骤1 将fer2013数据集中的人脸图像,根据其用途标签,将Training,PublicTest以及PrivateTest分为train,test和val三部分。步骤2再分别将三部分的人脸图像转为灰度图,按照其表情标签,分别存放在由表情标签命名的7个文件夹中。步骤3建立模型。基于fer2013数据集,建立一个基于VGGNet结构的表情识别模型。步骤4数据增强。通过Python库中的图片生成器,对原始图形进行变形,生成新的图像数据,实现自动扩充训练样本。有助于提升模型准确率。步骤5完成模型训练,实现表情识别。GooleNet广泛使用1x1的卷积层,进一步加深了网络,再次优化了模型的表达能力。本研究采用此思路,在VGGNet模型的基础上,加上了1*1的卷积层,并且获得了更好的效果。最后本研究所构建的模型网络结构如表3.3所示。种类卷积核数目核尺寸步长填充方式丢弃输入卷积层1323*31same卷积层2323*31same池化层12*22卷积层3641*11same卷积层4643*31same卷积层5643*31same池化层22*22卷积层61281*11same卷积层71283*31same卷积层81283*31same池化层32*22卷积层92561*11same卷积层102563*31same卷积层112563*31same池化层42*22全连接层150%全连接层250%表3.3 表情识别模型网络结构最终的模型在训练集上的准确度为84.5%,在验证集上的准确度为65.4%,在测试集上的准确度为65.3%。3.3 训练模型的参数选择3.3.1 优化算法选择实际上,在利用神经网络解决问题时,并不是一定能够得到最好的拟合函数。在深度学习算法中,需要对模型构造损失函数,利用损失函数来衡量模型的性能。同时,我们也需要使用优化算法来对损失函数进行调整和优化。随机梯度下降是多种优化算法中比较常用的方法。它包含了随机和优化两种特点,在处理规模相对较大的问题时,通过随机抽取样本,可以使模型快速收敛。3.3.2 损失函数选择神经网络处理多重分类问题时,经常针对分类的类别数量n,建立同样数量的输出节点。对于每个例子,神经网络都可以通过计算输出一个n维列表。列表中的每个元素与分类额类别都一一对应。当这个神经网络精度非常高的时候,假如一个样本属于类k(k<=n),则对应于此类别的输出节点的值应当非常与1非常接近,而其他节点的输出值则约等于0。交叉熵表征了一个距离量,即两个概率值之间的距离。因此,交叉熵是分类问题中备受青睐的损失函数。表情识别问题一直以来都是将表情分为各种不同种类。如本研究所用的数据集将表情分为生气、厌恶、恐惧、开心、悲伤、惊讶以及自然共7个类别。可见交叉熵是十分适合本研究要求的的损失函数之一。3.4 实验结果与分析此部分将对训练完成的模型在数据集上的表现进行展示及分析。3.4.1 数据集及其预处理为了完成表情识别任务,本研究选取了Kaggle比赛的Fer2013数据集。数据集中的每个图像都为48 x 48的固定尺寸,且都是灰度图像。数字标签0-6对应的表达式有七种。每个标签分别对应生气、厌恶、恐惧、开心、悲伤、惊讶以及自然7个类别。此外,还将图像数据按照功能不同,分为Training、PublicTest以及PrivateTest三类。数据集不直接给出图片,而是将图片的像素数据提取出来,一一保存到csv文件中。在获取数据集后,先对数据集的图像数据做如下的预处理首先根据其用途标签将数据集分为三个csv文件,分别存储在test、train以及val文件夹中。接着,根据其表情分类标签,将图像转成单通道灰度图[9],并分别存放在各表情分类标签命名的文件夹中。图3.4展示了单通道灰度图示例。/图3.4 单通道灰度图示例3.4.2 表情识别实验结果批尺寸以及迭代次数都有可能影响模型的准确率。以及第一层的1*1卷积层是否真的有助欲增强模型表达能力,本研究进行了5次不同参数及模型结构的准确率对比。对比结果如表3.4所示批尺寸25612864128128每次迭代的步数100200400200200一次迭代时间3215s3184s3157s3185s3150s迭代次数7070707050准确率0.6050.6540.6130.6050.609是否有1*1卷积层有有有无有表3.4 不同批尺寸的模型效果对比在多次尝试之后最终选择了128,迭代70次,且第一层选择1*1卷积层,此时模型的准确率可以达到0.654,明显优于其他几个模型。模型训练完成后,利用该模型,调用计算机摄像头对人脸表情进行检测。检测结果表明,模型对于开心、自然、吃惊和生气四个表情识别的准确率较高,而对悲伤、厌恶和恐惧三种表情的敏感度并不高。训练集中开心表情的图像多达7215张,而厌恶表情的图像仅仅只有436张。这应当与数据集中的数据分布不均匀有关。图3.5至图3.8分别为表情识别中开心,惊讶,生气以及自然集中表情的效果展示。/图3.5 开心表情效果展示/图3.6 惊讶表情效果展示/图3.7 生气表情效果展示/图3.8 自然表情效果展示4 基于深度标记分布的性别与年龄识别4.1 深度标记分布传统的深度学习方法,大多是解决单标记学习或者是多标记学习的问题[17]。以多标签学习为例,这些标签所代表的属性值往往是离散的。然而我们知道人通常有自然和社会两种属性,而这两种属性并不冲突。考虑到一个实际对象可能具有的多种不同的属性,为解决这类问题,自然是设法为对象设置一组适配的标签,以便显示地表明其属性。因此,深度标记分布方法便应运而生。深度标记分布方法能够对目标的每一个标记的值进行学习与描述,并在此基础上利用概率分布的方法去描述目标的标记。4.1.1 深度标记分布的特点多标记问题其实是很常见的问题。不难发现,现实生活中,我们所接触到的现象,往往是十分复杂的,它们大多是多属性并存的。比如一本书既可以属于历史性的,又可以属于论说性的。一部电视剧,既可以是警匪片,也可以是叙事片。一张照片可能是晴天的场景,也可能是海滩的场景。图4.1便是一个典型的深度标记分布问题。该图中可以有树,也可以有房屋,还可以有绿色的草地。/ 图4.1 深度标记分布问题尽管多标记问题解决了目标对象多属性的问题,但是对于这些标记的描述大多是离散型的。如上图中,草地就是草地,不可能是大树,更不可能是蓝天或者房屋。此时,对于一些标记分布之间界限不是非常清晰的问题就显得捉襟见肘。深度标记分布方法将传统方法中的离散值改为连续的概率分布[15,16]。图 4.2和图4.3直观地体现出这些不同的方法之间的差异。/图4.2 不同标记方法的差异/图4.3 多标记分布与深度标记分布的差异4.1.2 深度标记分布学习方法深度标记分布和目前比较常用的传统学习方法有比较大的差别。一是标记的数目往往是无法确定的,有些数据可能只有一个标签,有些数据可能会有多个标签,甚至会有重复的标签。二是标签之间不是互相独立的,图4.1中的绿草地经常是和大树一同出现的。怎么样才能解决不同标签之间的依赖性也是一大难点。与传统的学习方法大相径庭的是,在深度标记分布方法中,每个对象都与一组标签关联,而不是某一个单独的标签。且每一组的标签都有其实际意义,深度标记分布学习会对其所有值进行学习。深度标记学习的任务是学习一个函数,它可以替一个多属性的对象设置适当的标签集。解决深度标记分布问题的方法总的来看可以分成两大方法,一种是针对数据集构建一个新的适用的算法。另一种是将深度标记问题转化为现如今已知的问题,使要解决的问题契合现有的算法思想。上面讨论了解决深度标记问题的两大类方法。接下来讨论利用深度标记分布方法解决本研究中涉及的对人脸图像的性别以及年龄属性的预测是否可行。在现实生活中,人脸图像往往是具有多种互相并不冲突的属性。如我国著名的照片资料“乔的笑”,图中的人脸图像具有开心的表情属性以及男性的性别属性。此外,我们不难查出,在拍摄这张照片时,他是58岁的年龄。由此可见,人脸图像中所承载的性别与年龄特征是不冲突的。在我们要解决的问题中,性别识别自然是一个二元分类的问题。但是年龄和性别不同,一个人的衰老过程一般都是潜移默化的,因此年龄的面部特征的改变往往是具有连续性的。正常情况下,一个人不会因为17岁的最后一天和18岁的第一天而产生面部特征的明显变化[18]。图4.4即为著名的“乔的笑”/图4.4 乔的笑上面讨论过,解决深度标记分布问题的一种方法是将深度标记问题转化为多分类问题,使要解决的问题契合现有的算法思想。相对于性别识别的二分类问题,年龄识别的研究方法更加复杂。Zhengxing Niu和Mo Zhou使用多顺序输出回归的方法来实现年龄识别。其思路是将表征年龄抽象成K-1个2分类任务[3,4]。如,第一个任务用于预测年龄是否大于1,第二个任务则预测年龄是否大于2,以此类推。预测结果为{0,1},满足为1,不满足为0。而Gil Levi和Tal Hassner对人的年龄进行分类,划分为0-100共101个类别,并获得每个预测年龄的可能性,再乘以各标签年龄,最终得到年龄。此外,还有先将年龄分组,如0到10岁。然后再在每个分类中做回归预测。由于本研究同时研究性别与年龄识别,因此年龄识别,也采用多分类的方法。由于采用的IMDB-WIKI数据集[1]中的图像数据都标注了年龄和性别标签,所以将深度标记分布问题转化为多分类问题,针对性别标签,使用二分类方法,对于年龄标签,使用多分类的方法,计算人脸图像在年龄分布上的概率值。因此,本研究将根据人脸图像的性别属性以及年龄属性,对人脸图像进行性别标签及年龄标签的标注,采用深度标记分布的方法建立模型。4.2 性别与年龄识别深度标记分布模型结构在解决表情识别问题时,由于数据集规模较小,本研究采用了相对较为简单的VGGNet网络。但是对于性别与年龄识别问题,本研究使用了规模远远大于FER2013数据集的IMDB-WIKI数据集。这需要规模相对更大的网络来解决问题。性别与年龄识别的研究思路如图4.5所示。图4.5 性别与年龄识别流程VGGNet等经典的网络结构有一个共同的缺点。就是在加深网络时,由于初始权值通常设置的都是比较小的值,在深层网络中一层一层向下传递时,会使得梯度的更新值快速衰减。越深层的网络学习到的权重也越小,训练的速度也越慢。如此一轮一轮的训练下去,最后导致梯度消失,这使得网络的精确度大打折扣。图4.6展示了梯度消失的现象。/图4.6 梯度消失2015年Kaiming He等人提出的ResNet[2]在是卷积神经网络的一次革命性飞越。ResNet的相关论文,还被评选为了CVPR2016最佳论文。ResNet通过构建恒等映射来解决训练深度模型是产生的梯度小时问题。其思路如下原先的网络输入x,希望输出H(x)。若令H(x)=F(x)+x,那么网络就只需要学习输出一个残差F(x)=H(x)-x。作者提出,学习残差F(x)=H(x)-x会比直接学习原始特征H(x)简单的多。最后的结果也证明了这个思路是有效的。图4.7为残差学习基本单元。/图4.7 残差学习基本单元本研究在ResNet的基础上,加宽网络。所使用的网络模型,思路如下第一组的卷积层不增加宽度,在后面的卷积层中将特征图扩宽(k倍卷积核),大量使用尺寸大小为3x3的滤波器。此外,还在ResNet的基础上,牺牲网络的深度,转而选择拓宽网络的宽度。将宽度在原来的基础上放大8倍。从而使参数随着网络的加深而线性增长,且随着网络宽度的增打而平方增大。此外,选择采用dropout方法来抑制过拟合。 网络共有16个conv2d层,13个激活函数,每一层都进行了批规范化操作。最后由一个平均池化层,一个flatten层输入到分类层,性别是2分类,年龄是101分类(0~100)。此外,还使用了mixup[5]以及随机擦除[6]相结合的数据增强方法,帮助提高网络性能。由于整个网络结构较大,无法很直观的展示出来。图4.8为网络残差块示意图。/图4.8 残差块示意图4.3 训练模型的参数选择由于本研究使用分类方法解决性别与年龄识别问题,与表情识别相同,选择了随机梯度下降算法,用来优化性别与年龄识别模型。而损失函数,本文同样也是选择了分类交叉熵损失函数。除此之外,最重要的便是分类器的选择。SVM是比较常用的一种分类器,它倾向于选择最为正确的分类,并对正确的分类打出高于其他分类的分数。比如对人脸图像的性别属性分类打分,SVM分类器可能分别对男性和女性标签打分为[20,12]。这两个分数之间的差距是非常大的,但这种方式显得不够直观,也不符合人类对标签判断的直觉。与SVM分类器同样常用的是Softmax分类器,但是不同的是Softmax分类器更加侧重于概率,它会对所有的分类标签都计算出可能性。比如对于男性和女性的标签,Softmax分类器可以分别计算出的概率为[0.9,0.1],这种分布方式明显是更加直观的,也更符合直觉的。因此,本研究选择采用Softmax分类器。4.4 实验结果与分析4.4.1 数据集及预处理本研究使用的数据集是IMDB-WIKI数据集。这个数据集非常大,其中包括20,284人的460,723张图像,以及维基百科上imdb的52,051张人脸图像。数据集标注了所有图像中人物的性别,人物的出生时间甚至照片的拍摄时间等信息。原始图像非常大,共分为9个部分,超过100GB,而切割面图像相对较小,仅超过3g。因此本研究选用经过裁剪的数据集。获取数据集后,由于该数据集中含有一些噪声,如性别标注错误,年龄标注错误等。需要先将这些噪声信息进行过滤和统计,去除噪声。处理结果显示图像数据年龄信息的分布主要是在30 - 50岁之间。此外再对数据集中的照片,按照出生日期和照片拍摄日期算出年龄,并对每张照片标注对应的年龄标记。性别标记同理。图像分布情况如表4.1所示。年龄数量年龄数量年龄数量年龄数量年龄数量02920778440110686027098026711492182944111831612324812502165228769421050162212982196350239813431016063231883164477241147844891764188984196522125121514510238651883851216237261329946820066127386707440271293747715167114787111859028137784866886813958872987329146004961176912568931101071301635650578370105290691117053116255515485719269113121736321537452481672809921713233733150965341487370193151421143414704544211745859491527273515056553482755909561628563615139563096765939612173391371406357305777490973184122381441758329078362984195563391372959326779467992年龄数量1003表4.1 IMDB-WIKI数据集年龄分布4.4.2 模型比较及实验结果首先,不使用数据增强方法训练30个时期。在训练过程中,从第18个时期开始,损失函数的损失值便不再减小,为3.99。由历史文件绘制训练曲线。训练曲线如图4.9所示。/图4.9 未使用数据增强的loss接着,使用随机擦除以及mixup相结合的数据增强方法训练。在第28个时期时,损失函数的损失值达到最小,为3.73。如图4.10所示。不仅如此,使用数据增强方法,验证集上的损失值持续降低,并未出现达到最低点又上升的情况。如图4.11所示。/图4.10 数据增强后的loss/图4.11 loss对比图4.12为训练好的性别与年龄模型识别人脸的效果展示。/图4.12 性别与年龄识别效果图5 人脸属性识别系统5.1 系统概况本研究利用表情识别与性别和年龄识别两个已经训练好的模型进行设计,将两者结合在一起,通过调用摄像头实现对实时视频流中的人脸图像进行提取和识别的功能。最后分析系统的性能以及优缺点。5.2 系统设计系统设计思路如下首先对获取的图像进行预处理。本研究选择利用摄像头获取实时视频流,从视频流中截取图像数据。然后对处理好的图像利用已经训练好的模型分别进行识别。最后将识别的结果整合输出,得到最后的结果。系统工作流程如图5.1所示。图5.1 系统工作流程5.3 图像预处理使用公开库opencv和dlib捕获摄像头,实现对实时视频流中读取人脸图像。对人脸图像进行灰化。然后,灰色的脸图像被剪切和翻转。经过处理后,将图像进行几何归一化,再将图像重建为48*48像素。图5.2和图5.3展示了对人脸图像进行上述图像预处理效果。/图5.2 人脸图像原图/图5.3 图像预处理效果展示5.4 图像识别与效果展示最后分别调用已经训练完成的表情识别模型以及性别年龄识别模型,对人脸图像进行表情、性别以及年龄的预测,并将结果输出。最终模型对性别的预测准确率非常高,在年龄预测方面没有性别识别那么准确。这是由于人脸年龄属性,在岁数差别不大的时候,变化不大。系统最终效果如图5.4所示。/图5.4 最终识别效果图5.5系统的优缺点分析本系统将表情识别模型以及性别年龄识别模型结合在一起,通过调用系统摄像头,实时完成上述多个识别功能。综合上述对模型的构建及效果展示的描述,分析本系统的优点(1)可以实时获取人脸图像并进行识别。由于调用了计算机的摄像头,可以一直保持实时截取视频帧并进行分析的工作状态。(2)系统使用场景广泛。由于系统针对表情,性别和年龄三种人脸特征进行识别。相对于单一的属性识别系统,具有更多的应用场景。当然,世界上没有尽善尽美的事物,虽然本系统较好的完成了既定的识别任务,但是仍然有许多不足之处。分析本系统缺点如下(1)移植性较差。由于没有将本系统进行封装,导致系统的移植性较差,无法跨平台使用。(2)流畅性不足。本系统从视频流中捕获视频帧,由于要对视频帧进行人脸检测及图像翻转等操作,使得系统的流畅性不足。6 总结与展望本研究分为基于CNN模型的表情识别,基于CNN模型的性别与年龄识别以及人脸属性识别系统三个部分。基于CNN模型的表情识别以AlexNet为基础,结合GoogleNet使用1*1卷积层提升网络的表达能力。基于CNN模型的性别与年龄识别,将性别识别与年龄识别都当作分类问题。使用单模型多任务的方法,利用WideResNet来构建网络。人脸属性识别系统,则是利用opencv库以及dlib库,调用计算机摄像头,从实时视频流中获取视频帧图像。从截取的图像中检测人脸图像,并做相应的预处理,最后完成人脸图像的属性识别。当然,本研究也有很多不足之处。第一,本研究花了大量精力去完成模型的训练,但是模型的准确度并不高,且缺少不同算法之间的优劣性比较。第二,由于时间原因,没有能够将模型应用到移动端。第三,由于数据集数据标签的限制,本研究将几个人脸属性的识别分成了两个模型来完成。如果有一个完善的,各种人脸信息标签齐全的数据集,则可以只使用一个模型来实现多个识别任务。人脸属性识别不仅仅是在各种计算机视觉比赛上大放异彩,其已经进入人们的日常生活之中。无论是安防领域的身份验证,还是移动端上的美颜APP,我们都能看到人脸属性识别的广泛且优秀的应用。近些年深度学习广受大众关注,希望研究人员以及相关的从业人员能抓住机会,实现新的突破,为人们日常生活提供更精确更方便的服务。致谢2014年的夏天,我怀着一颗感激的心来到了南农的大家庭。以我的高考成绩还有机会进入这么一所有实力但又低调的大学,真的是让我心怀感激。大学信息院,这里的每个人,每件事都在我心中刻下了“诚朴勤仁”的印记。作为一个南农人,我会用自己的行动去践行这四个字。不同于同届的同学们,我的本科经历了一些坎坷。再次回到学校的时候,真真切切地感受到了什么叫做物是人非。光阴似箭,一转眼我也要过完自己的本科生活了。回顾这几年,我得到了很多,也学到了很多。从刚进学校时立志好好学习的雄心壮志。到没人约束时将学习抛在脑后,最后面对惨不忍睹的成绩单时的失意。再到因病休学对未来的绝望与困惑。这一切,都教会我要自律,要实事求是,要明白什么事情对自己的未来发展优先级是最高的,要珍惜时间抓住自己所能抓住的东西。我很遗憾自己没有好好学习,到现在我都没能拿过一次奖学金。但是我也很庆幸自己也没有完全不学无术,我还能明白学习对我的重要性。参考文献Rothe R, Timofte R, Van Gool L, et al. DEX: Deep EXpectation of Apparent Age from a Single Image[C]. international conference on computer vision, 2015: 252-257.He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[J]. computer vision and pattern recognition, 2016: 770-778.Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[J]. computer vision and pattern recognition, 2015: 1-9.Agustsson E, Timofte R, Escalera S, et al. Apparent and Real Age Estimation in Still Images with Deep Residual Regressors on Appa-Real Database[C]. ieee international conference on automatic face gesture recognition, 2017: 87-94.Zhang H, Cisse M, Dauphin Y N, et al. mixup: Beyond Empirical Risk Minimization[J]. international conference on learning representations, 2018.Zhong Z, Zheng L, Kang G, et al. Random Erasing Data Augmentation.[J]. arXiv: Computer Vision and Pattern Recognition, 2017.谭莲芝. 基于深度学习的人脸属性识别方法研究[D].深圳中国科学院大学(中国科学院深圳先进技术研究院),2017.高淑蕾. 基于卷积神经网络的人脸属性识别研究[D].天津天津理工大学,2018.殷晓露. 基于人脸图像的性别识别和年龄估计[D].深圳深圳大学,2015.李玉振. 单模型多任务人脸识别与属性分析及系统实现[D].合肥安徽大学,2018.樊雷.一种基于Keras和CNN的人脸表情识别系统设计[J].电脑知识与技术,2018,14(33):178-179.杨欣利. 基于卷积神经网络的人脸表情识别算法研究[D].兰州兰州理工大学,2018.聂倩倩,秦润泽,高育新,胡欣宇.人脸表情识别算法综述[J].物联网技术,2018,8(05):55-57.陈济楠,李少波,高宗,李政杰,杨静.基于改进CNN的年龄和性别识别[J].计算机工程与应用,2018,54(16):135-139+175.赵权,耿新.标记分布学习中目标函数的选择[J].计算机科学与探索,2017,11(05):708-719.王芹. 基于自适应标记分布学习的人脸年龄估计[D].南京东南大学,2015.赵权. 标记分布学习若干问题研究[D].南京东南大学,2016.周颖. 标记分布在人脸图像属性识别上的应用[D].南京东南大学,2016.
目录
摘要1
关键词1
Abstract1
Key Words1
1 绪论 1
1.1 研究背景及意义 1
1.2 研究现状 2
1.3 研究的主要内容 2
1.4 技术路线和开发环境 2
2 卷积神经网络基础知识 3
2.1 卷积神经网络 3
2.2 卷积神经网络结构 3
2.2.1 卷积层 3
2.2.2 池化层 3
2.2.3 全连接层 3
3 基于CNN模型的表情识别 3
3.1 算法的选择 3
3.2 表情识别CNN模型结构 5
3.3 训练模型的参数选择 6
3.3.1 优化算法选择 6
3.3.2 损失函数选择 6
3.4 实验结果与分析 7
3.4.1 数据集及其预处理 7
3.4.2 表情识别实验结果 7
4 基于深度标记分布的性别与年龄识别 9
4.1 深度标记分布 9
4.1.1 深度标记分布的特点 9
4.1.2 深度标记分布学习方法10
4.2 性别与年龄识别深度标记分布模型结构11
4.3 训练模型的参数选择13
4.4 实验结果与分析13
4.4.1 数据集及预处理13
4.4.2 性别与年龄识别实验结果14
5 人脸属性识别系统 15
5.1 系统概况15
5.2 系统设计15
5.3 图像预处理16
5.4 图形识别与效果展示16
5.5 系统的优缺点分析17
6 总结与展望17
致谢 18
参考文献 18基于深度学习的人脸属性识别方法研究
引言
原文链接:http://www.jxszl.com/jsj/jsjkxyjs/563913.html