您好, 访客   登录/注册

改进二值化算法在QR码识别中的应用

来源:用户上传      作者:

  摘 要:针对模糊、光照不均情况下获得的低质量QR码难以识别的问题,设计一种低质量QR码识别算法,包括加权平均值法灰度化、中值滤波算法降噪、二值化、基于位置探测图形定位、基于透视变换法的旋转矫正,以及基于Zbar开源库的译码算法等。重点研究针对模糊、光照不均QR码图像的二值化算法,提出一种基于Bernsen算法思想的改进算法,将全局阈值引入該算法中,实现对图像的二值化处理。在VS2010环境下基于Opencv2.4.9图像处理库对识别算法进行验证,结果表明,通过该算法得到的QR码图像完整且噪声少,有效克服了低质量QR码的影响,提高了图像识别率,具有一定的实用性。
  关键词:低质量QR码;二值化;Bernsen;Zbar;图像识别
  DOI:10. 11907/rjdk. 191689
  中图分类号:TP319   文献标识码:A                 文章编号:1672-7800(2020)003-0163-05
  The Improvement Binarization Algorithm for QR Code Recognition
  YANG Ling-xiao, FENG Qing-xiu
  (School of Electrical Engineering and Automation, Henan Polytechnic University, Jiaozuo 454000, China)
  Abstract:The paper devises an improved computing method for low quality QR code, including graying, the de-nosing median filtering algorithm, binarization, positioning, correction and a decoding computing method based on Zbar open source library, so as to address the problem of the inability to recognize the QR code caused by blur images and uneven lighting. The paper attaches great importance to the binarization of blurring and uneven light QR images, thus proposing an improved computing method based on Bernsen method with the introduction of global thresholding to achieve the binarization of QR code. The author tests this computing method based on OpenCV2.4.9 computer vision open source library in VS2010 setting. The study indicates that this approach will efficiently overcome the negative impact low quality QR code have on the recognition, consequently and proficiently create a full image with less noises and improve the recognition rate of QR code.
  Key Words: low quality QR code; binarization; Bernsen method ; Zbar; image recognition
  0 引言
  QR码识别技术是一门不仅将数据采集、处理、传输等过程融为一体,而且跨越了多门学科的新兴科学技术。当前,人们对QR码识别技术的相关研究主要集中在以下3个方面:QR码图像采集、图像预处理与图像译码。首先,通过图像采集模块对QR码图像进行采集,然后通过处理器对采集到的图片进行预处理,具体过程包括图像灰度化、滤波、二值化、滤波、校正与定位。预处理的目的是为了提高图片质量,以便于下一步解码,是整个识别过程中的关键环节。最后对处理后的图像进行解码,识别QR码格式及版本,完成掩膜消除、纠错等过程,并输出QR码携带的字符信息。但在实际应用中,噪声、抖动、光照不均等因素都会导致采集设备获得的图像质量不高,若预处理方法选取不当则会使处理后的图像出现信息丢失的情况,导致图像无法识别。
  图像灰度化是指将彩色图像转化为灰度图像的过程,可以减少输入图像的信息量以及后续运算量[1],不仅可以加快后续算法处理速度,还提高了系统效率[2-3]。加权平均值法是常用的图像灰度化处理算法[4],根据重要性或其它指标赋予R、G、B不同权值,并使R、G、B的值均等于其原值的加权和。不同权值形成的灰度图像亮度不同,由于人眼对颜色的敏感程度是根据绿红蓝顺序递减的,因此将R、G、B权值由大到小取值将得到比较合理的灰度图像[5]。通过实验与理论推导证明,R、G、B权值分别为0.30、0.59、0.11时得到的灰度图像最为合理[6]。本文采用该方法获得QR二维码的灰度图像。
  通过采集模块获取到的QR码图像或多或少都包含噪声成分,如加性噪声、乘性噪声等,从而使图像变得模糊,因此有必要对图像进行滤波处理,即在最大程度保留图像细节特征的前提下抑制目标图像噪声,其处理结果将直接影响对后续QR码图像的识别。图像滤波包括线性滤波和非线性滤波,如果输出像素是输入像素邻域像素的线性组合,则称为线性滤波,如均值滤波和高斯滤波,否则为非线性滤波,如中值滤波、边缘保持滤波等。针对图像滤波研究,邹雄等[7]对二维码图像预处理过程中的噪声滤除方法进行研究,对几种常用的中值滤波方法进行比较分析并得出规律,继而提出一种基于窗口系数的中值滤波算法,该方法先对图像进行二值化,之后进行中值滤波,对于特定噪声具有较好的处理效果;Andria[8]利用小波线性滤波器对超声医学图像进行去噪处理,可能会损失图像中的细节信息;罗学刚等[9]提出一种选择性计算的快速非局部均匀去噪算法,利用 L2范数逐次消元法剔除大量相似像素点,提高了去噪速度;郭强等[10]根据图像的低秩特性和最小方差估计理论提出迭代去噪算法,能有效抑制残留噪声;李博等[11]提出一种小概率策略的全局自适应分数阶积分去噪算法,在去噪的同时还能增强与保留图像纹理。目前在QR码噪声预处理方法中,中值滤波算法简单且处理效果较好,因此本文选择该算法并将其应用于QR码识别系统中。   针对二值化环节,由于QR码图像的前景和背景具有明显的灰度差异,直方图分布呈双峰态,因此常采用全局阈值法或局部阈值法对QR码图像进行二值化处理[12-14]。全局阈值法是根据整幅图像的灰度特征确定一个阈值对图像进行处理[15]。典型算法有Otsu算法[16],该方法简单、高效,且对噪声不敏感,但会出现大量毛刺现象,在光照过强或过弱区域甚至会出现全(1)白或全(0)黑的情况,致使部分区域细节缺失;局部阈值法是根据图像中待处理点及其周围一定范围内像素点灰度特征计算该待处理点的分割阈值[15]。典型算法有Bernsen算法[17],该方法适用于光照不均、图像灰度呈多级分布的情况,但该方法对各种噪声比较敏感,而且在对图像进行二值化处理时容易出现严重的误判现象,这也是局部阈值法的普遍缺陷。文献[18]在传统Otsu法基础上进行改进,文献[19]在传统Bernsen法基础上进行改进,但这些算法对低质量QR码图像的处理效果仍然不太理想,导致无法进行有效定位。
  对QR码的定位处理是快速有效识别的前提,基于位置探测图形的定位算法与基于Hough变换的条码边缘定位算法是常用的两种定位算法。Hu等[20]研究一种基于纹理方向分析的二维条码提取方法,其根据提出的纹理方向分析方法进行条码初定位,通过变换进行精确定位,该方法被许多二维条码识读器采用;Liu等[21]提出基于角点检测技术的快速响应二维条码定位算法,首先对图像进行边缘检测,然后对边缘进行多边形逼近,之后进行顶点检测,多边形边长比为1∶1的区域为位置探测图形,最后根据3个位置探测图形顶点坐标,拟合最后一个顶点坐标[21]。与基于位置探测图形的定位算法相比,Hough变换计算量大,无法满足快速、实时、高效等要求,所以本文根据QR码的结构特性选择基于位置探测图形的定位算法进行定位。
  获取QR码图像时,采集角度、抖动以及镜头畸变系数等因素会导致图像发生形变,通常利用透视变换法或控制点变换法对QR码图像进行矫正[22]。文献[10]将透视变换法与控制点变换法进行详细对比,发现采用透视变换法进行二维码图像校正可获得良好效果,图像畸变得到了较好恢复,满足了高密度二维码图像在实际应用中的需要,在二维码识别领域可替代控制点变换法完成图像校正工作[23]。鉴于此,本文使用透视变换法实现QR码图像校正。
  目前,Zbar和Zxing是当下流行的两个二维码识别开源库,其中Zbar基于C语言编写,Zxing基于Java编写。相对而言,Zbar执行解码效率高于Zxing,主要原因是Zxing在解码运算中执行的浮点运算非常耗时。从耗费的内存空间角度看,Zbar更适合于嵌入式设备开发,因此本文基于Zbar开源库开发QR码识别程序。
  针对二值化算法的缺点,本文提出一种基于Otsu算法与Bernsen算法的改进算法,并将该算法应用于OR码识别中。该算法在保留上述两种算法优点的同时,也弥补了其缺点,保证了QR码图像在二值化处理后的细节信息,保持了图像完整性,具有一定实用性。
  1 低质量QR码识别算法设计
  当图像采集模块拍摄手机等介质上显示的QR码图像时,难以规避光照不均、模糊和倾斜等因素对图像成像质量的影响,导致获得的低质量QR码图像不利于下一步识别译码。因此,在进行译码前需要对图像进行预处理,以提高QR码识别率。如图1所示,图像预处理以图像采集模块拍摄获得的QR码图像数字信息为基础,利用图像处理技术对该图像进行滤波、灰度化、二值化、定位与旋转矫正,最后基于Zbar开源库对预处理后的QR码进行译码。本文在对QR码图像识别原理进行探究的基础上,对各个环节算法进行实现,并针对预处理环节中的二值化算法,提出一种基于Bernsen算法与Otsu算法改进的新算法,以降低光照不均、图像模糊对识别结果的影响。
  2 二值化算法改进
  2.1 Otsu算法
  Otsu算法又称为“大津法”,该算法使用聚类思想,根据图像灰度特征将图像划分为前景(目标)和背景两类。因为方差是灰度分布均匀性的一种度量,如果这两类之间的类间方差越大,说明构成图像的前景和背景差别越大,当部分前景错分为背景或部分背景错分为前景时,都会导致二者差别变小,所以将使类间方差最大的灰度值作为分割閾值意味着错分概率最小,且分割效果最好。
  设图像灰度级为L,灰度值范围为[0,L-1],假设灰度值t(t∈[0,L-1])为前景与背景分割阈值,对于前景和背景两类像素,每一类出现的概率分别表示为[ω0]和[ω1],且满足[ω0+ω1=1]。每一类的平均灰度值分别表示为[μ0]和[μ1],则图像平均灰度值[μ]可表示为:
  则根据大津法得到类间方差函数为:
  为了获得最优阈值t,需使[δ]的值最大。因此,将[δ]作为目标函数,遍历所有灰度值,求得使[δ]最大的灰度值即为全局最佳阈值。
  2.2 Bernsen算法
  Bernsen算法能有效解决光照不均问题,在图像二值化研究中处于比较重要的地位。其中心思想是:假设图像灰度级为0[~]255,人为设定两个值[S、T](Brensen最初分别取值15、128),当前像素为[(x,y)],像素值为[fx,y],计算以[(x,y)]为中心、大小为[2w+1×2w+1]的窗口内,所有灰度值中最大灰度值M与最小灰度值N的均值[T],即:
  若[M-NS],则当前像素[(x,y)]的阈值为[T],若[fx,yT],则当前该像素灰度值为255,否则为0;若[M-N<S],表示当前窗口所在区域的灰度值差别较小。在此情况下比较[T]和[T],若[TT],则当前该像素灰度值为255,否则为0。
  2.3 改进算法
  本文针对Bernsen算法与Otsu算法在低质量QR码图像二值化处理中的不足,提出一种改进的新算法。该算法对图像进行灰度化处理后,计算出基于Otsu算法的全局阈值与基于Bernsen算法在窗口[2w+1×2w+1]的局部阈值,通过调整算法参数对图像进行二值化处理。算法具体流程描述如下:   (1)采用加权平均法对图像进行灰度化处理。
  (2)遍历图像所有灰度值,将使类间方差目标函数值最大的灰度值记为全局阈值[Τ1]。
  (3)令[S=15,T=0.5×(Τ1+128)],[fx,y]为当前像素[(x,y)]的灰度值,计算以当前像素为中心、大小为[2w+1×2w+1]的窗口内,所有灰度值中最大灰度值[M]和最小灰度值[N]的均值[Τ2]。
  (4)计算窗口内所有灰度值的平均值[average]和均方差SS,其中[x-w x x+w],[y-wyy+w]。
  (5)令[T=αT1+βT2],其中[α+β=1,α0,β0],对图像像素逐点进行二值化处理,规则如下:
  将全局阈值引入局部阈值法中,使每一个窗口内的信息与图像整体信息相关联,将窗口内所有灰度值的均方差引入算法中。当[SSS]时,说明该窗口内灰度值较为宽泛,像素处于前景和背景交叉区域,此时应以[T]为阈值,使得边缘更加连续、平滑;当[SS<S]时,说明该窗口内灰度值较为集中,像素处于前景或背景区域,此时应以Т为阈值,以防止错分,避免白斑或黑斑出现。因此,通过选择合适的权值对灰度图像进行二值化,比使用单个阈值更加合理。
  3 实验结果
  3.1 改进二值化算法实验
  二值化算法中有3个参数[w、α、β]需要手动设定。[w]决定局部窗口大小,算法运行时间与其有一定关系,选取的局部窗口越大,耗时越长,也会影响计算结果的准确性。[α、β]决定全局阈值与局部阈值在算法中的权重,α越大,二值化后的图像中弱光或强光区域凸显的细节越少,而[α]过小会导致[β]过大,误判概率增大。为了保证二值化处理效果,参数选取以[α<β]为原则。经过多次实验,确定算法参数[w、α、β]分别取值为1、0.3、0.7。
  利用笔记本摄像头拍摄获得OR码图像,并从中选取标准、模糊、光照不均,且大小均为640*480的QR码图像各50幅对算法可行性进行验证。在VS2010环境下基于Opencv2.4.9图像处理库编写程序,分别采用Bernsen算法、Otsu算法与本文算法对图像进行二值化处理,3种算法处理结果如图2-图4所示。
  在3组图像中,将方框区域放大后观察可发现:Bernsen算法对图像进行二值化处理的效果最差,对前景与背景误判比较严重,处理后的图像无法识别。但对比图2(b)、图3(b)、图4(b)可以发现,模糊、光照不均等因素对Bernsen算法二值化的影响很小,这一点也反映出该算法的优势;Otsu算法处理结果分别表现出白斑、有毛刺、不完整的现象,但该算法的前景和背景误判问题远没有Bernsen算法严重;通过对比图3(c)与图3(d)发现,在图像模糊的情况下,本文方法获得的二值化图像边缘平滑、连通性好,解决了Otsu二值化方法出现大量毛刺、白斑的问题,并克服了Bernsen算法出现大量误判的缺陷;通过对比图4(c)与图4(d)可以发现,在图像受到不均匀光照的情况下,本文方法获得的二值化图像比较完整,较好地解决了Otsu二值化方法因存在区域缺失导致QR码无法识别的问题。
  3.2 QR码识别算法可靠性实验
  将QR码识别过程分为3部分:图像采集、图像预处理与图像译码。图像采集是指通过笔记本摄像头拍摄获得QR码图像数字信息;图像预处理是指以获得的QR码图像数字信息为基础,利用图像处理技术通过Opencv库函数对该图像进行滤波、灰度化、二值化、定位与旋转矫正;图像译码是指利用Zbar开源库译码算法进行译码,获取QR码存储的数据信息。其中图5(a)表示采集设备获得的原图;图5(b)为灰度图;图5(c)为二值化图;图5(d) 、图5(e)和图5(f)是QR码定位检测结果;图5(g)为最终定位标记图;图5(h)为最终校正图。
  由于显示介质的亮度不唯一,且QR码载体(如手机)在扫描过程中难免出现抖动,造成识别设备拍摄到的图像出现亮度不均、模糊等情况,分别针对这两种情况下QR码识别效果进行测试。通过笔记本摄像头拍摄手机显示屏上显示的QR码图像,在拍摄过程中采用抖动手机的方式获得50张模糊的QR码图像,并采用补光方式获得50张光照不均的QR码图像,其识别结果如表1所示。通过对100 张QR码识别时间进行测试,然后求平均值以得到相对准确的识别时间。实验得到的8组数据如表2所示,其中“A”表示该程序对一张QR码进行预处理与译码的时间,“B”表示该算法识别一张QR码的时间。
  通过分析识别结果可以发现,算法针对模糊、光照不均图像的识别率均为94%。QR码图像的预处理与译码时间在100ms以内,识别时间集中在260ms~300ms之间,100次识别时间的平均值为275.746ms。实验结果验证了本文提出的基于VS2015平台的QR码识别算法的可行性与实用性。
  4 结语
  本文提出一种针对QR码图像的识别算法,并重点对识别过程中的二值化算法进行改进,在结合局部阈值和全局阈值的同时,引入局部窗口灰度值均方差。在对模糊、光照不均情况下的二维码圖像进行处理时,通过多重规则选取不同阈值进行二值化处理,能够得到比Otsu算法与Bernsen算法细节更丰富的图像。在VS2010环境下基于Opencv2.4.9图像处理库与Zbar解码库验证识别算法可靠性,实验结果表明,本文提出识别算法得到的OR码图像完整且噪声少,有效克服了模糊、光照不均等因素对识别过程的影响,识别率高,具有一定的实用性。然而,在预处理过程中,本文虽然利用透视变换法校正倾斜图像,但如果形变较为严重,或选用的摄像头模组出现非线性畸变(桶形畸变或枕形畸变),该算法处理效果则不够理想,如何克服该问题是下一步研究的重点。
  参考文献:
  [1]陆一滨. 二维码在医疗设备标识中的应用[J]. 中国医疗设备, 2015,30(4): 140-141.   [2]刘凯,罗凯耀,姜代红. 基于VC++的车牌图像预处理设计与实现[J]. 软件导刊,2015,14(6): 189-190.
  [3]张芳,王璐,付立思,等. 复杂背景下黄瓜病害叶片的分割方法研究[J]. 浙江农业学报,2014(5): 1346-1355.
  [4]彭溦汐,赵冠先,王志前. 基于图像识别系统的灰度化算法研究与效率分析[J]. 电子世界,2014(7): 105.
  [5]朱其刚,朱志强. 彩色图像转换为灰度图像的算法研究[J]. 山东科技大学学报,2004, 23(3): 120-123.
  [6]李贞培,李平,郭新宇,等. 三种基于GDI+的图像灰度化实现方法[J].  计算机技术与发展,2009, 19(7): 73-75,79.
  [7]邹雄,何翠群,刘国栋,等. 一种快速响应码的图像二值化方法[J]. 传感技术学报, 2010, 23(9):1277-1280.
  [8]ANDRIA G,ATTIVISSIMO F,CAVONE G. Linear filtering of 2-D wavelet coefficients for denoising ultrasound medical images[J].  Measurement, 2012, 45(7): 1792-1800.
  [9]罗学刚,吕俊瑞,王华军, 等. 选择性计算的快速非局部均值图像去噪[J]. 电子科技大学学报,2015, 44(1): 84-90.
  [10]郭强,张彩明,张云峰,等. 基于最小方差估计的图像低秩去噪[J]. 计算机辅助设计与图形学学报, 2015, 27(12): 2237-2246.
  [11]李博,谢巍. 基于自适应分数阶微积分的图像去噪与增强算法[J]. 系统工程与电子技术, 2016, 38(1): 185-192.
  [12]贾坤昊,夹尚丰,杨栩,等. 改进Niblack算法及其在不均匀光照条件下的应用[J]. 软件导刊, 2019, 18(4): 82-86.
  [13]SUDEEP T,RIK D,SAURAV G. A novel feature extraction technique using binarization of bit planes for content based image classification[J]. Journal of Engineering, 2014.
  [14]HEMASK. To detect the text stroke in degraded document images using canny’smap, binarization technique[J]. International Journalof Engineering Sciences&Research Technology,2014,3(6):157-162.
  [15]袁璐, 李仁发. 一种改进的字符图像二值化算法[J]. 微计算机信息,2012,28(3): 140-141,180.
  [16]NOBUYUKI O. A threshold selection method from gray-level histogram[J].  IEEE Trans on Syst Man Cybernet, 1979, 9(1): 62-69.
  [17]JOHN B. Dynamic Thresholding of gray-level image[C].  IEEE International Conference on Pattern Recognition, 1986: 1251-1255.
  [18]SHANG W, CHENG Y.An improved OTSU method based on Genetic Algorithm[C].  International Conference on Machinery, 2016.
  [19]孟立娜,韩其睿. 一种全局和局部相结合的二值化方法研究[J]. 计算机技术与发展, 2012, 22(11): 116-119.
  [20]HU H, XU W, HUANG Q. A 2D barcode extration method based on texture direction analysis[C]. IEEE Compture Society,2009: 759-762.
  [21]LIU Q, LI X, MEI Z, et al. The multi-QR codes extraction method in illegible image based on contour tracing[C]. IEEE International Conference on Anti-counterfeiting,2011.
  [22]何援軍.  透视和透视投影变换论图形变换和投影的若干问题之三[J].  计算机辅助设计与图形学学报, 2005, 17(4): 734-739.
  [23]胡东红, 汪浩, 艾君,等.  两种图像校正算法在实际应用中的比较[J].  计算机工程与应用, 2009, 45(13): 191-193,226.
  (责任编辑:黄 健)
  收稿日期:2019-05-13
  作者简介:杨凌霄(1964-),女,硕士,河南理工大学电气工程与自动化学院教授、硕士生导师,研究方向为智能控制与信息处理;冯庆修(1992-),男,河南理工大学电气工程与自动化学院硕士研究生,研究方向为现代检测技术与装置。本文通讯作者:冯庆修。
转载注明来源:https://www.xzbu.com/8/view-15217384.htm