CN111191759A - 一种二维码的生成方法和基于gpu的定位、解码方法 - Google Patents
一种二维码的生成方法和基于gpu的定位、解码方法 Download PDFInfo
- Publication number
- CN111191759A CN111191759A CN202010110360.2A CN202010110360A CN111191759A CN 111191759 A CN111191759 A CN 111191759A CN 202010110360 A CN202010110360 A CN 202010110360A CN 111191759 A CN111191759 A CN 111191759A
- Authority
- CN
- China
- Prior art keywords
- code
- dimensional code
- codes
- dimensional
- feasible
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种二维码的生成方法和定位、解码方法,包括S1.设定编码位数M和图案位置的映射;S2.获得可行编码;S3.生成黑白二维码和基础编码,并保存。本发明生成的二维码,能够携带更多的信息,本发明的解码方法能够显著降低读码的延迟,可同时读多个任意位置、任意角度的二维码,具有较高的抗污损和抗干扰能力。同时,在光线条件较好时可具有较多的有效位数,在光线条件不好时仍然能够保证读到基础数据。
Description
技术领域
本发明涉及图像识别技术领域,具体涉及一种二维码的生成方法和基于GPU的定位、解码方法。
背景技术
二维码是目前图像识别领域中的热点,二维码是一种通过按照某种规律排列的黑白相间图形来记录数据符号信息的编码形式。二维码在各个行业中广泛应用,且根据应用产生了多种不同形式的变种。对于AGV、设备自动定位和对准、拣选货物等应用,需要能够快速准确定位二维码位置的识别方法。工业自动化应用对二维码的识别还提出了稳定性的要求。此外对于电商、汽车制造等涉及大量零部件和SKU的应用而言,还需要让二维码可表达充分的信息。因此,优选的二维码方案需要同时做到可定位、稳定读取与高容量三个要求。
然而现有的二维码识别技术仍存在以下一些问题:第一,解码存在较长的延迟,通常在50ms以上,实时性较低。第二,分辨率较低,因此只能用于近距离解码,且无法同时读多个码。第三,较难抵抗污损、破损等。第四,黑白编码能够较稳定地读取数据,但编码的有效位数较低;彩色编码允许更多的有效位数,然而要求扫码设备必须为彩色相机,使用黑白相机则无法读出任何内容。
发明内容
本发明的目的在于提供一种彩色二维码的生成方法和基于GPU的定位、解码方法,以解决上述背景技术中提出的问题。所述基于GPU的彩色二维码快速定位和稳定解码的方法计算平台要求低,可选用芯片种类多,可以将典型读码延迟降低到3ms以下,可同时读多个任意位置角度放置的二维码,并计算出各个码在空间中的位姿。所生成的二维码图案使用遍历搜索方法进行优化,具有较高的抗污损和抗干扰能力,在光线条件较好时可具有较多的有效位数,在光线条件不好时仍然能够保证读到基础数据。
为实现上述目的,本发明提供一种二维码的生成方法,包括以下步骤:
1.一种二维码的生成方法,其特征在于,包括以下步骤:
S1.设定编码位数M和图案位置的映射;
S2.获得可行编码;
S3.生成黑白二维码和基础编码,并保存;
其中,所述二维码为长宽均为数量N个单位的正方形,所述二维码具有厚度为一个单位的外围,所述二维码内部为矩形棋盘格型图案。
优选的,所述步骤S2包括:
S21.对从0~2的M次方之间的数字X进行判断,对于数字X所对应的二维码进行旋转,解出对应的二进制编码Y,如果二进制编码Y是可行编码,则正在遍历的编码X是不可行编码;否则进入步骤S22;
S22.判断数字X与可行编码集合中的可行编码的海明距离,如果存在海明距离小于第一阈值的可行编码,则X是不可行编码;否则进入步骤S23;
S23.如果数字X中位值为1的位的数量小于第二阈值或大于第三阈值,则X是不可行编码;否则进入步骤S24;
S24.数字X为可行编码,将数字X放入可行编码集。
优选的,所述步骤S3包括:
S31.设数字X的位值为1对应的格子为黑色,否则为白色;
S32.对可行编码集中可行编码对应的黑白二维码图形进行编号,所述编号为基础编码;
S33.保存所述黑白二维码和对应的所述基础编码。
优选的,还包括步骤S4:扩展编码,并生成彩色二维码。
优选的,所述步骤S4包括以下步骤:
S41.对于所述黑白二维码,对黑色或白色格子数量大于等于N/2的格子进行编码扩展;
S42.设定扩展编码的位数和进制,将所述黑白二维码的编码按所述进制进行转化;
S43.为转化后的编码扩展错误纠正码;
S44.将色相轮按进制等分,对所有待扩展格子进行上色,从而生成彩色二维码。
根据本发明的另一方面,提出一种基于GPU的彩色二维码的定位、解码方法,使用一台装载了GPU单元的计算设备进行读码与解码计算,包括以下步骤:
1)获取彩色二维码图片并传入GPU内存;
2)使用GPU对彩色二维码图片做灰度梯度运算,分别求出X方向梯度和Y方向梯度;
3)使用并行连通分量标记方法,连接梯度强度超过一个预设阈值且梯度方向角度基本一致的像素,同时统计出每个连通分量的像素数量;
4)获取第二候选连通分量对;
5)获取彩色二维码图片对应的所有四边形边框;
6)对所述彩色二维码对应的四边形边框,进行线性插值的单应映射,生成待解码图案;
7)根据待解码图案的黑白格获得对应的编码;
8)若与待解码图案对应的编码海明距离最小的可行编码小于第四阈值,则该图案对应的可行编码为所述编码,否则该图案不是正确的二维码图案。
优选的,所述步骤4)包含以下步骤:
对连通分量进行排序,确定第1024个连通分量包含的像素个数S,并行地遍历所有连通分量,去除包含像素数量小于S的连通分量,从而获得第一候选连通分量;
使用并行加法方法,对第一候选连通分量使用PCA方法拟合直线,并对所述第一候选连通分量的所有像素的梯度方向角度做平均,剔除PCA在两个方向上方差相近的连通分量,从而获得第二候选连通分量;
使用GPU判断第二候选连通分量使用PCA方法拟合的直线是否和另一个第二候选连通分量使用PCA方法拟合的直线具备“可构成二维码”的性质,从而获取二维码图片上所有具有“可构成二维码”性质的第二候选连通分量对。
优选的,所述步骤5)包含以下步骤:
在第二候选连通分量对中确定一条直线A,利用GPU获取满足如下条件的直线B、C、D:
a)和A相交且具有“可构成二维码”性质的直线B,直线B的编号大于A;
b)和B相交且具有“可构成二维码”性质的直线C,直线C的编号大于A;
c)和C相交且具有“可构成二维码”性质的直线D;
d)D和A具备“可构成二维码”性质,直线D的编号大于B;
所述A、B、C、D为二维码图片对应的四边形边框。
优选的,还包括步骤9)对待解码图案对应的可行编码所对应的二维码图案中颜色数量居多的格子进行扩展编码解码。
优选的,所述步骤9)包含以下步骤:
S91获得二维码的色相数,确定各个待解码格子的色相,得到位数为待解码格子数量的多进制编码;
S92解码,得到多进制扩展编码;
S93将多进制编码转为二进制,得到扩展编码信息。
与现有技术相比,本发明的有益效果和优点如下:
1.典型读码的延迟显著降低,延迟缩短至3ms以下。
2.计算平台要求低,可选用芯片种类多。
3.可同时读多个任意位置、任意角度的二维码,并可以计算出各个码在空间中的三维位置和朝向。
4.具有较高的抗污损和抗干扰能力。
5.同时具有较高的有效位数和较高抗干扰能力。在光线条件较好是可具有较多的有效位数,在光线条件不好时仍然能够保证读到基础数据。
附图说明
图1为根据本发明一个实施例的获取黑白二维码的流程示意图;
图2为根据本发明一个实施例的黑白二维码映射方案示意图;
图3为根据本发明一个实施例的色相轮的示意图;
图4为根据本发明一个实施例的待写入扩展信息编码的黑白二维码;
图5为根据本发明一个实施例的彩色二维码的示意图;
图6为根据本发明一个实施例的可构成二维码性质的直线对计算方法示意图;
图7为根据本发明一个实施例的四边形边框的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明提出一种二维码的生成方法,二维码是一个长宽均为N个单位的正方形(一个单位长度可以是任意长度)。码具备一个正方形黑色边框的外围,厚度为一个单位。下面举例中,N=8,黑色边框内部是一个6乘6单位的内部矩形棋盘格型图案。如图1所示,生成方法包括以下步骤:
S1.设定编码位数M和图案位置的映射;
(1)遍历所有(N-2)*(N-2)位的二进制编码。
比如,N=8时,所有编码为6*6=36位长的二进制数。
黑白二维码通过0和1表示和指定棋盘格的黑白颜色,1表示黑色,0表示白色。
(2)指定图案映射模式。
设定编码位数M,比如6*6方格中,设定编码位数M为27,当然也可以设置其他数值,这表明,在方格中有27个格子是黑色或白色的(需要经过后续步骤确定),而剩余36-27=9个方格是白色。
设置编码位数和图案位置的映射,随机将36个方格的27个方格设置为黑色,9个方格设置为白色,如图2所示。编码位数的选取标准为遍历较快,且产生的编码数量多。
S2.获得可行编码;
对从0到2的M次方的所有数字进行遍历,设正在遍历的编码(即数字)为X。本步骤要对所有编码进行遍历:因为白色位置始终是白色,只有编号为0-M的格子可能是黑的也有可能是白的,因此对0-2^M这些数字进行遍历。具体步骤如下:
a)对于编码X所对应的二维码进行旋转,解出对应的二进制编码Y,如果二进制编码Y是可行编码,则正在遍历的编码X是不可行编码;在一个实施例中,旋转的角度可以为90、180、270度。
b)判断编码X与可行编码集合中的可行编码的海明距离,如果存在海明距离小于第一阈值,比如3,则X是不可行编码;
c)如果编码X中位值为1的个数小于第二阈值(比如12)或大于第三阈值(比如24),则X是不可行编码;比如,X的编码为0001110001110001110001111,那么位值为1的个数为13。
d)若上述条件均不符合,则X为可行编码。
S3.储存得到所有可行编码,接下来可生成基础编码图案:如果编码X的位值为1,对应的格子为黑色,否则为白色;编码对应的图形即为黑白二维码,将所有黑白二维码排成一列并按照顺序指定编号(指定编码称为基础编码)。后续读码过程中读到二维码后根据编码反向寻找编号,从而完成解码。
其中,可行编码和编号还会用于解码步骤,解码步骤用它来解出二维码的编号是多少。
通过上述步骤所得到的黑白二维码图案的差别非常大,不容易被混淆,不容误读,不容易漏读。传统的方法中,二维码是直接定义一个编码方法,而不是通过搜索编码后“生成的”,搜索编码后生成的二维码之间差距大,后续读码时准确率高。如果两张二维码长得太像,严格来讲其对应编码的海明距离太小,那么在二维码有污损时会读成别的码,即被滚小。
本发明通过“遍历”这种搜索的方法来编码,而不是通过解析方法定义。传统二维码的方式是先读到一个码,然后看看这个码是否符合定义。而本方法则是先列举出来所有可能的码,再看读到的码是不是在这个列表里。这样的好处在于,列举出来方能逐个优化,通过解析方法定义的码可能存在若干个码过于近似(海明距离过近),从而导致混淆。在相同分辨率的情况下,本二维码具有更高的可辨识度:更难以将编码错误地解码。
在一个实施例中,本发明还包括步骤S4:扩展编码,并生成彩色二维码。
具体包括以下步骤:
S41.对于所述黑白二维码,对黑色或白色格子数量大于等于N/2的格子进行编码扩展;
对于任意一个具有编号的黑白二维码,可继续在其上附加扩展编码信息。在黑白图案中,如果黑色的格子数量大于等于(N-2)^2/2,则对所有黑色格子进行扩展编码;否则对白色格子进行扩展编码。这种方法选择出了黑白格子中数量较多的格子。
S42.设定扩展编码的位数和进制,将所述黑白二维码的编码按所述进制进行转化;
设定扩展编码的位数和进制(位数和进制是与N有关的,是经验参数),将扩展编码按该进制进行转化,例如,扩展编码位数设置为40,进制设置为6,即可得到16位六进制编码,即40位2进制数转6进制就是16位。
S43.为转化后的编码扩展错误纠正码;
对转化后的编码扩展错误纠正码(ECC码),例如通过里所码编码(Reed-Soloman编码)算法。ECC是错误纠正码,是一种编码类型,Reed-Soleman编码是一种ECC码。
S44.将色相轮按进制等分,对所有待扩展格子进行上色,从而生成彩色二维码。
在一个实施例中,可以按从上往下、从左往右的顺序,依次对所有待编码格子进行上色:将色相轮按进制等分,从而得到每个编码对应的颜色,进而对格子上色;比如将色相轮6等分,如图3所示,将色相论6等分的话,得到黄色、橙色、红色、紫色、蓝色、绿色,6种颜色。
如图4所示,是一个待写入扩展编码信息的黑白二维码,黑色格子多,20个黑色格子。例如所得到的6进制里所码是16252421332252123456,那么,编号为1的黑色格子上黄色(对应的6进制编码第1位是1),2上绿色(第2位是6,绿色),3上橙色,依此类推,从而得到彩色二维码,如图5所示。
彩色二维码可通过打印生成纸质或其它材质的可张贴实体二维码,并贴在指定位置上。
按照上述方法生成的彩色二维码首先能够保证基础二维码的可辨识性:即便使用黑白相机去扫码仍然能够扫描得到基础编码。此外如果使用了彩色相机能够进一步读出扩展信息,从而提高该二维码贴纸的使用能力。通常情况下,二维码扫下来,只能得到一个原始编码,而通过彩色二维码可以再多获得一串编码。原始编码的信息量很低,只有二十比特,但扩展编码有四十多比特,多出来的编码可以用于增加如“商品的额外信息”、“校验信息”、“网关信息”等,极大提高了二维码的信息含量。
在相同分辨率下,本二维码更不容易被混淆;在相同辨识度下,本二维码具有更高的信息密度,能够包含更多信息。
根据本发明的另一方面,提出一种基于GPU的二维码的定位和解码方法。
具体如下:
1)摄像机拍摄带有根据上述步骤生成的二维码图案的场景。
2)将照片传入至GPU内存;
3)使用GPU对图片做灰度梯度运算,分别求出X方向梯度和Y方向梯度;
4)获取第二候选连通分量对;
5)获取二维码图片对应的所有四边形边框;
6)对所述二维码对应的四边形边框,进行线性插值的单应映射,生成待解码图案;
7)根据待解码图案的黑白格获得对应的编码;
8)若与待解码图案对应的编码海明距离最小的可行编码小于第四阈值,则该图案对应的可行编码为所述编码,否则该图案不是正确的二维码图案;
在一个实施例中,步骤4)用于获取图上所有可能的直线,为后续找四边形边框做准备。具体步骤如下:
使用并行连通分量标记方法(连通分量标记方法是现有的技术),连接梯度强度都超过预设的阈值且梯度方向角度基本一致的像素,同时统计出每个连通区域的像素数量。
使用快速选择算法对连通区域进行排序,确定第K个(比如1024)连通分量包含的像素个数S;比如有5000个连通分量,每个连通分量都包含若干个像素,如果把所有连通分量按照其包含的像素个数排序,通过快速选择算法取排在第1024个的连通分量的像素数量S。
获得第一候选连通分量,具体为:并行地遍历所有连通分量,去除像素包含数量小于S的连通分量;
获得第二候选连通分量,具体为:使用并行加法方法,对每个第一候选连通分量使用PCA方法拟合直线,并对该第一候选连通分量的所有像素的梯度方向角度做平均,剔除PCA在两个方向上方差相近的分量;
使用GPU判断第二候选连通分量使用PCA方法拟合的直线是否和其他拟合的直线相交,且可构成二维码的边缘。具体来说,使用GPU判断第二候选连通分量使用PCA方法拟合的直线是否和另一个第二候选连通分量使用PCA方法拟合的直线具备“可构成二维码”的性质:对于两个待判断的第二候选连通分量,对所有像素的梯度方向进行平均后所得到的向量进行点乘(另一个连通分量使用PCA方法拟合的直线的中心到两连通分量使用PCA方法拟合的两条直线的直线交点构成的向量),大于零,则说明这两个第二候选连通分量具有“可构成二维码”性质,如图6所示。
假设有个连通分量a,b,拟合了直线,va,vb是各自连通分量拟合直线的中点到交点的向量,la,lb为各连通分量的各像素梯度方向平均。那么需要la·vb>0,lb·va>0。
找到所有具有“可构成二维码”性质的第二候选连通分量对。
对第二候选连通分量对中的直线进行编号。
在一个实施例中,步骤5)用于找二维码图片的可识别范围,即四边形边框,为后续解码做准备:因为二维码可能受污,所以需要寻找能进行识别的二维码的范围。具体步骤如下:
根据第二候选连通分量对,获取能够构成“四边形”的两对第二候选连通分量对。具体来说,在第二候选连通分量对中确定一条直线A,利用GPU获取满足如下条件的直线B、C、D:
a)和A相交且具有“可构成二维码”性质的直线B,直线B的编号大于A;
b)和B相交且具有“可构成二维码”性质的直线C,直线C的编号大于A;
c)和C相交且具有“可构成二维码”性质的直线D,
d)D和A具备“可构成二维码”性质,直线D的编号大于B;
直线ABCD构成一个四边形边框,边框的内部为可用于解码的二维码范围,如图7所示。
在步骤8)中,遍历所有可行编码,若图案对应的编码距离某个可行编码的海明距离小于第四阈值,则说明图案对应了一个可行编码。根据可行编码找到其对应的编码编号,即得到该二维码的基础编码。
其中,可行编码和其对应的编码编号是在前文生成二维码时生成的,在解码的时候需要使用。
在一个实施例中,定位、解码方法还包括步骤9):对待解码图案对应的可行编码所对应的二维码图案中颜色数量居多的格子进行扩展编码解码。这样得出的编码具有更多的信息。具体来说,包括以下步骤:
S91获得二维码的色相数,确定各个待解码格子的色相,得到位数为待解码格子数量的多进制编码;
S92解码,得到多进制扩展编码;若图案对应的可行编码所对应的二维码图案(扫描得到的二维码图案可能有缺损,因此需要找到该编码下可用的二维码图案进行判断)的黑格数量>=白格数量,则对黑格进行扩展编码解码,反之对白格解码。
获得二维码的色相数(即进制数),判断各个待解码格子的色相,并在色轮中找到最近的编码颜色;得到位数为待解码格子数量的多进制ECC编码;比如通过Reed-Soleman方法进行解码,得到多进制扩展编码;
其中,色相数在生成二维码的时候的参数,在解码过程中要继续使用。
S93将多进制编码转为二进制,得到扩展编码信息。
有益之处:
(1)通过寻找四边形边框,确定二维码区域从而进行解码。而传统的二维码解码是寻找特征点,两者相对比,寻找四边形边框更稳定,不容易漏检,而且可以更为精确地确定二维码的位置。
(2)通过使用连通分量方法求直线并进一步寻找四边形。而其它的寻找四边形的方法则通过霍夫变换或者Canny特征进行形状匹配,两者相对比,连通分量方法更适合于并行计算,因此可以利用GPU加速快速地求解。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种二维码的生成方法,其特征在于,包括以下步骤:
S1.设定编码位数M和图案位置的映射;
S2.获得可行编码;
S3.生成黑白二维码和基础编码,并保存;
其中,所述二维码为长宽均为数量N个单位的正方形,所述二维码具有厚度为一个单位的外围,所述二维码内部为矩形棋盘格型图案。
2.根据权利要求1所述的二维码的生成方法,其特征在于:所述步骤S2包括:
S21.对从0~2的M次方之间的数字X进行判断,对于数字X所对应的二维码进行旋转,解出对应的二进制编码Y,如果二进制编码Y是可行编码,则正在遍历的编码X是不可行编码;否则进入步骤S22;
S22.判断数字X与可行编码集合中的可行编码的海明距离,如果存在海明距离小于第一阈值的可行编码,则X是不可行编码;否则进入步骤S23;
S23.如果数字X中位值为1的位的数量小于第二阈值或大于第三阈值,则X是不可行编码;否则进入步骤S24;
S24.数字X为可行编码,将数字X放入可行编码集。
3.根据权利要求2所述的二维码的生成方法,其特征在于:所述步骤S3包括:
S31.设数字X的位值为1对应的格子为黑色,否则为白色;
S32.对可行编码集中可行编码对应的黑白二维码图形进行编号,所述编号为基础编码;
S33.保存所述黑白二维码和对应的所述基础编码。
4.根据权利要求1-3任一权利要求所述的二维码的生成方法,其特征在于:还包括步骤S4:扩展编码,并生成彩色二维码。
5.根据权利要求4所述的二维码的生成方法,其特征在于:所述步骤S4包括以下步骤:
S41.对于所述黑白二维码,对黑色或白色格子数量大于等于N/2的格子进行编码扩展;
S42.设定扩展编码的位数和进制,将所述黑白二维码的编码按所述进制进行转化;
S43.为转化后的编码扩展错误纠正码;
S44.将色相轮按进制等分,对所有待扩展格子进行上色,从而生成彩色二维码。
6.一种基于GPU的二维码的定位、解码方法,其特征在于:使用一台装载了GPU单元的计算设备进行读码与解码计算,包含以下步骤:
1)获取二维码图片并传入GPU内存;
2)使用GPU对二维码图片做灰度梯度运算,分别求出X方向梯度和Y方向梯度;
3)使用并行连通分量标记方法,连接梯度强度超过一个预设阈值且梯度方向角度基本一致的像素,同时统计出每个连通分量的像素数量;
4)获取第二候选连通分量对;
5)获取二维码图片对应的所有四边形边框;
6)对所述二维码对应的四边形边框,进行线性插值的单应映射,生成待解码图案;
7)根据待解码图案的黑白格获得对应的编码;
8)若与待解码图案对应的编码海明距离最小的可行编码小于第四阈值,则该图案对应的可行编码为所述编码,否则该图案不是正确的二维码图案。
7.根据权利要求6所述的基于GPU的二维码的定位、解码方法,其特征在于:所述步骤4)包含以下步骤:
对连通分量进行排序,确定第1024个连通分量包含的像素个数S,并行地遍历所有连通分量,去除包含像素数量小于S的连通分量,从而获得第一候选连通分量;
使用并行加法方法,对第一候选连通分量使用PCA方法拟合直线,并对所述第一候选连通分量的所有像素的梯度方向角度做平均,剔除PCA在两个方向上方差相近的连通分量,从而获得第二候选连通分量;
使用GPU判断第二候选连通分量使用PCA方法拟合的直线是否和另一个第二候选连通分量使用PCA方法拟合的直线具备“可构成二维码”的性质,从而获取二维码图片上所有具有“可构成二维码”性质的第二候选连通分量对。
8.根据权利要求6所述的基于GPU的二维码的定位、解码方法,其特征在于:所述步骤5)包含以下步骤:
在第二候选连通分量对中确定一条直线A,利用GPU获取满足如下条件的直线B、C、D:
a)和A相交且具有“可构成二维码”性质的直线B,直线B的编号大于A;
b)和B相交且具有“可构成二维码”性质的直线C,直线C的编号大于A;
c)和C相交且具有“可构成二维码”性质的直线D;
d)D和A具备“可构成二维码”性质,直线D的编号大于B;
所述A、B、C、D为二维码图片对应的四边形边框。
9.根据权利要求6-8任一权利要求所述的基于GPU的二维码的定位、解码方法,其特征在于:还包括步骤9)对待解码图案对应的可行编码所对应的二维码图案中颜色数量居多的格子进行扩展编码解码。
10.根据权利要求9所述的基于GPU的二维码的定位、解码方法,其特征在于:所述步骤9)包含以下步骤:
S91获得二维码的色相数,确定各个待解码格子的色相,得到位数为待解码格子数量的多进制编码;
S92解码,得到多进制扩展编码;
S93将多进制编码转为二进制,得到扩展编码信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793007 | 2019-08-26 | ||
CN2019107930076 | 2019-08-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111191759A true CN111191759A (zh) | 2020-05-22 |
CN111191759B CN111191759B (zh) | 2023-06-16 |
Family
ID=70710852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010110360.2A Active CN111191759B (zh) | 2019-08-26 | 2020-02-24 | 一种二维码的生成方法和基于gpu的定位、解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111191759B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112033408A (zh) * | 2020-08-27 | 2020-12-04 | 河海大学 | 一种贴纸式的物体空间定位系统及定位方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6252993B1 (en) * | 1994-06-03 | 2001-06-26 | Sony Corporation | Video signal coding and decoding method |
JP2014085777A (ja) * | 2012-10-23 | 2014-05-12 | Terrara Code Research Institute Inc | 二次元コード、二次元コードの生成方法、及び二次元コードの読取方法 |
CN104657698A (zh) * | 2015-02-10 | 2015-05-27 | 浙江科技学院 | 一种可承载多幅黑白二维码的彩色二维码编解码方法 |
CN107578078A (zh) * | 2017-09-14 | 2018-01-12 | 哈尔滨工业大学 | 用于单目视觉定位的非镜像对称二维码标志图形校验及布局方法 |
-
2020
- 2020-02-24 CN CN202010110360.2A patent/CN111191759B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6252993B1 (en) * | 1994-06-03 | 2001-06-26 | Sony Corporation | Video signal coding and decoding method |
JP2014085777A (ja) * | 2012-10-23 | 2014-05-12 | Terrara Code Research Institute Inc | 二次元コード、二次元コードの生成方法、及び二次元コードの読取方法 |
CN104657698A (zh) * | 2015-02-10 | 2015-05-27 | 浙江科技学院 | 一种可承载多幅黑白二维码的彩色二维码编解码方法 |
CN107578078A (zh) * | 2017-09-14 | 2018-01-12 | 哈尔滨工业大学 | 用于单目视觉定位的非镜像对称二维码标志图形校验及布局方法 |
Non-Patent Citations (2)
Title |
---|
刘恒; WANG FUMING; 石明生; TIAN WENLING: "\" Mechanical Behavior of Polyurethane Polymer Materials under Triaxial Cyclic Loading:A Particle Flow Code Approach\"" * |
陈元枝;邓艳;史绍亮;姜文英;: "基于Zxing的彩色QR码生成与识别方法" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112033408A (zh) * | 2020-08-27 | 2020-12-04 | 河海大学 | 一种贴纸式的物体空间定位系统及定位方法 |
CN112033408B (zh) * | 2020-08-27 | 2022-09-30 | 河海大学 | 一种贴纸式的物体空间定位系统及定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111191759B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107633192B (zh) | 一种基于机器视觉的复杂背景下条形码分割与识读方法 | |
CN105989317B (zh) | 一种二维码的识别方法及装置 | |
CN101398907B (zh) | 一种用于移动机器人的二维码结构及解码方法 | |
CN110246168A (zh) | 一种移动巡检机器人双目图像拼接的特征匹配方法 | |
JP2007317184A (ja) | 二次元バーコード、その符号化方法及び復号化方法 | |
CN113177959B (zh) | 一种快速运动过程中qr码实时提取方法 | |
CN105095822B (zh) | 一种汉信码特征图形检测方法及系统 | |
CA3045391C (en) | Method for detection and recognition of long-range high-density visual markers | |
CN109059922A (zh) | 移动机器人定位方法、装置和系统 | |
CN115082888B (zh) | 一种车道线检测方法和装置 | |
CN111931537B (zh) | 一种颗粒状qr二维码定位方法 | |
CN112257721A (zh) | 一种基于Fast ICP的图像目标区域匹配方法 | |
CN111199163A (zh) | 一种环形码的边缘检测与定位识别方法 | |
CN111191759B (zh) | 一种二维码的生成方法和基于gpu的定位、解码方法 | |
Wang | LFTag: A scalable visual fiducial system with low spatial frequency | |
WO2020186900A1 (zh) | 窄条二维码、窄条二维码的生成、识别方法、装置及设备 | |
CN109977715B (zh) | 基于轮廓识别的二维码识别方法及二维码 | |
Farsangi et al. | Rectification based single-shot structured light for accurate and dense 3D reconstruction | |
CN109635613B (zh) | 一种用于球体表面的二维码生成方法、系统及装置 | |
CN110263597B (zh) | 一种快速准确的qr码校正方法及系统 | |
CN112800798A (zh) | 一种Aztec码的定位方法 | |
Guo et al. | Automatic shape-based target extraction for close-range photogrammetry | |
CN108875868A (zh) | 移动机器人定位方法、装置和系统 | |
CN110046688B (zh) | 一种条码的定位与识别方法 | |
Wu et al. | A Distortion Rectification Method for Distorted QR Code Images Based on Self-Adapting Structural Element |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |