logo资料库

论文研究-基于卷积神经网络的人脸性别识别研究与应用 .pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
中国科技论文在线 http://www.paper.edu.cn 基于卷积神经网络的人脸性别识别研究与 应用 耿凯悦,刘晓鸿** ( 北京邮电大学计算机学院,北京 100876) 摘要:人脸包含着人类的性别、种族、肤色,年龄等重要信息,如果可以用计算机识别人脸, 就可以方便且非接触式地获得大量人类的生物特征。卷积神经网络是人工神经网络的一种, 其结构具有局部连接,权值共享和池化采样三大特点,这样的网络结构不但使权值数量减少, 使得网络模型复杂度降低,同时对缩放、旋转、平移和其他形变有更好的鲁棒性。本文首先 研究了经典 Alexnet 模型的原理以及其在性别识别的性能,并根据实验结果对 Alexnet 的激 活函数和全连接层进行改进。使得网络可以接受任意大小的输入图片并且提高识别的准确 率。 关键词:人工智能;卷积神经网络;全卷积神经网络;性别识别 中图分类号:TP311 Research and Application of Human Face Gender Recognition Based on CNN (School of Computer Science, Beijing University of Posts and Telecommunications, Beijing GENG Kaiyue, LIU Xiaohong 100876) Abstract:Human faces contain important information such as sex, race, color, age, etc. If human faces can be identified by computer, a great deal of human biological characteristics can be obtained conveniently and contactlessly. Convolutional neural network is a kind of artificial neural network whose structure has three characteristics of local connection, weights sharing and pooling sampling. Such a network structure not only reduces the number of weights but also reduces the complexity of the network model, and zooming, rotation, translation, and other deformations have better robustness at the same time. In this paper, the principle of the classical Alexnet model and its performance in gender identification are studied first, then the Alexnet activation function and the full connectivity layer are improved according to the experimental results. Making the network can accept input pictures of any size and improve the recognition accuracy. Keywords: Artificial Intelligence; CNN; Fully Convolutional Neural Networks; Gender Recognition 5 10 15 20 25 30 35 0 引言 人脸性别检测因其在身份认证、人口统计、视频检索以及机器人视觉中存在着潜在的应 用而备受关注, 已成为计算机视觉和模式识别领域中的热门研究课题之一。 虽然在生活中, 人们可以很容易地根据人脸来判别其性别,但是让计算机识别并不容易,性别识别与人脸识 40 别一样,都需要找到有效且稳定地面部特征,只是最终识别得到的类别不同,人脸性别识别 研究始于二十世纪九十年代,研究问题的关键是特征提取和分类器的选择,曾经有人提出过 将 BP 神经网络,RBF 神经网络,人工神经网络,特征脸部与分类器相结合的方法,但这些 网络都存在网络结构复杂,训练时间长,鲁棒性差的特点。 作者简介:耿凯悦(1993-),女,人工智能 通信联系人:刘晓鸿(1971-),男,硕导,图像处理. E-mail: 460549528@qq.com - 1 -
45 50 55 60 65 中国科技论文在线 http://www.paper.edu.cn 卷积神经网络是将人工神经网络与深度学习相结合而产生的新型神经网络,多层感知器有助 于识别二维图像,它具有局部感知区域,层次结构化,特征提取与分类过程结合的全局训练 特点。Fukushima 提出的基于神经元之间的局部连接型和层次结构组织的 neocoginition 是第 一个实现的卷积神经网络[1]。LeCun 等人设计并采用误差梯度算法训练神经网络取得了不错 的效果。卷积神经网络已经成功运用到文档分析,手写数字识别,语音检测和人脸识别等领 域[2]。 1 卷积神经网络的基本原理 本文使用卷积神经网络技术进行图像识别,这里有三点比较直观的原因: 1) 一般情况下,当机器在识别一个图像时,仅凭一个关键或显著的特征(pattern)可 以确定这个图像的类型。这些关键的特征通常比整张图像要小得多,例如我们可以 通过寻找鸟嘴的形状来确定是否有鸟类的存在,假设一个神经元的功能是识别一张 图片中是否有鸟嘴存在,这个神经元不需要盲目地在整张图片中寻找,它可以有序地 连接到图片中一块块的小区域寻找,这将有效减少这个神经元参数的个数。 2) 用以上分析为基础,由于某个特征可能会出现在一张图像的不同位置,例如一只鸟 的鸟嘴可能出现在一张图像的左上角或中间等位置,几个在不同位置探测是否有鸟 嘴存在的神经元几乎在做相同的工作,所以它们可以共用同一组参数。 3) 通常情况下,对图像的像素做二次抽样不会改变图像要显示的内容,比如抽取某图 像像素矩阵的奇数行偶数列作为这个图像的抽样结果,这样处理后机器要处理的参 数也会大量减少。 基于图像识别的以上三点特征,卷积神经网络成为图像识别的最有效手段之一,原因会在 下面对卷积神经网络的原理介绍中做阐述。 1.1 卷积层 前文中我们提到了 CNN 适合做图像识别的三点直观原因中,前两点可以简要表达为 CNN 可以在图像中不同位置寻找关键特征,这为图像识别提供了巨大的便利,这种便利的 原因主要来自于卷积层,以 VGG-16 net 为例,卷积层中有一组 3*3 的卷积核 filter1,filter2…, 如下图所示,卷积核中的参数是通过训练数据学习所得,我们以 filter1 为例进行说明。 70 图 1 卷积核 将 filter1 置于大小为 5*5 的黑白图片左上角,与图片左上角 3*3 的区域做内积,然后以步长 (stride)为 1 向右或向下移动(在实际操作中,步长要根据实际情况设置)直至遍历整个 - 2 -
中国科技论文在线 http://www.paper.edu.cn 图片,这样,我们把一个 5*5 的图片通过特征提取变成一个 3*3 的矩阵,这个矩阵称为特征 图(feature map),显然特征图的个数等于卷积核的个数[3],如下图所示。 75 80 85 90 图 2 卷积过程 我们发现 filter1 要识别出的特征是在 3*3 的区域中是否有左上至右下对角线值全为 1 的 模式,在特征矩阵中,我们发现值为 2 对应的区域满足要求。CNN 可以建立许多卷积核识 别不同的特征。对于彩色图片,上图将变成一个 3*5*5 的立方矩阵,相应的,卷积核与特征 矩阵也会变为 3 维的立体矩阵。 这就是 CNN 处理在图片不同位置寻找某一特征的方法,这种方法由于是用同一组参数 在整张图片上寻找局部特征,大大减少了参数个数[4],更新参数的方法可以是所有不同区域 对参数更新后取平均数。 1.2 池化层 相对于卷积层来说,池化过程相对简单,概括来说就是做子抽样,接着用上述 filter1 得 到的特征矩阵举例,可以将其每四个值分为一组,将一组内的数据整合成一个值,例如取最 大值或取平均值,这样,我们将 3*3 的特征图简化为 2*2 的特征图,将所有 filter 得到的特 征图简化都做这样的子抽样,我们最终就将 5*5 的原始图片转化为一组 n 维的 2*2 的特征图。 重复卷积和池化多次后,将得到的立体图片信息拉直成一维数组,就可以传入常规的神经网 络继续训练了。 2 Alexnet 原理及改进 95 2.1 Alexnet 基本结构 卷积神经网络的两个核心操作是卷积和池化,主要起到作用是抽取特征,使网络具有一 定转移不变性,池化主要起降维的作用。卷积和池化的随机组合赋予了 CNN 很大的灵活性, 因此也诞生了很多耳熟能详的经典网络:Alexnet,VGGNet,Google Inception Net,ResNet, 这四种网络在深度和复杂度方面依次递增。本文将经典的 8 层 Alexnet 改进为全卷积的 Alexnet,并对比两种网络结构的性能。 100 表 1 Alexnet 结构表 - 3 -
中国科技论文在线 http://www.paper.edu.cn pool1 kernel size=3, stride=2 pool2 kernel size=3, stride=2 output 13*13*384 output 13*13*384 pool5 kernel size=3, stride=2 dropout6 dropout7 output 27*27*96 output 13*13*256 output 6*6*256 output 4096*1 output 4096*1 norm1 local_size=5 norm2 local_size=5 input conv1 96*11*11*3 conv2 256*5*5*48 conv3 384*3*3*256 conv4 384*3*3*192 conv5 256*3*3*192 full6 4096*1 full7 4096*1 full8 softmax 227*227*3 relu1 relu2 relu3 relu4 relu5 relu6 relu7 output 1000*1 2.2 Alexnet 关键技术 2.2.1 ReLU 激活函数 105 110 115 120 Alexnet 所有隐层的激活单元都是 ReLU,ReLU 函数可以表示为 f(x)=max(0, x)ReLU 函 数其实是分段线性函数,把所有的负值都变为 0,而正值不变,这种操作被称为单侧抑制[5]。 单侧抑制使得 9 神经网络中的神经元具有了稀疏激活性。尤其体现在深度神经网络模型(如 CNN)中,当模型增加 N 层之后,理论上 ReLU 神经元的激活率将降低 2 的 N 次方倍。当训 练一个深度分类模型的时候,和目标相关的特征往往较少,因此通过 ReLU 实现稀疏后的模 型能够更好地挖掘相关特征,拟合训练数据。 此外,相比于其它激活函数来说,ReLU 有以下优势:对于线性函数而言,ReLU 的表 达能力更强,尤其体现在深度网络中;而对于非线性函数而言,ReLU 由于非负区间的梯度 为常数,因此不存在梯度消失问题(Vanishing Gradient Problem),使得模型的收敛速度维持在 一个稳定状态。当梯度小于 1 时,预测值与真实值之间的误差每传播一层会衰减一次,如果 在深层模型中使用 sigmoid 作为激活函数,这种现象尤为明显,将导致模型收敛停滞不前[6]。 2.2.2 Dropout 机制 训练神经网络模型时,如果训练样本较少,为了防止模型过拟合,dropout 可以作为一 种有效的技术供选择。Dropout 是 Hinton 最近 2 年提出的,源于其文章 Improving neural networks by preventing co-adaptation of feature detectors 。Dropout 是指在模型训练时随机让 网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部 分,但是它的权重会保留下来而暂时不更新[7],dropout 的工作机制如下图所示: - 4 -
中国科技论文在线 http://www.paper.edu.cn 125 130 135 140 图 3 dropout 机制 由于每次用输入网络的样本进行权值更新时,隐含节点都是以一定概率随机出现,因 此不能保证每 2 个隐含节点每次都同时出现,这样权值的更新不再依赖于有固定关系隐含 节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况。可以将 dropout 看成是模型平均的一种。对于每次输入到网络中的样本(可能是一个样本,也可能是一个 batch 的样本),其对应的网络结构都是不同的,但所有的这些不同的网络结构又同时共 享隐含节点的权值。这样不同的样本就对应不同的模型, 有一个比较有意思的解释是, Dropout 类似于性别在生物进化中的角色,物种为了使适应不断变化的环境,性别的出现 有效的阻止了过拟合,即避免环境改变时物种可能面临的灭亡。 2.3 Alexnet 改进 2.3.2 ReLU 函数改进 ReLU (Rectified Linear Unit Function) 函数可以表示为 f(x)=max(0,x)。线性激活函数 简单地将阈值设置在零点,计算开销大大降低,和 sigmoid、tanh 函数相比,ReLU 可以 大大加快随机梯度下降算法的收敛,但是 ReLU 在训练时是非常脆弱的,并且可能“死”。 例如,流经 ReLU 神经元的一个大梯度可能导致权重更新后该神经元接收到任何数据点都 不会再激活。如果发生这种情况,之后通过该单位点的梯度将永远是零。也就是说,ReLU 可能会在训练过程中不可逆地死亡,并且破坏数据流形。Leaky ReLU 是对于“ReLU 死亡 问题”的一次解决尝试,它可以表示为: f(x)= 其中,a 为一个较小值,如 0.01 等[8]。 - 5 -
145 150 155 160 165 170 175 中国科技论文在线 http://www.paper.edu.cn 2.3.3 全卷积神经网络 图 4 Leaky ReLU 通常 CNN 网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。如果一个 深度结构只有卷积层, 那么输入图像可 以任意大小,可是一旦在卷积层上面叠加上全连接层,输入图像的大小就需要固定了。 与 经典的 CNN 在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+ softmax 输出)不同,FCN 可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积 层的特征图进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了 一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素 分类。 传统的 CNN 为了对一个图像分类,使用该像素周围的一个图像块作为 CNN 的输入用 于训练和预测。这种方法有几个缺点:一是存储开销很大。例如对每个图像使用的卷积核的 大小为 15x15,然后不断滑动窗口,每次滑动的窗口给 CNN 进行判别分类,因此所需的存 储空间根据滑动窗口的次数和大小急剧上升。二是计算效率低下。相邻的图像快基本上是重 复的,针对每个图像快逐个计算卷积,这种计算也有很大程度上的重复。三是像素块大小的 限制了感知区域的大小。通常像素块的大小比整幅图像的大小小很多,只能提取一些局部的 特征,从而导致分类的性能受到限制[9]。 全卷积网络(FCN)则是从抽象的特征中恢复出每个像素所属的类别。即从图像级别的分 类进一步延伸到像素级别的分类[10]。全连接层和卷积层之间唯一的不同就是卷积层中的神 经元只与输入数据中的一个局部区域连接,并且在卷积列中的神经元共享参数。然而在两类 层中,神经元都是计算点积,所以它们的函数形式是一样的。因此,将此两者相互转化是可 能的:  对于任一个卷积层,都存在一个能实现和它一样的前向传播函数的全连接层。权 重矩阵是一个巨大的矩阵,除了某些特定块,其余部分都是零。而在其中大部分块中, 元素都是相等的。  相反,任何全连接层都可以被转化为卷积层。比如,一个 K=4096 的全连接层, 输入数据体的尺寸是 77512,这个全连接层可以被等效地看做一个 F=7, P=0, S=1, K=4096 的卷积层。换句话说,就是将卷积核的尺寸设置为和输入数据体的尺寸一致了。 因为只有一个单独的深度列覆盖并滑过输入数据体,所以输出变为 114096 ,这个 结果就和使用初始的那个全连接层一样了。 在两种变换中,将全连接层转化为卷积层在实际运用中更加有用。假设一个卷积神经 网络的输入是 224x224x3 的图像,一系列的卷积层和下采样层将图像数据变为尺寸为 7x7x512 的激活数据体。Alexnet 使用了两个尺寸为 4096 的全连接层,最后一个有 1000 个神经元的全连接层用于计算分类评分。我们可以将这 3 个全连接层中的任意一个转化为 卷积层: 180  针对第一个连接区域是[7x7x512]的全连接层,令其卷积核尺寸为 F=7,这样输出 数据体就为[1x1x4096]了。  针对第二个全连接层,令其卷积核尺寸为 F=1,这样输出数据体为[1x1x4096]。  对最后一个全连接层也做类似的,令其 F=1,最终输出为[1x1x1000] 实际操作中,每次这样的变换都需要把全连接层的权重 W 重塑成卷积层的滤波器。 - 6 -
185 190 195 200 205 210 中国科技论文在线 http://www.paper.edu.cn 这样的转化在下面的情况下可以更高效:让卷积网络在一张更大的输入图片上滑动,得到 多个输出,这样的转化可以让我们在单个向前传播的过程中完成上述的操作。 3 数据源处理 3.1 数据源选择 以本次性别识别的研究使用 Adience 数据集,该数据集包含 26580 张图片。其来源为 Flickr 相册,由用户使用 iPhone5 或者其它智能手机设备拍摄,同时具有相应的公众许可。 为了更真实地反映日常生活中的人脸,Adience 数据集的噪声很多,如人脸的角度没有固 定,有些图片的分辨率比较低,有些图片人脸占整张图片的比例较小,该数据集主要用于 进行年龄和性别的未经过滤的面孔估计。本文认为通过训练这些有噪声的图片,得出的年 龄估计和性别识别更有代表性和实际意义。 图 5 adience 数据集图片 3.2 数据增强 随着训练集样本数量的增大,神经网络模型预测准确率会有所提升,为了充分利用机 器性能提取人脸特征,需要对训练集样本数量进行扩充。本文使用 opencv 使得图像发生 偏移,并在通过 caffe 自带的工具使得图像发生镜像。通过这样的操作,使得训练集的样 本数量增长四倍。 除了增加训练集样本数量,优化训练集样本的质量也可以有效提升模型预测的准确 率,可以从多种角度实现图像增强,例如可以将图像边缘进行锐化,也可以调整人脸与背 景之间的对比度。本文将采用直方图均衡化进行图像增强。该算法的操作对象是图像的像 素点,利用累计分布函数,重新分配图片灰度分布。 直方图均衡化(Histogram Equalization) 又称直方图平坦化,实质上是对图像进行非线性 拉伸,重新分配图像象素值,使一定灰度范围内素值的数量大致相等[11]。这样,原来直方图中间 的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的 分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。 直方图是表示数字图像中每一灰度出现频率的统计关系。直方图能给出图像灰度范围、 每个灰度的频度和灰度的分布、整幅图像的平均明暗和对比度等概貌性描述。灰度直方图是 灰度级的函数, 反映的是图像中具有该灰度级像素的个数, 其横坐标是灰度级 r, 纵坐标是 - 7 -
中国科技论文在线 http://www.paper.edu.cn 该灰度级出现的频率( 即像素的个数) pr( r) , 整个坐标系描述的是图像灰度级的分布情况, 由此可以看出图像的灰度分布特性, 即若大部分像素集中在低灰度区域, 图像呈现暗的特性; 若像素集中在高灰度区域, 图像呈现亮的特性。 下图所示就是直方图均衡化, 即将随机分布的图像直方图修改成均匀分布的直方图。基 本思想是对原始图像的像素灰度做某种映射变换, 使变换后图像灰度的概率密度呈均匀分 布[12]。这就意味着图像灰度的动态范围得到了增加, 提高了图像的对比度。 通过直方图均衡化技术可以清晰地在直方图上看到图像亮度的分布情况, 并可按照需 要对图像亮度调整。另外,这种方法是可逆的, 如果已知均衡化函数, 就可以恢复原始直方 图。由于 Adience 数据集中的图像都是 flicker 相册的生活照,有许多颜色暗沉的照片不利 于训练,所以我使用上述算法进行图像增强增加图像的对比度,实际处理采用的是 python 图像处理库,处理结果如下图所示。 215 220 225 图 6 图像处理结果对比图 3.3 性别分类 230 在处理数据源是发现,Adience 数据集中有大量婴儿时期的照片,许多婴儿时期的人 脸并没有开始表现出显著的性别特征(如下图所示),这一现象将对基于人脸的性别识别 的准确率造成极大干扰,所以本文将二分类的性别识别问题转化为三分类,增加一类有待 判别的婴儿时期,希望提高最终模型的准确度。 235 图 7 性别分类 - 8 -
分享到:
收藏