基于BP神经网络的集装箱识别系统
基于BP 神经网络的集装箱识别系统
摘要:我国作为全球水运的大国,集装箱的吞吐量连续多年在世界上处于首先地位。快速高效地识别集装箱号码是一个亟需解决的问题。集装箱识别系统主要包括图像预处理、集装箱号定位、箱号分割、箱号识别几个方面。
在图像预处理设计中,由于原图像为2816*2112大小的,处理速度较慢,所以先对图像进行压缩处理,接着用大津法对图像进行二值化。采用投影法结合形态学变换中的腐蚀与膨胀对图像进行定位,对定位之后的结果进行归一化,再用边缘检测进行图像分割。对分割之后的结果进行字符识别。字符识别的方法有很多种,本次设计中采用BP 神经网络进行集装箱号识别。
问题描述
集装箱的号码由4个大写英文字母和7个阿拉伯数字组成,英文字母代表了箱主代号,阿拉伯数字的前六个为顺序号最后一个为校验号。集装箱识别系统算法好坏的一个评价指标为识别率。由于集装箱号的位置、大小、字体和倾斜度的不确定性,集装箱号是否分行的不确定性以及采集图像时的光照强度的不确定性,这些因素都影响着箱号的识别率。
怎样提高识别率呢?这将是本项目的重点和难点。由于在图像处理过程中,定位、分割、识别共同决定了图像的识别率,识别率越高,算法的可行度就越好。所以解决问题的关键就在于如何提高定位、分割、字符识别过程的准确性。本文仅研究识别过程。
最常用的字符识别方法为模式匹配法和BP 神经网络。以下就这两种方法进行介
绍。
模板匹配法
模板匹配法是指先在图象中检测出己知形状的目标物,然后利用这个目标物的形状模板与图象匹配,在约定的某种准则下检测出目标物图象的过程。它可以检测出图象中的线条、曲线和图案等。
在集装箱识别系统中最初通过计算明可夫斯基测度来寻找最相似的字符,由于最终识别率仅有73%左右,在工程中算法的可行度不够,为了提高字符识别阶段的识别率,开始尝试第二种算法:BP 神经网络。
BP 神经网络
BP 神经网络是误差反向传播神经网络的简称,是神经网络的一个重要分支,是有监督学习网络,也是在实际应用中最常见的网络。基于并行的网络结构,主要由输入层、隐含层、输出层组成,能够实现m 到n 维的非线性映射,网络的学习方法采用梯度下降法。当一对学习模式提供给网络后,各神经元获得网络的输入响应并产生神经元之间的连接权值,然后按照减小希望输出与实际输出误差的方向传播,这个过程即为前向传播。网络连接的权值的修改从输出层开始,经各中间层到输入层(误差的反向传输过程) 。正向传输和反向传输过程反复进行j 直到网络的全局误差趋向于设定的极小值,这就是BP 算法,采用这种算法的多级非循环网络被称之为BP 神经网络。
方案设计
第一步:隐层数。一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik 等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid 转换函数,则含一个隐层的MLP 网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP 网络时可参考这一点,应优先考虑3层BP 网络(即有1个隐层)。所以在对集装箱号进行识别的过程中,选用三层BP 网络。
第二步:相关参数的设置及网络的训练。通过设置权值和阈值的相关参数,网络的输入、输出,对网络进行训练,最终完成网络的学习过程。设置网络的训练模式为自适应lr 动量梯度下降法。权值训练步长为0.05,最大训练次数为5000,均方误差为0.001,训练显示间隔为10。
第三步:测试网络。网络训练完成后,系统生成了字母及数字网络系统,此时某一幅将被分割出来的集装箱箱号的字符图片输入网络,观察网络的输出,最终得到某集装箱图片的箱号。
实验结果与分析
图一:BP神经网络测试结果
测试结果对比中,横坐标表示输入的字母次序,纵坐标表示神经网络的输出值。若横坐标上的两个点重合表示识别正确,否则表示识别错误。由上图可以看出识别有错误,主要原因是只训练了一组样本。将分割结果中的具有较明显特征的字符图片进行训练,虽然训练时间较长,但
不影响识别速度,同时提高了识别率。