工程科学学报 Chinese Journal of Engineering 基于深度学习的高效火车号识别 王志明刘志辉黄洋科邢宇翔 Efficient wagon number recognition based on deep learning WANG Zhi-ming.LIU Zhi-hui,HUANG Yang-ke,XING Yu-xiang 引用本文: 王志明,刘志辉,黄洋科,邢宇翔.基于深度学习的高效火车号识别.工程科学学报,2020,42(11):1525-1533.doi: 10.13374.issn2095-9389.2019.12.05.001 WANG Zhi-ming.LIU Zhi-hui,HUANG Yang-ke,XING Yu-xiang.Efficient wagon number recognition based on deep learning[J]. Chinese Journal of Engineering,.2020,42(11:1525-1533.doi:10.13374.issn2095-9389.2019.12.05.001 在线阅读View online::https://doi.org/10.13374.issn2095-9389.2019.12.05.001 您可能感兴趣的其他文章 Articles you may be interested in 基于深度学习的人体低氧状态识别 Recognition of human hypoxic state based on deep learning 工程科学学报.2019,41(6:817 https::/doi.org10.13374.issn2095-9389.2019.06.014 深度神经网络模型压缩综述 A survey of model compression for deep neural networks 工程科学学报.2019.41(10):1229 https:1doi.org/10.13374.issn2095-9389.2019.03.27.002 弱光照条件下交通标志检测与识别 Traffic signs detection and recognition under low-illumination conditions 工程科学学报.2020,42(8):1074 https:/1doi.org/10.13374.issn2095-9389.2019.08.14.003 基于YOL0v3的无人机识别与定位追踪 Drone identification and location tracking based on YOLOv3 工程科学学报.2020,42(4:463 https:1doi.org10.13374j.issn2095-9389.2019.09.10.002 复杂环境下一种基于Siam Mask的时空预测移动目标跟踪算法 Design and implementation of multi-feature fusion moving target detection algorithms in a complex environment based on SiamMask 工程科学学报.2020,423:381 https:/1doi.org/10.13374.issn2095-9389.2019.06.06.005 多模态学习方法综述 A survey of multimodal machine learning 工程科学学报.2020.42(5):557 https:1doi.org/10.13374.issn2095-9389.2019.03.21.003
基于深度学习的高效火车号识别 王志明 刘志辉 黄洋科 邢宇翔 Efficient wagon number recognition based on deep learning WANG Zhi-ming, LIU Zhi-hui, HUANG Yang-ke, XING Yu-xiang 引用本文: 王志明, 刘志辉, 黄洋科, 邢宇翔. 基于深度学习的高效火车号识别[J]. 工程科学学报, 2020, 42(11): 1525-1533. doi: 10.13374/j.issn2095-9389.2019.12.05.001 WANG Zhi-ming, LIU Zhi-hui, HUANG Yang-ke, XING Yu-xiang. Efficient wagon number recognition based on deep learning[J]. Chinese Journal of Engineering, 2020, 42(11): 1525-1533. doi: 10.13374/j.issn2095-9389.2019.12.05.001 在线阅读 View online: https://doi.org/10.13374/j.issn2095-9389.2019.12.05.001 您可能感兴趣的其他文章 Articles you may be interested in 基于深度学习的人体低氧状态识别 Recognition of human hypoxic state based on deep learning 工程科学学报. 2019, 41(6): 817 https://doi.org/10.13374/j.issn2095-9389.2019.06.014 深度神经网络模型压缩综述 A survey of model compression for deep neural networks 工程科学学报. 2019, 41(10): 1229 https://doi.org/10.13374/j.issn2095-9389.2019.03.27.002 弱光照条件下交通标志检测与识别 Traffic signs detection and recognition under low-illumination conditions 工程科学学报. 2020, 42(8): 1074 https://doi.org/10.13374/j.issn2095-9389.2019.08.14.003 基于YOLOv3的无人机识别与定位追踪 Drone identification and location tracking based on YOLOv3 工程科学学报. 2020, 42(4): 463 https://doi.org/10.13374/j.issn2095-9389.2019.09.10.002 复杂环境下一种基于SiamMask的时空预测移动目标跟踪算法 Design and implementation of multi-feature fusion moving target detection algorithms in a complex environment based on SiamMask 工程科学学报. 2020, 42(3): 381 https://doi.org/10.13374/j.issn2095-9389.2019.06.06.005 多模态学习方法综述 A survey of multimodal machine learning 工程科学学报. 2020, 42(5): 557 https://doi.org/10.13374/j.issn2095-9389.2019.03.21.003
工程科学学报.第42卷,第11期:1525-1533.2020年11月 Chinese Journal of Engineering,Vol.42,No.11:1525-1533,November 2020 https://doi.org/10.13374/j.issn2095-9389.2019.12.05.001;http://cje.ustb.edu.cn 基于深度学习的高效火车号识别 王志明区,刘志辉”,黄洋科),邢宇翔 1)北京科技大学计算机与通信工程学院.北京1000832)清华大学工程物理系,北京100084 ☒通信作者,E-mail:wangzhiming@ustb.edu.cn 摘要基于高性能的YOLO3目标检测算法,提出一种分阶段高效火车号识别算法.整个识别过程分为两个阶段:第一阶 段在低分辨率全局图像中检测出火车号区域位置:第二阶段在局部高分辨率图像中检测出组成火车号的字符,根据字符的空 间位置关系搜索得到12位火车号,并利用每个字符的识别置信度及火车号编码规则进行校验得到最终火车号.另外,本文提 出一种结合批一化因子和滤波器相关度的剪枝算法,通过对两个阶段检测模型的剪枝,在保证识别准确率不降(实验中略有 提升)的条件下降低了存储空间占用率和计算复杂度.在现场采集的1072幅火车号图像上的实验结果表明,本文提出的火车 号识别算法达到了96.92%的整车号识别正确率,平均识别时间仅为191ms 关键词模式识别:火车号识别:深度学习:神经网络:目标检测:模型剪枝 分类号TP391 Efficient wagon number recognition based on deep learning WANG Zhi-ming,LIU Zhi-hui,HUANG Yang-ke,XING Yu-xiang? 1)School of Computer and Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 2)Department of Engineering Physics,Tsinghua University,Beijing 100084,China Corresponding author,E-mail:wangzhiming @ustb.edu.cn ABSTRACT The automatic recognition of a wagon number plays an important role in railroad transportation systems.However,the wagon number character only occupies a very small area of the entire wagon image,and it is often accompanied by uneven illumination, a complex background,image contamination,and character stroke breakage,which makes the high-precision automatic recognition difficult.In recent years,object detection algorithm based on deep learning has made great progress,and it provides a solid technical basis for us to improve the performance of the train number recognition algorithm.This paper proposes a two-phase efficient wagon number recognition algorithm based on the high-performance YOLOv3 object detection algorithm.The entire recognition process is divided into two phases.In the first phase,the region of the wagon number in an image is detected from a low-resolution global image; in the second stage,the characters are detected in a high-resolution local image,formed into the wagon number according to their spatial position,and the final wagon number is obtained after verification based on the recognition confidence of each character and international wagon number coding rules.In addition,we proposed a new deep learning network-pruning algorithm based on the batch normalize scale factor and filter correlation.The importance of every filter was computed by considering the correlation between filter weights and the scale factor generated via batch normalization.By pruning and retraining the region detection model and character detection model,the storage space occupation and computational complexity were reduced without sacrificing recognition accuracy (which is even slightly improved in our experiment).Finally,we tested the proposed two-phase wagon number recognition algorithm on 1072 images from practical engineering application scenarios,and the results show that the proposed algorithm achieves96.9%of the overall correct ratio (here,"correct"means all 12 characters are detected and recognized correctly),and the average recognition time is only 191 ms. 收稿日期:2019-12-05
基于深度学习的高效火车号识别 王志明1) 苣,刘志辉1),黄洋科1),邢宇翔2) 1) 北京科技大学计算机与通信工程学院,北京 100083 2) 清华大学工程物理系,北京 100084 苣通信作者,E-mail:wangzhiming@ustb.edu.cn 摘 要 基于高性能的 YOLOv3 目标检测算法,提出一种分阶段高效火车号识别算法. 整个识别过程分为两个阶段:第一阶 段在低分辨率全局图像中检测出火车号区域位置;第二阶段在局部高分辨率图像中检测出组成火车号的字符,根据字符的空 间位置关系搜索得到 12 位火车号,并利用每个字符的识别置信度及火车号编码规则进行校验得到最终火车号. 另外,本文提 出一种结合批一化因子和滤波器相关度的剪枝算法,通过对两个阶段检测模型的剪枝,在保证识别准确率不降(实验中略有 提升)的条件下降低了存储空间占用率和计算复杂度. 在现场采集的 1072 幅火车号图像上的实验结果表明,本文提出的火车 号识别算法达到了 96.92% 的整车号识别正确率,平均识别时间仅为 191 ms. 关键词 模式识别;火车号识别;深度学习;神经网络;目标检测;模型剪枝 分类号 TP391 Efficient wagon number recognition based on deep learning WANG Zhi-ming1) 苣 ,LIU Zhi-hui1) ,HUANG Yang-ke1) ,XING Yu-xiang2) 1) School of Computer and Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China 2) Department of Engineering Physics, Tsinghua University, Beijing 100084, China 苣 Corresponding author, E-mail: wangzhiming@ustb.edu.cn ABSTRACT The automatic recognition of a wagon number plays an important role in railroad transportation systems. However, the wagon number character only occupies a very small area of the entire wagon image, and it is often accompanied by uneven illumination, a complex background, image contamination, and character stroke breakage, which makes the high-precision automatic recognition difficult. In recent years, object detection algorithm based on deep learning has made great progress, and it provides a solid technical basis for us to improve the performance of the train number recognition algorithm. This paper proposes a two-phase efficient wagon number recognition algorithm based on the high-performance YOLOv3 object detection algorithm. The entire recognition process is divided into two phases. In the first phase, the region of the wagon number in an image is detected from a low-resolution global image; in the second stage, the characters are detected in a high-resolution local image, formed into the wagon number according to their spatial position, and the final wagon number is obtained after verification based on the recognition confidence of each character and international wagon number coding rules. In addition, we proposed a new deep learning network-pruning algorithm based on the batch normalize scale factor and filter correlation. The importance of every filter was computed by considering the correlation between filter weights and the scale factor generated via batch normalization. By pruning and retraining the region detection model and character detection model, the storage space occupation and computational complexity were reduced without sacrificing recognition accuracy (which is even slightly improved in our experiment). Finally, we tested the proposed two-phase wagon number recognition algorithm on 1072 images from practical engineering application scenarios, and the results show that the proposed algorithm achieves 96.9% of the overall correct ratio (here, “correct” means all 12 characters are detected and recognized correctly), and the average recognition time is only 191 ms. 收稿日期: 2019−12−05 工程科学学报,第 42 卷,第 11 期:1525−1533,2020 年 11 月 Chinese Journal of Engineering, Vol. 42, No. 11: 1525−1533, November 2020 https://doi.org/10.13374/j.issn2095-9389.2019.12.05.001; http://cje.ustb.edu.cn
·1526 工程科学学报,第42卷,第11期 KEY WORDS pattern recognition:wagon number recognition;deep learning;neural network;object detection;model pruning 火车号是一个火车车箱的身份标识,一般喷 但其中搜索车牌的过程涉及大量先验知识和基于 涂在火车车箱的两侧,在铁路交通运输管理系统 规则的方法,难以进行整体优化.因此,后来作者 中经常需要获取火车号作为每个车箱唯一的标识 又将前端的检则模块改为采用两阶段的目标检测 来确认车箱当前的位置和状态等信息.采用人工 算法 记录的方式效率低、成本高,利用图像处理和模式 Montazzolli和Jung基于目标检测算法进行 识别技术自动识别火车号不仅可以节省人力,而 巴西车牌号检测与识别,分阶段检测汽车前脸、车 且可以大大提高铁路运输管理系统的智能化程 牌区域和字符,考虑到速度和精度的折衷,采用了 度.然而,利用火车号图像实现火车号的识别存在 简化的快速目标检测算法,但没有对检测网络本 很多困难.首先,相对整个车箱,火车号区域占比 身进行优化.Laroca等门在车牌和字符检测中采 非常小,要获得清晰可辨识的火车号需要较高的 用了类似的策略,但在字符识别阶段增加了两个 成像分辨率,而这又会导致整个图像像素数巨大, 独立的网络分别进行数字和字母的识别 使得图像处理算法难以实时处理;其次,由于户外 本文采用基于深度学习的目标检测算法进行 拍摄环境恶劣会导致对比度低、曝光不足或者过 火车号识别,分别针对火车号图像分辨率高、存在 曝光,而且火车号图像背景复杂,存在脏污、锈 校验位和实时性要求高等特点提出了相应的解决 迹、其他标识等较多干扰因素,导致准确定位火车 策略.本文的主要创新点包括: 号区域较为困难;第三,火车号字符本身存在字符 (1)采用分阶段策略,先在低分辨率全局图像 粘连、笔画断裂、字符间距和排列规则多变等现 中检测火车号区域,再在高分辨局部图像中检测 象,这些都会导致字符分割和识别比较困难 字符并识别火车号,实现实时高精度识别: 在近十多年中,基于深度学习的图像目标检 (2)字符检测过程中对每个区域输出多个候 测算法得到了长足的发展,检测精度相比传统方 选类别概率,利用各个字符的概率对整个火车号 法有了很大的提高.深度学习与传统算法最大的 进行校验纠错,在特定的目标检测精度下进一步 区别在于其利用多层卷积神经网络自动学习图像 提高整体识别正确率: 特征,将特征提取和分类识别融为一体。自从 (3)结合批归一化因子和滤波器权重相关度 20I2年Krizhevsky等山使用深度卷积神经网络在 进行模型通道剪枝,简化网络,提高检测速度和整 大规模视觉识别挑战(Large scale visual recognition 体识别效率 challenge,LSVRC)上获得冠军后,深度学习在图 本文后续内容安排如下,第一部分介绍相关 像、视频、语音等领域受到了广泛的关注回.近年 的深度学习目标检测算法,第二部分介绍整体识 来,已有不少学者将深度学习算法应用于火车号 别框架,第三部分介绍火车号区域检测方法,第四 识别、汽车牌号识别、集装箱号识别、车辆类型识 部分介绍字符检测及校验纠错方法,第五部分介 别等领域3-⑧在廖健1提出的货车号识别算法 绍结合批归一化因子和滤波器相关度的剪枝算 中,通过分割边缘密度图像得到字符所在的候选 法,第六部分介绍实验数据及实验结果,最后是结 区域,然后利用深度卷积神经网自动学习图像特 论及下一步可能的改进方向 征,再由两个softmax分类器分别完成字符检测和 1基于深度学习的目标检测算法 识别.这一方法只是在第二阶段采用了深度学习 算法,检测火车号区域是传统方法,因此鲁棒性和 目标检测算法是对图像内给定的一组目标进 识别精度会受到一定的影响.Lⅰ等提出一种结 行定位和分类,一般用矩形框来标记目标位置.基 合目标检测算法和序列串识别算法的车牌号识别 于深度学习的目标检测算法可分为两类例:一类是 算法,首先采用一个4层卷积神经网络检测所有 二阶段方法,遵循传统的目标检测流程,先产生候 可能的字符,并利用行程长度平滑算法(Run length 选区域(Region proposal),然后对每个候选区域进行 smoothing algorithm,RLSA)和连通域分析得到候选 分类;另一类是一阶段方法,将目标检测视为一个回 车牌区;然后利用双向回归神经网络(Bidirectional 归和分类问题,采用统一的框架直接实现定位和 recurrent neural networks,BRNNs)算法识别车牌号 分类.典型的二阶段方法有Faster R-CNNIO、FPN山
KEY WORDS pattern recognition;wagon number recognition;deep learning;neural network;object detection;model pruning 火车号是一个火车车箱的身份标识,一般喷 涂在火车车箱的两侧,在铁路交通运输管理系统 中经常需要获取火车号作为每个车箱唯一的标识 来确认车箱当前的位置和状态等信息. 采用人工 记录的方式效率低、成本高,利用图像处理和模式 识别技术自动识别火车号不仅可以节省人力,而 且可以大大提高铁路运输管理系统的智能化程 度. 然而,利用火车号图像实现火车号的识别存在 很多困难. 首先,相对整个车箱,火车号区域占比 非常小,要获得清晰可辨识的火车号需要较高的 成像分辨率,而这又会导致整个图像像素数巨大, 使得图像处理算法难以实时处理;其次,由于户外 拍摄环境恶劣会导致对比度低、曝光不足或者过 曝光,而且火车号图像背景复杂,存在脏污、锈 迹、其他标识等较多干扰因素,导致准确定位火车 号区域较为困难;第三,火车号字符本身存在字符 粘连、笔画断裂、字符间距和排列规则多变等现 象,这些都会导致字符分割和识别比较困难. 在近十多年中,基于深度学习的图像目标检 测算法得到了长足的发展,检测精度相比传统方 法有了很大的提高. 深度学习与传统算法最大的 区别在于其利用多层卷积神经网络自动学习图像 特征 ,将特征提取和分类识别融为一体. 自从 2012 年 Krizhevsky 等[1] 使用深度卷积神经网络在 大规模视觉识别挑战(Large scale visual recognition challenge, LSVRC)上获得冠军后,深度学习在图 像、视频、语音等领域受到了广泛的关注[2] . 近年 来,已有不少学者将深度学习算法应用于火车号 识别、汽车牌号识别、集装箱号识别、车辆类型识 别等领域[3−8] . 在廖健[3] 提出的货车号识别算法 中,通过分割边缘密度图像得到字符所在的候选 区域,然后利用深度卷积神经网自动学习图像特 征,再由两个 softmax 分类器分别完成字符检测和 识别. 这一方法只是在第二阶段采用了深度学习 算法,检测火车号区域是传统方法,因此鲁棒性和 识别精度会受到一定的影响. Li 等[4] 提出一种结 合目标检测算法和序列串识别算法的车牌号识别 算法,首先采用一个 4 层卷积神经网络检测所有 可能的字符,并利用行程长度平滑算法(Run length smoothing algorithm, RLSA)和连通域分析得到候选 车牌区;然后利用双向回归神经网络(Bidirectional recurrent neural networks, BRNNs)算法识别车牌号. 但其中搜索车牌的过程涉及大量先验知识和基于 规则的方法,难以进行整体优化. 因此,后来作者 又将前端的检测模块改为采用两阶段的目标检测 算法[5] . Montazzolli 和 Jung[6] 基于目标检测算法进行 巴西车牌号检测与识别,分阶段检测汽车前脸、车 牌区域和字符,考虑到速度和精度的折衷,采用了 简化的快速目标检测算法,但没有对检测网络本 身进行优化. Laroca 等[7] 在车牌和字符检测中采 用了类似的策略,但在字符识别阶段增加了两个 独立的网络分别进行数字和字母的识别. 本文采用基于深度学习的目标检测算法进行 火车号识别,分别针对火车号图像分辨率高、存在 校验位和实时性要求高等特点提出了相应的解决 策略. 本文的主要创新点包括: (1)采用分阶段策略,先在低分辨率全局图像 中检测火车号区域,再在高分辨局部图像中检测 字符并识别火车号,实现实时高精度识别; (2)字符检测过程中对每个区域输出多个候 选类别概率,利用各个字符的概率对整个火车号 进行校验纠错,在特定的目标检测精度下进一步 提高整体识别正确率; (3)结合批归一化因子和滤波器权重相关度 进行模型通道剪枝,简化网络,提高检测速度和整 体识别效率. 本文后续内容安排如下,第一部分介绍相关 的深度学习目标检测算法,第二部分介绍整体识 别框架,第三部分介绍火车号区域检测方法,第四 部分介绍字符检测及校验纠错方法,第五部分介 绍结合批归一化因子和滤波器相关度的剪枝算 法,第六部分介绍实验数据及实验结果,最后是结 论及下一步可能的改进方向. 1 基于深度学习的目标检测算法 目标检测算法是对图像内给定的一组目标进 行定位和分类,一般用矩形框来标记目标位置. 基 于深度学习的目标检测算法可分为两类[9] :一类是 二阶段方法,遵循传统的目标检测流程,先产生候 选区域(Region proposal),然后对每个候选区域进行 分类;另一类是一阶段方法,将目标检测视为一个回 归和分类问题,采用统一的框架直接实现定位和 分类. 典型的二阶段方法有 Faster R-CNN[10]、FPN[11]、 · 1526 · 工程科学学报,第 42 卷,第 11 期
王志明等:基于深度学习的高效火车号识别 1527 Mask R-CNNI21 Grid R-CNNI31 Cascade R-CNNI41 可.但对于具有校验位的火车号识别,其他次要类 等;典型的一阶段方法有SSD、YOLO6及改进 别概率信息也具有应用价值.当由于噪声造成单 其损失函数的GIOUL7和DIOUUs、RetinaNet!9、 个字符可能识别错误时,可以利用后续的选项进 DSOD201等.近两年还涌现出一些不依赖于锚点 行校验纠错.因此,在应用中本文修改网络输出部 (Anchor free)的方法,如CornerNetR1、CenterNet 分的结构,对每一个检测位置输出多个可能的目 MatrixNets2]等,旨在进一步改进对目标的定位精 标类别及相应的概率 度.二阶段方法具有较高的准确率,但是检测流程 2整体识别框架 复杂,因此相对速度比较慢;一阶段方法在检测速 度和内存效率上有很大的优势,在实际工程中得 本文的火车号图像采用线阵相机拍摄,即在 到广泛的应用.综合考虑后,本文选择速度和精度 固定位置放置由多个光学传感纵向排列组成的拍 都比较好的YOLOv3P进行火车号识别 摄装置,每次曝光获取一列图像,当火车通过时采 为了能检测不同大小的目标,YOLOV3算法在 用固定的曝光频率不断拍摄,最终所有列组成一 三个不同尺度的特征层上进行预测.YOLOv:3算 个二维图像.图像的高度由传感器数量决定,是一 法采用网格化的思想,将每个特征层划分成固 个固定的值:图像的宽度由曝光频率和拍摄时间 定大小的网格,每个网格设置3个锚框(Anchor)作 来确定,当曝光频率固定时,由火车车体长度和运 为预定义的形状来预测目标.锚框可使用k-means 行速度来决定,宽度不固定.在本文的火车号识别 聚类算法根据训练集上目标的形状分布计算聚类得 中,图像高度固定为2048像素,宽度范围为5000~ 到,从而减少预测误差并加速训练过程的收敛速度 11000像素.图1是一个典型的火车号图像,其分 网络对每一个锚框预测四个坐标值:4x、4, 辨率为2048像素×7168像素,图中红框所标为火 4w、h,其中4和5,是目标中心点的偏移量,w和 车号位置,在全图中占比非常小 是目标宽高相对于锚框的偏移量.中心点偏移 整个车箱图像的分辨率很高,直接利用目标 量是相对于网格单元左上角的坐标,算法采用逻 检测算法进行检测和识别计算量巨大,难以满足 辑回归函数将预测值4,和4,限制值在[0,1]区间 实时应用的需求.因此,本文提出一种由粗到细的 内;宽高偏移量是相对锚框的比例,采用指数函数 两阶段识别策略.第一阶段,根据火车号分布的统 将[-0,+o]区间映射到[0,+o]区间. 计热力图从高分辨率完整图像中提取固定大小为 假设某个网格单元相对于图像左上角的偏移 1200像素×2400像素的区域,再降低分辨率缩小 是(cpC,),锚框的宽和高是Pw和P,那么包围框 至288像素×576像素进行火车号区域检测;第二 (Bounding box)的预测值如下: 阶段,根据第一阶段检测结果从原始高分辨图像 中提取出火车号区域图像,并缩放至288像素× bx logistic(tx)+cx,by logistic(ty)+cy (1) 416像素大小进行字符检测与识别.得到字符检测 bw =pwetw,bn =phe'h (2) 结果后,根据位置排列搜索完整火车号,并根据字 目标检测算法在定位的同时进行识别,除位 符识别概率进行校验纠错.最后,对训练好的检测 置信息外还会同时预测这一包围框属于每个类别 模型运用剪枝算法进行剪枝,并对简化的网络进 的概率P,0≤i<C(C为目标类别数).对于一般目 行再次精调训练得到最终的高效检测模型 标检测应用,取概率最高的类别作为识别结果即 整个识别流程如图2所示 图1火车号图像示例 Fig.I Example of a wagon number image
Mask R-CNN[12]、Grid R-CNN[13]、Cascade R-CNN[14] 等;典型的一阶段方法有 SSD[15]、YOLO[16] 及改进 其损失函数 的 GIOU[17] 和 DIOU[18]、 RetinaNet[19]、 DSOD[20] 等. 近两年还涌现出一些不依赖于锚点 (Anchor free)的方法,如 CornerNet[21]、CenterNet[22]、 MatrixNets[23] 等,旨在进一步改进对目标的定位精 度. 二阶段方法具有较高的准确率,但是检测流程 复杂,因此相对速度比较慢;一阶段方法在检测速 度和内存效率上有很大的优势,在实际工程中得 到广泛的应用. 综合考虑后,本文选择速度和精度 都比较好的 YOLOv3[24] 进行火车号识别. 为了能检测不同大小的目标,YOLOv3 算法在 三个不同尺度的特征层上进行预测. YOLOv3 算 法采用网格化的思想,将每个特征层划分成固 定大小的网格,每个网格设置 3 个锚框(Anchor)作 为预定义的形状来预测目标. 锚框可使用 k-means 聚类算法根据训练集上目标的形状分布计算聚类得 到,从而减少预测误差并加速训练过程的收敛速度. 网络对每一个锚框预测四个坐标值 : tx、 ty、 tw、th,其中 tx 和 ty 是目标中心点的偏移量, tw 和 th 是目标宽高相对于锚框的偏移量. 中心点偏移 量是相对于网格单元左上角的坐标,算法采用逻 辑回归函数将预测值 tx 和 ty 限制值在 [0, 1] 区间 内;宽高偏移量是相对锚框的比例,采用指数函数 将 [−∞, +∞] 区间映射到 [0, +∞] 区间. 假设某个网格单元相对于图像左上角的偏移 是(cx , cy),锚框的宽和高是 pw 和 ph,那么包围框 (Bounding box)的预测值如下: bx = logistic(tx)+cx, by = logistic(ty)+cy (1) bw = pwe tw , bh = phe th (2) Pi , 0 ⩽ i < C 目标检测算法在定位的同时进行识别,除位 置信息外还会同时预测这一包围框属于每个类别 的概率 (C 为目标类别数). 对于一般目 标检测应用,取概率最高的类别作为识别结果即 可. 但对于具有校验位的火车号识别,其他次要类 别概率信息也具有应用价值. 当由于噪声造成单 个字符可能识别错误时,可以利用后续的选项进 行校验纠错. 因此,在应用中本文修改网络输出部 分的结构,对每一个检测位置输出多个可能的目 标类别及相应的概率. 2 整体识别框架 本文的火车号图像采用线阵相机拍摄,即在 固定位置放置由多个光学传感纵向排列组成的拍 摄装置,每次曝光获取一列图像,当火车通过时采 用固定的曝光频率不断拍摄,最终所有列组成一 个二维图像. 图像的高度由传感器数量决定,是一 个固定的值;图像的宽度由曝光频率和拍摄时间 来确定,当曝光频率固定时,由火车车体长度和运 行速度来决定,宽度不固定. 在本文的火车号识别 中,图像高度固定为 2048 像素,宽度范围为 5000~ 11000 像素. 图 1 是一个典型的火车号图像,其分 辨率为 2048 像素×7168 像素,图中红框所标为火 车号位置,在全图中占比非常小. 整个车箱图像的分辨率很高,直接利用目标 检测算法进行检测和识别计算量巨大,难以满足 实时应用的需求. 因此,本文提出一种由粗到细的 两阶段识别策略. 第一阶段,根据火车号分布的统 计热力图从高分辨率完整图像中提取固定大小为 1200 像素×2400 像素的区域,再降低分辨率缩小 至 288 像素×576 像素进行火车号区域检测;第二 阶段,根据第一阶段检测结果从原始高分辨图像 中提取出火车号区域图像,并缩放至 288 像素× 416 像素大小进行字符检测与识别. 得到字符检测 结果后,根据位置排列搜索完整火车号,并根据字 符识别概率进行校验纠错. 最后,对训练好的检测 模型运用剪枝算法进行剪枝,并对简化的网络进 行再次精调训练得到最终的高效检测模型. 整个识别流程如图 2 所示. 图 1 火车号图像示例 Fig.1 Example of a wagon number image 王志明等: 基于深度学习的高效火车号识别 · 1527 ·
.1528 工程科学学报.第42卷,第11期 3思 Input image Wagon number region 75 TCDO detection model 51353-2 317528513532 Verification correction Wagon number character detection model 图2火车号识别流程 Fig.2 Pipeline of the wagon number recognition 3火车号区域检测 出现的频率就越小,另外垂直方向小于600像素 由于原始火车车箱图像分辨率较高,火车号 和大于1800像素的区域几乎没有火车号出现(只 区域仅占很小的一部分,直接采用原图计算量太 有一处火车号出现在了1800像素以外的区域).因 大,难以实时处理:如果直接缩小图像,又会使得 此,本文裁剪图像时在图像垂直方向取600~1800 火车号区域太小难以检测.因此,本文根据火车号 像素位置,从左到右依次截取分辨率为1200像 的位置统计分布采用滑动窗口方式进行检测 素×2400像素大小的局部图像进行检测.如果检测 3.1图像裁剪 成功,则进行下一步的字符检测和识别:如果检测 本文将所有的火车号图像左上角设为原点, 失败(未检测到火车号区域),则向右滑动到下一 统计所有火车号出现的位置得到了火车号分布的 个1200像素×2400像素的窗口进行检测.考虑到 热力图,如图3所示,其中红色对应于较高的频 火车号区域可能位于截取图像的边缘,因此在裁 次,蓝色对应于较低频次.从图中可以看出火车号 剪时预留了一定的重叠区域来保证裁剪时火车号 大部分都分布在图像靠左的位置,越往后火车号 区域的完整性.图4为截取的局部图像示例 Frequency 400 4 180 321 2000 1000 2000 3000 4000500060007000800090001000011000 Image width(pixel number) 图3火车号分布的热力图 Fig.3 Heatmap of the wagon number distribution logistics 图4火车号区域检测图像 Fig.4 Images for the wagon number region detection
3 火车号区域检测 由于原始火车车箱图像分辨率较高,火车号 区域仅占很小的一部分,直接采用原图计算量太 大,难以实时处理;如果直接缩小图像,又会使得 火车号区域太小难以检测. 因此,本文根据火车号 的位置统计分布采用滑动窗口方式进行检测. 3.1 图像裁剪 本文将所有的火车号图像左上角设为原点, 统计所有火车号出现的位置得到了火车号分布的 热力图,如图 3 所示,其中红色对应于较高的频 次,蓝色对应于较低频次. 从图中可以看出火车号 大部分都分布在图像靠左的位置,越往后火车号 出现的频率就越小,另外垂直方向小于 600 像素 和大于 1800 像素的区域几乎没有火车号出现(只 有一处火车号出现在了 1800 像素以外的区域). 因 此,本文裁剪图像时在图像垂直方向取 600~1800 像素位置,从左到右依次截取分辨率为 1200 像 素×2400 像素大小的局部图像进行检测. 如果检测 成功,则进行下一步的字符检测和识别;如果检测 失败(未检测到火车号区域),则向右滑动到下一 个 1200 像素×2400 像素的窗口进行检测. 考虑到 火车号区域可能位于截取图像的边缘,因此在裁 剪时预留了一定的重叠区域来保证裁剪时火车号 区域的完整性. 图 4 为截取的局部图像示例. Verification & correction Wagon number region detection model Wagon number character detection model 317528513532 Input image 图 2 火车号识别流程 Fig.2 Pipeline of the wagon number recognition 0 2000 1800 1200 800 400 0 Image height (pixel number) 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 Image width (pixel number) Frequency 6 5 4 3 2 1 0 图 3 火车号分布的热力图 Fig.3 Heatmap of the wagon number distribution 图 4 火车号区域检测图像 Fig.4 Images for the wagon number region detection · 1528 · 工程科学学报,第 42 卷,第 11 期