文章快速检索    
  同济大学学报(自然科学版)  2019, Vol. 47 Issue (2): 285-290.  DOI: 10.11908/j.issn.0253-374x.2019.02.018
0

引用本文  

张绍明, 毛艺凡, 王建梅, 冯甜甜. 大角度透视变形集装箱图像箱号识别方法[J]. 同济大学学报(自然科学版), 2019, 47(2): 285-290. DOI: 10.11908/j.issn.0253-374x.2019.02.018.
ZHANG Shaoming, MAO Yifan, WANG Jianmei, FENG Tiantian. Container Code Recognition from Images with Large Perspective Deformation[J]. Journal of Tongji University (Natural Science), 2019, 47(2): 285-290. DOI: 10.11908/j.issn.0253-374x.2019.02.018

基金项目

国家重点研发计划(2018YFB0505400);国家重大科技专项(07Y30B10900114/16)

第一作者

张绍明(1979—),男,副教授,工学博士,主要研究方向为计算机视觉.E-mail:zhangshaoming@tongji.edu.cn

通信作者

王建梅(1971—),女,讲师,工学博士,主要研究方向为遥感影像分析与应用.E-mail:jianmeiw@tongji.edu.cn

文章历史

收稿日期:2017-09-11
大角度透视变形集装箱图像箱号识别方法
张绍明 , 毛艺凡 , 王建梅 , 冯甜甜     
同济大学 测绘与地理信息学院,上海 200092
摘要:针对存在大角度透视变形的集装箱图像,提出一种新的集装箱箱号识别方法.首先对图像进行透视变换校正,然后利用深度卷积神经网络模型定位并识别出集装箱图像中的26个大写英文字母和10个阿拉伯数字,最后利用集装箱箱号的先验知识,通过级联决策规则从候选字符集中识别出集装箱箱号.此方法应用于重庆港集装箱1 035张实景图像,箱号识别精度达97%,基于NVIDIA GeForce GTX1080图形处理器加速的箱号识别速度为每秒2~5帧.
关键词集装箱箱号识别    字符检测    字符识别    深度卷积神经网络    级联决策准则    
Container Code Recognition from Images with Large Perspective Deformation
ZHANG Shaoming , MAO Yifan , WANG Jianmei , FENG Tiantian     
College of Surveying and Geo-Informatics, Tongji University, Shanghai 200092, China
Abstract: A novel method is proposed in this paper to recognize the container code from the images with large perspective deformation. First, the images are rectified by perspective transformation. Then, 26 capitalized English characters and 10 Arabic numerals are located and recognized based on the deep convolution neural network model. Finally, container codes are recognized from the candidate character set by cascade decision rules based on the priori knowledge of container code. The proposed method is verified by 1035 container images taken in Chongqing Port. The result shows that the accuracy of container code recognition reaches 97%, and the speed based on NVIDIA GeForce GTX1080 GPU is 2 to 5 frames/sec.
Key words: container code recognition    character detection    character recognition    deep convolution neural network    cascade decision rules    

集装箱箱号是每个集装箱的全球唯一身份标识,是集装箱运输、管理等行业的重要基础信息,智慧港口、集装箱堆场自动化管理系统都需要对集装箱箱号进行提取.基于计算机视觉的字符识别方法,因其无需对集装箱增加额外附件,只要获取包含集装箱箱号的图像即可实现,因此已成为现代化港口箱号识别采用的主流方式.

传统的基于计算机视觉的箱号识别方法通常包含图像预处理、箱号区域定位、字符分割和字符识别4个流程.其中图像预处理主要通过图像去噪、图像增强、变形校正等增强图像质量,有利于提高后期处理速度与箱号识别精度.箱号区域定位根据箱号和字符的先验知识,将箱号区域与图像背景区别开来,字符分割则进一步将箱号区域分割为11个独立的字符区域,最后由字符识别算法将图像翻译为字符.He等[1]将彩色图像转换为灰度图像,采用自适应滤波器降噪,再通过图像二值化和水平投影得到文本区域,接着依据箱号排列模式的相关知识定位箱号区域,最后通过一系列标准模板完成字符识别.Kim等[2]首先依据字符的颜色、大小、宽高比等特征,采用基于自适应谐振网络(ART2)的量化方法定位箱号区域,接着通过模糊二值化提取字符区域,最后采用ART网络识别字符.王志明等[3]运用改进的单程分裂与归并算法对图像进行自适应阈值分割,统计各个区域的灰度、形状、边缘强度等特征,依据字符区域特征定位箱号区域,最后采用神经网络与模板匹配相结合的方法识别字符.Wu等[4]针对集装箱箱号字符排列紧凑难以分割的情况,用连通区分析将箱号区域分割为单字符块和多字符块,单字符块采用传统字符识别方法,如支持向量机,进行字符识别;多字符块则采用隐马尔可夫模型进行字符识别.近年来,随着深度学习的兴起,一些学者尝试在字符分割后采用卷积神经网络进行字符识别,如杨楣[5]在LeNet5网络的基础上进行结构改进,设计了两种卷积神经网络,一种网络用于字母识别,另一种网络用于数字识别; 黄深广等[6]则进一步将卷积神经网络算法与模板匹配算法相结合进行字符识别.

跟车牌相比,集装箱箱号背景更复杂,箱体中非目标字符较多,箱号印刷的位置不固定,箱号排列形式多样,箱号字体和字符大小也不尽相同,并且箱面经常出现污损干扰,这些都增加了箱号区域定位的难度.虽然近30年来人们提出了大量箱号区域定位算法[7-8],但对于码头这类复杂的工作环境,雨雪天气、夜间补光都会导致图像质量严重下降,安装在吊具上方的相机拍摄的箱体图像又存在严重透视变形,这些因素常常使箱号定位算法失效.

与车牌、自然场景中的字符相比,箱号中只包含26个大写英文字母和10个阿拉伯数字,字符简单,种类有限,完全可以将箱号识别问题转化为36类字符检测问题.基于以上考虑,本论文提出了一种新的箱号识别方法,该方法可以避开箱号区域定位这一难题,直接对经过透视校正后的集装箱图像进行36类字符检测,在完成字符定位与识别的基础上,充分利用箱号先验知识,如距离、形态等几何信息,以及编码规则等语义信息进行箱号识别,从而有效提高箱号识别精度.

1 箱号识别方法

本论文首先对图像进行透视变换校正,然后利用深度卷积神经网络模型定位并识别出集装箱图像中的26个大写英文字母和10个阿拉伯数字,最后利用集装箱箱号的先验知识,通过级联决策规则从候选字符集中识别出集装箱箱号.具体技术路线如图 1所示.

图 1 集装箱图像箱号识别流程图 Fig.1 Flowchart of container code recognition
1.1 透视变换

受装卸码头工作场地限制,相机只能安装在吊具上方,由此拍摄的集装箱图像存在严重的透视变形,若要保证字符识别精度,必须进行透视变换校正.透视变换是将图像投影到一个新的视平面,也称作射影变换.设(u, v, 1)为原始图像上一个点的齐次坐标,(x, y, 1)为变换后图像上对应点的齐次坐标,则透视变换公式为

$\left[ {\begin{array}{*{20}{c}} x\\ y\\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{\mathit{a}_{{\rm{11}}}}}&{{\mathit{a}_{{\rm{12}}}}}&{{\mathit{a}_{13}}}\\ {{\mathit{a}_{21}}}&{{\mathit{a}_{22}}}&{{\mathit{a}_{23}}}\\ {{\mathit{a}_{31}}}&{{\mathit{a}_{32}}}&{{\mathit{a}_{33}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} \mathit{u}\\ \mathit{v}\\ 1 \end{array}} \right] $ (1)

其中$\left[ {\begin{array}{*{20}{c}} {{\mathit{a}_{{\rm{11}}}}}&{{\mathit{a}_{{\rm{12}}}}}&{{\mathit{a}_{13}}}\\ {{\mathit{a}_{21}}}&{{\mathit{a}_{22}}}&{{\mathit{a}_{23}}}\\ {{\mathit{a}_{31}}}&{{\mathit{a}_{32}}}&{{\mathit{a}_{33}}} \end{array}} \right] $称为单应矩阵,只有8个自由度,通常设a33=1进行归一化.公式(1)可以改写成

$\left[ {\begin{array}{*{20}{c}} u&v&1&0&0&0&{ - ux}&{ - vx}\\ 0&0&0&u&v&1&{ - uy}&{ - vy} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{a_{11}}}\\ {{a_{12}}}\\ \vdots \\ {{a_{31}}}\\ {{a_{32}}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} u\\ v \end{array}} \right] $ (2)

一对匹配坐标列2个方程式,只要找到4个不共线的匹配点就可以解算单应矩阵.

基于深度卷积神经网络的目标检测模型对轻微的平移、旋转、变形和缺失有很好的鲁棒性,再加上吊具上方的相机与集装箱的相对位置并不固定,因此没必要求出精确的透视变换模型.考虑到集装箱的箱体是标准的长方体,因此在图像上选取集装箱四个角点作为控制点,标注其理想的位置,解算单应矩阵.

1.2 基于深度卷积神经网络的字符定位与识别

目前主流的目标检测算法主要是基于深度学习的卷积神经网络模型,其可以分为两大类:①两段式(twostage)检测算法,其将检测问题划分为两个阶段,首先产生候选区,然后对候选区分类并进行位置回归,这类算法的典型是Regions with CNN(R-CNN)系列[9-11],其中精度最高、速度最快的是Faster R-CNN算法;②一段式(onestage)检测算法,其没有区域推荐阶段,直接产生目标的类别概率和位置坐标,典型的是You Only Look Once(YOLO)[12-13]和Single Shot Multi-Box Detector(SSD)[14].一般情况下,两段式算法在准确度上有优势,一段式算法在速度上有优势.考虑到码头装卸货物速度以及对箱号识别精度的实际要求,文中采用Faster RCNN算法.

集装箱图像上字符目标比较小,大约在80像素×50像素左右,若采用过深的网络在下采样过程中会丢失部分信息,所以在Faster RCNN算法中选择只有5个卷积层的ZFNet网络,其网络架构参数如表 1所示.ZFNet网络基于AlexNet网络[15]做了改善.输入层的大小为224像素×224像素,不符合此尺寸的图像必须先进行尺寸调整.在层数固定的情况下,深度神经网络的计算量与占用的内存主要取决于输入层的大小、每层卷积核的滑动步长、是否采用池化,使用224像素×224像素作为输入层大小的好处是,在控制了计算量与内存消耗的同时保证了图像中中小目标的特征信息完好.第一层的卷积核大小为7像素×7像素,相比于AlexNet的11像素×11像素,能更有效地从输入图像中提取中频信息,降低极高频和极低频信息的比重,同时第一层的卷积步长从AlexNet的4像素下降到了2像素,有效消除了混叠现象.此外,基于对检测速率的工程化需求,采用PVANET的网络压缩技术对ZFNet进行改造,提升卷积层的计算速度.Faster RCNN的输出结果为属于“A”~“Z”、“0”~“9”36类字符中某一类的概率估计,以及该字符的位置和大小描述,具体表现形式为C={ck)k=1, …, K,其中ck={bk, ak, sk),b表示字符包围矩形框,a表示字符类别,s表示得分,K是候选字符的个数.

下载CSV 表 1 ZFNet架构 Tab.1 Architecture of ZF network
1.3 级联决策提取集装箱编号

36类字符检测网络提取得到的候选字符集包含了集装箱箱面上所有的大写英文字母和阿拉伯数字,还需要进一步将11位箱号从候选字符集中提取出来.依据先验知识,设计了一个包含三级规则的级联决策树,决策树中的三级规则分别描述了字符序列排列形态、字符序列内部分组和字符序列校验.

集装箱箱号知识包括:①前4位是字母,后7位是数字;②字母在图像的左侧,数字在字母右侧或者下方;③字符两两相邻,相隔距离在一定范围内,左右字符拥有相似的高度和宽高比;④11位编号形成字符线特征,字符的中心点大致可形成直线;⑤由集装箱箱号规则可知,第11位是校验字符,由前10位可以计算出第11位的字符.

根据上述5条知识,设计的三级决策规则如下:

(1) 基于“集装箱箱号知识①、②、③”,首先根据得分阈值和宽高比阈值初步筛选字符目标矩形框,搜寻集装箱图像最左上方的字母,作为箱号的第一个成员,放入子集C′后,依次向右寻找,将间隔小于字符间隔阈值的成员放入C′中.

(2) 基于“集装箱箱号知识④”,将子集C′中的所有成员拟合出一条直线α.遍历子集C′中的成员c′k,当c′k离直线α距离大于设定的阈值时,则从子集C′中剔除,并重新根据子集C′的成员拟合出直线β.

(3) 若子集C′不满足“集装箱箱号知识⑤”,则从全集C中寻找合适的成员加入C′,使它通过集装箱编码规则的验证:首先遍历全集C,将到字符线β的距离小于设定阈值的所有字符加入子集C′中,保证C′中的字符个数不少于11个,遍历所有组合方案直至11位箱号通过编号规则的检验,输出此结果作为集装箱箱号.

图 2为从候选字符集中提取集装箱箱号的流程图.

图 2 从候选字符集中提取集装箱箱号的流程图 Fig.2 Flowchart of extracting container code from candidate character set
2 实验与分析 2.1 透视变换

实验数据如图 3所示.由于照明条件不同,部分箱号字符有污损,且都存在明显的透视变形,为了保证箱号识别精度,必须进行透视变换校正.由于相机和集装箱的相对位置随着每次装卸改变,成像模式不固定,本文通过对大量图像进行分析,选取了6张代表性图像计算对应的单应矩阵,相当于得到6组转换参数.对于一张新图像,因无法知晓最适合的转换参数是哪组,因此每张图像进行6组透视变换校正,在这6张校正后的图像上分别提取箱号,取概率最高的箱号作为最后结果.图 4图 3所示集装箱图像进行透视变换后的结果.

图 3 大角度透视变形的集装箱图像 Fig.3 Container images with large perspective deformation
图 4 透视校正后的集装箱图像 Fig.4 Container images after perspective rectification
2.2 基于深度卷积神经网络的字符定位与识别

在350张透视变换校正的集装箱图像上,手工标注集装箱号码、字符和矩形框,通过加入微小透视变换进行样本增强,得到2 100张训练样本,总共23 100个字符,按照6:2:2的比例分为训练数据集、测试数据集和验证数据集.为了显示Faster R-CNN强大的鲁棒性,图 5给出了部分实验结果,证明在图像成像条件不佳、字符存在污损的情况下仍能正确定位并识别出正确的字符.表 2给出了36类字符的检测精度,其中平均精度PA0.5(average precision)代表检测框与标注框的交集与并集之比大于50%时才认为检测正确的平均精度.从表 2可以看出,数字的检测精度都在99%以上,字母的检测精度普遍低于数字,其中Q、V、W、X、Y这5个字母的精度最低.究其原因在于训练样本的丰富性与多样性的差异,数字的训练样本数量平均每类1 400个以上,字母的训练样本数量平均每类300多个, Q、V、W、X、Y这5类字母的训练样本最少,平均每类50多个.虽然用标准字体和集装箱背景图片合成了一定数量的训练样本,但从最后的结果看,人工合成的训练样本无法很好地替代真实样本.

图 5 Faster RCNN的字符检测结果 Fig.5 Character detection results of Faster RCNN
下载CSV 表 2 字符检测精度 Tab.2 Average precision of character detection

为了进一步验证Faster R-CNN的有效性,将其与Neumann算法[16]、基于深度卷积神经网络的YOLO和SSD方法进行对比,实验结果如表 3所示.由表 3可知,Faster R-CNN的总体检测精度为97.0%,Neumann的为85.5%,YOLO的为89.8%,SSD的为90.5%.

下载CSV 表 3 不同方法实验结果比较 Tab.3 Comparison of experimental results of different methods
2.3 集装箱箱号识别

在字符检测的基础上,利用三级级联决策规则识别集装箱箱号.如图 6所示,对1 035张集装箱实景图像进行测试,箱号正确率达到97%.开发的系统运行在Intel(R)Core(TM)CPU i7-5820K @3.30GHz处理器、48.0 GB内存、NVIDIA GeForce GTX1080显卡上,识别速度为每秒2~5帧.

图 6 集装箱箱号识别结果 Fig.6 Results of container code recognition
3 结语

近年来,基于深度卷积神经网络的目标检测方法发展迅猛.本文在Faster R-CNN算法的基础上,提出了一种新的集装箱箱号识别方法,该方法避开箱号区域定位的难题,直接对经过透视校正后的集装箱图像进行36类字符检测,然后充分利用箱号知识,通过三级级联决策规则从候选字符集中提取集装箱箱号.基于该方法开发的集装箱箱号识别系统运行于重庆港集装箱堆场的管理中,展现出良好的识别精度与运行速度.在今后的研究中,将进一步完善基于深度卷积神经网络的字符检测模型,在提高速度和精度的同时,降低硬件配置,让其更具工程应用价值.

参考文献
[1]
HE Z W, LIU J L, MA H Q, et al. A new automatic extraction method of container identity codes[J]. IEEE Transaction on Intelligent Transportation Systems, 2005, 6(1): 72 DOI:10.1109/TITS.2004.838509
[2]
KIM K B, KIM M, WOO Y W. Recognition of shipping container identifiers using ART2-based quantization and a refined RBF network[C]//Adaptive and Natural Computing Algorithms. Warsaw: [s.n], 2007: 572-581.
[3]
王志明, 张丽, 王丽君. 基于单程分裂与归并图像分割的集装箱号识别[J]. 中国图象图形学报, 2007, 12(3): 450
WANG Zhiming, ZHANG Li, WANG Lijun. Container code recognition based on single pass split merge image segmentation[J]. Journal of Image and Graphics, 2007, 12(3): 450 DOI:10.3969/j.issn.1006-8961.2007.03.012
[4]
WU W, LIU Z, CHEN M, et al. A new framework for container code recognition by using segmentation-based and HMM-based approaches[J]. International Journal of Pattern Recognition and Artificial Intelligence, 2015, 29(1): 1550004 DOI:10.1142/S0218001415500044
[5]
杨楣.基于卷积神经网络的箱号识别技术[D].上海: 上海交通大学, 2014.
YANG Mei. The method of recognizing container number based on convolutional neural networks[D]. Shanghai: Shanghai Jiao Tong University, 2014.
[6]
黄深广, 翁茂楠, 史俞, 等. 基于计算机视觉的集装箱箱号识别[J]. 港口装卸, 2018, 1: 1
[7]
MULLOT R, OLIVIER C, BOURDON J L, et al. Automatic extraction methods of container identity numbers and registration plates of cars[C]//Conference of the IEEE Industrial Electronics Society. Washington D C: IEEE, 1991, 3: 1739-1744.
[8]
孙艳春, 李小平. 蚁群优化算法在集装箱箱号定位中应用[J]. 现代计算机, 2018, 5: 54
SUN Yanchun, LI Xiaoping. Application of ant colony optimization algorithm in container number locating[J]. Modern Computer, 2018, 5: 54
[9]
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C/CD]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014.
[10]
GIRSHICK R. Fast r-cnn[C/CD]//Proceedings of the IEEE International Conference on Computer Vision. Santiago: IEEE, 2015.
[11]
REN S Q. Faster R-CNN: towards real-time object detection with region proposal networks[C]//IEEE Transactions on Pattern Analysis and Machine Intelligence. New York: IEEE, 2017, 6(39): 1137-1149.
[12]
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified.Real-time object detection[C/CD]//IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016.
[13]
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C/CD]//IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Hawaii: IEEE, 2017.
[14]
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multi-box detector [C/CD]//European Conference on Computer Vision. Amsterdam: IEEE, 2016.
[15]
KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[C]//Proceedings of the 25th International Conference on Neural Information Processing Systems.[S.l.]: Conference and Workshop on Neural Information Processing Systems, 2012, 1: 1097-1105.
[16]
NEUMANN L, MATAS J. A method for text localization and recognition in real-world images[C/CD]//Process of Asian Conference on Computer Vision. Xian: Asian Conference on Computer Vision, 2010.