CN115221910A - 二维码识别方法、装置、设备及计算机可读存储介质 - Google Patents
二维码识别方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115221910A CN115221910A CN202110721500.4A CN202110721500A CN115221910A CN 115221910 A CN115221910 A CN 115221910A CN 202110721500 A CN202110721500 A CN 202110721500A CN 115221910 A CN115221910 A CN 115221910A
- Authority
- CN
- China
- Prior art keywords
- curve
- edge
- image
- dimensional code
- preprocessed image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000007781 pre-processing Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000003708 edge detection Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例涉及图像处理技术领域,公开了一种二维码识别方法,该方法包括:获取待识别二维码;对所述待识别二维码进行预处理,得到预处理图像;对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;根据所述边缘曲线提取所述预处理图像的网格;根据所述网格对所述预处理图像重建,得到目标二维码图像;对所述目标二维码图像进行识别,得到识别结果。通过上述方式,本发明实施例实现了提高二维码识别率的效果。
Description
技术领域
本发明实施例涉及图像处理技术领域,具体涉及一种二维码识别方法、装置、设备及计算机可读存储介质。
背景技术
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。
二维码支付兴起,极大地促进了该技术的普及程度,同时也促进了该项技术的不断迭代升级。然而,本申请的发明人在实施本发明的过程中发现,现有一般的应用场景都是要求用户拿着图像采集设备对着二维码拍摄并持续识别,如果识别不了还需要变换角度,使得识别效率较低;并且在某些特定场景,比如采集到的图像发生了较为严重的形变,即使变换角度,现有的识别方法还是会识别失败,使得识别率低。
发明内容
鉴于上述问题,本发明实施例提供了一种二维码识别方法,用于解决现有技术中存在的识别率低的技术问题。
根据本发明实施例的一个方面,提供了一种二维码识别方法,所述方法包括:
获取待识别二维码;
对所述待识别二维码进行预处理,得到预处理图像;
对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
根据所述边缘曲线提取所述预处理图像的网格;
根据所述网格对所述预处理图像重建,得到目标二维码图像;
对所述目标二维码图像进行识别,得到识别结果。
在一种可选的方式中,所述对所述待识别二维码进行预处理,得到预处理图像,包括:
对所述待识别二维码进行灰度化处理,得到灰度图像;
将所述灰度图像进行滤波处理,得到滤波后的图像;
将所述滤波后的图像进行二值化处理,得到二值化图像;
将所述二值化图像进行边缘提取,得到边缘二值图;
将所述二值化图像及所述边缘二值图作为预处理图像。
在一种可选的方式中,所述对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置;
根据所述定位标识位置,提取所述预处理图像中定位标识的外框线段;
根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
在一种可选的方式中,所述对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置,包括:
对所述预处理图像进行逐行逐列扫描;
将黑白间隔符合预设比例关系的点作为所述定位标识中的点;
根据所述定位标识中的点确定所述定位标识位置。
在一种可选的方式中,所述根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
将所述外框线段进行连线得到两条边框线;
根据两条所述边框线,采用预设的多项式函数对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
在一种可选的方式中,所述根据所述边缘曲线提取所述预处理图像的网格,包括:
将所述边缘曲线作为初始网格曲线;
沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线;
确定所述下一曲线上的点中属于边缘点的数量;
当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线;
将所述边缘网格线作为所述初始网格线,继续执行所述沿所述初始网格曲线的法线方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线的步骤,直至达到终止点,得到所述网格。
根据本发明实施例的另一方面,提供了一种二维码识别装置,包括:
获取模块,用于获取待识别二维码;
预处理模块,用于对所述待识别二维码进行预处理,得到预处理图像;
拟合模块,用于对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
网格提取模块,用于根据所述边缘曲线提取所述预处理图像的网格;
重建模块,用于根据所述网格对所述预处理图像重建,得到目标二维码图像;
识别模块,用于对所述目标二维码图像进行识别,得到识别结果。
在一种可选的方式中,所述根据所述边缘曲线提取所述预处理图像的网格,包括:
将所述边缘曲线作为初始网格曲线;
沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线;
确定所述下一曲线上的点中属于边缘点的数量;
当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线;
将所述边缘网格线作为所述初始网格线,继续执行所述沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线的步骤,直至达到终止点,得到所述网格。
根据本发明实施例的另一方面,提供了一种二维码识别设备,包括:
处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行所述的二维码识别方法的操作。
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在二维码识别设备上运行时,使得二维码识别设备执行所述的二维码识别方法的操作。
本发明实施例通过获取待识别二维码,对所述待识别二维码进行预处理,,并对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,根据所述边缘曲线提取所述预处理图像的网格,从而根据所述网格对所述预处理图像重建,得到目标二维码图像,以对所述目标二维码图像进行识别,得到识别结果,使得能够对采集到的二维码图像进行自动寻找定位网格,从而采用重建的方法获得容易识别成功的二维码图案,提升了二维码的识别率。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的二维码识别方法的流程示意图;
图2示出了本发明实施例提供的预处理图像的边缘曲线的部分示意图;
图3示出了本发明实施例提供的二维码识别装置的结构示意图;
图4示出了本发明实施例提供的二维码识别设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
图1示出了本发明实施例提供的二维码识别方法的流程图,该方法由二维码识别设备执行。该二维码识别设备可以是计算机设备,如台式电脑、个人计算机、平板电脑等;还可以是终端设备,如手机、售货机、支付设备等;还可以是智能化设备,如智能售货机器人,还可以是室内机器人、自动换电机器人等。如图1所示,该方法包括以下步骤:
步骤110:获取待识别二维码。
其中,本发明实施例的待识别二维码可以是通过摄像装置目标区域进行拍摄得到待识别的二维码图像。该目标区域可以是设置有二维码图片的区域,也可以是用于容纳目标终端的区域,该目标终端显示有二维码图像。
步骤120:对所述待识别二维码进行预处理,得到预处理图像。
其中,本发明实施例对待识别二维码进行预处理的目的是为了得到清晰的二值化图像和边缘二值图。
具体地,可以对所述待识别二维码进行灰度化处理,得到灰度图像;再将所述灰度图像进行滤波处理,得到滤波后的图像;其中,可以通过高斯滤波来得到滤波后的图像。将所述滤波后的图像进行二值化处理,得到二值化图像。在二值化图像的基础上,将所述二值化图像进行边缘提取,得到边缘二值图。其中,可以采用Canny算子(Canny边缘检测算子是John F.Canny开发的一个多级边缘检测算法)提取边缘操作,得到边缘二值图。该边缘二值图反映了待识别二维码图像中的图像内容之间的边界。将所述二值化图像及所述边缘二值图作为预处理图像。
本发明实施例中,由于摄像头拍摄到的图像画面分辨率一般比较高,并且由于拍摄位置等原因二维码在待识别二维码图像中所占比例较小等,如果对整幅图像进行算法处理可能会造成耗时过长,因此,在执行步骤120之前,还可以预先通过图像识别模型来从待识别图像上抠取感兴趣的二维码区域图像(ROI)。该图像识别模型可以是对yolov3、pvanet等神经网络模型预先训练得到的。
本发明实施例中,在得到预处理图像后,可对预处理图像进行二维码识别,若识别成功,则二维码识别结束;若识别失败,则需要进一步处理,执行步骤130。
步骤130:对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线。
本发明实施例中,拟合得到边缘曲线具体包括以下步骤:
步骤1301:对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置。具体地,对所述预处理图像进行逐行逐列扫描;将黑白间隔符合预设比例关系的点作为所述定位标识中的点;根据所述定位标识中的点确定所述定位标识位置。其中,预设比例关系为根据二维码图像中定位标识的特点设置。二维码图像中定位标识为3个定位标识框,该定位标识框是回字形定位框。对预处理图像中的二值化图像进行逐行逐列扫描,根据定位标识框的特点,对于每一行或每一列定位标识框的黑白间隔为1:1:3:1:1比例的关系,也就是说,当每一行(从左至右)或每一列(从上至下)扫描到回字形定位框的外边框上的黑线时,黑线的长度为1,扫描至回字形定位框的白色框时,白线的长度为1,当扫描至回字形内部正方形时,黑线为3,然后再扫描至白色框时,白线的长度为1,扫描到回字形定位框的外边框上的黑线时,黑线的长度为1。其中,每一行或每一列指的可以是按照每一行像素点或每一列像素点进行扫描,此处的长度可以用像素点数量表示。因此,可以得到各个定位标识位置,也即定位标识中各个像素点的坐标。
步骤1302:根据所述定位标识位置,提取所述预处理图像中定位标识的外框线段。
其中,在得到各个定位标识的位置后,采用垂直判定法确定3个定位标识位置关系。具体地,3个定位标识总是以右上角的框为顶点的直角三角形,如图2所示。垂直判定法为:
a·b=|a||b|cosθ
在二维码图像未发生形变时,该夹角θ=90°;在发生形变时,该夹角也应在90°附近。根据定位标识位置及该夹角,从而可以确定3个定位标识之间的关系。
如图2所示,在预处理图像中定位到的定位标识的位置,该3个定位标识分别位于二维码的三个顶角处,由于在步骤1301的扫描过程中已经得到了各个定位标识的外框坐标,将该3个定位标识最外框的边缘进行连线,得到两条靠近图像边缘的外框线段。
步骤1303:根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
具体地,根据两条所述外框线段采用多项式函数对所述矫正后的图像进行拟合,得到所述二维码边缘曲线。其中,该多项式函数为:
y=a0+a1x+…+akxk
其中,x和y分别为所述矫正后的图像上的某一个像素坐标(x,y),a0,a1,…,ak为需要求取的参数,k为拟合的次数。本发明实施例中,k=3,也即,拟合3次即可得到较为准确的边缘曲线。
由于各个边缘像素点的坐标在上述扫描过程中已经得到,对于整个预处理图像中所有边缘像素点的坐标,采用上述多项式函数进行拟合计算,则可以表示为以下矩阵形式:
也即:
X·A=Y;
故:
A=(XT·X)-1·XT·Y;
通过上述公式采用最小二乘法进行拟合计算,得到所述预处理图像的边缘曲线。
步骤140:根据所述边缘曲线提取所述预处理图像的网格。
本发明实施例中,在得到边缘曲线后,根据所述边缘曲线提取所述预处理图像的网格,具体地,一般的二维码图像正方形,其即使发生形变,也基本是形变后不规则的四边形,因此边缘曲线包括横向延伸的边缘曲线和纵向延伸的边缘曲线。根据横向和纵向曲线的延伸方向,分别在两个方向上寻找码元网格曲线,以构建网格。在寻找时,在该预处理图像所在平面上分别沿着曲线的法线的垂直方向前后n个像素点长度虚招是否有边缘二值图上的黑线位置,如果有则记录这些像素点,再根据这些点更新曲线方程,从而得到一条边缘网格线,以此迭代直至搜索结束。
具体包括以下步骤:
步骤1401:将所述边缘曲线作为初始网格曲线。
本发明实施例中边缘曲线包括横向边缘曲线和纵向边缘曲线。则分别将横向边缘曲线及纵向边缘曲线作为初始网格曲线。
步骤1402:沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线。
其中,本发明实施例从初始网格曲线开始,在预处理图像所在的平面上,沿着初始网格曲线的法线的垂直方向移动预设长度,从而确定预处理图像中像素点的位置。也就是说,从初始网格曲线上的每一个像素点出发,沿着法线的垂直方向移动预设长度,从而距离初始网格曲线上每一个像素点预设长度的各个像素点,将这些像素点构成的曲线确定为下一曲线。其中预设长度可以是像素点长度,本发明实施例不做具体限定。
步骤1403:确定所述下一曲线上的点中属于边缘点的数量。
本发明实施例中,统计下一曲线上的像素点属于边缘点的数量,该边缘点为边缘二值图中属于黑线的像素点。
步骤1404:当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线。
可以理解地是,本发明实施例的预设阈值可以根据二维码图形中像素点的特点进行相应设置,本发明实施例不做具体限制。在本发明的一种实施方式中,该预设阈值可以是边缘点数量的峰值。具体地,可以通过预先对二维码图形中像素点边缘分布的边缘点数量进行统计,从而确定二维码图形中像素点边缘分布的峰值。通过确定下一曲线上的边缘点是否达到该峰值,可以确定该曲线为边缘网格曲线的概率。该峰值指的是该下一曲线上的边缘点数量与前后相邻的曲线的边缘点数量相比出现峰值,该峰值也可以理解为数据的斜率为0的位置。例如,在持续平移曲线的过程中,在第1个至N个曲线上统计的边缘点个数分别为1、2、3、4、3、2、1...,则在第4个曲线上的边缘点数量“4”即为峰值,4之前的数据是递增的,斜率为正,4之后的数据是递减的,斜率为负,因此,可以理解为在“4”处的斜率为0。
当该下一曲线为边缘网格线时,根据该下一曲线上各个像素点的坐标以及上述多项式函数,从而确定该边缘网格线的参数矩阵,也即得到了该边缘网格线的表达式。
步骤1405:将所述边缘网格线作为所述初始网格线,继续执行上述步骤1402-步骤1405,直至达到终止点,得到所述网格。
在确定下一曲线是边缘网格线后,将该下一曲线作为初始网格线,再一次沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线,直至搜索结束,得到多条边缘网格线。搜索结束指的是:从边缘曲线开始移动预设步长进行搜索,直至最后一次得到的初始网格曲线距离二维码边缘的距离小于预设长度时,则搜索结束。
将从横向边缘曲线开始搜索得到的多条边缘网格线以及从纵向边缘曲线开始搜索得到的多条边缘网格线进行合并,得到预处理图像的网格。
步骤150:根据所述网格对所述预处理图像重建,得到目标二维码图像。
根据网格对预处理图像进行重建的过程为:根据该网格及预处理图像进行绘图,得到目标二维码图像。该绘图的过程可以是根据网格中的像素点坐标及预处理图像进行坐标变换,从而得到目标二维码图像。
步骤160:对所述目标二维码图像进行识别,得到识别结果。
其中,通过上述重建得到的目标二维码图像为清晰的标准的二维码图像,对该目标二维码图像进行识别,从而得到识别结果。该识别结果可以是对二维码解码成功的结果。该识别过程可以通过识别引擎进行识别,如zxing(ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库)等识别引擎。
本发明实施例通过获取待识别二维码,对所述待识别二维码进行预处理,,并对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,根据所述边缘曲线提取所述预处理图像的网格,从而根据所述网格对所述预处理图像重建,得到目标二维码图像,以对所述目标二维码图像进行识别,得到识别结果,使得能够对采集到的二维码图像进行自动寻找定位网格,从而采用重建的方法获得容易识别成功的二维码图案,提升了二维码的识别率。
图3示出了本发明实施例提供的二维码识别装置的结构示意图。如图3所示,该装置200包括:
获取模块210,用于获取待识别二维码;
预处理模块220,用于对所述待识别二维码进行预处理,得到预处理图像;
拟合模块230,用于对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
网格提取模块240,用于根据所述边缘曲线提取所述预处理图像的网格;
重建模块250,用于根据所述网格对所述预处理图像重建,得到目标二维码图像;
识别模块260,用于对所述目标二维码图像进行识别,得到识别结果。
本发明实施例的二维码识别装置的具体工作过程与上述方法实施例的具体实施步骤一致,此处不再赘述。
本发明实施例通过获取待识别二维码,对所述待识别二维码进行预处理,,并对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,根据所述边缘曲线提取所述预处理图像的网格,从而根据所述网格对所述预处理图像重建,得到目标二维码图像,以对所述目标二维码图像进行识别,得到识别结果,使得能够对采集到的二维码图像进行自动寻找定位网格,从而采用重建的方法获得容易识别成功的二维码图案,提升了二维码的识别率。
图4示出了本发明实施例提供的二维码识别设备的结构示意图,本发明具体实施例并不对二维码识别设备的具体实现做限定。
如图4所示,该二维码识别设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于二维码识别方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。二维码识别设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以被处理器302调用使二维码识别设备执行以下操作:
获取待识别二维码;
对所述待识别二维码进行预处理,得到预处理图像;
对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
根据所述边缘曲线提取所述预处理图像的网格;
根据所述网格对所述预处理图像重建,得到目标二维码图像;
对所述目标二维码图像进行识别,得到识别结果。
在一种可选的方式中,所述对所述待识别二维码进行预处理,得到预处理图像,包括:
对所述待识别二维码进行灰度化处理,得到灰度图像;
将所述灰度图像进行滤波处理,得到滤波后的图像;
将所述滤波后的图像进行二值化处理,得到二值化图像;
将所述二值化图像进行边缘提取,得到边缘二值图;
将所述二值化图像及所述边缘二值图作为预处理图像。
在一种可选的方式中,所述对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置;
根据所述定位标识位置,提取所述预处理图像中定位标识的外框线段;
根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
在一种可选的方式中,所述对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置,包括:
对所述预处理图像进行逐行逐列扫描;
将黑白间隔符合预设比例关系的点作为所述定位标识中的点;
根据所述定位标识中的点确定所述定位标识位置。
在一种可选的方式中,所述根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
将所述外框线段进行连线得到两条边框线;
根据两条所述边框线,采用预设的多项式函数对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
在一种可选的方式中,所述根据所述边缘曲线提取所述预处理图像的网格,包括:
将所述边缘曲线作为初始网格曲线;
沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线;
确定所述下一曲线上的点中属于边缘点的数量;
当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线;
将所述边缘网格线作为所述初始网格线,继续执行所述沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线的步骤,直至达到终止点,得到所述网格。
本发明实施例通过获取待识别二维码,对所述待识别二维码进行预处理,,并对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,根据所述边缘曲线提取所述预处理图像的网格,从而根据所述网格对所述预处理图像重建,得到目标二维码图像,以对所述目标二维码图像进行识别,得到识别结果,使得能够对采集到的二维码图像进行自动寻找定位网格,从而采用重建的方法获得容易识别成功的二维码图案,提升了二维码的识别率。
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在二维码识别设备上运行时,使得所述二维码识别设备执行上述任意方法实施例中的二维码识别方法。
可执行指令具体可以用于使得二维码识别设备执行以下操作:
获取待识别二维码;
对所述待识别二维码进行预处理,得到预处理图像;
对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
根据所述边缘曲线提取所述预处理图像的网格;
根据所述网格对所述预处理图像重建,得到目标二维码图像;
对所述目标二维码图像进行识别,得到识别结果。
在一种可选的方式中,所述对所述待识别二维码进行预处理,得到预处理图像,包括:
对所述待识别二维码进行灰度化处理,得到灰度图像;
将所述灰度图像进行滤波处理,得到滤波后的图像;
将所述滤波后的图像进行二值化处理,得到二值化图像;
将所述二值化图像进行边缘提取,得到边缘二值图;
将所述二值化图像及所述边缘二值图作为预处理图像。
在一种可选的方式中,所述对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置;
根据所述定位标识位置,提取所述预处理图像中定位标识的外框线段;
根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
在一种可选的方式中,所述对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置,包括:
对所述预处理图像进行逐行逐列扫描;
将黑白间隔符合预设比例关系的点作为所述定位标识中的点;
根据所述定位标识中的点确定所述定位标识位置。
在一种可选的方式中,所述根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
将所述外框线段进行连线得到两条边框线;
根据两条所述边框线,采用预设的多项式函数对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
在一种可选的方式中,所述根据所述边缘曲线提取所述预处理图像的网格,包括:
将所述边缘曲线作为初始网格曲线;
沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线;
确定所述下一曲线上的点中属于边缘点的数量;
当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线;
将所述边缘网格线作为所述初始网格线,继续执行所述沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线的步骤,直至达到终止点,得到所述网格。
本发明实施例通过获取待识别二维码,对所述待识别二维码进行预处理,,并对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,根据所述边缘曲线提取所述预处理图像的网格,从而根据所述网格对所述预处理图像重建,得到目标二维码图像,以对所述目标二维码图像进行识别,得到识别结果,使得能够对采集到的二维码图像进行自动寻找定位网格,从而采用重建的方法获得容易识别成功的二维码图案,提升了二维码的识别率。
本发明实施例提供一种二维码识别装置,用于执行上述二维码识别方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使二维码识别设备执行上述任意方法实施例中的二维码识别方法。
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的二维码识别方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (10)
1.一种二维码识别方法,其特征在于,所述方法包括:
获取待识别二维码;
对所述待识别二维码进行预处理,得到预处理图像;
对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
根据所述边缘曲线提取所述预处理图像的网格;
根据所述网格对所述预处理图像重建,得到目标二维码图像;
对所述目标二维码图像进行识别,得到识别结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述待识别二维码进行预处理,得到预处理图像,包括:
对所述待识别二维码进行灰度化处理,得到灰度图像;
将所述灰度图像进行滤波处理,得到滤波后的图像;
将所述滤波后的图像进行二值化处理,得到二值化图像;
将所述二值化图像进行边缘提取,得到边缘二值图;
将所述二值化图像及所述边缘二值图作为预处理图像。
3.根据权利要求1所述的方法,其特征在于,所述对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置;
根据所述定位标识位置,提取所述预处理图像中定位标识的外框线段;
根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
4.根据权利要求3所述的方法,其特征在于,所述对所述预处理图像进行扫描,得到所述预处理图像的定位标识位置,包括:
对所述预处理图像进行逐行逐列扫描;
将黑白间隔符合预设比例关系的点作为所述定位标识中的点;
根据所述定位标识中的点确定所述定位标识位置。
5.根据权利要求3所述的方法,其特征在于,所述根据所述外框线段对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线,包括:
将所述外框线段进行连线得到两条边框线;
根据两条所述边框线,采用预设的多项式函数对所述预处理图像的边缘进行曲线拟合,得到所述预处理图像的边缘曲线。
6.根据权利要求1所述的方法,其特征在于,所述根据所述边缘曲线提取所述预处理图像的网格,包括:
将所述边缘曲线作为初始网格曲线;
沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线;
确定所述下一曲线上的点中属于边缘点的数量;
当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线;
将所述边缘网格线作为所述初始网格线,继续执行所述沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线的步骤,直至达到终止点,得到所述网格。
7.一种二维码识别装置,其特征在于,所述装置包括:
获取模块,用于获取待识别二维码;
预处理模块,用于对所述待识别二维码进行预处理,得到预处理图像;
拟合模块,用于对所述预处理图像进行曲线拟合,得到所述预处理图像的边缘曲线;
网格提取模块,用于根据所述边缘曲线提取所述预处理图像的网格;
重建模块,用于根据所述网格对所述预处理图像重建,得到目标二维码图像;
识别模块,用于对所述目标二维码图像进行识别,得到识别结果。
8.根据权利要求7所述的装置,其特征在于,所述根据所述边缘曲线提取所述预处理图像的网格,包括:
将所述边缘曲线作为初始网格曲线;
沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线;
确定所述下一曲线上的点中属于边缘点的数量;
当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格中的一条边缘网格线;
将所述边缘网格线作为所述初始网格线,继续执行所述沿所述初始网格曲线的法线的垂直方向移动预设长度,以在所述预处理图像中确定下一曲线,确定所述下一曲线上的点中属于边缘点的数量,当所述边缘点的数量大于预设阈值时,将所述下一曲线确定为所述网格线中的一条边缘网格线的步骤,直至达到终止点,得到所述网格。
9.一种二维码识别设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6任意一项所述的二维码识别方法的操作。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在二维码识别设备上运行时,使得二维码识别设备执行如权利要求1-6任意一项所述的二维码识别方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721500.4A CN115221910A (zh) | 2021-06-28 | 2021-06-28 | 二维码识别方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721500.4A CN115221910A (zh) | 2021-06-28 | 2021-06-28 | 二维码识别方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115221910A true CN115221910A (zh) | 2022-10-21 |
Family
ID=83606222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110721500.4A Pending CN115221910A (zh) | 2021-06-28 | 2021-06-28 | 二维码识别方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115221910A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115759145A (zh) * | 2022-11-14 | 2023-03-07 | 东集技术股份有限公司 | 条码识别方法、装置、存储介质及计算机设备 |
CN118551788A (zh) * | 2024-07-29 | 2024-08-27 | 深圳市中选科技有限公司 | 一种基于云计算的溯源二维码识别方法及系统 |
-
2021
- 2021-06-28 CN CN202110721500.4A patent/CN115221910A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115759145A (zh) * | 2022-11-14 | 2023-03-07 | 东集技术股份有限公司 | 条码识别方法、装置、存储介质及计算机设备 |
CN118551788A (zh) * | 2024-07-29 | 2024-08-27 | 深圳市中选科技有限公司 | 一种基于云计算的溯源二维码识别方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008809B (zh) | 表格数据的获取方法、装置和服务器 | |
CN110046529B (zh) | 二维码识别方法、装置及设备 | |
JP4284288B2 (ja) | パターン認識装置及びその方法 | |
CN112348787A (zh) | 物体缺陷检测模型的训练方法、物体缺陷检测方法及装置 | |
CN104463066B (zh) | 一种商品外包装一维条形码快速定位识别方法 | |
US20240020923A1 (en) | Positioning method based on semantic information, device and computer-readable storage medium | |
CN106709500B (zh) | 一种图像特征匹配的方法 | |
CN105260694B (zh) | 一种基于多级骨干提取与分析的二维码区域定位方法 | |
CN111311497B (zh) | 一种条形码图像角度校正方法和装置 | |
CN107273777A (zh) | 一种基于滑动部件匹配的二维码码型识别方法 | |
CN114049380B (zh) | 目标物体定位追踪方法、装置、计算机设备和存储介质 | |
CN107578011A (zh) | 视频关键帧的判定方法及装置 | |
CN105335744A (zh) | 一种基于图像骨干抽取条带分布特征的一维码区域定位 | |
CN115238723A (zh) | 一种局部顶点检测方法及装置 | |
CN115221910A (zh) | 二维码识别方法、装置、设备及计算机可读存储介质 | |
CN113228105B (zh) | 一种图像处理方法、装置和电子设备 | |
EP4089644A1 (en) | Image matching system | |
CN118520893B (zh) | 一种应用于aoi的条形码标签识别的方法、装置及存储介质 | |
CN107862314B (zh) | 一种喷码识别方法和识别装置 | |
CN112070077B (zh) | 一种基于深度学习的食物识别方法和装置 | |
CN114626118A (zh) | 建筑物室内模型生成方法及装置 | |
WO2020186900A1 (zh) | 窄条二维码、窄条二维码的生成、识别方法、装置及设备 | |
CN113065480B (zh) | 书法作品风格的识别方法、装置、电子装置和存储介质 | |
CN117217247A (zh) | 一种二维码识别方法、装置及设备 | |
CN115221909A (zh) | 二维码识别方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |