网站首页 > 技术文章 正文
1. 摘要
针对目前普通卷积神经网络(CNN)在表情和性别识别任务中出现的训练过程复杂,耗时过长,实时性差等问题,提出一种深度可分卷积神经网络的实时人脸表情和性别识别模型.首先,利用多任务级联卷积网络(MTCNN)对不同尺度输入图像进行人脸检测,并利用核相关滤波(KCF)对检测到的人脸位置进行跟踪进而提高检测速度.然后,设置不同尺度卷积核的瓶颈层,用通道合并的特征融合方式形成核卷积单元,以具有残差块和可分卷积单元的深度可分卷积神经网络提取多样化特征,并减少参数数量,轻量化模型结构;使用实时启用的反向传播可视化来揭示权重动态的变化并评估了学习的特征.最后,将表情识别和性别识别两个网络并联融合,实现表情和性别的实时识别.实验结果表明,所提出的网络模型在FER-2013数据集上取得 66% %的识别率,在IMDB数据集中性别分类的准确率达到96%;最后我们还将设计的模型应用到实际的应用系统中,即通过创建一个实时视觉系统来验证我们的模型,该系统使用我们提出的 CNN 架构在一个混合步骤中同时完成面部检测、性别分类和情感分类的任务。
2.相关工作
相比传统机器学习,深度神经网络能够自主学习特征,减 少了人为设计特征造成的不完备性。Tang提出将 CNN 与 SVM相结合,并且放弃了全连接CNN所使用的交叉熵损失最 小化方法,而使用标准的铰链损失来最小化基于边界的损失, 在其测试集上实现了 71. 2%的识别率。MobileNet-V2中采 用了多尺度核卷积单元主要以深度可分离卷积为基础,分支 中采用了的线性瓶颈层结构,对表情进行了分类获得了 70. 8% 的识别率。Li 等提出了一种新的保持深度局域的 CNN方法,旨在通过保持局部紧密度的同时最大化类间差距 来增强表情类别间的辨别力。Kample 等通过构建级联 CNN 来提高表情识别的精度。徐琳琳等针对网络训练时间过长等问题,提出一种基于并行卷积神经网络的表情识别方法,获得了 65. 6%的准确率。CNN 常被用作黑盒子,它将学习到的特征隐藏,使得在分类的准确性和不必要的参数数量之间难以抉择。为此Szegedy等提出利用导向梯度反向传播的实时可视化,来验证CNN学习的特征。对FER-2013数据集上的“愤怒”“厌恶”“恐惧”“快乐”“悲伤”“惊讶”和“中性”等表情进行识别是非常困难的,需要表情分析和性别识别模型具有较强的鲁棒性和较高的计算效率。
Fer2013人脸表情数据集由35886张人脸表情图片组成,其中,测试图(Training)28708张,公共验证图(PublicTest)和私有验证图(PrivateTest)各3589张,每张图片是由大小固定为48×48的灰度图像组成,共有7种表情,分别对应于数字标签0-6,具体表情对应的标签和中英文如下:0 anger 生气; 1 disgust 厌恶; 2 fear 恐惧; 3 happy 开心; 4 sad 伤心;5 surprised 惊讶; 6 normal 中性。
IMDB是一个包含名人人脸图像、年龄、性别的数据集,图像和年龄、性别信息从 IMDB 和 WiKi 网站抓取,总计 524230 张名人人脸图像及对应的年龄和性别。其中,获取自 IMDB 的 460723 张,获取自 WiKi 的 62328 张。在本次实验中,IMDB 性别数据集包含 460 723 个 RGB 图 像,其中每个图像被标注属于“女性”或“男性”类。
3.模型设计与实现
该模型主要由6个卷积层和3个最大池化层构成,每一个卷积层进行卷积操作后进行一个 same填充,当卷积核移动步长为 1 时,图像尺寸不变,同时为了固定网络层中输入的均值和方差并避免梯度消失问题,将每层神经网络任意神经元的输入值的分布拉回到均值为 0、方差为1的比较标准的正态分布,使用批规范化方法,在每一层加上一个批规范化(Batch Normalization,BN)操作,并用 ReLU函数激活,后面连接 3 个全连接层和 1 个输出层的 Softmax 函 数,在全连接层之后使用一个 Dropout的方法,在训练中随机丢弃神经元防止过度训练。本文设计的卷积神经网络结构如图所示,其中c为卷积核的大小,n为卷积核的数量,s为卷积步长,p为池化窗口的大小same 表示使用 same 的填充方式,ReLU为激活函数,Sep-Conv为深度可分卷积。
该网络结构由以下部分组成:
1)经过预处理之后得到的 64 × 64 像素的学生头部图片作为输入层。
2)c1层使用 64个大小为 11 × 11的卷积核对图像进行卷积操作,即每个神经元具有一个 11 × 11的感受野,步长为 4,使用same的填充方式,激励函数为ReLU。
3)s1 层采用了 128 个 3 × 3 大小的池化窗口对图像进行降维,池化方式为最大池化,步长为2。 4)c2层采用了192个大小为5 × 5的卷积核,步长为1。
5)s2层采用了 192个大小为 3 × 3的池化窗口,池化方式 为最大池化,步长为2。
6)c3层使用256个3 × 3的卷积核,步长为1。
7)c4使用了256个大小为3 × 3的卷积核,步长为1。
8)c5使用256个大小为3 × 3的卷积核,步长为1。
9)c6使用深度可分离卷积块。
10)s3 采用大小为 3 × 3 的池化窗口进行池化,池化方式 为最大池化,步长为2。
11)使用 4 096 个神经元对 256 个 6 × 6 的特征图进行全 连接,再进行一个 dropout 随机从 4 096 个节点中丢掉一些节 点信息,得到新的4 096个神经元。
该网络包含 4 个剩余深度可分离卷积,其中每个卷积后 面是批量归一化操作和 ReLU 激活函数。最后一层应用 Softmax 函数产生预测。图 显示了完整的最终网络架构,将其称为迷你Xception。
该架构在性别分类任务中获得95%的 准确度。此外,在FER-2013数据集中情感分类任务中获得了66% 的准确度。最终模型的权重可以存储在 855 KB 的文 件中。通过降低模型的计算成本使其具有实时性,并且能够 连接两个模型并在同一图像中使用。
4.应用实现
人脸表情和性别识别框架中,首先加载已训练好的表情 和性别分类模型以及相关配置文件,而针对待检测人脸图像, 抓一帧图,找到表情和性别坐标信息,将其像素大小调整为 64 × 64。然后,人脸图像经网络模型向前计算,与训练好的 模型中的权重进行比较,得到预测的每一个情感和性别分类 标签的得分值,最大值即预测结果。面部表情和性别分析视 觉结果如下所示。?
5.结论
针对卷积神经网络训练过程复杂、耗时过长、实时性差等问题,本文提出了一种基于深度可分卷积神经网络的实时表情识别和性别识别方法。通过引入深度可分离卷积轻量化网络结构,减少模型参数数量,将参数数量同全连接CNN相比,仅占其 1/80。最后,模型FER-2013数据集上对人脸表情的识别达到了 66% 的高识别率,在 IMDB 数据集上取得 96% 的识别率。处理单帧人 脸 图 像 的 时 间 为(0. 22±0. 05ms,整 体 处 理 速 度 达 到80 frame/s。实验结果表明,本文模型可以堆叠用于多类分类,同时保持实时预测;可在单个集成模块中执行面部检测,进行性别分类和情感分类。后续工作将增加情感识别类型,扩充表情数据库,在真实场景下的数据集上进行训练,进一步提高识别准确率。
- 上一篇: 使用tensorflow构建一个卷积神经网络
- 下一篇: 卷积神经网络的卷积层参数结构及计算方法
猜你喜欢
- 2024-10-28 使用卷积神经网络构建图像分类模型检测肺炎
- 2024-10-28 机器不学习:卷积神经网络CNN与Keras实战
- 2024-10-28 我是如何用5个概念理解的卷积神经网络?(Hadoop大数据)
- 2024-10-28 深度学习笔记:图像识别和卷积网络
- 2024-10-28 Tensorflow Conv2D和MaxPool2D原理
- 2024-10-28 PyTorch中傅立叶卷积:计算大核卷积的数学原理和代码实现
- 2024-10-28 一文看完卷积神经网络及实现机制 卷积神经网络的原理与实现
- 2024-10-28 卷积神经网络原理及其C++/Opencv实现(6)—前向传播代码实现
- 2024-10-28 「周末AI课堂」卷积之上的新操作|机器学习你会遇到的“坑”
- 2024-10-28 谈谈CNN中的位置和尺度问题 cnn例题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)