基于复合优化的深度玻尔兹曼机的路牌文字图像识别算法*
2018-01-26李文轩孙季丰
李文轩,孙季丰
(华南理工大学电子与信息学院,广东 广州 510640)
1 引言
路牌是自然场景中广泛存在的一种图像信息,其特征容易识别,能够为驾驶者提供必要的信息,指导驾驶者到达目的地。在计算机视觉的研究中,路牌图像文字识别是一个重要的方向。计算机通过识别路牌文字信息能够实现确定驾驶者所在位置、引导视觉障碍者等功能,有着重要价值。而在自然场景中,由于通过相机获得的路牌图像中文字所占区域小、分辨率较低、带有形变等因素,导致文字识别率较低。
自2009年Salakhutdinov[1]提出深度玻尔兹曼机DBM(Deep Boltzmann Machine)以来,DBM模型的应用研究取得了一定成果。其中,He等人[2]运用DBM进行红外人脸表情的识别;Hu等人[3]结合特征提取算子将DBM用于车型识别。DBM在以上应用中均优于过去的算法,但文献[2,3]中均未对DBM结构进行改进,改进模型训练方法与结构以提高目标识别效果是一个可研究的问题。
针对以上问题,本文提出一种复合优化的深度玻尔兹曼机MDBM(Mixed optimized Deep Boltzmann Machine),应用于图像文字识别。DBM网络对初值敏感,获得符合数据分布的初值能够有效提高网络的识别能力。本文同时提出一种复合共轭梯度法CCG(Complex Conjugate Gradient)对DBM中的微调算法进行改进,提高了微调算法搜索能力。相比原DBM算法,文中所提算法提高了自然场景图像中低分辨率文字的识别率与稳定性。
2 深度玻尔兹曼机
深度玻尔兹曼机[1]作为一种深度学习方法,是基于深度信念网DBN(Deep Belief Nets)提出的一种改进的概率生成模型,其主要特点在于所构成的是一个无向图,能够实现深度信念网所不能实现的自顶向下的训练反馈,实现对模糊输入数据的处理。
2.1 受限玻尔兹曼机
DBM由受限玻尔兹曼机RBM(Restricted Boltzmann Machine)构成,RBM则来源于玻尔兹曼机BM(Boltzmann Machine)。玻尔兹曼机[1,4]是由Hinton、Sejnowski与Rumelhart于1986提出的一种基于统计模型的对称模糊二值单元网络,是一个双层、无向、全连通图。由于玻尔兹曼机训练困难,为简化模型,将玻尔兹曼机同层权值间参数设为0得到RBM。
对于一个两层的RBM,其能量函数定义为:
E(v,h1,h2;θ)=-vTW1h1-h1TW2h2
(1)
其中,v为输入向量,h={h1,h2} 是第一隐层和第二隐层节点,θ={W1,W2} 是模型参数,代表可见层到隐层和隐层到隐层的对称交互权值。
模型对应于输入向量v的概率为:
(2)
(3)
可见单元v∈{0,1}D,隐藏单元h∈{0,1}P,其中D和P分别表示可见单元与隐藏单元的个数。
第一隐层单元、第二隐层单元和可见层的条件概率可通过logistic函数σ(·)获得,其表达式如下:
(4)
(5)
(6)
2.2 深度玻尔兹曼机的训练
在DBM模型中,训练过程分为无监督训练与监督训练两部分,其中,无监督训练是使模型各权值初始化,为更好地解决反向传播算法在多层神经网络中衰减的问题所提出的一种有效方法。监督学习方法则使用传统的神经网络训练方法,如反向传播算法。
2.2.1 预训练算法
Hinton等人[5]基于复杂模型的学习可由一系列简单模型的顺序学习构成的思想,于2006年提出一种贪婪的、逐层的非监督学习算法,用于预训练概率生成网络中的RBM。经过预训练后,整个网络可看作是一个概率模型,即深度置信网。在DBM中,仍使用此算法作为预训练算法。
逐层贪婪预训练算法的基本步骤如下:
(1)学习可视层v单元权值W0并假设所有权值矩阵的值是固定的;
(2)冻结权值W0,使用(W0)T推导第一隐层的二次逼近后验概率分布,即使上层的权值矩阵发生变化;
(3)保持所有的高层权值矩阵固定,除了与W0相连的,使用(W0)T所变换的原始数据学习一个RBM。
此算法若改变了高层的权值,则能够提高生成模型的变界(Variational Bound)。
在预训练算法学习中,第一层RBM生成后,生成模型的概率可以写为[6]:
(7)
其中P(h1;W1)=∑vP(h1,v;W1) 是通过W1定义的h1的先验概率。使用相同的参数定义h1的先验和似然函数P(v|h1),能够使推导更容易。
第二层的RBM通过改变参数学习一个更好的模型,其中的先验概率P(h1;W2)=∑h2P(h1,h2;W2),式中W2是在(W1)T中初始化的,并根据W2的训练数据的概率取对数后计算变下界梯度获得。包含N个训练数据的变下界例子如下所示:
(8)
其中,H(·)是熵函数,Q(h|v)是任意在l隐层中的向量的后验概率,n∈[1,N]。
在实际训练DBM时,与DBN不同,为减少在DBM低层的重复计数问题,在训练过程中使用两倍的输入数据作为输入,并保持输入到隐层的权值不变,则隐层和可见层的条件分布为:
(9)
(10)
通过使用对比散度CD(Contrastive Divergence)算法,改造后的RBM能够较好地重构训练数据。在训练第2个RBM时,将第一层计算所得结果经sigmoid等非线性函数计算,所得结果作为第二层的输入,并将输入翻倍,则条件分布为:
(11)
(12)
当上述两个模型预训练结束后,构成一个系统,所有到第一隐层的输入都将被减半,产生如下的条件分布:
(13)
对于v和h2的条件分布,与式(1)和式(3)相似。
对于多层深度网络,可重复进行逐层的预训练算法,以达到预训练整个网络的目的。
通过贪婪的预训练算法获得的两个改进的RBM产生一个带有对称权值的无向图模型,即DBM模型。当贪婪训练多于两层的RBM时,改进的模型只需使用首层和最后一层的RBM。
在训练之后,每一层中二值特征的模糊状态可被确定的,以实数值的概率替代,由此DBM变为一个确定性的多层神经网络。
2.2.2 微调算法
Hinton提出的深度学习网络中,在预训练后需要加入微调算法,而这种算法可以是传统的反向传播算法。反向传播算法是一种用于训练多层前馈神经网络的学习算法,能够有效修正隐层节点的连接权值和阈值,具有公式简洁、概念清晰等优点。
反向传播算法使用梯度下降法使网络的输出值和目标值之间的误差平方最小。在反向传播算法中,误差定义为:
(14)
其中,w为权值向量,outputs为网络输出单元的集合,tkg和okg是与训练样例g和第k个输出单元相关的输出值。
反向传播算法的学习问题是一个搜索假设空间的问题,空间中包含所有单元的所有可能的权值定义。在通常情况下,反向传播算法使用梯度下降法进行权值搜索。
Figure 1 Two-layer deep Boltzmann machine图1 两层的深度波尔兹曼机模型
3 复合优化深度玻尔兹曼机
3.1 参数混合初始化
神经网络对初始化参数敏感,针对这一问题,研究者已提出多种优化方法,如对比散度算法[7],使反向传播衰减影响降低,提高了识别精度。由此,本文针对所使用的灰度图像数据提出一种用于DBM预训练过程的参数初始化方法,通过在RBM的约束学习与自由学习过程中使用非对称取值方法改进DBM,能更好逼近数据分布,使网络的识别效果提高。
在一般的玻尔兹曼机模型训练过程中[7],首先进行约束学习,将可见单元状态值取值为训练样本值,后通过采样方法获取隐藏单元值。之后进行自由学习,网络自由运行,不约束任何可见单元状态,并采样获得新的可见单元与隐单元权值。
在DBM中,每一层均使用随机二值化方法处理输入数据,网络状态明显受随机采样效果影响,识别结果不稳定,难以确定模型是否取得最优值。本文通过直接获取训练数据作为部分层的可见单元,将灰度值初始化采样与二值初始化采样方法混合,提出一种较稳定且效果较理想的参数初始化方法。以三层MDBM为例,其算法如下:
第一层:初始化各参数。
For 1:MaxepochH1
约束学习阶段:
使用灰度训练数据作为约束学习阶段的输入数据
计算第一隐层各权值概率;
采样获取隐层二值状态值;
自由学习阶段:
计算第一隐层各权值概率;
更新各参数;
EndFor
第二层:获取前一层各参数,并初始化本层各参数。
For 1:MaxepochH2
约束学习阶段:
使用前一层训练结果的二值化结果作为约束学习阶段的输入数据;
计算第二隐层各权值概率;
自由学习阶段:
使用对比散度算法计算第二隐层各权值概率;
更新各参数;
EndFor
第三层:获取前两层各参数,并初始化本层各参数。
For 1:Maxepoch
约束学习阶段:
使用原始数据作为输入数据;
使用平均场(Mean Field)方法计算前两层的联合概率;
计算各参数;
自由学习阶段:
采样获取隐层二值状态值;
计算隐层惩罚项概率权值;
采样获取隐层惩罚项二值状态值;
计算隐层参数概率权值;
采样获取隐层参数二值状态值;
更新各参数概率权值;
EndFor
3.2 复合共轭梯度法
在DBM微调阶段,算法使用的是共轭梯度法。共轭梯度法是解决无约束最优化问题的一种常用方法,基本思想是利用已知点处的梯度构造一组共轭方向,据此搜索目标函数极值。其迭代结构简单、存储量小,且具有良好的局部和全局收敛性。共轭梯度法在对大规模约束最优化问题的求解中,其解的数值表现优于最速下降法、牛顿法、BFGS(Broyden, Fletcher, Goldfarb, Shanno)拟牛顿法等无约朿最优化算法[9]。本文针对算法中微调算法与训练算法的弱联系特性,提出一种由比例梯度法改进得到的复合共轭梯度法,优化算法的拟合能力,使算法识别率得到一定提高。
文中提出一种复合共轭梯度法CCG(Complex Conjugate Gradient),用以改进Polak-Ribiere共轭梯度法。CCG思想来源于比例共轭梯度法,比例共轭梯度法是共轭梯度法的一种改进,其结合了两点步长下降法和共轭梯度法。两点步长下降法是一种最速下降法的改进,主要目的是提高最速下降法的收敛速度。本文所提出的复合共轭梯度法是比例共轭梯度法的一种改进。
CCG搜索方向dk计算公式为:
(15)
(16)
其中,yk-1=gk-gk-1,sk-1=xk-xk-1,xk为第k次迭代时的输入。
通过论证,得到CCG的待定参数θk的取值为:
(17)
4 路牌文字识别
4.1 数据采集
本文针对所研究的对象采集并制作一个包含280幅彩色高速路牌图片的研究数据集。
4.2 图像预处理
本文实验中对图像的预处理主要分为以下几个部分:
(1)路牌的提取:通过将RGB色彩空间转化至HSV空间,使用路牌颜色特征进行路牌图像的感兴趣区域提取。实验结果如图2所示。
Figure 2 Taffic signs extraction by color feature图2 通过颜色提取路牌区域
路牌颜色提取流程图,如图3所示。
Figure 3 Flow chart of color feature extraction by color region of taffic signs图3 路牌区域颜色提取流程图
(2)路牌图像的倾斜校正:通过使用矩阵变换实现路牌图像的倾斜校正,效果如图4所示。
Figure 4 Skew correction图4 倾斜校正
路牌颜色提取流程图,如图5所示。
Figure 5 Flow chart of skew correction图5 路牌区域倾斜校正流程图
4.3 文字图像获取
针对路牌文字排列较为规范的特点,本文采用二值图像连通区域提取方法与手工分割方法获取文字图像实验数据集。本文选取文字图像数据集中的20种汉字作为实验对象,将数据库中文字图像分辨率统一为20×20,并对训练集的图像分别进行加噪或灰度增强操作,以增加训练集数据量,构成的训练集包括20类1 200幅文字图像,测试集含有20类400幅文字图像。文字图像实验数据集部分实例如图4所示。
Figure 6 Part of the images of Chinese characters data图6 采集的部分文字图像
4.4 图像识别
本文采用BP神经网络BPNN(Back Propagation Neural Network)、深度玻尔兹曼机(DBM)与复合优化深度玻尔兹曼机(MDBM)三种算法进行实验对比。各算法的实验最优识别结果对比如表1所示。
Table 1 Recognition accuracy comparisonamong the algorithms
由表1可得出,相对于BP神经网络,DBM对图像文字的识别效果最优,可认为DBM具有对文字图像较理想的识别能力。从表1中还可看出,MDBM比原有DBM在识别率上有0.5%的提高。
在表1所示的最优结果处理过程中,对DBM与MDBM微调过程的平均精度进行对比。其中,剔除前两次快速收敛过程结果,设定20次迭代中的18次结果的平均值作对比,其结果如表2所示。
Table 2 Average number of misclassificationcomparison between the DBM and MDBM
对比表1与表2中DBM误匹配个数可知,本文提出的算法在收敛过程中大部分结果均在最优值附近,优于原DBM算法。
DBM与MDBM微调迭代过程状态结果如图7所示。
Figure 7 Result comparison of 18 interactions图7 18次迭代结果对比
由图7可得出,本文提出的方法在微调迭代过程中,有效减少了反向传播中识别结果的波动,减少幅度明显,并在一定幅度上提高了识别精度。
由于微调算法的随机性,本文通过50次的实验,对比本文提出算法与DBM算法在微调过程中识别结果的稳定性与平均精度,结果如图8所示。
Figure 8 Distribution of average results of 50 experiments图8 50次实验平均结果的分布
由图8所示结果可知,本文提出算法在多次实验对比下优于原DBM算法,即可排除随机性对算法不稳定性的影响,可说明本文提出算法在路牌数据集的识别效果中优于原DBM算法。
Table 3 Average number of traffic signs’ characterdata misclassification in 50 experiments
由表3结果可知,在50次实验中,本文提出的算法在训练集平均误匹配个数较原DBM算法减少了20.01,在测试集中减少5.51。
综合3.4节的实验结果,本文提出的MDBM算法在灰度路牌图像数据集中的识别精度优于原DBM算法,即混合参数初始化方法对灰度路牌文字图像的识别有提高。
文中的识别实验程序实现展示如图9所示。
Figure 9 Display of recognition results图9 识别实验程序展示
5 结束语
深度玻尔兹曼机是一种改进的概率生成模型,具有无监督的特征提取能力和分类识别能力,对模糊数据的分类识别有较理想效果。本文主要工作在于提出一种改进深度玻尔兹曼机数据集初始化及微调过程的方法,由此构建一种复合优化深度玻尔兹曼机(MDBM)深度学习模型。文中通过采集自然场景中的路牌图像数据,提取并构造文中使用的路牌文字图像数据集。通过将提取及识别文字部分结合,提出一种对自然场景中的路牌图像中的低分辨率文字进行识别的方案。文中实验结果显示,MDBM方法相对于原DBM算法在识别精度与稳定性上均有一定提高。未来可通过实验数据的进一步扩充及算法效率的提高两个方向对网络模型进行研究。
[1] Salakhutdinov R,Hinton G E.Deep Boltzmann machines[C]∥Proc of International Conference on Artificial Intelligence and Statistics,2009:448-455.
[2] He Shan,Wang Shang-fei,Lan Wu-wei,et al.Facial expression recognition using deep Boltzmann machine from thermal infrared images[C]∥Proc of 2013 Humaine Association Conference on Affective Computing and Intelligent Interaction (ACII),2013:239-244.
[3] Hu Ai-qin,Li Hong,Zhang Fan,et al.Deep Boltzmann machines based vehicle recognition[C]∥Proc of the 26th Chinese Control and Decision Conference (2014 CCDC),2014:3033-3038.
[4] Zheng Yin,Chen Quan-qi,Zhang Yu-jin.Deep learning and its new progressin object and behavior recognition[J].Journal of Image and Graphics,2014,19(2):175-184.(in Chinese)
[5] Hinton G E, Osindero S, Yee-Whye T. A fast learning algorithm for deep belief nets[J].Neural Computation,2006,18(7):1527-1554.
[6] Hinton G E.Training products of experts by minimizing constrastive divergence[J].Neural Computation,2002,14(8):1771-1800.
[7] Liu Jian-wei,Liu Yuan,Luo Xiong-lin.Research and development on Boltzmann machine[J].Journal of Computer Research and Development,2014,51(1):1-16.(in Chinese)
[8] Mohd R, Muhammad F, Mustafa M.New modifications of conjugate gradient coefficient with global convergence properties[C]∥Proc of 2012 IEEE Symposium on Humanities,Science and Engineering Research,2012:625-629.
附中文参考文献:
[4] 郑胤,陈权崎,章毓晋.深度学习及其在目标和行为识别中的新进展[J].中国图象图形学报,2014,19(2):175-184.
[7] 刘建伟,刘媛,罗雄麟.玻尔兹曼机研究进展[J].计算机研究与发展,2014,51(1):1-16.