搜档网
当前位置:搜档网 › 增长式卷积神经网络及其在人脸检测中的应用

增长式卷积神经网络及其在人脸检测中的应用

第21卷第8期

系统仿真学报?V ol. 21 No. 8 2009年4月Journal of System Simulation Apr., 2009 增长式卷积神经网络及其在人脸检测中的应用

顾佳玲,彭宏京

(南京工业大学信息科学与工程学院, 南京 210009)

摘要:卷积神经网络擅于提取具有类别分辨能力的隐式特征,在人脸检测等领域获得巨大成功。

然而典型的卷积神经网络的固定结构又使得网络规模初始设定只能是经验性的,难以实现后继的再

学习。鉴于此,提出一种结构可变的卷积神经网络的构造方法:从每层只有单个卷积核的简单网

络结构开始训练,逐渐为各网络层增加新的卷积神经元并修改新增连接权重,当训练结果达到预

期目标时训练结束。在人脸检测的实验中,不同网络规模下的识别结果表明基于结构增长生成的

网络可以在精确度和网络规模之间取得一个非常好的折衷。此外,在追加新的学习样本时,分类

器在保持原有学习结果基础上,只需调整少量新增神经元的权值,就能明显提高检测率。

关键词:卷积神经网络;机器学习;人脸检测;神经网络;模式分类

中图分类号:TP391 文献标识码:A 文章编号:1004-731X (2009) 08-2441-05

Incremental Convolution Neural Network

and Its Application in Face Detection

GU Jia-ling, PENG Hong-jing

(The College of Information Science and Engineering, Nanjing University of Technology, Nanjing 210009, China) Abstract: Convolution neural networks have the capability of extracting hidden discriminating features, so that they successfully have been applied in the fields of face detection, etc. Due to their fixed architecture, the scale of neural networks usually depends on the designer’s experience and prevents them from learning further. A novel approach of constructing CNN with varying architecture was proposed. Training neural networks started off with the simplest architecture with single neuron each layer, then adding new neural cells in every layer and modifying their corresponding weights continuously, until training target was reached.In the face detection experiments, various results with different network scales were given.

These results illustrate that the CNN can get a good tradeoff between the detection rate and the architecture size.Moreover, if appending new complementing samples, the detection rate can be improved significantly, only adjusting a few adding neurons’ weights while keeping previous weights unchanging.

Key words: convolution networks; machine learning; face detection; neural networks; pattern classification

引言

人脸检测是指在输入图像中确定所有人脸(如果存在)位置的过程。它在图像检索、视觉监视和新一代人机界面等领域都有着巨大的应用价值,一直是模式识别和人工智能等领域的重要研究课题。人脸检测虽然属于二值分类问题,但由于人脸的特殊性,比如外貌、表情、肤色的不同,或者有眼镜、胡须等附属物,以及光照、遮挡等影响使得在复杂环境下检测检测人脸蕴涵巨大挑战。

通常将人脸检测方法分为:(1)、基于几何特征的方法。利用人类面部器官在几何上体现的特征在图像中定位人脸,由于对人脸面部器官制定精确恰当的判定准则非常困难,因此该方法在实际中应用并不广泛;(2)、基于肤色模型的方法。在彩色图像中,利用肤色信息可以定位出图像中皮肤所在位置,但是算法的准确度极度依赖于色度空间的选择,又容易受到光照的影响,只适合简单背景下的人脸检测;(3)、基于统计理论的人脸检测方法。这一类方法着眼于寻找大量人脸

收稿日期:2007-08-26 修回日期:2007-11-25

作者简介:顾佳玲(1982-), 女, 江苏省, 硕士生, 研究方向为模式识别与图象处理;彭宏京 (1965-), 男, 江西省, 博士, 副教授, 研究方向为模式识别与计算机视觉、数据挖掘。和非脸样本在统计特性上的差异,再使用各自的特征构建分类器,是目前的主流方法[1]。如Moghaddam等[2]发展了传统PCA方法,在计算主成分空间的基础上引入了正交补空间。Rowley等[3]将人脸区域划分为多个矩形子区域,每个区域对应一个神经网络隐含单元,再对神经网络在多个分级上的输出进行判决。梁等[4]使用模板匹配先进行候选区域的粗选,然后采用SVM分类器进行分类。Viola[5]

等提出基于积分图像特征AdaBoost方法使用层叠分类器检测灰度静态图像中的人脸。近些年,无须改变输入图像的拓扑结构,可以直接作用于二维图像的卷积神经网络在人脸识别中的应用也日渐受到关注。

Jose Hiroki Saito[6]通过选择最优的的阈值调节卷积神经网络的性能。Christophe 等[7]在2002年采用一个包含三层卷积神经网络CNN结构检测人脸,在前两层中,每层包含一个卷积层和下采样层,第三层是一个用于分类识别的MLP 层。在2004年,Christophe 等 [8]在保留了原先的网络结构的基础上,对训练过程中收集样本的算法进行进一步改进。在多数情况下,这个结构庞大的卷积神经网络的检测结果明显优于别的检测算法,如Rowley[3]的神经网络方法和Viola[5]的Adaboost方法。但是整个网络的检测速度比Adaboost方

2009年4月 系

统 仿 真 学 报 Apr., 2009

法慢了近四倍!此外,结构固定的卷积网络也不适合后期样本的补充学习,它往往需要推翻之前的学习成果,重新建立新的权值,浪费了前期的学习。

针对以上两个问题,本文提出了一个基于结构增长的学习方法用于生成和训练网络。与当前用于检测算法的卷积网络[7][8]相比,它有两大改进之处。第一,其结构根据训练要求的提高不断增长,随着网络的每一次的增长,它的检测速度可能小幅下降,但检测率却大幅提高,最终可以使网络处于一个兼顾速度与准确度的平衡结构。第二,基于结构增长的网络,对于后期新增加的样本的学习,不采用全部重新学习的方式,而是增加一些新的神经元用于对新样本的学习,这样的学习方法便于保留前期的学习结果。

1 卷积神经网络

主流的分类方式几乎都是基于统计特征的[1],这就意味着在进行分辨前必须提取某些特征。然而,显式的特征提取并不容易,在一些应用问题中也并非总是可靠的。卷积神经网络,它避免了显式的特征取样,隐式地从训练数据中进行学习。这使得卷积神经网络明显有别于其他基于神经网络的分类器,通过结构重组和减少权值将特征提取功能融合进多层感知器。它可以直接处理灰度图片,能够直接用于处理基于图像的分类[7-8]。

卷积神经网络的典型布局如图(以每层有两个特征图为例)

图1 卷积神经网络的典型布局

在任一给定层面,每一神经元的输入来自于前一层的一个局部区域,并被赋予相应的权值。卷积层是用核函数对上一层输出做卷积后的结果,这也是卷积神经网络之所以得名的原因。某一层的输出,我们称为特征图,构成下一层的输入,在最后一层,特征图被两层全连通的感知机分类。整个卷积网络根据给定的样本进行学习,该网络可以算出用于特征提取的正确权值,卷积核函数最终被训练成了特征检测器。

在卷积神经网络的学习过程中,权值的更新基于反向传播算法(B-P 算法)[9]。该算法由时间r 到r+1更新神经元的权值ω

ω(t +1)=ω(t )+ηδ(t )x (t )

其中,η为学习速率,x (t )为对神经元的输出,而δ(t )为该神经元的误差项。 2 基于结构增长的卷积神经网络

网络的检测精度与神经元的构成数量有很大的关系[6],网络性能会随着神经元的数目增加相应提高。但是卷积核的运算量很大,如果盲目构造一个大规模网络也许只是提高了少许检测率,但是却牺牲了大量的检测时间。目前主要凭借一些先验知识设计网络结构,这也是神经网络这个课题中的一个难点。

本文中,我们不使用先验知识为网络事先设定结构,而是根据训练的情况,让它自己“长大”,直到可以解决当前的问题为止。由于它的每一个神经元都是根据自己的“需要”生成的,所以可以在精准度与检测速度这两者间保持一个最佳平衡。

这个网络我们称之为增长型卷积神经网络ICNN 。本文使用4858幅32×36像素的人脸图片进行训样本来自CMU 图片库。

(1) 网络初始化结构 最初的网络结构非常简单,如图2。网络a 含有两层卷积层和两层采样层,每层中各含有一个特征图。在卷积层C1中,特征图的大小为28×32,图中每一个单元与32×36大小的输入图像的一块5×5的相邻局部区域联系,相当于,卷积层是采用一个5×5的核,对输入做卷积的结果。卷积结果经过一个偏置,由双切线激励函数传递输出。在采样层S1中,特征图的大小为14×16,图中的每个单元都是对卷积层C1的输出中的一块2×2的区域采样的结果,采样的结果经过加权,再加上一个偏置,经过双曲

线切线函数的传递,就得到采样层的输出。在卷积层C2中,特征图的大小为12×14,是一个3×3核函对采样层S1做卷积的结果,该结果经过加权和偏置输出。对卷积层C2输出结果的每一个2×2区域做采样,得到采样层S2的特征图,大小为6×7,经过加权和偏置输出。最后一层MLP 输出层

N 1,作用相当于识别神经元,含有42个神经元,它对采样层S2的结果经过加权,加上一个偏置再由双曲线切线函数传递输出,如果输出大于0,则表示输入为人脸,如果输出小于或等于0,则表示输入为非人脸。

图2 初始情况下的卷积神经网络a

这个简单的卷积网络a ,拥有89个需要训练的参数。由输出结果前向反馈不断修正网络中的权值,图中已经用虚线标出权值更新的路线,直到样本的误差收敛速度低于所设定的值,就停止学习。此时,如果网络的平均误差没有达到

特征图

特征图

输出层

采样

卷积

输入32*36

卷积层C128*32

14*16

采样层S1卷积层C2 12*14

采样层S2 6*7

N 1

输出

采样2*2

卷积3*3 采样2*2

卷积5*5

2009年4月 顾佳玲,等:增长式卷积神经网络及其在人脸检测中的应用 Apr., 2009

期望要求,那么训练过程进入第一轮的增长。

(2) 第一次增长 我们开始对网络a 进行第一轮的增长,为网络的卷积层和采样层各添加一张特征图,感知器层N 1 的神经元也增加到了84个,此时N 1已经不再是输出层,网络增加了一个感知器层N 2做为输出层,该层含有两个神经元,与N 1层的输出做全连接,对N 1的输出经过加权和偏置,由激励函数传递输出。将N 2层的初始权值设为[0.5 0.5],阈值设为0。增长后的网络结构如图3所示,称为网络b 。观 察这个网络,卷积层,采样层和第一层感知器层N 1都没有全连接,总体看来,这个网络由两条前向分支①和②组成,最后在输出层实现全连通。两条支路都拥有和网络a 同样的权值,分支①就是训练成熟的网络a ,相当于在分支①的基础上增加了一条支路②。这样的网络几乎保留了网络a 的全部学习结果。在运用B-P 算法进行学习时,我们的权值修改路线始终只沿着新增加的神经元反向传递,图4中用虚线标出了权值的修改路线,在对网络b 进行学习的整个过程中,支路①相当于网络a 已经训练成熟的知识,将它的结果保留下来,不做修正。

图3 网络a 经过第一轮的增长得到卷积神经网络b

整个网络b ,拥有181个参数,其中需要训练的参数有92个。网络不断地修正一条支路的权值,直到整个网络的总体误差收敛速度低于所设定的值,就停止学习。此时,如果网络的平均误差仍然没有达到期望要求,那么训练过程进入下一轮,也就是第二轮的增长。

(3) 第二次增长 继续增长,网络的层数不再增加,在网络b 的基础上增加了分支③,由采样层S1中所含有的两张特征图融合,构成卷积层C2的第三张特征图。对特征图进行融合可以增加特征的多样性,此时卷积层C2和采样层S2中的特征图都增加到三幅,N 1层的神经元数也增至126个,如图4,称其为网络c 。对新增加的神经元初始化,在新一轮的学习中,我们的学习路线始终只通过输出层以及分支③,图中用虚线表示。保留分支①和②的权值不变,它们相当于已经网络之前已经训练成熟的部分,不再对其进行学习。

整个网络 c ,拥有240个参数,其中需要训练的参数有62个。网络不断的修正支路③的权值,直到整个网络的总体误差收敛速度低于所设定的值,就停止学习。此时,如果网络的平均误差仍然没有达到期望要求,那么训练过程继续。

图4 网络b 经过第二轮的增长得到卷积神经网络c

下面给出整个网络结构的增长算法:

J(ω)=训练样本平均误差,θ=事先设定的样本平均误差的阈值, J(ω)=▽训练样本误差收敛速度,θ=▽事先设定的误差收敛速度的阈值

NS = S1层的特征图的数目,NC = C2层的特征图的数目 if J(ω)> θ //整个网络的训练目标还没有达到,训练继续 if J(ω)> ▽▽θ// 不需要增加新的神经元,只需训练 以指定路线用成批方法训练网络

else //此时需要增加新的神经元,分别在两种情况下的添加方法各不一样

if NC = C+NS

以整个网络的输入层为起点增加一条支路 else

以S1层为起点,增加一条新的支路,将S1层中任意两张还没有互相融合的特征图融合,做为新加入的支路的起点

else

训练结束,网络训练成熟

3 结构增长式网络的后期学习

神经网络的学习并不是一劳永逸的,因为不可能一次收集完所有的样本类型,相对人脸样本,非人脸的样本更难收集。我们可以把自然界中人脸之外的全部世界称为“非人脸”,由于“非人脸”样本的多样性,所以许多人脸分类器的虚警率都很高[6]。而网络的后期学习就可以较好地解决非人脸样本收集不足的问题。

与人类的学习过程类似,神经网络的学习也需要后期复习、巩固,加强。所以,在设计网络时也应考虑到使其便于后期学习。后期学习与在线学习类似,都相当于是一个补充性的学习。结构固定的网络在每一次训练之后都会修改全部的权值,如果后期样本与前期训练样本有较大差异,比如光线强度明显不同,那么后期学习中若是只学习新添加的样本,极可能导致卷积网络分类器虽然学会了新的东西,却丢失了原有的训练“记忆”

而本文设计的网络的第二大优势就在于此,它为后期新样本增加了新的神经元来进行后期学习,学习过程只修改新增加的神经元的权值,对原本已经训练成熟的神经元不再做学习,这就相当于保留了前期的训练结果,并且又学习了新的知识。

① 采样层S1

卷积层C2 卷积5*5

采样2*2

6*7

卷积层C1 卷积层C2 采样2*2

28*32

输入32*36

卷积3*3

12*14

14*16N 1

N 2

输出

输入32*36

采样层S2 卷积层C2 采样层S1

14*1612*14 6*7

N 1

采样2*2

卷积3*3

采样2*2

卷积层C1卷积5*528*32

N 2①

② ③

2009年4月 系

统 仿 真 学 报 Apr., 2009

单支路ICNN 94.12% 0.0602 2支路ICNN 96.03% 0.121 3支路ICNN 96.482% 0.138 4支路ICNN 97.39% 0.1982 5支路ICNN 97.58% 0.2164 6支路ICNN 97.79% 0.2346 7支路ICNN 97.85% 0.2949 8支路ICNN 97.89% 0.3131 9支路ICNN 97.94% 0.3313 10支路ICNN 98.01% 0.3495 11支路ICNN 98.06% 0.4103 Carcia 等[8 ] 98.05% 0.375

首先使用5858幅后期训练样本对Carcia 的网络进行训练。由于不能改变结构,也不能增加神经元,因此只能对整个网络重新训练,训练结束后识别率上升到98.67%,提高了0.62%。

然而本文的增长式网络却能方便地进行后期学习,首先如图5所示为网络增加新的神经元和线索,再使用5858幅后期训练样本对新增的神经元进行训练,训练结束后增长识别率也上升到了98.28%,提高了0.6%,使用我们的方法只学习了少量神经元,仍然取得了较好的学习效果,而且网络的学习时间只需要Carcia 方法的六分之一,并不需要重新调整所有神经元的权值就可以继续学习新样本,显示了本文的增

在后期训练中我们新增了一千幅图片,人脸和非人脸样本各五百,为了弥补前期训练样本的不足,此次特地选择了比较复杂的非人脸背景。

经过前期4858幅样本的学习,当网络结构成型时,共含有六条分支,现在根据增长算法为新增样本加入新的神经元,如图5,其中分支⑦是新加入的神经元,使用一千幅新增样本对新增加的神经元进行训练,图中已经用虚线标出了权值修改的路线。由于后期的训练样本不再使用原先成批学习的样本,所以为了防止后期学习造成过拟合,这里并不是简单的以训练集的平均误差做为训练是否终止的标志,而是使用交叉验证技术,采用一个独立的验证集,当在一个独立的验证集上的误差达到最小时,就停止训练。

图5 卷积网络分类器在进行后期训练

4 实验结果

Carcia 等[8]的神经网络是一个经典的卷积网络模型,为了与本文提出的增量学习式的网络在两方面进行性能比较,本文首先采用4858幅样本对两者进行前期的成批训练,一方面是比较经过前期训练的网络的检测速度与精确度性能,第二方面是关于两个网络对于新增样本的后期学习的效果比较。

4.1 前期训练结果比较

首先使用10000张与训练图片同样大小的识别图片对前期效果进行测试。

当网络生长到11分支时,它在检测图片库的识别率已经超过了Carcia 的方法,但是此时网络的规模也已过大,耗费时间大于Carcia ,这样的结果肯定了这样一个事实,网络的识别率是和规模成正比的,如果希望识别率更高,可以继续增大网络规模。使用这种结构增长式网络最主要的目的,就是在识别率和识别速度这两个要素之间取得一个平衡, 综合两个因素,决定放弃最后加入的几个分支,网络最终将分支维持在六条。虽然6分支的ICNN 的识别率比Carcia 略低,但是所耗费的识别时间却只有后者的63%。这里存在争议,7分支的网络识别率更高些,而速度也不算太慢,但是与6分支的网络相比,它的识别率只提高了0.06%,但是识别速度却降低了25%,所以综合考虑我们决定选择6分支的卷积神经网络。

再使用一些来源于网络的图片为两者的检测率做一下比较,经过后期训练之后,ICNN 的人脸检测率为91.8%,虚警数为213。Carcia 等的检测率为92.5%,虚警数为187。但是前者的复杂度远小于后者,只有后者的63%。

4.2 后期训练结果比较

前期训练的检测结果表明网络在复杂背景下的虚警较高,于是如第4节所描述的,增加一千幅新的样本进行后期学习。

之前我们已经使用了Cmu 图片库中的10000幅图片做了初步的识别,称为测试图片库,识别结果如表1,其中错检221幅,主要的错检对象是一些倾斜角度较大,光线不良的图片。因此,我们另外收集了1000幅人脸非人脸样本,其中有针对性的选择了一些倾斜角度较大,光线不佳的图片,再加上原先用于训练的4858幅样本,总共5858幅图片做为我们的后期训练样本。同时,另外再从Cmu 图片库中选择8000幅图片做为验证图片集。

表1 前期训练结果比较

检测率

每张图片检 测时间(秒)

2009年4月 顾佳玲,等:增长式卷积神经网络及其在人脸检测中的应用 Apr., 2009

长式卷积网络与传统网络相比的优势。

再重新使用先前的来源于网络的图片为两者的检测率做一下比较,证实经过后期训练,检测率也有一定提高,由

原先的91.8%上升到92.3%,虚警数由213下降到158。本文方法检测人脸的部分结果如图6

所示。

图6 ICNN 所检测的部分图片结果

5 结论

本文主要阐述一种构造卷积网络的思想,它利用增量的方式从最简单的网络开始增长,生成一个检测速度很快而网络规模却相对较小的的卷积网络。在文中,我们在决定网络最终如何定型时,将检测速度放在了比较重要的位置,适合于对检测速度要求较高的网络,比如类似于工业上的自动分类;但是对于某些对检测率要求高的情况下,如果以速度作为代价,理论上它的精确率可以逼近任意值,最终的实验结果中,主要的漏检目标为脸部过分偏斜和光照不均匀的人面,在Carcia [8]

的实验中,他采用了大量偏移角度在20至60 度范围内或是光线不良的人脸图片作为训练对象,总的训练图片库超过五万张,最后在网络图片中的检测结果,检测率为95.3%,虚警为104。但是在使用同一样本库训练的大前提,与文献[8]的检测结果对比中,本文的理论仍然有较明显的优点。

参考文献:

[1] 孙宁. 人脸检测综述[J]. 电路与系统学报, 2006, 11(6): 104-108. [2]

B Moghaddam, A Pentland. Probabilistic visual learning for object

representation [J]. IEEE Trans Pattern Analysis and Machine Intelligence (S0162-8828), 1997, 19(7): 696-710.

[3]

H Rowley, S Baluja, T Kanade. Neural Network-Based Face Detection [J]. IEEE Trans Pattern Analysis and Machine Intelligence (S0162-8828), 1998, 20(1): 23-38.

[4] 梁路宏, 艾海舟, 肖习攀. 基于模板匹配与支持向量机的人脸检测[J]. 计算机学报, 2002, 25(1): 22-29.

[5]

Paul Viola. Rapid Object Detection using a Boosted Cascade of Simple Features [C]// IEEE Conference on Computer Vision and Patter Recognition (S0162-8828), 2001. USA: IEEE, 2001.

[6] Jose Hiroki Saito, et al . Using CMU PIE Human Face Database to a Convolutional Neural Network-Neocognitron [R]// European Symposium on Artificial Neural Networks Bruges, Belgium: ESANN, 2005,(4): 27-29.

[7]

C Carcia, M Delakis. A Neural Architecture for Fast and Robust Face Detection, Proceeding [R]// 16th th International Conference on Pattern Recognition. Canada: ICPR, 2002, (2): 44-47.

[8] C Carcia, M Delakis. Convolutional Face Finder: A Neural

Architecture for Fast and Robust Face Detection [J]. IEEE Trans. Patterns Analysis and Machine Intelligence (S0162-8828), 2004, 26(11): 1408-1421. [9]

白润才 李建刚 郭旭颖. 基于图形用户界面的BP 神经网络建模与仿真[J]. 系统仿真学报, 2005, 17(11): 2825-2827.

相关主题