APP下载

基于交叉并行卷积神经网络的货物列车车厢号识别系统

2019-03-28

制造业自动化 2019年3期
关键词:池化层车厢交叉

(青岛大学 自动化学院,青岛 266071)

0 引言

车厢号是区分不同车厢的标志,在铁路货物运输系统中,准确的识别和记录车厢号,对运输费用的结算、铁路系统的安全稳定运行等具有十分重要的意义,对于货物列车车厢号的识别问题,国内外已有典型解决方案,由Jang等设计的两阶段识别法[1],借助模板匹配以及人工的神经网络来达到预期效果、国内的有通过射频识别的技术建立起车厢号的电子标签记录系统等[2]。传统的识别方法大多采用人工干预设计的特征,且包含分割图像,边缘提取等繁琐的步骤,对周围环境、图片质量要求较高,设计出来的系统常存在着效率不高、改造困难、维护复杂等缺陷。卷积神经网络在训练的过程中通过卷积层以及下采样层,自动学习图片的最优特征,通过更新神经元之间的权重与偏执确立模型,在一定程度上,缩短了识别所需的时间,极大的提高测试识别的准确率,并且整个系统更为灵活,便于后期的调试维护。

1 卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈的拓扑结构,它主要包括重复交替的卷积层、池化层以及全连接层[3],通过互联多层的平面对获取的子特征进行阶梯式处理,经过多次迭代操作反向调整优化权重和偏置,从而将视觉系统进行模型化,使其对输入数据的要求更低,具有更好的鲁棒性和泛化力。

1.1 稀疏链接

在传统的神经网络结构中,一层内的每个神经元对下一层所有的神经元节点都是采用全部连接的形式,从而导致网络中整体参数的数量较多,计算量太大,而CNN则较之前做出了改进,新增了旧网络不包含的层级[4],通过感知局部的区域,加强邻层神经元节点的局部有效连接来学习原始图像的局部空间联系特征,进而能够有效的减少学习网络需要计算、调整的参数个数,提高设计系统的运行速度。

图1 稀疏链接

1.2 池化层

原始的输入图片经过卷积层学习到局部联系的特征之后,就要进入池化层进行图像的压缩处理,即合并在逻辑结构上相似的子样特征[5],与传统将全部的特征纳入分类层相比,这种操作主要有两方面的优势,一是实现了对特征的降维处理,一幅图像中不可避免地包含诸多对系统运行无用的内容,池化层就可以有选择性地保留关键部分的信息,有效的减少系统后期数据处理的计算规模;二是能够归一化特征尺度,不论原始的输入图像大小如何,经过池化层后都会得到相同大小的池化特征,提高系统对空间位移变换的鲁棒性。

图2 池化层

2 搭建轻量级交叉并行卷积框架

物体的检测、分类、识别一直是数字图像处理领域较为热点的研究方向,现已经有RCNN、Fast RCNN等诸多模型结构,这些模型大多先进行物体的分类过程,然后再利用回归器完成边框预测,并且存在网络结构大,参数存储空间需求大,系统运行不迅速等劣势。轻量级交叉并行卷积神经网络是最新提出的一种检测方法,它合理调整网络深度及每层卷积核大小,缩减网络结构,将物体的检测问题视为回归类问题,并且在一个独立的网络结构中同时完成物体检测和目标分类两个任务,将神经元活跃的卷积池化层采用模型并行,而权值计算数量庞大的全连接层采用数据并行,它是一个端到端的网络,输入原始视频,经过一次推断,就可以得到相应的物体所处位置以及所属类别,很大程度上化简了模型的复杂度,缩短识别时间,更有利于模型在实际场景中的泛化运用。

由于我们要识别的数字类别只有十个,自己制作的数据集数量也只有20000张左右,如果直接采用原模型(PCNN)原本具备的11个卷积层[6],就会出现层数过多、数据集过小的不匹配问题,进而导致欠拟合的现象,会大大降低定位、识别的准确率,基于此,我们做出了改进,缩小卷积层数及卷积核的大小,采用轻量级的五层卷积神经网络,包括并行的三个卷积池化层与两个全连接层,与此同时,采用卷积层交叉并行的思想,用2×2的池化层进行下采样,最后将两个并行通道的特征图连接融合传入到全连接层,具体的网络结构如图3所示。

图3 交叉并行卷积网络结构

3 训练、测试模型

在进行系统训练时,首先将图像归一化尺度为448×448进入输入层,输入的图像会被切分成7×7个小方格区域,每个小方格只负责预测该方格内是否包含目标、目标所属类别、边框的位置及大小[10],经过卷积、池化层完成目标检测和属性分类,每个小方格会预测出2个预选框,10个类别,最后通过非极大值抑制算法,就是寻找局部像素点的最大值,把其余点的灰度值强制置0,输出维度为7×7×(2×5+10)的向量。

3.1 交叉熵损失函数

神经网络中常用的损失函数是二次代价函数,其表达是如下:

其中C表示代价函数(cost function),n表示样本数量,x表示具体的样本。

改进后的损失函数,参数的收敛速度只关系到样本的预测值与实际值的差,激活函数本身的梯度问题就不会对其产生负面的影响。

3.2 修正线性激活函数

RELU(rectified linear unit)修正线性单元,表达式为f(x)=max(0,x),是一种更加契合人类神经元工作原理的激活函数,已经日益取代了Sigmoid函数成为了主流。传统的Sigmoid函数缺乏稀疏性的特点,为了产生必要的稀疏数据,它需要借助惩罚因子来产生大量的近乎为0的数据,而RELU则通过直接将小于0的输出置为0的操作[8],强制性的产生稀疏数据,也就是说,它会随机初始化网络,只让一半的隐含层是处于真正的被激活的工作状态,这种改进使得输出结果既具备了稀疏性的特点,又在一定程度上缩短了训练时间,即使系统不经过预训练,也能达到较为理想的效果。

3.3 Adam优化器

梯度下降算法(Gradient Descent)是在深度学习中常用的一种优化手段,但是这种算法需要依赖经验,预先设定学习率应用于所有的参数,而且常常陷入鞍点或者局部最小点的状态,为了尽量避免这种非最优解的情况发生,我们采用Adam作为优化器[9],参数更新的表达式为:

4 实验结果

我们选用jupyter notebook作为程序运行平台,借助tensorflow框架,用python语言进行代码改写,对自己标注制作的20000张图片进行2000次训练达到了99.2%的测试效果。与Alex-Net模型结构相比,我们设计的模型只需使用其1/50的神经元及参数个数,就可以在节约20%时间的基础上,将准确率提高13%。模型间的各项参数对比如表1所示。

表1 模型各项参数对比

将训练好的模型运用到测试集中,并打印预测数字,实验的结果如图4所示,火车车厢的喷印数字分别为1633079、4959499,系统可以一次性实现定位数字位置、用带颜色的矩形框将每个数字分割并对数字进行识别。

图4 测试效果图

5 结束语

针对货物列车车厢号识别所面临的受自然环境影响大、准确率不高、后期维护困难等问题,本文通过搭建深度卷积框架LPCNN,在jupyter notebook平台上实现了较好的测试效果,本文的创新点主要在两个方面,一是缩减了模型结构,创新性的搭建了轻量级五层交叉并行的神经网络模型。考虑到图片集与模型深度的匹配问题,我们没有盲目使用11层卷积模型,而是依据自己的图片集数量,重新调整了卷积层数及卷积核的大小;二是针对数字的结构特点,选择了更为有效的交叉熵损失函数、RELU线性激活函数以及Adam优化器,既保留了可同时输出检测到的边框以及识别数字的优势,又显著提高了数字识别的准确率。

猜你喜欢

池化层车厢交叉
菌类蔬菜交叉种植一地双收
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
六号车厢
“六法”巧解分式方程
基于全卷积神经网络的SAR图像目标分类*
连数
连一连
SSAB Hardox悍达450材料轻型自卸车厢体测试报告