一种基于二维码生成的防伪标识图像的生成方法及系统
文献发布时间:2024-01-17 01:27:33
技术领域
本发明涉及二维码防伪技术领域,特别是涉及一种基于二维码生成的防伪标识图像的生成方法及系统。
背景技术
通过二维码防伪系统可对应产品生成加密的二维码产品信息,将二维码印刷或标贴于产品包装上,用户只需通过指定的二维码防伪系统或手机软件进行解码检验,既可获知该产品的真伪信息,从而进行识别真伪作用。
但是市面上的二维码大部分都是算法和规律来生成,获得二维码链接就能生成一模一样的二维码,专业人员经过计算和推演,就有可能进行批量复制,这样就会损害品牌商家的利益。
发明内容
本发明的目的是提供一种基于二维码生成的防伪标识图像的生成方法及系统,可提高防伪二维码的安全性。
为实现上述目的,本发明提供了如下方案:
一种基于二维码生成的防伪标识图像的生成方法,所述生成方法包括如下步骤:
生成二维码信息对应的二维码值序列;
生成防伪形状对应的编码;
将所述二维码值序列中的前N个二维码值替换为所述编码,获得替换后的二维码值序列;N为编码的长度;
获取加密后的标识字符串,并确定加密后的标识字符串中的每个字符的标识埋入位置;
绘制所述替换后的二维码值序列,并在绘制位置等于所述标识埋入位置时,将所述绘制位置绘制的码值强制修改为“1”,获得二维码图像;
在所述二维码图像的数据区域的空白部分绘制点阵图形,生成防伪二维码图像;所述点阵图形的颜色与所述二维码图像的颜色不同。
可选的,所述防伪形状为S形,S形对应的编码为1101110111。
可选的,确定加密后的标识字符串中的每个字符的标识埋入位置的公式为:
V
其中,V
可选的,所述点阵图形的生成方式为:
对所述二维码信息进行SHA1加密获得,加密后的二维码字符串;
将加密后的二维码字符串中的字母进行统计,获得字母的数量;
提取加密后的二维码字符串中的数字,并按照从大到小的顺序进行排列,获得数字序列;
将所述数字序列在中间划分为两部分;
前半部分的数字每两个为一组进行组合,组合得到的两位数作为y坐标,并随机生成所述y坐标对应的横坐标,得到每个两位数对应的坐标位置;
将后半部分的数字每三个为一组进行组合,组合得到的三位数作为y坐标,并随机生成所述y坐标对应的横坐标,得到每个三位数对应的第二坐标位置;
在每个两位数对应的坐标位置和每个三位数对应的第二坐标位置中选取与字母的数量相同个数的坐标位置绘制点,生成点阵图形。
一种基于二维码生成的防伪标识图像的生成系统,所述生成系统包括:
二维码值序列生成模块,用于生成二维码信息对应的二维码值序列;
编码生成模块,用于生成防伪形状对应的编码;
编码替换模块,用于将所述二维码值序列中的前N个二维码值替换为所述编码,获得替换后的二维码值序列;N为编码的长度;
标识埋入位置确定模块,用于获取加密后的标识字符串,并确定加密后的标识字符串中的每个字符的标识埋入位置;
二维码图像绘制模块,用于绘制所述替换后的二维码值序列,并在绘制位置等于所述标识埋入位置时,将所述绘制位置绘制的码值强制修改为“1”,获得二维码图像;
点阵图形绘制模块,用于在所述二维码图像的数据区域的空白部分绘制点阵图形,生成防伪二维码图像;所述点阵图形的颜色与所述二维码图像的颜色不同。
一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的生成方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现前述的生成方法。
一种基于二维码生成的防伪标识图像的识别方法,所述识别方法包括如下步骤:
获取防伪二维码图像;
确定所述防伪二维码图像的起始位置是否存在防伪形状;
当不存在防伪形状时,确定带有所述防伪二维码图像的商品为仿制品;
当存在防伪形状时,判断所述防伪二维码图像是否为复制得到的图像;
当为复制得到的图像时,确定带有所述防伪二维码图像的商品为仿制品;
当不为复制得到的图像时,对所述防伪二维码图像进行颜色过滤,获得点阵的二值化图像;
检测所述二值化图像,确定所述二值化图像中的每个点的坐标信息;
将二值化图像中的每个点的坐标信息与用于生成点阵图形的坐标信息进行对比,获得正确点阵比;
当正确点阵比小于点阵比阈值时,确定带有所述防伪二维码图像的商品为仿制品;
当正确点阵比不小于点阵比阈值时,对防伪二维码图像进行二维码解析,统计标识埋入位置的数值为1的数量,得到统计数量;
计算统计数量与实际字符埋入数量的占比,作为标识检测百分比;
判断所述标识检测百分比是否小于标识检测百分比阈值;
当标识检测百分比小于标识检测百分比阈值时,确定带有所述防伪二维码图像的商品为仿制品。
可选的,对所述防伪二维码图像进行颜色过滤,获得点阵的二值化图像,之前还包括:
对所述防伪二维码图像进行图像旋转、仿射变换和归一化处理。
可选的,判断所述防伪二维码图像是否为复制得到的图像的方式为:
基于检测模型判断所述防伪二维码图像是否为复制得到的图像;所述检测模型基于包含复制得到的防伪二维码图像和直接打印生成的防伪二维码图像的训练样本集进行训练得到的。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开一种基于二维码生成的防伪标识图像的生成方法及系统,所述生成方法包括如下步骤:生成二维码信息对应的二维码值序列;生成防伪形状对应的编码;将所述二维码值序列中的前N个二维码值替换为所述编码,获得替换后的二维码值序列;N为编码的长度;获取加密后的标识字符串,并确定加密后的标识字符串中的每个字符的标识埋入位置;绘制所述替换后的二维码值序列,并在绘制位置等于所述标识埋入位置时,将所述绘制位置绘制的码值强制修改为“1”,获得二维码图像;在所述二维码图像的数据区域的空白部分绘制点阵图形,生成防伪二维码图像;所述点阵图形的颜色与所述二维码图像的颜色不同。本发明通过多重防伪技术融合至二维码防伪标识图像中,即使获得二维码链接,也无法生成一样码,即使完全拍照复制图像但是一样会被特殊扫码设备识别出来,最终达到防伪、防复制的目的,提高了防伪二维码的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的二维码图像的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于二维码生成的防伪标识图像的生成方法及系统,可提高防伪二维码的安全性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
二维码(QRCODE)现在使用范围广、数量大,容易造假,不利于一些产品的防伪溯源。因此,本次提交发明专利,是弥补二维码的这一短板,通过生成、外观表现、动态点阵等多层防伪技术结合为一体,从而达到在减少成本的同时也提高了防复制造假的能力。
基于二维码(QRCODE)的特性,在不影响二维码被其他程序扫描的同时,加入几项技术于其中,分别是修改生成原理、微调外观、增加动态点阵。由于生成算法修改,与外对接时,需要提供定制服务,服务的最终产物为加入几项技术于一起的二维码图像。
实施例1
本发明实施例1提供的一种基于二维码生成的防伪标识图像的生成方法,所述生成方法包括如下步骤:
生成二维码信息对应的二维码值序列;即对普通二维码信息通过二维码生成器进行处理得到普通信息码值序列-二维码值序列,也即一级防伪。
生成防伪形状对应的编码;将所述二维码值序列中的前N个二维码值替换为所述编码,获得替换后的二维码值序列;N为编码的长度;示例性的,开头编码修改为“1101110111”,这样看到的二维码开头(右下角)必然是"S"(本发明实施例只是拿S举例,其他形状也可以),肉眼看到二维码即可识别是否为真伪。
二维码是由二进制数据串按照一定规则组成的图像。在黑白二维码中,黑色方块表示“1”,白色方块表示“0”。通常生成二维码的开源组件的算法都类似,所以生成后的图像几乎一致。这种情况下,通过肉眼无法辨识出二维码出自哪里,是否为复制品。
此项技术是在不干扰二维码其他功能区情况下,对数据区的随机某个区域内进行特殊图案(非图片形式,而是由黑白或者二维码组成色方块)的埋入。其中随机区域改变原有方块的数量不能超过20个。否则会干扰二维码自身的容错量,从而导致二维码被识别能力下降。同时分布位置随机、改变方块数量小,不宜被造假者发现,同时对于特殊图案的要求可以是字母、数字,不同的使用者可在固定规则内自由定制图案。
获取加密后的标识字符串,并确定加密后的标识字符串中的每个字符的标识埋入位置;绘制所述替换后的二维码值序列,并在绘制位置等于所述标识埋入位置时,将所述绘制位置绘制的码值强制修改为“1”,获得二维码图像,即二级防伪。
示例性的,二维码(QRCODE)生成之前需要将待埋入数据转成二进制,即类似计算机语言“0”、“1”的数字串。根据待埋入数据量大小,确定使用二维码具体版本信息(版本越大容量越大,目前上限是v40),同时也确定其纠错等级等级(L、M、Q、H)。
此项技术是基于二维码的容错机制,在不改变二维码自身可识别的情况下,将容错内容进行替换,替换标识可以为指定长度(32)任意字符串。替换后的埋入数据串,可根据二维码本身的绘图机制进行数据填充和绘制。实现流程如下:
1)获取待埋入数据。以版本号为3、纠错等级L(容错7%)为例,将二维码内容进行位计算,纠错计算,蒙版计算,得到最终生码字节码内容,内容为01组成的二进制串。
2)计算标识位置。标识可以是任意字符串,将标识字符串进行MD5加密,根据MD5加密后的16位字符串(内容包含数字0~9和字母a~f),然后按照指定规则(N/17(16位MD5+1位外观微调预留位)*版本号对应的码字数(V3==70)*8(一个码字是8个Byte,替换最后一位))进行计算得出标识所要埋入的位置。其中N表示加密字符串中数字或者字母对应16(1~9+a~f,其中a~f=11~16)的值。
例如:标识“789”MD5加密后的16位字符串“923e00204c3ca7c6”,从首个字符开始计算,如表1所示,分别得出N的值和标识位;
表1N的值和标识位
3)绘制图像。二维码的位图中去除定位区域、功能区域(版本信息等),剩下为数据区域,绘制方式是将步骤1)中的二进制01串进行从下向上从右到左的方向进行绘制,其中“1”绘制黑色方块、“0”方块留白,遇到定位区域和功能区域则避开继续往后,在绘制过程中需要判断步骤2)的标识位置,如果绘制位置等于标识位置时,将此处方块强制替换成“1”,否则保持不动。完成绘图后即可生成最终的二维码图像,图像绘制方向如图1所示。
4)解析算法。通过电子设备采集相关二维码图片,由定制的解析服务,可解析出埋入数据区域的二进制“01”字符串,同时根据初始埋入的标识进行MD5加密,重复步骤1)、2),得出标识位置信息F数组,然后根据解析出的二进制“01”字符串A,遍历F数组在A中查找对应位置的值,统计值为“1”的数量C,最后根据C/F的长度得出标识检测百分比,业务程序可根据阈值和百分比判断二维码真实性。
在所述二维码图像的数据区域的空白部分绘制点阵图形,生成防伪二维码图像,即三级防伪;所述点阵图形的颜色与所述二维码图像的颜色不同。
示例性的,点阵是由多个像素组成的一个点,像素的数量限制不能超过二维码生成的单个方块的像素数量,通常根据印刷机的dpi以及防复制的要求,像素量可选择范围为[3~9],但不限于[3~9],可根据实际情况进行设置。同时点阵的颜色要求限制为需要与二维码的生成颜色区分,否则将会失去点阵的实际意义。所谓动态点阵,就是根据二维码内容和生成规则在不同的二维码内进行分布。
点阵的生成规则如下:
1)获取二维码内容加密串。将二维码内容进行SHA1加密,得到加密后的长度固定40位的字符串。
2)截取加密串获取点阵数据和坐标。将步骤1)得到的加密串进行筛选,将数字和字母进行分开统计,其中字母的数量作为动态点阵的数量,数字按照大小顺序排列,得到一串数字,从数字串的中间位置进行分组,前部分按照两两组合到一个两位数,这两位数作为点阵的y坐标,同时x坐标随机。后部分三三分组若坐标信息大于325时将除2取整,得到一个三位数,同样这三位数为点阵的y坐标,同时x坐标随机。若以上方式处理的点阵坐标数量小于点阵数量时,可将x坐标按照以上方式固定,y坐标随机,直到坐标数量与点阵数量一致即可。
3)绘制动态点阵。按照二维码绘制位图矩阵进行遍历,根据动态点阵的坐标信息作为起点按照点阵的像素数量进行类似“九宫格”排列组成一个点阵。以此类推,绘制完成动态点阵即可生成带有动态点阵的二维码图像。
4)点阵识别解析:
点阵的识别维度可分为点阵数量、点阵坐标以及点阵的形态,通过定制软件结合硬件设备(手机、pda、usbCamera等)进行图像采集,采集图片会传入后端服务,后端服务会根据以上三个维度进行分析,并反馈相关结果。后端服务处理流程如下:
接收采集到的二维码图像(包含点阵),优先检测二维码标签是否为复制品,如果是复制品,则直接反馈结果,不做后续解析操作。其中检测技术采用的是计算机视觉处理技术(复制大量的二维码图像作为训练集,通过机器学习的方式进行训练形成检测模型,在图像输入时,即可判断图像是否为复制品)。
根据二维码形态进行图像旋转、仿射变换、归一化等处理得到一张对正、清晰、大小合适(与出厂等比)的图像,。同时检测识别二维码内容并记录。
由于生成点阵颜色要求(点阵颜色和二维码颜色区分)可根据点阵颜色进行过滤,过滤后得到点阵的二值化图像。
通过轮廓检测二值化图像,即可判断点阵的坐标、数量信息。
根据二维码内容,同以上点阵生成规则1)、2)处理方式一致,得到点阵数量和坐标信息。同时与步骤3)中的坐标、数量信息进行对比,即可计算得出正确点阵占比。
实施例2
本发明实施例2一种基于二维码生成的防伪标识图像的生成系统,所述生成系统包括:
二维码值序列生成模块,用于生成二维码信息对应的二维码值序列。
编码生成模块,用于生成防伪形状对应的编码。
编码替换模块,用于将所述二维码值序列中的前N个二维码值替换为所述编码,获得替换后的二维码值序列;N为编码的长度。
标识埋入位置确定模块,用于获取加密后的标识字符串,并确定加密后的标识字符串中的每个字符的标识埋入位置。
二维码图像绘制模块,用于绘制所述替换后的二维码值序列,并在绘制位置等于所述标识埋入位置时,将所述绘制位置绘制的码值强制修改为“1”,获得二维码图像。
点阵图形绘制模块,用于在所述二维码图像的数据区域的空白部分绘制点阵图形,生成防伪二维码图像;所述点阵图形的颜色与所述二维码图像的颜色不同。
实施例3
本发明实施例3提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的生成方法。
实施例4
本发明实施例4提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现前述的生成方法。
实施例5
本发明实施例5提供一种基于二维码生成的防伪标识图像的识别方法,所述识别方法包括如下步骤:
获取防伪二维码图像。
确定所述防伪二维码图像的起始位置是否存在防伪形状。
当不存在防伪形状时,确定带有所述防伪二维码图像的商品为仿制品。
当存在防伪形状时,判断所述防伪二维码图像是否为复制得到的图像。
当为复制得到的图像时,确定带有所述防伪二维码图像的商品为仿制品。
当不为复制得到的图像时,对所述防伪二维码图像进行颜色过滤,获得点阵的二值化图像。
检测所述二值化图像,确定所述二值化图像中的每个点的坐标信息;
将二值化图像中的每个点的坐标信息与用于生成点阵图形的坐标信息进行对比,获得正确点阵比。
当正确点阵比小于点阵比阈值时,确定带有所述防伪二维码图像的商品为仿制品;
当正确点阵比不小于点阵比阈值时,对防伪二维码图像进行二维码解析,统计标识埋入位置的数值为1的数量,得到统计数量。
计算统计数量与实际字符埋入数量的占比,作为标识检测百分比。
判断所述标识检测百分比是否小于标识检测百分比阈值。
当标识检测百分比小于标识检测百分比阈值时,确定带有所述防伪二维码图像的商品为仿制品。
其中,对所述防伪二维码图像进行颜色过滤,获得点阵的二值化图像,之前还包括:对所述防伪二维码图像进行图像旋转、仿射变换和归一化处理。
判断所述防伪二维码图像是否为复制得到的图像的方式为:基于检测模型判断所述防伪二维码图像是否为复制得到的图像;所述检测模型基于包含复制得到的防伪二维码图像和直接打印生成的防伪二维码图像的训练样本集进行训练得到的。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开一种基于二维码生成的防伪标识图像的生成方法及系统,所述生成方法包括如下步骤:生成二维码信息对应的二维码值序列;生成防伪形状对应的编码;将所述二维码值序列中的前N个二维码值替换为所述编码,获得替换后的二维码值序列;N为编码的长度;获取加密后的标识字符串,并确定加密后的标识字符串中的每个字符的标识埋入位置;绘制所述替换后的二维码值序列,并在绘制位置等于所述标识埋入位置时,将所述绘制位置绘制的码值强制修改为“1”,获得二维码图像;在所述二维码图像的数据区域的空白部分绘制点阵图形,生成防伪二维码图像;所述点阵图形的颜色与所述二维码图像的颜色不同。本发明通过多重防伪技术融合至二维码防伪标识图像中,即使获得二维码链接,也无法生成一样码,即使完全拍照复制图像但是一样会被特殊扫码设备识别出来,最终达到防伪、防复制的目的,提高了防伪二维码的安全性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
- 一种商品防伪二维码生成方法
- 一种散装食品和农产品的溯源二维码生成方法及系统
- 一种防伪标识生成方法和装置
- 一种二维码生成方法、二维码识读方法及装置
- 一种基于区块链的防伪二维码生成与验证系统及方法
- 一种基于图像的二维码、二维码生成系统及生成方法