工程科学学报 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 期
王志明等:基于深度学习的高效火车号识别 ·1529 3.2区域检测 成火车号的12位数字通常有两种排列方式:一种 对于剪裁得到的局部图像,直接进行检测还 为单行排列,另一种为三行排布,三行排列的火车 是计算量过大,将其按比例缩小至288像素×576 号由每一行前2、2、8个数字组成.对于一行排列 像素大小.然后训练包含三个尺度的YOLOv:3网 的火车号,从左到右依次搜索12个字符:对于三 络进行火车号区域检测.根据火车号的排列规则, 行排列的火车号,从上到下、从左到右依次搜索包 将火车号区域分为三行和一行两种类型 含2、2、8个字符的字符行 图5为三行和一行火车号区域检测结果及提 为保证检测效果,对一行排列方式采用宽高 取出的局部图像.所有局部图像区域归一化到固 等比例缩放方式,不足区域补充为中等灰度值 定大小,并对一行排列进行了边界填充,以保持和 128.检测模型同样采用包含三个尺度的YOLOv3 三行火车号相近的字符宽高比.从图5(b)可以看 算法,但输出类别数为10,对应10个数字.图6为 出,即便经过归一化,字符的大小相差还是非常 字符检测结果示例,从图中可以看出,YOLOv3算 大,因此需进行多个尺度的字符检测 法可以很好地检测颜色、亮度、尺度差异非常大 4火车号识别 的字符 对于网络检测得到的所有字符,根据火车号 得到火车号区域图像后,下一步的任务是从 排列规则从上到下(三行排列)、从左到右依次找 图像中检测到所有构成火车号的字符,并根据先 到组成火车号的12个字符.记录网络输出的每个 验知识搜索得到火车号.最后,进行校验计算,如 字符按概率从大到小8个可能的类别及相应概 果校验通过则输出火车号,否则根据每个字符的 率,即得到一个12×8的类别和概率矩阵,每个字 识别概率和候选类别进行纠错,直到校验通过或 符的候选类别按概率进行降序排序,作为下一步 输出识别失败信号 搜索最终火车号的输入信息 4.1字符检测 4.2火车号校验与纠错 对于上一阶段剪裁得到的火车号区域图像,统 根据火车号编码的国际标准,火车号由12位 一缩放为288像素×416像素大小进行字符检测.组 数字组成,其中最后1位为校验位,它可以由前 (a) 3 33 RIY 7石m 52B6-KC1 2135器-2 7868262-0 2187 80D18 750530 315293392249 2475290-7 (b) 图5火车号区域检测结果.()区域检测结果:(b)提取到的局部区域图 Fig.5 Wagon number region detection results:(a)region detection results,(b)extracted region image
3.2 区域检测 对于剪裁得到的局部图像,直接进行检测还 是计算量过大,将其按比例缩小至 288 像素×576 像素大小. 然后训练包含三个尺度的 YOLOv3 网 络进行火车号区域检测. 根据火车号的排列规则, 将火车号区域分为三行和一行两种类型. 图 5 为三行和一行火车号区域检测结果及提 取出的局部图像. 所有局部图像区域归一化到固 定大小,并对一行排列进行了边界填充,以保持和 三行火车号相近的字符宽高比. 从图 5(b)可以看 出,即便经过归一化,字符的大小相差还是非常 大,因此需进行多个尺度的字符检测. 4 火车号识别 得到火车号区域图像后,下一步的任务是从 图像中检测到所有构成火车号的字符,并根据先 验知识搜索得到火车号. 最后,进行校验计算,如 果校验通过则输出火车号,否则根据每个字符的 识别概率和候选类别进行纠错,直到校验通过或 输出识别失败信号. 4.1 字符检测 对于上一阶段剪裁得到的火车号区域图像,统 一缩放为 288 像素×416 像素大小进行字符检测. 组 成火车号的 12 位数字通常有两种排列方式:一种 为单行排列,另一种为三行排布,三行排列的火车 号由每一行前 2、2、8 个数字组成. 对于一行排列 的火车号,从左到右依次搜索 12 个字符;对于三 行排列的火车号,从上到下、从左到右依次搜索包 含 2、2、8 个字符的字符行. 为保证检测效果,对一行排列方式采用宽高 等比例缩放方式 ,不足区域补充为中等灰度值 128. 检测模型同样采用包含三个尺度的 YOLOv3 算法,但输出类别数为 10,对应 10 个数字. 图 6 为 字符检测结果示例,从图中可以看出,YOLOv3 算 法可以很好地检测颜色、亮度、尺度差异非常大 的字符. 对于网络检测得到的所有字符,根据火车号 排列规则从上到下(三行排列)、从左到右依次找 到组成火车号的 12 个字符. 记录网络输出的每个 字符按概率从大到小 8 个可能的类别及相应概 率,即得到一个 12×8 的类别和概率矩阵,每个字 符的候选类别按概率进行降序排序,作为下一步 搜索最终火车号的输入信息. 4.2 火车号校验与纠错 根据火车号编码的国际标准,火车号由 12 位 数字组成,其中最后 1 位为校验位,它可以由前 (a) (b) 图 5 火车号区域检测结果. (a)区域检测结果;(b)提取到的局部区域图 Fig.5 Wagon number region detection results: (a) region detection results; (b) extracted region image 王志明等: 基于深度学习的高效火车号识别 · 1529 ·
·1530 工程科学学报.第42卷,第11期 52 BG-BDZT 图6火车号字符检测结果示例 Fig.6 Examples of wagon number character detection results 11位Luhn算法计算得来,校验位可以用来判断识 如图7是一个校验纠错的例子.图中每一行 别的火车号是否正确.第12位校验数字的生成方 对应一个位置的检测结果,包含依概率排列的 式如式(3)所示 8个可能的类别号及其相应概率,一共12行对应 搜索到的构成火车号的12个字符.如果取第一列 10- k×d)/10+(k×d)% 10 %10%10 概率最大的结果,则会发现校验错误.原因是第 (3) 10位字符错误地将数字“8”识别为数字“9”,可以 其中,k为加权系数,对奇数位为2,对偶数位为1, 看出排除第一列最大概率后,第10位字符为“8” d,表示第i位火车号数字,“”表示整除,“%”表示 的概率要比其他所有的概率都要大,因此将第 模运算.计算各位数字乘以权重后得到数字的个 10位的“9”替换为“8”(图中红框所示),此时校验 位和十位相加之和,并取距离下一个最近的10的 通过,得到正确的火车号 整数倍的差值作为校验结果 5检测模型优化 对上一步得到的字符与概率矩阵,首先选择 每一位最大概率的数字进行校验,如果校验通过, 在实际工程应用中,除识别准确率外,识别速 则输出这些数字作为火车号的识别结果;如果校 度也是一个影响使用效果的关键因素.深度神经 验错误,则需根据概率矩阵进行替换纠错.替换的 网络的计算量主要消耗在卷积层特征提取阶段, 策略是:将每个位置的最大概率排除后,在其他的 随着网络中各个卷积层中通道数的增加计算量急 概率值中寻找最大的概率值,用对应的类别替代 剧增加.通道数一般都是人工根据经验设定,但不 当前位置最大概率所对应的类别,然后再对新的 同应用所需要提取的特征数可能不同.因此,可以 数字串进行校验,如果通过则视为纠正正确,输出 通过一定的剪枝技术去除多余的通道,从而降低 新的火车号;否则,恢复交换前位置,再接着寻找 计算量,提高检测速度. 下一个最大的概率值,如此迭代进行直到校验正 本文采用“静态剪枝+精细调节”的方式进行 确,或尝试的次数超过10次为止 网络剪枝,参考基于批归一化(Batch norm)因子剪 30.86426940.00109050.00108910.00061870.00027320.00022560.00020580.000131 10.77645870.00029790.00019930.00016740.00015300.00013980.00008060.000074 50.76884630.00057370.00053080.00023110.00010640.00009060.00005590.000053 20.78120770.00106300.00048140.00031260.00024990.00020230.00018050.000144 90.90431780.00154500.00021440.00019350.00014520.00012760.00008370.000083 30.89192050.00353640.00231810.00157320.00147980.00090890.00057970.000572 40.94929530.00153360.00067550.00044080.00036310.00034290.00024170.000209 10.62864920.00299240.00267480.00146360.00102550.00064190.00037670.000277 00.92036660.00703630.00213790.00092080.00090920.00045140.00033310.000321 90.87122780.01868650.00381810.00337740.00300720.00295170.00243300.001308 00.94245660.00077210.00064170.00038250.00031680.00026220.00021530.000189 10.55738090.00016730.00016470.00015150.00012920.00008760.00008040.000064 图7每个字符对应的前8个最大概率类别、概率值及校验纠错位 Fig.7 Top 8 class and corresponding probabilities of every character and correction by verification
11 位 Luhn 算法计算得来,校验位可以用来判断识 别的火车号是否正确. 第 12 位校验数字的生成方 式如式(3)所示. d12 = 10− ∑ 11 i=1 (ki ×di)/10+(ki ×di)%10 %10 %10 (3) 其中,ki 为加权系数,对奇数位为 2,对偶数位为 1, di 表示第 i 位火车号数字,“/”表示整除,“%”表示 模运算. 计算各位数字乘以权重后得到数字的个 位和十位相加之和,并取距离下一个最近的 10 的 整数倍的差值作为校验结果. 对上一步得到的字符与概率矩阵,首先选择 每一位最大概率的数字进行校验,如果校验通过, 则输出这些数字作为火车号的识别结果;如果校 验错误,则需根据概率矩阵进行替换纠错. 替换的 策略是:将每个位置的最大概率排除后,在其他的 概率值中寻找最大的概率值,用对应的类别替代 当前位置最大概率所对应的类别,然后再对新的 数字串进行校验,如果通过则视为纠正正确,输出 新的火车号;否则,恢复交换前位置,再接着寻找 下一个最大的概率值,如此迭代进行直到校验正 确,或尝试的次数超过 10 次为止. 如图 7 是一个校验纠错的例子. 图中每一行 对应一个位置的检测结果 ,包含依概率排列的 8 个可能的类别号及其相应概率,一共 12 行对应 搜索到的构成火车号的 12 个字符. 如果取第一列 概率最大的结果,则会发现校验错误. 原因是第 10 位字符错误地将数字“8”识别为数字“9”,可以 看出排除第一列最大概率后,第 10 位字符为“8” 的概率要比其他所有的概率都要大 ,因此将第 10 位的“9”替换为“8”(图中红框所示),此时校验 通过,得到正确的火车号. 5 检测模型优化 在实际工程应用中,除识别准确率外,识别速 度也是一个影响使用效果的关键因素. 深度神经 网络的计算量主要消耗在卷积层特征提取阶段, 随着网络中各个卷积层中通道数的增加计算量急 剧增加. 通道数一般都是人工根据经验设定,但不 同应用所需要提取的特征数可能不同. 因此,可以 通过一定的剪枝技术去除多余的通道,从而降低 计算量,提高检测速度. 本文采用“静态剪枝+精细调节”的方式进行 网络剪枝,参考基于批归一化(Batch norm)因子剪 图 6 火车号字符检测结果示例 Fig.6 Examples of wagon number character detection results 图 7 每个字符对应的前 8 个最大概率类别、概率值及校验纠错位 Fig.7 Top 8 class and corresponding probabilities of every character and correction by verification · 1530 · 工程科学学报,第 42 卷,第 11 期
王志明等:基于深度学习的高效火车号识别 .1531· 枝算法并进行改进,综合考虑滤波器权重之间 6 实验结果及分析 的相关性和批归一化因子生成通道重要性因子, 然后根据这一重要性因子对YOLO3网络的各个 6.1数据集介绍 卷积层进行剪枝,最后对剪枝过的网络进行精调 本文实验用的火车号图像采用线阵相机拍 训练,得到优化后的检测模型. 摄,每张图像都包含需要识别的12位符合火车号 批归一化层的输人与输出关系如式(4)所示 编码国际标准的火车号,一共采集了5397幅原始 图像,其中只有单行排列火车号的1678幅,只有 =5in-MB 兰,2ou=y2+B (4) 三行火车号的2054幅,既包含单行火车号又包含 √B+ 三行火车号的1665张图像(两个号码相同). 其中,B和σB分别为当前层输入的均值和标准差, 由于原始的火车号图像分辨率太大,根据火 ε为一个小的正数,防止出现除零现象.y和B分别 车号分布热力图从每一个原始图像上裁剪分辨率 为批归一化层的归一化因子和偏置值,通过网络 为1200像素×2400像素的图像用于训练火车号区 学习得到,其中y在一定程度上代表了各个通道的 域检测模型,裁剪时保证每张图像都包含火车号, 重要性.但这种剪枝方法没有考虑到滤波器之间 且火车号在图像上分布的位置随机.然后在每个 的相似度,在剪枝过程中可能会把两个y值较大、 图中标注其中的火车号字符,根据字符标注可以 但相关性较高的通道同时保存下来.因此,本文综 生成用于训练火车号区域检测的区域标记,同时 合考虑批归一化因子和相关性计算一个滤波器的 提取火车区域及相应的字符标注作为训练字符检 重要性.设某一卷积层的卷积核大小为×r,输入 测的样本.从所有数据集中随机提取1072个样本 通道数为m,输出通道数为n,则该层共有n个 作为测试集,其余4325个作为训练样本 r×r×m的三维滤波器,对应于每个输出通道.将每 6.2评价指标及结果 个滤波器中所有权重看作一个一维向量w,则第 对于两个阶段的检测模型,采用目标检测常 i个滤波器与第j个滤波器之间的相关度可由下式 用的综合评价指标平均精度均值(Mean average 得到: precision,mAP)进行评价.另外,在一个带有Nvidia Cov(wi,w) GTX1060显卡的笔记本电脑上测试了平均检测时 ei.j= (5) VVar(wi)Var(wj) 间和显存占用量,以衡量算法的计算效率 除YOLOv3外,同时基于MMDetection目标检 其中,Cov(,)表示协方差,Var(表示方差.由相关 测算法框架2,比较了经典的目标检测模型Faster-- 度产生的重要性因子记为1减去每个滤波器与其 RCNNIO(主干网络为ResNet50)和SSDUSI(主干网 他所有滤波器相关度的和(经归一化处理),如式 络为VGG16).每个模型都经过充分训练后,选择 (6)所示 最优结果.表1为火车号区域检测和字符检测的 1 实验结果 pi=1- E 2ei.j, E=max ei.j 6 从表1可以看出,两个阶段的检测都具有较高 加1,j*i =l.ti 的mAP,且YOLOv3的性能和Faster-.RCNN及SSD 如果记由批归一化因子产生的重要性为: 基本相当.区域检测比字符检测具有更高的mAP, 右=1-告,F=max9 (7) 可能是由于区域类别少、面积大,检测相对更为容 每个滤波器的最终重要性因子定义为: 易.另外,经过剪枝和再训练的模型具有更高的精 度,这可能是因为样本数量相对较少,在模型简化 0:=a1d+a2P,0<1,a2<1,a1+a2=1(8) 后在一定程度中抑制了训练过程中的过拟合现 其中,α1和2为两个正系数,分别代表批归一化因 象.剪枝后模型的大小只有原来13左右,显存占 子和相关性的加权系数,实验中取a1=a2=0.5 用率节约30%左右,计算时间节省1/3左右.与 得到重要性因子后,根据重要性因子从大到 Faster-RCNN相比,模型较小,虽然显存占用较多, 小对滤波器进行排序,剪枝一定比例的滤波器(实 但平均处理时间有很大的优势;与SSD相比,剪枝 验中取50%),降低平均输出通道数(特征维度) 前模型较大,剪枝后模型较小,显存占用较多,但 再经过精调训练,在保证检测准确率的条件下简 平均处理时间也有较大的优势.考虑到应用现场 化网络,提高检测效率 对识别速度的苛刻要求,本文选择采用YOLO3
枝算法[25] 并进行改进,综合考虑滤波器权重之间 的相关性和批归一化因子生成通道重要性因子, 然后根据这一重要性因子对 YOLOv3 网络的各个 卷积层进行剪枝,最后对剪枝过的网络进行精调 训练,得到优化后的检测模型. 批归一化层的输入与输出关系如式(4)所示. zˆ = zin −µB √ σ 2 B +ε , zout = γzˆ +β (4) µB σB ε γ β γ γ wi 其中, 和 分别为当前层输入的均值和标准差, 为一个小的正数,防止出现除零现象. 和 分别 为批归一化层的归一化因子和偏置值,通过网络 学习得到,其中 在一定程度上代表了各个通道的 重要性. 但这种剪枝方法没有考虑到滤波器之间 的相似度,在剪枝过程中可能会把两个 值较大、 但相关性较高的通道同时保存下来. 因此,本文综 合考虑批归一化因子和相关性计算一个滤波器的 重要性. 设某一卷积层的卷积核大小为 r×r,输入 通道数为 m,输出通道数为 n,则该层共有 n 个 r×r×m 的三维滤波器,对应于每个输出通道. 将每 个滤波器中所有权重看作一个一维向量 ,则第 i 个滤波器与第 j 个滤波器之间的相关度可由下式 得到: ei, j = Cov(wi ,wj) √ Var(wi)Var(wj) (5) 其中, Cov(·,·) 表示协方差, Var(·) 表示方差. 由相关 度产生的重要性因子记为 1 减去每个滤波器与其 他所有滤波器相关度的和(经归一化处理),如式 (6)所示. ρi = 1− 1 E ∑m j=1, j,i ei, j , E = maxi ∑m j=1, j,i ei, j (6) 如果记由批归一化因子产生的重要性为: λi = 1− γi F , F = maxi(γi) (7) 每个滤波器的最终重要性因子定义为: θi = α1λi +α2ρi , 0 < α1,α2 < 1, α1 +α2 = 1 (8) α1 α2 α1 = α2 = 0.5 其中, 和 为两个正系数,分别代表批归一化因 子和相关性的加权系数,实验中取 . 得到重要性因子后,根据重要性因子从大到 小对滤波器进行排序,剪枝一定比例的滤波器(实 验中取 50%),降低平均输出通道数(特征维度). 再经过精调训练,在保证检测准确率的条件下简 化网络,提高检测效率. 6 实验结果及分析 6.1 数据集介绍 本文实验用的火车号图像采用线阵相机拍 摄,每张图像都包含需要识别的 12 位符合火车号 编码国际标准的火车号,一共采集了 5397 幅原始 图像,其中只有单行排列火车号的 1678 幅,只有 三行火车号的 2054 幅,既包含单行火车号又包含 三行火车号的 1665 张图像(两个号码相同). 由于原始的火车号图像分辨率太大,根据火 车号分布热力图从每一个原始图像上裁剪分辨率 为 1200 像素×2400 像素的图像用于训练火车号区 域检测模型,裁剪时保证每张图像都包含火车号, 且火车号在图像上分布的位置随机. 然后在每个 图中标注其中的火车号字符,根据字符标注可以 生成用于训练火车号区域检测的区域标记,同时 提取火车区域及相应的字符标注作为训练字符检 测的样本. 从所有数据集中随机提取 1072 个样本 作为测试集,其余 4325 个作为训练样本. 6.2 评价指标及结果 对于两个阶段的检测模型,采用目标检测常 用的综合评价指标平均精度均值(Mean average precision,mAP)进行评价. 另外,在一个带有 Nvidia GTX 1060 显卡的笔记本电脑上测试了平均检测时 间和显存占用量,以衡量算法的计算效率. 除 YOLOv3 外,同时基于 MMDetection 目标检 测算法框架[26] ,比较了经典的目标检测模型 FasterRCNN[10] (主干网络为 ResNet50)和 SSD[15] (主干网 络为 VGG16). 每个模型都经过充分训练后,选择 最优结果. 表 1 为火车号区域检测和字符检测的 实验结果. 从表 1 可以看出,两个阶段的检测都具有较高 的 mAP,且 YOLOv3 的性能和 Faster-RCNN 及 SSD 基本相当. 区域检测比字符检测具有更高的 mAP, 可能是由于区域类别少、面积大,检测相对更为容 易. 另外,经过剪枝和再训练的模型具有更高的精 度,这可能是因为样本数量相对较少,在模型简化 后在一定程度中抑制了训练过程中的过拟合现 象. 剪枝后模型的大小只有原来 1/3 左右,显存占 用率节约 30% 左右,计算时间节省 1/3 左右. 与 Faster-RCNN 相比,模型较小,虽然显存占用较多, 但平均处理时间有很大的优势;与 SSD 相比,剪枝 前模型较大,剪枝后模型较小,显存占用较多,但 平均处理时间也有较大的优势. 考虑到应用现场 对识别速度的苛刻要求,本文选择采用 YOLOv3 王志明等: 基于深度学习的高效火车号识别 · 1531 ·
·1532 工程科学学报,第42卷,第11期 表1火车号区域检测和字符检测的实验结果 Table 1 Results of wagon number region detection and character detection Phase Detectionmodel Pruning mAP/% Model size/MB Runtime memory/MB Mean time/ms W 95.31 241 1625 44.06 YOLOv3 95.37 93 1155 31.41 Region detection Faster-RCNN 95.38 323 1121 103.16 SSD 95.20 192 833 62.01 90.39 241 1307 2922 YOLOv3 上 90.69 84 881 18.43 Character detection Faster-RCNN 90.68 323 1161 110.09 SSD 90.40 201 851 62.49 并结合模型剪枝实现整个识别系统 表2校验和模型剪枝对识别结果的影响 基于C+程序语言设计实现了一个完整火车 Table 2 Influence of model pruning and verification on the 号识别系统,集成两个阶段的检测结果完成完整 recognition results 的火车号识别功能,并在第二阶段按字符概率进 Verification Accuracy Error Rejection Mean comection Pruning rate/o rate/% rate/% time/ms 行火车号校验纠错.识别效果在包含1072张原始 N 93.56 4.76 1.68 221 火车号图像的测试集上评价,所有12位火车号全 Y N 96.361.96 1.68 224 部识别正确视为结果正确 96.92 2.15 0.93 191 在第一阶段检测中,有的图像中会包含两个 排列方式不同但号码相同的火车号.因此,在整个 件条件难以进行实时处理.本文提出一种由粗到 系统识别流程中,当第一阶段检测到图像中存在 细、分阶段进行目标检测的火车号识别算法,较好 不止一个火车号时,先对识别置信度大的火车号 地解决了在高分辨大图中检测和识别相对很小的 区域进行字符检测和火车号识别,若检测到足够 火车号目标的问题 多的字符且校验正确,则完成识别:否则,对下一 基于火车号编码所包含校验位的先验知识, 个候选火车号区域进行字符检测和识别.另外,在 本文在第二阶段的检测中输出多个候选类别概 识别过程中可能出现识别的火车号字符位数小于 率,从而可以依照概率对个别位识别错误的结果 12位,这种情况一般是由于火车号区域定位不准 进行校验纠错,在同样的目标检测精度下提高了 确导致包围框未能包含所有的火车号字符,此时 整体识别正确率 将包围框的左右边界各向外扩大宽度的10%进行 针对实际应用中对实时处理的要求,本文提 再次检测.实验结果表明,这一处理可以进一步提 出一种结合批归一化因子和滤波器相关性的通道 高识别正确率 剪枝方法,经过对两个阶段检测模型的剪枝和优 为验证校验纠错的有效性,以及模型剪枝后 化训练,在提高处理速度的同时使得整体识别正 对整体识别性能的影响,对比了有无校验纠错和 确率略有提高 有无模型剪枝的整体识别效果,结果如表2所示. 下一步的可能的研究方向包括:采用更为高效 从表中可以看出,校验纠错过程在平均时间提高 的目标检测算法以提高识别正确率:在模型剪枝过 极少的条件下可将整体识别正确率提高2.80%.通 程中采用更为合理的滤波器重要性度量,以实现 过对两个阶段目标检测模型的剪枝简化,在平均处 更高比例的模型压缩,从而进一步提高处理速度 理时间减少约15%的同时,识别正确率提高了0.56%, 参考文献 从而可以更好地满足实际工程应用的需求 [1]Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification 7结论 with deep convolutional neural networks //26th Annal Conference on Neural Information Processing Systems.Lake 火车号在整个车箱上只占很小的一部分,为 Tahoe,.2012:1097 准确识别需要采用较高的分辨率,而高分辨率又 [2]LeCun Y,Bengio Y,Hinton G.Deep learning.Natre,2015,521: 造成图像像素数巨大,现有的深度学习算法和硬 436
并结合模型剪枝实现整个识别系统. 基于 C++程序语言设计实现了一个完整火车 号识别系统,集成两个阶段的检测结果完成完整 的火车号识别功能,并在第二阶段按字符概率进 行火车号校验纠错. 识别效果在包含 1072 张原始 火车号图像的测试集上评价,所有 12 位火车号全 部识别正确视为结果正确. 在第一阶段检测中,有的图像中会包含两个 排列方式不同但号码相同的火车号. 因此,在整个 系统识别流程中,当第一阶段检测到图像中存在 不止一个火车号时,先对识别置信度大的火车号 区域进行字符检测和火车号识别,若检测到足够 多的字符且校验正确,则完成识别;否则,对下一 个候选火车号区域进行字符检测和识别. 另外,在 识别过程中可能出现识别的火车号字符位数小于 12 位,这种情况一般是由于火车号区域定位不准 确导致包围框未能包含所有的火车号字符,此时 将包围框的左右边界各向外扩大宽度的 10% 进行 再次检测. 实验结果表明,这一处理可以进一步提 高识别正确率. 为验证校验纠错的有效性,以及模型剪枝后 对整体识别性能的影响,对比了有无校验纠错和 有无模型剪枝的整体识别效果,结果如表 2 所示. 从表中可以看出,校验纠错过程在平均时间提高 极少的条件下可将整体识别正确率提高 2.80%. 通 过对两个阶段目标检测模型的剪枝简化,在平均处 理时间减少约 15% 的同时,识别正确率提高了 0.56%, 从而可以更好地满足实际工程应用的需求. 7 结论 火车号在整个车箱上只占很小的一部分,为 准确识别需要采用较高的分辨率,而高分辨率又 造成图像像素数巨大,现有的深度学习算法和硬 件条件难以进行实时处理. 本文提出一种由粗到 细、分阶段进行目标检测的火车号识别算法,较好 地解决了在高分辨大图中检测和识别相对很小的 火车号目标的问题. 基于火车号编码所包含校验位的先验知识, 本文在第二阶段的检测中输出多个候选类别概 率,从而可以依照概率对个别位识别错误的结果 进行校验纠错,在同样的目标检测精度下提高了 整体识别正确率. 针对实际应用中对实时处理的要求,本文提 出一种结合批归一化因子和滤波器相关性的通道 剪枝方法,经过对两个阶段检测模型的剪枝和优 化训练,在提高处理速度的同时使得整体识别正 确率略有提高. 下一步的可能的研究方向包括:采用更为高效 的目标检测算法以提高识别正确率;在模型剪枝过 程中采用更为合理的滤波器重要性度量,以实现 更高比例的模型压缩,从而进一步提高处理速度. 参 考 文 献 Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks // 26th Annual Conference on Neural Information Processing Systems. Lake Tahoe, 2012: 1097 [1] LeCun Y, Bengio Y, Hinton G. Deep learning. Nature, 2015, 521: 436 [2] 表 1 火车号区域检测和字符检测的实验结果 Table 1 Results of wagon number region detection and character detection Phase Detectionmodel Pruning mAP/% Model size/MB Runtime memory/MB Mean time/ms Region detection YOLOv3 N 95.31 241 1625 44.06 Y 95.37 93 1155 31.41 Faster-RCNN 95.38 323 1121 103.16 SSD 95.20 192 833 62.01 Character detection YOLOv3 N 90.39 241 1307 29.22 Y 90.69 84 881 18.43 Faster-RCNN 90.68 323 1161 110.09 SSD 90.40 201 851 62.49 表 2 校验和模型剪枝对识别结果的影响 Table 2 Influence of model pruning and verification on the recognition results Verification & correction Pruning Accuracy rate/% Error rate/% Rejection rate/% Mean time/ms N N 93.56 4.76 1.68 221 Y N 96.36 1.96 1.68 224 Y Y 96.92 2.15 0.93 191 · 1532 · 工程科学学报,第 42 卷,第 11 期
王志明等:基于深度学习的高效火车号识别 ·1533 [3]Liao J.Research on recognition of railway wagon numbers based 06-24)[2019-11-12].https://arxiv.org/abs/1906.09756v1 on deep convolutional neural networks.J Transp Eng Inf,2016, [15]Liu W,Anguelov D,Erhan D,et al.SSD:Single shot multibox 14(4):64 detector /European Conference on Computer Vision.Amsterdam, (廖健.基于深度卷积神经网络的货车车号识别研究.交通运输 2016:21 工程与信息学报,2016,14(4):64) [16]Redmon J,Divvala S,Girshick R,et al.You only look once: [4]Li H,Wang P,You M Y,et al.Reading car license plates using Unified,real-time object detection /Proceedings of the IEEE deep neural networks.Image Vision Comput,2018,72:14 Conference on Computer Vision and Pattern Recognition.Las [5]Li H,Wang P,Shen C H.Toward end-to-end car license plate Vegas,2016:779 detection and recognition with deep neural networks.IEEE Trans [17]Rezatofighi H,Tsoi N,Gwak J Y,et al.Generalized intersection Intell Transp Syst,2019,20(3):1126 over union:a metric and a loss for bounding box regression //2019 [6] Montazzolli S,Jung C.Real-time Brazilian license plate detection IEEE/CVF Conference on Computer Vision and Pattern and recognition using deep convolutional neural networks //2017 Recognition.Long Beach,2019:2961 30th SIBGRAPI Conference on Graphics,Patterns and Images [18]Zheng Z H,Wang P,Liu W,et al.Distance-loU Loss:faster and (SIBGRAPI).Niteroi,2017:52 better leaming for bounding box regression [J/OL].arXiv preprint [7]Laroca R,Severo E,Zanlorensi L A,et al.A robust real-time (2019-11-19)[2019-12-151.htps://arxiv.org/abs/1911.08287 automatic license plate recognition based on the YOLO detector / [19]Lin T Y,Goyal P,Girshick R,et al.Focal loss for dense object 2018 International Joint Conference on Neural Networks (LCNN). detection.IEEE Trans Pattern Anal Mach Intell,2020,42(2):318 Rio de Janeiro,2018:1 [20]Shen Z Q,Liu Z,Li J G,et al.DSOD:Leaming deeply supervised [8]Zhang Q.Li J F,Zhuo L.Review of Vehicle Recognition object detectors from scratch /Proceedings of the IEEE Technology.J Beijing Univ Technol,2018,44(3):382 International Conference on Computer Vision.Venice,2017:1919 (张强、李嘉锋、卓力.车辆识别技术综述.北京工业大学学报, [21]Law H,Deng J.CornerNet:detecting objects as paired keypoints 2018,44(3):382) [J/OL].arXiv preprint (2019-03-18)[2019-12-15].https://arxiv.org/ [9] Zhao Z Q,Zheng P,Xu S T,et al.Object detection with deep abs/1808.01244v2 learning:a review.IEEE Trans Neural Networks Learning Syst, [22]Duan K W,Bai S,Xie LX,et al.CenterNet:Keypoint triplets for 2019,30(11:3212 object detection [J/OL].arXiy preprint (2019-04-19)[2019-12-15] [10]Ren S Q,He K M,Girshick R,et al.Faster R-CNN:towards real- https://arxiv.org/abs/1904.08189v3 time object detection with region proposal networks.IEEE Trans [23]Rashwan A.Agarwal R,Kalra A,et al.MatrixNets:a new scale Pattern Anal Mach Intell,2017,39(6):1137 and aspect ratio aware architecture for object detection[J/OL]. [11]Lin TY,Dollar P,Girshick R,et al.Feature pyramid networks for arXiy preprint (2020-01-09)[2020-01-15].https://arxiv.org/abs/ object detection I Proceedings of the IEEE Conference on 2001.03194v1 Computer Vision and Pattern Recognition.Honolulu,2017:2117 [24]Redmon J,Farhadi A.YOLOv3:an incremental improvement [12]He K M,Gkioxari G,Dollar P,et al.Mask R-CNN.[J/OL].arXiv [J/OL].arXiv preprint (2018-04-08)[2019-11-12].https://arxiv. preprint(2018-01-24)[2019-12-1].htps://arxiv.org/abs/1703. org/abs/1804.02767 06870 [25]Liu Z,Li J G,Shen Z Q,et al.Learning efficient convolutional [13]Lu X,Li B Y,Yue Y X,et al.Grid R-CNN plus:faster and better networks through network slimming /2017 IEEE International [J/OL].arXiv preprint (2019-06-13)[2019-12-15].https://arxiv. Conference on Computer Vision.Venice,2017:2755 org/abs/1906.05688v1 [26]Chen K,Wang J Q,Pang J M,et al.MMDetection:Open MMLab [14]Cai Z W,Vasconcelos N.Cascade R-CNN:high quality object detection toolbox and benchmark [J/OL].arXi preprint (2019-06- detection and instance segmentation[J/OL].arXi preprint(2019- 17)[2019-11-121.https://arxiv.org/abs/1906.07155v1
Liao J. Research on recognition of railway wagon numbers based on deep convolutional neural networks. J Transp Eng Inf, 2016, 14(4): 64 (廖健. 基于深度卷积神经网络的货车车号识别研究. 交通运输 工程与信息学报, 2016, 14(4):64) [3] Li H, Wang P, You M Y, et al. Reading car license plates using deep neural networks. Image Vision Comput, 2018, 72: 14 [4] Li H, Wang P, Shen C H. Toward end-to-end car license plate detection and recognition with deep neural networks. IEEE Trans Intell Transp Syst, 2019, 20(3): 1126 [5] Montazzolli S, Jung C. Real-time Brazilian license plate detection and recognition using deep convolutional neural networks // 2017 30th SIBGRAPI Conference on Graphics, Patterns and Images (SIBGRAPI). Niterói, 2017: 52 [6] Laroca R, Severo E, Zanlorensi L A, et al. A robust real-time automatic license plate recognition based on the YOLO detector // 2018 International Joint Conference on Neural Networks (IJCNN). Rio de Janeiro, 2018: 1 [7] Zhang Q, Li J F, Zhuo L. Review of Vehicle Recognition Technology. J Beijing Univ Technol, 2018, 44(3): 382 (张强、李嘉锋、卓力. 车辆识别技术综述. 北京工业大学学报, 2018, 44(3):382) [8] Zhao Z Q, Zheng P, Xu S T, et al. Object detection with deep learning: a review. IEEE Trans Neural Networks Learning Syst, 2019, 30(11): 3212 [9] Ren S Q, He K M, Girshick R, et al. Faster R-CNN: towards realtime object detection with region proposal networks. IEEE Trans Pattern Anal Mach Intell, 2017, 39(6): 1137 [10] Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, 2017: 2117 [11] He K M, Gkioxari G, Dollár P, et al. Mask R-CNN. [J/OL]. arXiv preprint (2018-01-24) [2019-12-15]. https://arxiv.org/abs/1703. 06870 [12] Lu X, Li B Y, Yue Y X, et al. Grid R-CNN plus: faster and better [J/OL]. arXiv preprint (2019-06-13) [2019-12-15]. https://arxiv. org/abs/1906.05688v1 [13] Cai Z W, Vasconcelos N. Cascade R-CNN: high quality object detection and instance segmentation[J/OL]. arXiv preprint (2019- [14] 06-24) [2019-11-12]. https://arxiv.org/abs/1906.09756v1 Liu W, Anguelov D, Erhan D, et al. SSD: Single shot multibox detector // European Conference on Computer Vision. Amsterdam, 2016: 21 [15] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, 2016: 779 [16] Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalized intersection over union: a metric and a loss for bounding box regression // 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, 2019: 2961 [17] Zheng Z H, Wang P, Liu W, et al. Distance-IoU Loss: faster and better learning for bounding box regression [J/OL]. arXiv preprint (2019-11-19) [2019-12-15]. https://arxiv.org/abs/1911.08287 [18] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection. IEEE Trans Pattern Anal Mach Intell, 2020, 42(2): 318 [19] Shen Z Q, Liu Z, Li J G, et al. DSOD: Learning deeply supervised object detectors from scratch // Proceedings of the IEEE International Conference on Computer Vision. Venice, 2017: 1919 [20] Law H, Deng J. CornerNet: detecting objects as paired keypoints [J/OL]. arXiv preprint (2019-03-18) [2019-12-15]. https://arxiv.org/ abs/1808.01244v2 [21] Duan K W, Bai S, Xie L X, et al. CenterNet: Keypoint triplets for object detection [J/OL]. arXiv preprint (2019-04-19) [2019-12-15]. https://arxiv.org/abs/1904.08189v3 [22] Rashwan A, Agarwal R, Kalra A, et al. MatrixNets: a new scale and aspect ratio aware architecture for object detection[J/OL]. arXiv preprint (2020-01-09) [2020-01-15]. https://arxiv.org/abs/ 2001.03194v1 [23] Redmon J, Farhadi A. YOLOv3: an incremental improvement [J/OL]. arXiv preprint (2018-04-08) [2019-11-12]. https://arxiv. org/abs/1804.02767 [24] Liu Z, Li J G, Shen Z Q, et al. Learning efficient convolutional networks through network slimming // 2017 IEEE International Conference on Computer Vision. Venice, 2017: 2755 [25] Chen K, Wang J Q, Pang J M, et al. MMDetection: Open MMLab detection toolbox and benchmark [J/OL]. arXiv preprint (2019-06- 17) [2019-11-12]. https://arxiv.org/abs/1906.07155v1 [26] 王志明等: 基于深度学习的高效火车号识别 · 1533 ·