基于图像的条形码识别方法的研究

您所在的位置:网站首页 条形码的应用方式 基于图像的条形码识别方法的研究

基于图像的条形码识别方法的研究

2023-12-07 07:52| 来源: 网络整理| 查看: 265

摘 要

随着现代科技水平的日益发达以及人类社会文明的迅速进步,条码逐渐成为了生活中重要的一部分。条码已以其简洁便捷的数据读取录入方法,以及精确快捷的编码效果,已日益深入人类的日常生产中。目前,对一维条码的识别主要依赖于条形码扫描器。利用将传统激光扫描仪对准并接近条码,来人工地完成条形码解码与识别输入。人工录入过程中可能会出现质量较差、易出现失真。因此,需要一个可靠快速的条码识别算法。

本文针对条码检测采用了深度学习检测条码的位置,对于背景复杂的图像也能够很好的识别出条码的位置。首先需要收集数据,对收集好的数据进行标注,通过Yolov3对标注好的数据训练出一个识别条码的模型,通过OpenCv加载模型来识别条码的位置。通过深度学习检测条码,能够比传统方法检测条码位置更准确一些。

对于条码识别,采用了ZBar识别条形码,先对识别出条码的区域先进行了Hough检测,通过检测出条码的角度,再用仿射变换将条码旋转成横向或者竖向放置,因为ZBar对具有一定倾斜角度的条码识别效果不佳,所以先将条码变换一下角度在进行识别。从实验结果看,本文方法能够有效增强ZBar的识别率。

 关键词:复杂背景图像;条码位置检测;Hough直线检测;ZBar

  1 引言

  1.1 课题研究背景及意义

随着现代科技水平的日益发达以及人类社会文明的迅速进步,每日人们都必须要去开展一些大规模的小额商品的交易,条码技术也已开始逐步地发展成了其中一个的一个至关的重要的一个组成部分。在实际生活工作中,很多的材料、商品包装之类产品的包装物的上面通常均会带有一些条形码,而实际上这些条码也正是被用来识别标记着它们的。也让资讯传递路径更为精确与快捷,从而提高生活便利度[1]。所以,条码技术能够在世界上迅速蓬勃发展。

一维条形码,或条码图是指一种将长度相同或间隔不等的多条黑白条纹和黑色线条,根据预定的规则规律编排以表达一定信息内容的图文标志。以为条形码能够传递与显示各类型信息,包括产地区域代号、厂商代码、制造批次、种类、产品邮政地址与邮寄方式等等,目前广泛应用各个领域或部门,包括商业流通领域、快递行业、金融领域等等[2]。但现在,随着国民经济的高速发展和科学技术的提高,条码已以其简洁便捷的数据读取录入方法,以及精确快捷的编码效果,已日益深入人类的日常生产中。条形码技术如此普遍的运用在处理数据,特别是电脑对数据的迅速获取方面。因为机器识别数字信息非常迅速,所以把外部文本信息通过编码的方式来给机器进行识别,条形码减少了数据的标准输入输出难度,让人工录入过程中减少了质量较差、易出现失真、成本太高的现象。

目前,对一维条码的识别主要依赖于条形码扫描器。利用将传统激光扫描仪对准并接近条码,来人工地完成条形码解码与识别输入。这种方法的主要优点是技术较成熟,操作简便直接。并且,条形码的解码过程中不易引起外界影响。只要通过手动操作就达到了基本标准,这种方法基本上能够完成一个或若干条码的读写问题。不过,由于条码科技及其商用应用领域的蓬勃发展,条码的使用场合也日益复杂化。必须依赖于传统激光扫描器的读写方法,难以适应人们的实际需求。在大量的文件的电子化、文件的归档等应用领域,由于条形码文档大多采用机器扫描或照相机摄影后存储于个人电脑中,而原本采用人工扫描编码的方法往往在运算过程复杂且工作效率低、有大量的数据的情形下难以实现。这就需要开发数字图像处理的自动编码算法。

通过使用数字图像处理对包含条形码以及背景信息复杂的图像条码进行解密,首先就必须把图像中所有可能含有条形码的区域预先划分开来,之后再将划分开来的区块分别发送给条形码解码器进行解码。如果直接对原始或复杂背景的图形进行编码,那么解码器有可能将不会进行编码,而且很可能不会编码。于是,需要研究出一个快捷而且有效的条码定位算法来处理复杂背景图片中的条码定向与编码问题。

 1.2 国内外研究现状

Gallo和manduchi[3]提供了一个快速检查条形码区域的新技术。该技术可以估计每个像素的直方图的梯度值,并通过滤波器和全局二值化来划分条形码范围。Yun和Kim[4]提供了一个基于旋转和放大压缩的实时一维条码定位技术。其首个环节就是对获取图像的方向直方图,并有效处理其中的背景或噪声。对基于局部熵的方向进行分析,以分割可能是条形码的大区域。然后验证所选候选区域的条形码结构。

Katona和NYúl[5]提出了一种基于形态学计算的算法。首先,为了有效控制图像信噪比,在其中利用了高斯滤波器,通过该方法能够对图像进行必要的平滑处理。之后再利用底帽滤波器,也同样对图像边缘进行相应的处理。把灰度图像转化为二值图像,设置阀门阈值,水平扫描整个图像,以查看白色像素是否位于给定方向上的适当距离。图像的分辨率决定了最大距离参数。然后展开并腐蚀图片,找到可能包含条形码的区域。如果考虑一维码检测可靠性与效率性,那么该算法具有显著优势。

陈俊名[6]、纪琴琴和黄鲁[7]对输入的灰度图象采用了边缘检测和二值化处理。使用学形态学处理方法可以获得条形码候选区段,并使用梯度特性抽取候选区段的边界线。然后,再使用条码空间的平行性对边界线区加以筛选,从而定位条码区。

在有明显污渍缺陷的条码标识上,严小红[8]在预处理中通过了线性灰度化技术和Ostu阈值分割技术,提高了黑白线条和黑白底色之间的对比。在条码定位过程中,考虑到其中黑条纹的特性,即具有直线性,因此为了对该特性能够进行准确定位,在其中利用了Canny边缘检测,同时也配合利用了Hough检测。杨鑫等人[9]通过一维条码EAN码系统的解码原理和线扫描过程来处理一维条码信息。根据污渍、划痕、弯曲等一维条码的损坏情况,设计了相应的算法,并利用行扫描技术完成译码。

 1.3 主要研究内容

针对简单背景下的条形码画像,图像处理中扰动较小,现有算法大多可以精准有效地进行位置辨识。但是,实际的条形码画像通常存在多样性和不确定性。条形码图像可以涉及各种复杂的背景,并且受到摄影环境和照相品质的影响,像素模糊、照度不均以及条码偏移现象也可以出现。而上述的影响因素也给条码识别算法提出了挑战。本文研究对象就是复杂背景条件下如何有效进行条形码图像识别等相关问题,并就其中涉及的关键技术进行了探讨,之后据此提出相应的条码定位解码算法,以改善条形码识别的准确度、鲁棒性以及时序特性。

1)条码的定位

条形码定位过程中的主要问题是,图像可以涵盖许多复杂背景。如果想要在图形背景中区分出条形码,就必须使用条形码不同于图像背后的重要特性。本章将研究用一个深度学习的算法来定位条形码,以消除其他无用的背景,从而测量出任何可以包含条形码的图形区域,然后再根据条形码的其他特性,来找出条形码区域的正确方位。怎样消除复杂背景信息,并对条码区域进行测试,以提升计算的有效性将是本章研究的要点。而根据目前的一些条码定位算法,当条形码存在很大的倾斜角时,就会失灵。而怎样克服条形码的旋转变形,并快速精确地预测条形码的倾斜角,也将是本课题的研究要点。

2)条码的识别

条码识别现在也有很多的开源项目,ZBar和ZXing是经常用到的两种。Zbar[10]功能非常特殊与强大,能够实现针对条形码的多源读取,来源类型覆盖面广,包括图像文件、原始强度传感器等,同时还支持多种形态条形码,如UPC-E、Code 128、Codabar、二维码等等,同时其还具有开源性。包括在库是解码捕获的条形码图像和图像的基本应用程序,使用视频设备(如网络摄像头)作为条形码扫描仪。对于开发者,支持语言绑定包括C、C++、Python和Perl,以及用于Qt、GTK和PyGTK的GUI小部件。

条码或”图像扫描仪”的一般设计都是把数字图像处理技术运用到包含条码的图像:精确的细节各不相同,而这往往包括了一些过滤操作,如消除噪音、锐化和提高对比度、边缘检查和图形分析,以及判断字符位置和方向,最后再从原始图形中获得数据。所有处理都需要提供耗费大量CPU和内存,同时还要求提供更为精确的“滤器参数”,对这一点稍微变化机会出现反应,极大提高了配置理解难度。

ZBar库采用了一种更接近使用一维条形码条纹的激光扫描仪,该一维条形码的条纹被设计成用简单的光学传感器对符号的明暗区域进行解码。ZBar通过这一点实现将每个像素视为单个光传感器的样本从而完成了对图像进行线性扫描,如图1[11]所示。

基于图像的条形码识别方法的研究

ZBar利用现代处理范式将这一思想进一步抽象为一个分层流模型。并拆解成不同的层,同时提供了兼容性和扩展性非常好的接口,能够与其他系统对接。

Zxing项目,其主要实现功能包括两点,其一是一维码扫描,其二是实现二维码识别,并且是基于java语言环境的,同时还具有开源优势。其不仅是提供了JAVA编程语言的实现还同时提供给了一个支持actionscript、objective以及C语言/C++、 C#、Ruby等编程语言的调用接口,目前支持系统覆盖了市面上有所主流系统平台,包括Linux、安卓、windows、ios等。

Zxing 相比于 Zbar,Zxing 支持的编码格式更多,主要支持下列一维条形码和二维码格式:UPC-A 、EAN-8、Code系列、ITF 、RSS-14及变码、RSS扩编码及变码、Data Matrix、PDF 417(‘alpha’ quality)等等。Zxing的主要优点就在于:其功能偏重应用于解决移动手持设备上内置镜头所拍摄到的一维条形码的辨识性问题上;支持多种移动应用开发平台支持了几乎目前所有的当前最主流的视频解码输出格式并能够对于输入到的视频编码格式完全具备了自动的识别能力。

本文程序由python编写,所以选择了ZBar对条码进行识别。

 2 一维条码的介绍

  2.1 一维条码的概述

一维条形码的主要功能就是进行物品标识,该技术研发与大范围内应用于物流产业发展密不可分。但传统的条形码技术在新形势下无法满足自动化管理的需要,因此迅速、准确、阅读方便的条形码信息是条形码技术发展的方向[12,13,14]。

一维条形码有很多种。市面上就有较高利用率的有 EAN-8码、Code39码、Codel28码、UPC-E 码等。UPC(Universal Product Code)是商品编码领域应用最广泛的条形码系统,因而也可以称为万能码。它具有固定长度和连续性的特点。在北美的国家广泛使用。UPC码有五种版本:A、B、C、D、E等,商品领域一般都用UPC-A码,于医药卫生领域用UPC-B码用,工业生产领域用UPC-C码,仓库批发用UPC-D码。而商品短码主要是UPC-E码。

EAN(European Article Number)商业条码又称”普通产品条形码”,作为一种国际标准化的商品代码,或是作为单个商品标识,或者用于销售端商品。这种条码由全球商品编码协会研制,使用普遍,在国际贸易上使用最为普遍。EAN条形码中有两个常见的编码方式,它们分别是 EAN-13编码方案和 EAN-8编码方案,其中 EAN-13由13位数字编码构成称为标准版 EAN,EAN-8由8位数字编码构成被称为缩短版 EAN,我国也大量采用这种编码方案对商品进行编码。生活中,最常用的国家代号是690-693,当中以690、691为首时,厂家标识码为四位,而产品项目代号则为五位;以692、693开始时,厂家标识码是五位,而产品项目代号则是四位。

它们都有共同特征,它们由一组排列整齐的条形和空格组成,但它们的条形和空格宽度编码方法不同。由于可以表达的字符范围和类型不同,它们有不同的应用。图2

基于图像的条形码识别方法的研究

基于图像的条形码识别方法的研究

2.2 一维条码的编码方式

本文主要介绍 EAN-13的特点及编码规则。

基于图像的条形码识别方法的研究

EAN-13码可以编码为数字零到九,每个商品通过一到十组成的十三个数字来表示。编码主要结构可以见下图,分贝有左右侧空白区、起始与终止符、左右侧数据符、分隔与校验符等。同时下方还提供了文字识别内容。如下图3、图4所示是一个典型的EAN-13条形码结构图:

左侧空白区域:位置在最左侧,由十一个模块能够构成该区域的最小长度。

起点字符:处于编码字符左边或空白区域的右边,代表消息起点的特定字符,由三个模块构成。

左侧数据信息符:处于起始符右边,代表六个数值信息的一个条码文字,由四十二个模块构成。

中间分割符:为区分条码数据字符的特定标识符,位在左边数据符的最右边,由五个模块所构成。

右侧数据信息符:置于中央分割符右边,代表五个数值信息中的一个条码数据字符,由三十五个模块构成。

校验符:是条码的校验字符,在右边数字符的最右边,由七个模块构成。

结束符:处于条码符号校验符的最右边,代表信息结果的特定字符,由三个模块构成。

右侧空白区域:位置在最右左侧,由七个模块能够构成该区域的最小长度。

为了能够让右侧空白区域能够保持最小宽度,可在符号右下角添加一个标识符,即 ”>”。

基于图像的条形码识别方法的研究

EAN-13条码中数字字符构成形式就是黑白条,且数量都是两个,二者共由七模板构成。用”1″表示黑条编码,用”0″表示白条编码,则就可以用数字字符编码库的一连串的二进制表示对应的字符集,由这些二进制列组成的编码集组成了EAN-13的条码字符集。条码的二进制表示方式主要有三种子集:A、B和C。

表1 条形码编码字符集

数字字符 A 子集 B 子集 C 子集 0 0001101 0100111 1110010 1 0011001 0110011 1100110 2 0010011 0011011 1101100 3 0111101 0100001 1000010 4 0100011 0011101 1011100 5 0110001 0111001 1001110 6 0101111 0000101 1010000 7 0111011 0010001 1000100 8 0110111 0001001 1001000 9 0001011 0010111 1110100

A子集中所覆盖的条码数字,其中线条模块是奇数数字,同时排序规律也是奇排列;与前者相反的是,B、C子集中所覆盖的条码数字,其中线条模块是偶数数字,因此排序规律是对偶排列。

基于图像的条形码识别方法的研究

二进制数字中的”101″用来代表的是条码的起始与终止符号,而”01010″则用来代表的是分隔符,而UPC-E的终止符则是用二进制”010101″表示,并且没有中间分隔符。如图5所示。

EAN-13产品条形码中的前置码都没有条码文字显示,不包含在左边数据分析符内。右边数据分析符和校验符都用文字集中的C子集显示。选择的A子集或者B子集代表左边数据符,主要是看当前前置码的奇偶个数,在表2中给出了左边数据符的字符集的选取规则。

表2 前置码规则

前置码 左1 左2 左3 左4 左5 左6 0 A A A A A A 1 A A B A B B 2 A A B B A B 3 A A B B B A 4 A B A A B B 5 A B B A A B 6 A B B B A A 7 A B A B A B 8 A B A B B A 9 A B B A B A

EAN-13商品条形码中的检验符号主要是用于校验前十二个数字是否正确,而校验符号是用字符集中的C子集来表示,在每次读取条码数据时,机器都会对条码的编码进行一次校验和计算,计算出的结果再和校验符加以对比。校验符号的计算并不复杂,将左侧开始的十二个数据符通过奇偶位来分别计算,所有的奇数位的数据符通过加法获得一个数a,,而偶数位的数据符计算有些区别,将全部的偶数位的数据符通过加法获得一个数b,接着把数b乘以三再将a通过加法获得数c,用十个减去数c的个位数,只要计算出的结果不是十,那么结果就为校验符;如果是十,那么校验符为零。

以条形码6901234567892为例:

将奇数位的数字求和:6+0+2+4+6+8 = 26

将偶数位的数字求和再乘以三:(9+1+3+5+7+9)x 3 = 102

将奇数位偶数位求和去个位数:(102+26)%10=8

用十减去这个结果:10-8=2

2就为校验符

 3 条形码的定位

  3.1 YOLOv3目标算法检测

YOLOv3算法是YOLOv1和YOLOv2的改进,具有检测精度高、定位准、速度快的优点。具有易实现性,同时还能够提供更高准确性,目前在图像处理场合被深度利用,如交通检测或视频监控等场合[15]。同时也被人脸识别等生物信息领域加以利用。特别是在小目标的检测中,它对环境场景有很好的鲁棒性,因而成为一个热门的研究课题。DBL层是YOLOv3网路结构的基础部分,由卷积算层、BN层和leakyrelu激活函数所构成,在加深神经网络层数同时,这两个DBL的卷积和跳跃连接残差单元有效地避免了梯度的消失。YOLOv3通过以Darknet-53网络为其主干网络,实现了效果更为突出的特征提取。特征提取方面采用多层感知器(MLP)方法。其中,第二层和第三层的特征图是通过将第一层的特征图与低层网络中相同尺寸的特征合并得到的。由于在浅层网络系统中的含义信息内容较少,高度信息内容较多,在深层网络系统中的含义信息内容则较多,因此YOLOv3采用类FPN结构将浅层内容和深度信息相结合,从而得到了预测的特征图,提高了提取不同尺度特征的效率,以增加目标检测准确率。网络结构如图6所示。

基于图像的条形码识别方法的研究

YOLOv3的先验测试(Prior detection)系统经过将类别器或定位仪重新用来完成测试任务。他们可以将模型运用在整个图片的各个部位和尺度上。而某个评分较高的部分也可视为测试结果。另外,相比于其它目标测试方式,我们采取了绝对多样化的方式。我们可以将某个单神经应用于整张图片上,该网络系统将整个图片划分为各种各样的地区,从而可以预计每一种地区的边境框大小和几率,而其中边境框会经过对估计的几率权重。因此我们的模式相对于使用类别器的网络系统来说具有一定优越性。它可以在检测时看到全部像素,从而对它的估计也使用了像素中的全局信号。其预测依据或来源可以建立在对单一网络评估之上,也使得YOLOv3具有与同类算法产品更快的速度,如图7,从中可以看到,其速度超过R-CNN千倍,同时即便是与Fast的R-CNN进行比较,也超过百倍。

基于图像的条形码识别方法的研究

 3.2 目标模型训练

基于图像的条形码识别方法的研究

数据先用labelImg先进行对条码区域进行标注

将标注好的数据放在一个VOC格式下的数据

基于图像的条形码识别方法的研究

用YOLOv3对数据进行训练,通过表3设定参数,训练出权重文件。

表3实验参数

参数名 参数释义 参数值 batch 每一批次的数量 64 momentum 学习动量参数 0.9 decay 权重衰减系数 0.0005 learning_rate 学习率 0.001 burn_in 迭代次数 1000

 4条码识别

在通常一般的图片中,大部分的信息都包括在一起,不过真正有用途的内容并不一定是指所有图片信息。而图形预处理的主要目的,正是经过对图形信号的过滤以及提炼后,把比较有益的信号加以增强,并分拣起来送到识别模块中加以鉴别。在图形分类中,有必要对图形进行特征提取,分离以及匹配等,这都称为对图形的预处理。

图片预处理主要用来对图片中不相关的数据筛除,使相关数据的可分析度增加,以此来改善特征提取的准确性。在本文的道路测试中,原始图片由于环境的差异而呈现不同的画质,因此本文中采取了用Canny边缘检测和Hough变换直线检测[16]的方法调整条码的距离,以便让ZBar更好的识别条码。

4.1 基于Hough变换矫正图片

4.1.1 图像灰度化

现在的图象测量仪器拍摄到的图片通常都为彩色图像的,但在我们的条码定位算法中并不需要图形的色彩信号。为降低运算复杂性、提高效率,在数据处理前要把输入的彩色图片灰度化。一个最常见的将彩色像素转化成灰度图像的方式是加权平均值法,对R、G、B三种通道根据相应的关系进行平均值,以获得灰度值。用公式(1)将图像灰度化。

(1)

基于图像的条形码识别方法的研究

4.1.2 图像滤波

在图像去噪流程中,首先要进行预先制备的环节就是图像预处理,其主要作用路径就是在图像细节完整性尽量不被破坏或削弱的条件下,利用噪声滤波对这些细节部分进行处理控制。而滤波处理控制效果达到的程度好坏等则将直接地影响到着后期的图像噪声处理计算和结果分析工作的安全有效性度和可信度。

1) 高斯滤波器

高斯滤波产生的脉冲响应函数一般是高斯函数,因此被广泛认为是另一种经济、理想、有效的空间噪声滤波方法,这也非常有利于有效地降低高斯白噪声。由于高斯图像函数是一个离散化的二维矩阵,所以我们需要考虑通过把一个高斯函数矩阵在某一定空间尺度上的二维窗口空间内进行采样,从而可以得到一个离散化矩阵的高斯模板系数。二维的高斯函数为

(2)

基于图像的条形码识别方法的研究

2) 中值滤波器

中值滤波技术作为一种效果非常明年的滤波技术,其原理出发点是排序统计理论,并且在其中适用了非线性信号处理方法。它还可以更有效地控制噪声。其结构是一个滑动模块,它能够将模块范围内的中心点数据,用范围内的集中点数据将前者进行替代,为了能够对模块内数据提供合理排序,还在其中利用了核心算法,换言之,某点噪音,将会在排名流程中被放在整个数据信息顺序的最右图甚至是最左边,所以,在最终选择的数据信息顺序中心区域上的数值通常不是噪声点的实际数值。也正是如此,使得中值滤波抑噪水平较为良好。

3)均值滤波器

所谓的均值滤波,将图像中像素值全都用计算得到的均值信息进行替换。所以,均值滤波器才能够发挥控制噪音的效果,在本文中,我们通过使用均值滤波器,主要是来减少非条形码边缘的细直线对条码位置的影响。因为条形码区域中有着大量的边界信号,而高斯滤波器在控制噪音的同时,也会消除条形码图像中的部分边界和细节,对定位条形码的位置带来了不利影响。

4.1.3 图像二值化处理

所谓图片灰度二值化技术,指的就是对像素点进行灰度值设定,取值范围在0到255之间,也就是即使是整一张的图片也产生了明显的黑白底片效应的过程。二值图像的每个像素都有至少二个取值:纯黑或者要纯白。

由此获得的二值图像数据,不仅处理过程非常简单,且数据之间非常明确清晰,因为很多视觉计算与相关技术开发领域都广泛利用。该类图像,能够对物体几何形态与特征进行非常效果非常好的理解与分析,同时在原始图像Mask领域也具有非常高的技术依赖度,这些图像就像部门镂空的纸,能够将一些需要忽略的区域或部分挡住。目前二值化实现方式非常多样,较为通用的是阈值法。

全局阈值:指的是为了对背景图像进行相关处理操作,在过程中主要利用了全局阈值算法,适合的图片类型是背景与前景对比度较高的一类图片。

自适应阈值:该种方法主要是针对图片中背景与物体间的阴影明暗不均匀情况,难以用一个统一阈值来进行图片噪声去除或分离。这时就可分别针对图像的各个局部特点来分别地选择各种不同类型的阈值信号来分别加以分析处理。实际处理图像时,必须能根据某个具体的问题把整个图像区域分为好几个子域并分别地选取其阈值,或以特定的邻域图像区块来判断或选择各点阈值。

4.1.4 Canny边缘算法检测

条码图像主要由黑白条纹图形所构成,使用Hough变换技术能够准确测量计算出与条码边缘垂直的二条对应的直线,从而准确预测出条形码在二维图形空间中对应的位置。直线检测过程中,考虑实用性,主要采用Hough变换方法。首先,对图形进行界限检测。常见的边缘特征的提取方法分为Sobel边缘检测、Prewitt边缘检测、Roberts边缘检测以及Canny边缘检测。其中Sobel和Canny这两种边缘法目前都具有较高利用率,本文也将采用这两个边缘检测法,从图10和图11中可以发现,Canny边缘检测方法的边界检测功能很强大,尽管在图片上出现了一定的模糊度,但是通过该方法,获取到了物体在背景中的界限,因此可以认为该方法在复杂条件下的边缘检测中能够得到更好的效果。

基于图像的条形码识别方法的研究

基于图像的条形码识别方法的研究

图11 Sobel边缘检测

4.1.4 Hough变换

Hough变换法是指一类用于对二值化图形模型中的各种圆、线特征参数进行参数化变换处理运算的方法。是由PaulHough提出的,该算法设计的一个核心思想之一是如何利用某种投票策略来将图像空间中的像素值直接映射到一个参数空间,以便于把如何在各种有可能存在的象素点值之间找一条直线的问题直接转变为一个参数空间中的映射问题。Hough变换目前已经在很多视觉相关行业或领域得到较大认可,如人体运动识别等。同时,它是一种非常有效的目标检测算法或辅助算法。

在条形码定位中,由于条形码由是由”黑”条和白”条”按一定规律排列组成,因此可以将其利用 Hough 变换对条形码进行直线检测,从而判断条形码的初步位置。Hough变换的各种功能中具有最高利用率的还是图像直线检测。在图象空间中,若直线上存在着唯一的倾斜度和截距项,可使用如下公式在图像平面中相对顺序排列的节点上进行连接。

(3)

基于图像的条形码识别方法的研究

因此,图像空间中所有直线可以看作是由参数对(m,b)组成,称这些参数对组成的集合空间为图像参数空间,两条不同直线同时穿过同一点(x,y),它们对应的斜率和截距(m,b)不同,在参数空间中可以用两个不同的点对来表示,其参数空间中用公式(4)表示。

(4)

基于图像的条形码识别方法的研究

因为斜率和截距的值是无界限的,参数空间表示不能表示垂直线,为了解决这个问题,将斜率和截距转换为极坐标中的极径r和θ极角,极径表示原点与垂线之间的距离,极角表示极径与水平坐标之间的夹角直线表示法,图12所示。

(5)

基于图像的条形码识别方法的研究

最后,通过参数空间反映图像直线。在图像平面坐标中,需要几个图像像素点来表示直线,而在图像极坐标表示中,只需要一个点来准确地描述直线,大大减少了与直线检测有关的时间消耗。

基于图像的条形码识别方法的研究

4.1.5 图像仿射变换

仿射变换(Affine Transformation或Affine Map)是一个两维坐标系到两维坐标系中间的线性变换,它保留了二维平面的“水平线形”(即:垂直曲线通过转换以后依然是垂直曲线)和“平行性”(即:二维平面中间的相对位置关系保持稳定,平行线依然是平行线,且垂直曲线上点的定位次序固定。放射变换可写成公式(6)这样的形式:

(6)

基于图像的条形码识别方法的研究

它能够利用各种原子变化的复合形式来完成,当中包含了:平移(Iranslation)、缩放(Scale)、转动(Rotation)、倾斜(Flip)和错切(Shear)。不共线的三对对应点就定义了某个独立的仿射转换,在仿射转换下,所有形状的不变性与不变量都统一为仿射性,它是仿射几何研究的基本目标与内涵。

因为有些图片条码具有一定倾斜度,所以使用仿射变换将条码旋转角度来让ZBar更容易识别。

 4.2 条码识别

所谓的自适应直方图均衡法(AHE),其核心功能是强化图像对比度,AHE与传统所利用的直方图均衡法存在较大差异,其是通过对局部直方图的利用,然后对亮度进行充分排布或分配,从而获得对比度改变的效果。因此该算法能够得到更多 更完整的图像细节,同时还能够精确定位某个图像局部进行对比并获得更好效果。

通过对条形码区域进行预处理,通过深度学习识别条形码区域,然后检测条形码区域的线条来调整角度,通过自适应直方图均衡化和二值化图像处理条码区域,使条码的对比度更高,从而提高了ZBar的识别率。

 5实验设计与结果

  5.1 实验环境

运行系统:Win10系统

实验软件:PyCharm、YOLOv3、OpenCv、ZBar

 5.2 实验设计

本实验设计如图13所示。

实验数据收集,本文所采用的WWU Muenster 条码数据集和ArTe-Lab 条码数据集[17]。

2)对数据进训练,从中数据中选用了600张图片进行了标注,通过YOLOv3对图片进行数据训练,训练出的模型通过OpenCv加载使用。

3)图像偏转角度获取过程,利用的是OpenCv中提供的工具,即最小外接矩形法,对其校正过程,则主要利用了仿射变换实现。最后,利用ZBar算法对处理后的条码图像进行解码,并以字符串格式输出解码信息。最终实现了条码的校准和解析。

 

基于图像的条形码识别方法的研究

 5.3 实验结果

本实验采用的Muenster数据集,在数据集中随机筛选出3组200张图片进行实验。实验结果如表4所示。

表4 实验结果

测试数量 识别数量 识别率(%) 用时(s) 测试1 200 175 92 26.2 测试2 200 182 95 26.1 测试3 200 176 91 27.4

因为样本是从Muenster数据集中随机选取,所以包含了倾斜、模糊、反光等各种样本的条码。通过表4和表5可知,从实验结果看,本文方法能够有效增强ZBar的识别率。因为对图像进行处理,所以导致了运行时间要比ZBar时间长。

识别条码失败的原因主要是条码区域有破损、污损,条码反光、模糊造成辨识度很差,所以导致对条形码区域进行处理时效果不佳,因此该算法还需要进一步的去实现对条码区域进行处理来提高准确率。

表5ZBar直接识别

测试数量 识别数量 识别率(%) 用时(s) 测试1 200 175 86.5 19.5 测试2 200 182 90 19.3 测试3 200 176 82 20.7

 6总结与展望

  6.1 工作总结

本文研究重点是条形码识别算法,涉及两部分内容,其一是定位,其二是译码。

条形码定位部分采用的是深度学习检测目标,通过YOLOv3对标注好的条形码数据进行训练,获得权重文件,再通过OpenCv的最小外接矩阵获得条码数据。对于倾斜的条码需要使用Hough变换直线检测调整条码的角度,以提高ZBar的识别率。

条形码识别是通过对条形码区域使用自适应直方图均衡化和二值化来增强条形码的对比度,从而让条形码的识别效果更好。

 6.2 工作展望

本文的条码识别算法仍然存在一些缺点和不足:1)在条形码旋转角度时可能会把条形码区域覆盖,造成条码损坏,无法识别。2)对条形码区域处理时最困难的部分,因为条形码会因为各种原因造成辨识度很差,例如照射光线不均匀、条码边行、条码模糊等。所以要改进对图像处理的算法,提高条码的识别率。3)优化识别算法,降低识别耗时。

 致 谢

光阴如梭,时光短暂,还有短暂的一个月,大学四年的生活即将结束,即将离开在这里生活了四年的母校,为大学的生涯画上一个句号,准备开始步入人生的下一个阶段。回首这四年时光,经历了许许多多的事情,都还历历在目。这也将是我人生中一段难以忘却的美好回忆在此,我由衷的向我的家人,老师和同学表示谢意。

在这里我要向我的毕业设计指导老师潘新表示感谢,是您在毕业设计上一步一步的指导着我们前进,同时也要向大学四年里每一位代课的老师表示感谢,你们给了我很多宝贵的经验和知识。我也要向我的同学和舍友表示感谢,感谢大家在这四年的生活里对我的照顾,正是因为有你们,让我的大学的xxxx多姿多彩。愿你们以后的生活一路顺风,平安无忧。

最后我要感谢我的家人,正是因为你们对我无微不至的关心和照顾,一直默默的支持我,你们就是我前进时最大的动力。

参 考 文 献

李海波,沈兰海,曹瑞.商品条码与新消费时代[J].条码与信息系统,2016(05):28-29.周倩,吴利刚.移动智慧仓储系统中条码识别及物联网技术的应用[J].电子技术与软件工程,2020(06):119-120.O. Gallo and R. Manduchi, “Reading 1D Barcodes with Mobile Phones Using Deformable Templates,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 33, no. 9, pp. 1834-1843, Sept. 2011.I. Yun and J. Kim, “Vision-based 1D barcode localization method for scale and rotation invariant,” TENCON 2017 – 2017 IEEE Region 10 Conference, 2017, pp. 2204-2208.M. Katona and L. G. Nyúl, “A Novel Method for Accurate and Efficient Barcode Detection with Morphological Operations,” 2012 Eighth International Conference on Signal Image Technology and Internet Based Systems, 2012, pp. 307-314.陈俊名.复杂背景下一维条形码定位算法研究[D].浙江大学,2015.纪琴琴,黄鲁.一种基于图像处理的一维条码快速定位技术[J].中国科学院大学学报,2019,36(05):716-720.严小红.计算机视觉在条形码缺陷检测中的应用[J].华侨大学学报(自然科学版),2017,38(01):109-112.杨鑫,黄诗浩,李建刚,欧海燕,谢文明,林金阳.一种基于线扫描的受损一维条形码识别方法[J].贵州大学学报(自然科学版),2023,(04):91-96.王倩妮,邱菲尔,章圳琰,李玥,夏云鹏.基于Python与Zbar的无人机盘点条形码识别研究[J].物流工程与管理,2018,40(06):76-78.张瑾. 基于图像处理的一维条形码识别技术研究[D].中国石油大学(华东),2014.李盛林.关于条形码识别技术的研究[J].数字技术与应用,2020,38(09):79-81.乌龙泉,宋心葵,浦裕美,杨莉萍,时贵生,吴亚静,孙玉凤.基于条形码技术的病案批量归档系统设计[J].中国病案,2019,20(01):32-34.刘文军,杨卉.条形码技术在物流领域中的应用研究[J].纳税,2018(20):211.李孔. 基于YOLOv3的目标检测算法研究[D].西安科技大学,2023.陈伟伟,武伟.基于Hough变换的直线和圆提取方法[J].电子质量,2019(02):17-19.A. Zamberletti, I. Gallo and S. Albertini, “Robust Angle Invariant 1D Barcode Detection,” 2013 2nd IAPR Asian Conference on Pattern Recognition, 2013, pp. 160-164.

基于图像的条形码识别方法的研究 基于图像的条形码识别方法的研究 VIP月卡¥免费VIP年会员¥免费 价格 ¥9.90 发布时间 2022年11月3日 已付费?登录 或 刷新 下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:打字小能手,如若转载,请注明出处:https://www.sbvv.cn/chachong/66799.html,



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3