余先涛,秦 岩
(武汉理工大学 机电工程学院,湖北 武汉 430070)
QR码(quick response code)是一种二维条码,目前广泛应用于身份验证、安全防伪、电子商务等领域。如图1所示,QR码图案由深、浅两色的单位模块排列组成,分为编码区域和功能区域。编码区域用于存储数据信息,包括数据码字与纠错码字。功能区域用于辅助识别,主要包括位置探测图形与校正图形等。QR码识别过程包括图像预处理、定位、校正、解码等流程,其中定位算法的性能对QR码识别率的影响最为显著,是识别过程中至关重要的一步。

图1 QR码结构
广义的QR码定位包括QR码区域分割与QR码坐标计算两个过程。区域分割将QR码图案从背景图案中分离出来,从而缩小后续识别流程的作业区域。坐标计算确定QR码关键点在图像中的坐标,后续识别流程据此坐标对QR码图案进行校正后,确定QR码编码区域内数据的排列,进而按解码规则完成解码。为方便表述,将QR码区域分割记为粗定位,将QR码坐标计算记为精定位。
在粗定位算法中,根据神经网络自动提取特征检测QR码。这种基于深度学习的算法[1-2],较基于LBP(local binary pattern)、SIFT(scale invariant feature transform)、HOG(histogram of oriented gradient)等人工纹理特征的算法[3-5]在复杂条件下的定位效果更稳定。但现有算法所使用的网络结构一般较为庞大,参数量大,不适用于运算能力有限的计算机系统。对此,笔者基于YOLOv3[6](you only lock once vesion 3)深度学习模型,设计了一种轻巧的QR码检测模型,使算法在复杂条件下取得较好定位效果,同时保持在运算能力有限的计算机上运行的实时性。
常用精定位算法有基于角点检测的算法[7-8]、基于包围关系的算法[9]与基于比例关系的算法[10-11],其中基于比例关系的算法以其计算简单、实时性好、鲁棒性好的特点应用最为广泛。……