APP下载

集装箱箱号字符识别算法研究

2021-08-06曹林根

计算机工程与应用 2021年15期
关键词:字符投影集装箱

曹林根,宓 超

上海海事大学 物流工程学院,上海 201306

如今,随着全球经济一体化的发展,越来越多的国际贸易、货物运输依赖于集装箱,港口集装箱的吞吐量增速加快[1]。准确、快速地提取集装箱箱号对于集装箱智能化管理以及运输显得至关重要。为此,许多工程师和研究人员提出一些用于集装箱箱号自动识别技术:如射频识别(Radio Frequency Identification,RFID)[2]、无线传感器网络(Wireless Sensor Network,WSN)[3]等。然而,在目前的集装箱智能化管理系统中,基于计算机视觉的集装箱箱号自动识别(Automatic Container-Code Recognition,ACCR)逐步成为现代化港口箱号识别的主流方式,因其无需增加额外附件且成本较低。

集装箱箱号采用了ISO 6346国际标准,其由3个部分组成[4],4个大写箱主英文字母、6位分类数字号和1个校验码。这11 个ISO 字符是作为集装箱的唯一标识代码,典型集装箱箱号图像如图1所示。

图1 集装箱箱号图像示例Fig.1 Example of container number image

通常,集装箱箱号自动识别(ACCR)系统关键技术包括箱号区域定位与倾斜校正、箱号字符分割、箱号字符识别3个部分[5],图2为集装箱箱号自动识别(ACCR)系统的流程图。一些研究人员和工程师围绕这3 部分进行了大量的研究,并取得了众多研究成果,其中箱号区域定位与倾斜校正是箱号自动识别系统的关键。目前集装箱箱号定位方法可以分为基于边缘与滑动窗[6]、基于数学形态学[7]、基于连通域分析的方法[8];基于边缘与滑动窗的箱号字符定位方法是利用边缘检测算子检测出箱号字符边缘信息,并结合滑动窗寻找具有区分度的字符描述特征来实现箱号字符区域定位,虽定位效果好,但描述特征会受到光照、阴影等影响。基于数学形态学箱号字符定位方法适用于堆场和码头等背景较复杂的场合,但其面对光照不均以及拍摄距离变化容易导致定位失败。基于连通域分析箱号字符定位方法是利用最大稳定极值(MSER)来初步区分字符与背景区域,在通过连通域分析筛选箱号字符区域。取得不错的定位效果,对于褪色以及生锈问题具有鲁棒性,但会受到光照不均的影响。此外,在图像采集过程中,由于相机的位置以及集装箱的停靠位置的不确定性,使得图像中的箱号存在水平或者垂直倾斜,进而影响字符的准确分割以及识别。常用的倾斜校正方法有基于分块质心法[9]、基于投影分析法[10]、基于外接矩形法[11]和Hough变换法[12],但上述方法主要关注于水平倾斜校正,而且相对于车牌、箱号的倾斜校正更加复杂。定位出的倾斜箱号区域除了目标字符外,还有距离很近的干扰字符,这导致了大多数依靠对箱号字符进行直线拟合得到倾斜角度,进而实现校正的方法往往不尽人意。文献[9]为了排除干扰字符的影响,检测出箱号的前4个大写英文字母的水平倾斜角度来代替整体的倾斜角度,进而实现箱号的水平校正,虽校正精度较高,但前4 个大写英文字母有断裂,污渍以及字母与数字错开时,该方法校正结果也不太理想。旋转投影法[13]是箱号垂直校正的常用方法,该方法虽垂直倾斜角度检测精度高,但对最佳倾斜角的求取是一个寻优的过程,计算复杂度高且运行时间长。对于校正后的箱号字符利用投影法可以有效进行字符分割,箱号字符识别阶段,常用的识别方法主要有模板匹配法[14]和神经网络法[15-16],基于模板匹配方法实现简单且处理速度快,但干扰性能差,基于神经网络方法分类能力强且容错性好,但关键在于网络参数取值比较敏感以及字符识别环节前的图像处理的效果。

图2 传统集装箱箱号自动识别流程图Fig.2 Flow diagram of automatic recognition of traditional container number

近年来,因深度学习可以直接依靠训练字符数据来实现字符的识别[17],受到当下大量学者研究;Wang 等[18]采用一种基于深度学习的目标检测算法Faster-RCNN对集装箱箱号字符进行检测和识别。Wang等[19]则采用改进的Faster-RCNN 和区域生成网络(RPN)实现箱号检测,最后采用改进的CNN 对目标字符进行识别。基于深度学习的字符识别方法拟合能力比较强,通过合理的网络设计或者改进,可以对大小不一的字符串进行识别。尽管如此,但对于箱号断裂或者倾斜较大,则会影响其特征提取的准确度以及字符识别效果。同时倾斜校正作为箱号自动识别系统的关键技术,传统方法上倾斜校正精度不佳,使得箱号识别率低于深度学习。

为此,本文结合已有的研究成果以及图像采集环境和箱号自身的特点,采用一种改进型的差分边缘检测粗定位算法,通过处理光照不均箱号图像的二值化分割实现箱号快速粗定位,并利用改进的最小二乘法和梯度下降投影的字符矫正及分割算法,有效排除干扰字符影响的同时实现倾斜箱号的精确定位与分割;最后采用BP神经网络对箱号字符进行识别,并与传统算法、深度学习算法进行实验对比,实验结果表明,本文方法在能够提高箱号识别速度的同时,实现了箱号识别的高检测率与低错误率。

1 集装箱箱号定位

实际采集的箱号图像,受到光照不均、箱号污损和箱号倾斜等因素的影响,不利于对箱号字符信息的提取,故首先采用一种改进型的差分边缘检测粗定位算法。

1.1 改进型差分边缘检测图像二值化算法

依据公式对集装箱灰度图像进行差分边缘提取运算:

式中,像素点的新灰度值为相邻右下像素点灰度差值的绝对值和。

依据公式对边缘图像进行二值化:

式中,Threshold为动态阈值。

新型差分边缘检测图像二值化算法过程如下:

(1)设集装箱图像的尺寸为M×N,则图像共有N行M列;初始化阈值Threshold=1 与边缘检测数Numcount=M×N。

(2)边缘检测数Numcount=0,初始条件Threshold=1,若Numcount/M/N>b,则进行步骤(2),不满足,则停止遍历图像。

(3)遍历集装箱图像,根据公式(1)提取图像边缘,公式(2)中若G(x,y) >Threshold,则依据公式(2)进行集装箱边缘图像二值化操作,则out(x,y)=255,且边缘检测数Numcount+1。

(4)动态阈值Threshold+a,继续进行步骤(2)、(3),检测满足条件的图像边缘。

(5)对边缘二值图像进行区域填充,得到集装箱二值化图。

通过大量集装箱箱号图像样本实验,a=0.07~0.08,b=3,可以得到理想的二值化图像。

1.2 集装箱箱号粗定位算法

采用加权平均法将彩色集装箱图像转换为灰度图像[20],利用改进型的差分边缘检测图像二值化算法实现集装箱图像二值化。

对二值化图像中若干个连通区域取轮廓操作,依据连通域轮廓外接椭圆长轴、短轴、长轴与短轴之间最大值、长轴与短轴之间最小值、轮廓面积等参数,去除非箱号区域,保留感兴趣的箱号区域。

经过连通域分析后得到的是单个箱号字符候选区域,对连通分量进行聚类,在聚类算法中,类别的相似度衡量是体现聚类算法有效性的关键。进而扫描图像中所有的箱号字符候选区域,获取其最小外接矩形的面积、宽度、中心坐标以及相邻最近矩形顶点坐标,利用参数关系对相同类别进行聚类[21]。同时对未能聚合的箱号区域,采用形态学闭运算对箱号区域聚合,进而实现箱号的粗定位,集装箱箱号粗定位过程如图3所示。

图3 集装箱箱号粗定位过程示例Fig.3 Example of rough locating process of container number

1.3 基于改进的最小二乘法集装箱箱号精定位算法

由于图像采集环境的不确定性和拍摄角度等影响,粗定位后的箱号字符存在倾斜,而且除了箱号字符外,还有距离很近的干扰字符;直接采用投影法无法精确定位出箱号,还会影响后续箱号字符分割。故首先采用改进的最小二乘法实现水平倾斜校正,在进行投影精确定位。

为了拟合最佳直线,提高水平倾斜角检测的精确度,本文利用箱号字符列中心点作为特征点,并利用距离拟合对较远干扰数据点进行剔除。

最小二乘法拟合直线原理如下:

设直线方程为y=ax+b,其中b为截距,a为斜率。根据最小二乘法的性质,拟合出的直线应该与输入数据的偏差平方和最小,即目标函数为:

当求得式最小时,只需要对直线参数求偏导,参数a、b满足:

即有:

求出a和b的值,则得到拟合直线,改进的最小二乘法原理和实现过程如下:

(1)示意图如图4,dt为第t次定义为去除干扰点的阈值,dt=h×dt_max,其中dt_max为第t次直线拟合后,最远的数据点到直线的距离,h为比例系数。

图4 数据点拟合直线示意图Fig.4 Data point fitting line diagram

(2)总的数据点n与保留的有效数据点ns的关系为ns=n×p,其中p为比例系数,设定数据点到拟合直线的距离dn大于dt,则剔除,剔除数据为y,剩余数据g=n-y,每次通过最小二乘法拟合直线为Lt。

具体实现过程:首先,设定比例参数h和p,对数据n采用最小二乘法拟合直线Lt;然后,dt=h×dt_max,若dn≥dt,干扰点剔除,若dn≤dt,予以保留;其次,若g≤ns,则停止拟合,此时拟合的直线Lt为最佳,若g>ns,重复前一个步骤,继续拟合直线Lt+1;最后,多次进行直线拟合,得到最佳拟合直线Lt+1。图5为改进的最小二乘法流程图。

图5 改进的最小二乘法流程图Fig.5 Improved least square method flow diagram

改进的最小二乘法精确定位具体实现过程:

(1)对于混合倾斜集装箱箱号二值化图,通过种子填充算法进行字符连通域标记,确定每个连通域外接矩形的左上顶点坐标(xn_0,yn_0)与右下顶点坐标(xn_2,xn_2)(n=1,2,…,k,k为连通域个数)。

(2)设每个字符连通域外接矩形大小M×N,设X、Y代表字符每列中心的横坐标与纵坐标,每列的中心坐标可以为(Xm,Ym),其中(m=1,2,…,M)。

(3)寻找字符每列像素纵坐标的最大值ymax与最小值ymin,若ymax=ymin,则列中心点的纵坐标为Ym=ymin,否则列中心点的纵坐标为Ym=ymin+(ymax-ymin)/2。

(4)将列中心点坐标移入直角坐标系中,利用改进的最小二乘法拟合直线。

(5)得到最佳拟合直线的倾斜角α后,利用仿射变换实现水平倾斜校正。

(6)采用投影法精确定位出箱号。

通过使用40 幅图像对上述方法进行实验,本文的研究对象比例参数h=0.80~0.82,p=0.8,直线拟合最佳,集装箱箱号精定位过程如图6所示。

图6 集装箱箱号精定位过程示例Fig.6 Example of container number precise locating process

2 集装箱箱号分割及识别

2.1 基于梯度下降投影的箱号字符矫正及分割算法

精确定位出的箱号在垂直方向上存在倾斜,这种倾斜是图像坐标相对于X轴Y方向的错切。若字符过于倾斜的情况下,会造成字符在某一方向上的粘连,不利于字符分割,同时后期采用神经网络识别容易引起误识别,例如1和7。所以,本文提出基于梯度下降投影的字符矫正及分割算法,通过不同的步长对精确定位出的箱号边缘图像旋转并投影,利用目标函数对应的投影负梯度方向,找出最小投影长度所对应旋转角度。进而实现垂直倾斜校正。公式(7)为:

为了避免梯度算法陷入局部最优,本文选取了合适的角度范围,使得字符校正在该范围内仅存在一个谷底。梯度下降投影的字符矫正及分割算法具体实现过程如下:

(1)判断箱号垂直倾斜的方向,设步长ηt=α°,字符个数为n,第j个字符的投影长度为Lj,ηt下投影总长度为,则,计算原箱号字符投影总长L0,将箱号图像旋转±ηt,分别计算Lα°与L-α°,若Lα°

(2)设定初始的投影总长L0,步长ηt=β°,收敛条件σ,角度θ。投影梯度计算∇f(L);更新L,L(i+1)=L(i)-β f′(L(i)),用更新后的L(i+1)来计算f(L(i+1)),比较f(L(i+1))与f(L(i))的大小关系,若f(L(i+1))-f(L(i))>σ,重复以上步骤,否则停止,并记录角度label。

(3)设定步长ηt=κ°,在[label-5°,label+5°]范围内重复步骤(2)中找寻最小f(L)对应的label。

(4)设定步长ηt=λ°,在[label-1.5°,label+1.5°]范围内重复步骤(2)中找寻最小f(L)对应的倾斜角φ,错切变换实现垂直倾斜校正。

(5)投影法进行字符分割。

梯度下降投影字符矫正算法如下所示:

图7 为垂直校正结果图,图8 为投影法分割出的箱号字符图像。

图7 垂直校正结果图Fig.7 Vertical correction result diagram

图8 箱号字符分割图Fig.8 Container number character segmentation diagram

2.2 BP神经网络箱号字符识别

箱号字符需要识别的计算量不是很大,故采用BP神经网络算法。利用训练神经网络的方法实现字符识别。首先将单个箱号字符进行归一化与细化处理,并采用13 点特征法提取字符特征。网络训练的BP 算法是一个迭代过程。它被反复应用于一组输入输出对,称为训练集,直到输出误差达到理想的小值。BP 神经网络包括输入层、隐藏层和输出层等3 个层面[22]。其结构如图9所示。

图9 BP神经网络结构示意图Fig.9 Structure diagram of BP neural network

本文设计两个三层BP神经网络分别实现集装箱箱号中数字与字母的识别,这样可以避免一些易混淆的数字和字母的识别,如S 与5,B 与8 等。其输入层神经元数目均为128,在本程序中,对于数字网络采用8421 码对0~9进行编码,但由于选用S形函数作为传输函数,则输出永远达不到0 或1,只能接近,进而采用(0.1,0.1,0.1,0.1)输出向量来表示输出“0”,(0.9,0.1,0.1,0.9)输出向量来表示输出“9”,其他数字同理,而字母网络,其目标字符为A~Z 这26 个字母,由于它的范围在24和25之间,所以它的输出层神经元数目为5,其中识别字母的BP 神经网络的隐含层神经元数目设为32,识别数字的BP神经网络隐含层神经元数目设为12。

在BP 神经网络训练中,数字网络最小均方误差设为0.001,训练步长为0.012,动量因子为0.1,最大迭代数为10 000 次,字母网络最小均方误差设为0.001 4,训练步长为0.012,动量因子为0.3,最大迭代数为14 000次。利用训练好的网络对箱号字符进行识别过程中,将1~4个字符送到字母网络,5~11个字符送到数字网络中。

3 实验结果与分析

本文实验样本均采集于苏州太仓港闸口车道出入口处,其中选取1 050 张实验样本,所测试样本包含了昼、夜样本,分辨率为1 920×1 080,且包含了不同的集装箱箱型,光照条件,倾斜角度以及不同的自然环境下的样本。通过对箱号定位与分割后,将字符数据分成两组:一组用作样本集训练,将训练结果作为标准模板;另一组作为测试样本集。本文算法在Intel Core i5-8300H处理器2.30 GHz CPU 和8 GB 内存的计算机上,用MATLAB R2017b编程实现。

为了验证本文提出的箱号定位算法及整体识别算法性能,其中定位部分与文献[23]的基于MSER 和连通域分析方法、文献[24]的基于顶帽变换和灰度跳变特征方法进行对比,整体识别部分与文献[25]中的Yolov3算法、文献[26]的基于压缩感知的识别方法进行对比。均在相同箱号图像、相同仿真实验环境下进行,同时以箱号定位成功率、字符识别成功率以及平均检测时间作为性能评估准则,具体实验结果如表1所示。

表1 箱号识别实验结果统计Table 1 Statistical results of container number recognition experiments

由表1可以看出,本文的定位率和文献[23]、文献[24]相比较高,说明本文定位算法具有较好的抗干扰性能。原因在于本文采用改进型的差分边缘检测算法,增强了对较低对比度和光照不均情况的处理能力,同时可以有效排除箱号倾斜下非箱号区域字符的干扰。而文献[23]采用最大稳定极值区域(MSER)方法对于不同倾斜且多光照背景下箱号定位容易失败,文献[24]采用OTSU进行二值化,不能适应于较低对比度或背景较复杂的情况,而且对于光照不均鲁棒性较差。但本文还存在一定的定位错误,主要在于某些字符对比度太低或者光照太强导致边缘检测不出而无法形成连通域。从平均检测时间来看,本文算法满足实际应用中的实时性要求。由于本文的倾斜校正方法精度较高,字符分割正确率可达到98.5%,图10为集装箱箱号粗定位和分割示例。

图10 集装箱箱号粗定位和分割示例Fig.10 Example of rough location and segmentation of container number

从箱号整体识别实验结果表明,本文的总体检测精度为95.7%,Yolov3 算法[25]的为91%,文献[26]的方法为90.9%,可见本文综合识别率相对较高,因为Yolov3 算法虽可实现端到端的识别,但面对箱号图像的倾斜与偏转鲁棒性不佳,同时未对集装箱图像进行多尺度融合,较低对比度图像识别效果也不好。文献[26]虽对箱号背景颜色具有鲁棒性,但对倾斜与偏转箱号定位以及较失真字符分割效果较差。而本文对于倾斜与偏转箱号的校正精度较高,保证了分割出的箱号字符含有更多的结构信息,且采用字母与数字分开识别策略,使得字符识别效果较好。图11为Yolov3和本文方法识别结果示例。

图11 Yolov3和本文方法识别结果示例Fig.11 Yolov3 and illustration of recognition results of proposed method

4 结论

针对集装箱图像采集环境和箱号自身的特点,研究了箱号识别系统中的关键技术问题。对于箱号图像光照不均问题,采用了一种改进型的差分边缘检测粗定位算法;然后利用改进的最小二乘法有效地解决箱号偏转难以精确定位的问题,接着运用基于梯度下降投影字符矫正及分割算法,实现对倾斜箱号的校正和分割,最后采用BP神经网络对箱号字符进行识别。实验测试结果表明本文提出的算法精度高、鲁棒性好、识别速度符合实时性的要求,具有一定实用价值。

猜你喜欢

字符投影集装箱
美军一架C-130J正在投放集装箱
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
字符代表几
一种USB接口字符液晶控制器设计
虚实之间——集装箱衍生出的空间折叠
找投影
找投影
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符