APP下载

基于端到端深度网络的QR码快速检测算法

2021-12-10侯玉坤李功燕

计算机仿真 2021年11期
关键词:卷积深度物流

侯玉坤,李功燕

(1.中国科学院微电子研究所,北京 100029;2.中国科学院大学电子电气与通信工程学院,北京 100049)

1 引言

当前环境下,QR码技术的普及,使其在日常生活中得到大范围应用,使用场景不在仅仅局限于网站信息标识、移动支付等,同样物流快递面单也多已采用这种技术。因为QR码具有信息储存量大、多角度识别、应用成本低等特点,非常适合在物流分拣系统中存储包裹信息,同时随着国内外电商规模的不断扩大,快递投送量也成倍的增长,市场对于快递包裹的分拣速度和准确率提出了更高的要求。

通常,物流分拣系统复杂环境下QR码的识别需要经过相机捕获包裹全局图片、QR码目标检测即位置的精确定位、QR码信息读取等步骤。无论是传统的特征点检测定位方法还是基于深度学习的目标检测算法,都是在得到位置后将QR码分割出来提供给后续信息识别部分。所以QR码目标的精确定位极大地影响着分拣系统整体的性能。

文献[4]利用图像处理提取QR码三个特征点同时结合扫描算法检测位置。文献[4]考虑QR码中黑白模块数相近,然后计算输入的LBP特征获得目标区域。文献[4]采用级联的AdaBoost分类器训练检测QR码。文献[4]提出一种基于背景灰度估计的校正算法,优化QR码区域检测。一般地,这些算法仅在特定物理环境下具有较好的检测效果。然而,现实中,在物流包裹自动分拣场景下,由于光照条件、现场环境等影响,采集到的图片质量参差不齐,比如光照变化剧烈、背景干扰复杂、QR码扭曲形变、QR码目标占比较小等容易造成误检和漏检,导致QR码检测难度提升。因此,研究快速、高可靠性的QR码目标检测方法,对实现复杂条件下物流包裹的自动分拣具有重要的意义。

近年来,深度学习促进计算机视觉及图像不同研究领域进一步的发展,和传统的图像算法需要设计者根据不同任务特点去手工设计特征相比,深度学习模型可以省去这些繁杂的过程,通过模型训练自动从训练数据中提取特征信息,并且参数调整及模型优化更加方便,具备着更加显著的优势。所以在本文借鉴经典卷积神经网络的思想,面向智能物流分拣环境下QR码检测定位问题,设计一种基于One-Stage模型的QR码快速检测算法,以满足工业现场实际应用的要求。

2 基于深度学习QR码检测分析

目前,基于深度学习的目标检测任务主要有两种通行的解决方案:一种是两阶段(Two-Stage)目标检测,另一种是单阶段的(One-Stage)。对于两阶段目标检测,通常需要经过特征提取及区域选择、分类回归器两个阶段。例如经典的Faster-RCNN[4],首先利用卷积神经网络获得输入数据的特征图,然后经过区域生成网络(Region Proposal Network,RPN)[4]生成待定的候选框,最后利用分类器、回归器以及后续非极大值抑制算法确定最终结果。而对于以YOLO[4]和SSD[4]为代表的单阶段检测算法而言,直接通过主干网络提取不同尺度的特征信息,直接进行分类以及坐标位置回归的任务。与两阶段最大的不同是省略了使用RPN网络生成候选框的过程,节省了计算资源,使得算法运行速度更快,但是精度相对于两阶段目标检测模型略低。

一般而言,YOLO和SSD等单阶段检测模型作为普适的算法,设计的目的都是面向于COCO、VOC等类别丰富且数据量大的公共数据集,虽然在检测速度上相较于两阶段算法有了较大的提升,可以轻易的在高性能GPU上实现实时检测,但所需的计算资源仍然较多,无法满足当前阶段工业现场部署的要求。考虑到本课题所面对的数据是智能物流分拣中包裹QR图片(如图1所示为物流分拣现场采集的图片)目标种类单一,且待检测的目标物体尺度变化范围有限。使用经典SSD及YOLO等将会有大量冗余,影响检测效率,所以本文结合QR图片数据特点将基于单阶段检测模型进行设计和改进,构建一种快速、鲁棒性高的QR目标检测算法。

图1 物流分拣现场采集的待检测QR码图片样例

3 网络结构

考虑到物流分拣现场环境以及待检测目标QR码的特殊性,本文以单阶段检测算法作为基础框架,设计一种针对QR码目标的轻量化检测模型。可以直接通过级联卷积层提取特征信息,继而回归定位QR码位置。模型的整体框架结构如图2所示,主要包括多尺度特征提取网络以及后续检测分类模块。

图2 QR码检测网络整体框架图

3.1 特征提取模块

本文使用的特征提取网络模块主要类似于VGG下采样特征提取过程,由卷积模块和跳转连接组成,目的在于高效地提取输入图片特征及捕捉语义信息。其中MyBlock模块借鉴ResNet的跳转连接思想来保留一定程度原始特征图的信息,同时嵌入优化的深度可分离卷积降低参数计算量。模块主干网络的结构如表1所示,在提取特征信息的过程中,网络进行了5次的尺度收缩,最终末端特征图尺寸13×13。同时,类似于YOLO v3的结构,本文选取序号6、8、10三个不同尺度的中间特征作为输出,接着经过特征拼接以及少量的3×3和1×1卷积,最终得到对应13×13×18、26×26×18、52×52×18三个尺度的输出。其中,代表网络浅层信息的特征输出不仅由同尺度的特征图得到,而且还融合了深层网络特征的信息。另外,特征提取模块中,参考注意力机制的优越性,添加了全连接注意力宏结构的模块(Fully-connected Attention,FCA),整合了多通道的信息,使得网络进一步精简化。

表1 网络主要结构组成

3.2 网络优化

本文提出的方法主要目标应用于物流自动分拣系统环境下的QR码图片检测,考虑到实际工业现场中嵌入式设备的计算资源相对匮乏,故为满足实时检测要求,必须对整体模型作相应改进,提升处理速度,主要从优化卷积方式以及添加全连接宏结构入手。

3.2.1 深度可分离卷积及改进

在标准卷积计算中,参数量的大小取决于卷积尺度以及通道数,例如图3(a)中,输入特征通道数为C1,卷积核尺度为与输入相匹配则为K×K×C1,期望输出通道数为C2,意味着需要C2个卷积核,最终的参数量即为K×K×C1×C2。通常深度学习算法的输入图片维度相对较大,若一个网络模型中均采用标准卷积,则会产生大量的计算,严重拖累计算速度,这对硬件资源较为匮乏的场景是不可接受的。

图3 标准卷积核和深度可分离卷积核示意图

而深度可分离卷积(Depthwise Separable Convolution)[4]可以在几乎不损失模型性能的情况之下,将卷积的参数量大幅度降低(一般降低为3*3卷积的八分之一左右),提高计算资源利用效率以及模型运行速度。主要思想是将标准卷积拆分为深度卷积(Depthwise Convolution)以及点乘卷积(Pointwise Convolution)。其中,一个深度卷积核只对输入的某一层进行独立卷积操作,剥离了标准卷积中跨通道计算的特性,只关注特征图空间维度特征的提取,所以尺度为K×K×1,输入特征通道为C1,则相应的应有K×K×1×C1的参数量。相对应地,点乘卷积则1×1卷积实现跨通道信息的融合,最终的输出特征尺度与标准卷积一致。

一般而言,深度可分离卷积计算中,由于通道数的数目C1和C2较大(通常为64,128,256等),卷积核大小以3×3为主,所以根据前面计算可知,深度可分离卷积的计算量主要集中在点乘卷积这一步。采用分组卷积0方式可以进一步优化1×1点乘卷积,首先将C2个卷积核分成G组,分别对输入进行卷积操作,然后将得到的结果重组成通道数为C2的输出,从而使得点乘卷积的计算量减少G倍。相应地,分组卷积方式会造成通道间信息相互独立,这一定程度上会影响网络性能,因此需要在分组卷积后添加通道重组(Channel Shuffle)[4],已达到混合不同分组特征图的效果。最终利用此类卷积有效地降低模型复杂度,提高检测效率。修改后的深度可分离卷积组成的卷积模块结构如图4所示。

图4 利用优化的深度可分离卷积设计的MyBlock结构图

3.2.2 全连接注意力宏架构

同时在模型的特征提取模块中引入轻量级的全连接注意力结构,与文献[4]相似,FCA主要由两个全连接的层组成,将输入特征图经过压缩(Squeeze)、激活(Excitation)以及比例映射(Scale)后,生成调制的权值向量,然后利用通道乘法对通道进行重新加权赋值。使用基于全局信息动态校准的FCA结构可以让网络更加关注重要的信息,从而允许设计者在降低网络计算复杂度和模型表征能力之间达到平衡,FCA详细的结构如图5所示。

图5 FCA模块详细结构图

图中,FCA(input,x),Input 为特征输入,x为超参数,表示C1:C2的比例,通常设为8。

3.3 快速非极大值抑制

通常在得到每个预测框的坐标回归系数及分类置信度之后,都需要执行非极大值抑制(Non-Maximum Suppression,NMS)来减少重复预测。但是以前的许多工作中[4],NMS都是顺序执行的。即对于数据集中的每个类,根据置信度对检测到的预测框降序排列,然后按照顺序考察每个预测框,删除所有比其置信度低且IOU重叠较多的预测框。

为了提升整体模型检测速度,考虑结合GPU并行处理数据的特性,将传统NMS修改为快速NMS[4]的版本。主要思想为将传统方式下顺序执行并逐步删减预测框的方式替换成矩阵形式,利用Python库矩阵计算的便利达到加速的目的。

首先,对于网络检测置信度得分最高的n个预测目标框按照降序排列,然后计算一个大小为n×n的IOU矩阵X,取出矩阵X的上三角部分,下三角以及对角线均置为0,后续只用考虑每一列中最大的IOU值,该值大于设定的阈值则丢弃该列对应的预测目标框。例如图6的示意,图(a)表示待确定的5个置信度得分最高的预测框IOU矩阵,图(b)为IOU矩阵的上三角部分,图(c)表示最终每一列对应最大的IOU值,可以看到Bbox3和Bbox4的IOU值较大(一般阈值设为0.5),表示前面有和其重合度较大的预测框,且置信度得分比其更高(Bbox1~Bbox5是按照置信度降序排列的),所以删除Bbox3和Bbox4,最终结果保留Bbox1、Bbox2以及Bbox5。

图6 Fast-NMS矩阵加速计算示例

4 实验

4.1 实验准备

实验的训练数据来源于工业线现场采集得到的包裹图片,经过手工筛选及标注后得到11042张的训练数据。为保证实验效果,丰富训练数据以及提高泛化性,所有图片统一进行数据预处理,主要包括输入归一化、随机裁剪、平移变换、随机角度旋转、饱和度、对比度拉伸等。

4.2 参数设置

网络模型输入图片大小为416×416,初始学习率为10-4。从数据集中随机抽取80%的图片作为训练集,其余作为验证集,训练120个Epoch,每10个Epoch过后学习率衰减为的之前的0.9倍。整个训练过程中使用自适应优化算法Adam作为优化器,Batch_Size设置为4,评价标准选择平均精度(Average Precision,AP)。

此外,对于One-Stage目标检测算法而言,预设锚框(Anchor)作为超参数,其合理的设置对检测效果有着重要的作用。针对本文训练数据集而言,现场工业相机拍摄的QR码图片会因为拍摄角度倾斜或者包裹表明不平整造成目标的比例有一定浮动,但主要的长宽比集中于1:1。最终选择将Anchor的面积大小设置为{242,322,482,642},长宽比设置为{1:1,1:2,2:1},这样的Anchor超参数设置可以有效覆盖数据集中所有QR码目标尺寸范围,提升检测效果。

4.3 结果分析

首先,本文在实验中重新基于Python 写了Fast-NMS的代码,经过将传统NMS代码替换后,得到如表2的数据结果,可以看到在几乎不牺牲模型检测性能的情况下各模型的速度均有小幅度提升。

表2 FAST NMS与常规NMS效果对比

模型对比实验中,为达到最好的数据对比效果,所采用的对比模型均为公开数据中表现较好的实现。具体的结果如表3所示,本文采用的网络模型在平均精度指标上与YOLO v3以及SSD这些One-Stage模型相比表现相差不大,与Faster RCNN差距较为明显,但速度上本文模型远远优于其它基于深度学习的模型。

表3 模型对比实验结果

综合来说,在针对物流包裹分拣场景下的QR码检测任务中,除去图片传输通信、预处理和后处理等耗时,QR码检测算法耗时需控制在 60ms 以内,并考虑到设计裕量和未来移植到嵌入式平台中,实际算法运行速度越快越好。本文提出的模型完全满足速度要求,对于物流分拣环境下的QR码检测算法的部署是极为重要地。图7展示了基于本文端到端深度网络的QR码检测效果,待检测目标都能够很好的被检测出来,可满足实际物流分拣场景的需求。

图7 QR码检测效果图

5 结语

本文在智能物流分拣环境下,设计了一种针对QR码目标的快速检测算法。该算法以经典One-Stage检测模型作为基础框架,通过设计特征精简的特征提取网络实现对QR码特征的充分抽取,同时,结合优化后深度可分离卷积以及全连接注意力宏模块,提升模型的表现能力和检测速度,最后通过实验验证了该算法的有效性和可行性。相较于经典模型在保持检测精度同一水平的情况下,大幅度提升检测速度,方便物流分拣现场有限的计算资源环境下部署并获得快速准确地检测效果。

猜你喜欢

卷积深度物流
基于全卷积神经网络的猪背膘厚快速准确测定
物流线上的毒品追踪
四增四减 深度推进
深度思考之不等式
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
韩国智慧物流,为了物流产业的革新
简约教学 深度学习
2009年本刊重点关注之物流展会、交流会