一种多维码及其识别方法与流程

文档序号:16210608发布日期:2018-12-08 07:41阅读:504来源:国知局
一种多维码及其识别方法与流程

本发明涉及图形码技术领域,具体而言,涉及一种多维码及其识别方法。

背景技术

条形码和二维码都属于图形码,其中条形码是将宽度不等的多个黑条和空白按照一定的编码规则排列,用以表达一组信息的图形标识符;而二维码又称二维条码,是用某种特定的几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的。条形码主要应用于商品标识、防伪、医药监管、超市收银等场合,二维码可以包含更多的信息,比如网址、文字图片等等。组成一维码的信息部分只能是字母或数字,一维码的尺寸相对较大,其空间利用率较低,其数据容量较小,一般只可容纳30个字符左右。二维码的信息承载量远大于条形码,最大数据含量可达1850个字符。虽然二维码的信息承载量远大于条形码,但是二维码的编码方法和识别方法限定了其信息承载量的上限。其编码方法主要是:用点的出现表示二进制的1,点的不出现表示二进制的0,点的排列组合确定了二维码所代表的意义。这种编码方法使得有限尺寸的二维码所能承载的信息量十分有限,难以将商品详细信息编入其中。



技术实现要素:

本发明的目的在于提供一种多维码及其识别方法,旨在解决背景技术中所提的问题。单位面积下所述多维码的信息承载量远大于单位面积下现有二位码的信息承载量,所述多维码具有更广的应用前景,可涉及各领域的应用。

为了实现上述目的,本发明提供以下技术方案:

一方面,本发明实施例提供了一种多维码,所述多维码包括若干个码块,若干个所述码块呈二维矩阵形式排列;

每个所述码块被划分为n个区域,每个所述区域对应一个子码块,每个码块包括0~n个所述子码块,每个码块根据其所包括的子码块的数量和区域不同,而被赋予相应的第一层数据信息;

若干个所述码块的灰度值互不统一,每个码块的灰度值落入m个灰度等级中的一个等级,每个码块根据其灰度等级的不同,而被赋予相应的第二层数据信息。

本技术方案中,由于每个码块包含了0~n个子码块,每个码块根据其所包括的子码块的数量和区域不同,而被赋予相应的第一层数据信息,因此每个码块的第一层数据信息可以代表数位二进制数据;又由于每个码块的灰度值落入m个灰度等级中的一个等级,每个码块根据其灰度等级的不同,而被赋予相应的第二层数据信息,因此每个码块的第二层数据信息也可以代表数位二进制数据。基于本技术方案,每个码块可承载两层数据信息,而每层数据信息又可以代表数位二进制数据,因此相比现有二位码的每个码块只能代表一位二进制数据,本技术方案所提供的多维码的信息承载能力很强,可用于承载图片或音频文件,具有很宽的应用前景。

优选的,每个码块的形状为正方形,相邻码块之间紧密排列而无间距,每个码块被均匀划分为4个区域,所述四个区域分别为左上区域、右上区域、左下区域和右下区域,所述四个区域分别对应左上子码块、右上子码块、左下子码块和右下子码块。本优选技术方案中,将码块形状限定为正方形,其优点在于方便计算机进行数字图像处理和机器识别,且增强码块之间的紧密度,提高单位面积内的信息承载量。

优选的,对于不包括任何子码块的码块,其代表第一层二进制数据0000;对于只包括左上子码块的码块,其代表第一层二进制数据0001;对于只包括右上子码块的码块,其代表第一层二进制数据0010;对于只包括左下子码块的码块,其代表第一层二进制数据0011;对于只包括右下子码块的码块,其代表第一层二进制数据0100;对于只包括左上子码块和右上子码块的码块,其代表第一层二进制数据0101;对于只包括左下子码块和右下子码块的码块,其代表第一层二进制数据0110;对于只包括左上子码块和左下子码块的码块,其代表第一层二进制数据0111;对于只包括右上子码块和右下子码块的码块,其代表第一层二进制数据1000;对于只包括左上子码块和右下子码块的码块,其代表第一层二进制数据1001;对于只包括右上子码块和左下子码块的码块,其代表第一层二进制数据1010;对于只包括左上子码块、右上子码块和左下子码块的码块,其代表第一层二进制数据1011;对于只包括左上子码块、右上子码块和右下子码块的码块,其代表第一层二进制数据1100;对于只包括左上子码块、左下子码块和右下子码块的码块,其代表第一层二进制数据1101;对于只包括右上子码块、左下子码块和右下子码块的码块,其代表第一层二进制数据1110;对于包括全部四个子码块的码块,其代表第一层二进制数据1111。本优选技术方案中,各种码块的图形简单清晰,易于机器识别;每个码块的第一层数据信息可以代表4位二进制数据,其信息量是现有二维码的16倍。

优选的,所述m个灰度等级具体为8个灰度等级,所述8个灰度等级的灰度区间分别为0~31、32~63、64~95、96~127、128~159、160~191、192~223、224~254。本优选技术方案中,各灰度等级的灰度区间均匀,且灰度区间较宽,因此具有较大的容错空间,减小识别误差。

优选的,对于落入0~31灰度区间的码块,其代表第二层二进制数据000;对于落入32~63灰度区间的码块,其代表第二层二进制数据001;对于落入64~95灰度区间的码块,其代表第二层二进制数据010;对于落入96~127灰度区间的码块,其代表第二层二进制数据011;对于落入128~159灰度区间的码块,其代表第二层二进制数据100;对于落入160~191灰度区间的码块,其代表第二层二进制数据101;对于落入192~223灰度区间的码块,其代表第二层二进制数据110;对于落入224~254灰度区间的码块,其代表第二层二进制数据111;对于灰度值为255的码块,其不被赋予第二层数据。本优选技术方案中,每个码块的第二层数据信息可以代表3位二进制数据,其信息量是现有二维码的8倍。另外对于灰度值等于255的码块,由于这种码块是不包括任何子码块的那种码块,因此其不具有灰度值载体(子码块),因此不能被赋予第二层数据信息。

进一步地,还包括三个位置探测图形,所述三个位置探测图形位于所述二维矩阵的四个角点中的其中三个处。本改进技术方案中,通过设置所述位置探测图形,利于计算机对所述多维码进行定位。识别时,无论使用者从任意方向拍摄拾取所述多维码的图像,均可以使计算机能成功识别其承载的信息。

另一方面,本发明实施例还提供了一种多维码识别方法,所述方法包括以下步骤:

s101.获取图像,所述图像中包含有所述多维码的图形;

s102.对所获取的图像进行预处理,并从中套取出所述多维码的方图;

s103.根据多维码的码块的尺寸大小,将所述方图划分为若干个栅格,每个所述栅格对应一个所述码块;

s104.依次判断每个栅格中码块所包含的子码块的数量和区域,并根据判断结果解码出相应的第一层数据信息,每个码块解码出的第一层数据信息拼接在其前一个码块解码出的第一层数据信息之后,形成第一数据信息流;

s105.依次计算每个栅格中码块的灰度值,并根据计算结果解码出相应的第二层数据信息,每个码块解码出的第二层数据信息拼接在其前一个码块解码出的第二层数据信息之后,形成第二数据信息流;

s106.将所述第二数据信息流拼接在所述第一数据信息流之后。

优选的,步骤s102具体包括以下子步骤:

s102-1.对所述图像进行几何校正处理,使所述多维码的长和宽分别与所述图像的长和宽平行;

s102-2.对所述图像进行图像分割处理,沿所述多维码的长和宽套取出所述多维码的方图。

优选的,步骤s104中所述判断每个栅格中码块所包含的子码块的数量和位置,具体包括以下子步骤:

s104-1.计算栅格中所有像素点的灰度值,将灰度值等于255的像素点记为0,将其余像素点记为1,形成仅包含0和1两种元素的小矩阵;

s104-2.利用卷积神经网络算法对该小矩阵进行卷积,卷积过程中使用到若干个过滤器,每个所述过滤器对应一种码块类型,每个过滤器的矩阵行数和矩阵列数分别与所述小矩阵的行数和列数相等;每个过滤器卷积后得到一个特征值,将所得的特征值和与之对应的过滤器进行匹配,选取出匹配程度最高的一组特征值和过滤器,将该过滤器所对应的码块类型作为判断结果。

优选的,步骤s105中所述计算每个栅格中码块的灰度值,具体包括以下子步骤:

s105-1.计算栅格中所有像素点的灰度值;

s105-2.计算所有灰度值小于等于254的像素点的灰度平均值,并将所述灰度平均值作为所述码块的灰度值。

与现有技术相比,本发明具有以下有益效果:

1、由于每个码块包含了0~n个子码块,每个码块根据其所包括的子码块的数量和区域不同,而被赋予相应的第一层数据信息,因此每个码块的第一层数据信息可以代表数位二进制数据;又由于每个码块的灰度值落入m个灰度等级中的一个等级,每个码块根据其灰度等级的不同,而被赋予相应的第二层数据信息,因此每个码块的第二层数据信息也可以代表数位二进制数据。基于本技术方案,每个码块可承载两层数据信息,而每层数据信息又可以代表数位二进制数据,因此相比现有二位码的每个码块只能代表一位二进制数据,本技术方案所提供的多维码的信息承载能力很强。

2、由于所述多维码的每个码块单位面积的信息承载量相比现有二维码数倍增加,因此在携带相同信息量时,其面积更小,可以附着在体积较小的商品上,用于商品的详细信息。

3、由于所述多维码的每个码块单位面积的信息承载量相比现有二维码数倍增加,因此可以利用其记录图片和音频数据,扫码器识别所述多维码后,所述图片或音频文件可以在扫码器上呈现或播放。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简要介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关附图。

图1所示为实施例1中提供的多维码的示意图。

图2所示为实施例1中提供的码块的示意图。

图3所示为实施例1中提供的码块的子码块组合示意图。

图4所示为实施例1中提供的码块的灰度划分示意图。

图5所示为实施例1中提供的又一种码块的示意图。

图6所示为实施例2中提供的多维码识别方法的流程示意图。

图7所示为实施例2中某一多维码的步骤s104-1的示意图。

图8所示为实施例2中所述的16种过滤器的示意图。

图中标号说明:

10-码块;11-子码块;20-位置探测图形。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚完整的描述。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。基于本发明的实施例,本领域技术人员在没有创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。

实施例1:

请参阅图1所示,本实施例提供了一种多维码,所述多维码包括若干个码块10,若干个所述码块10呈二维矩阵形式排列;每个所述码块被划分为n个区域,每个所述区域对应一个子码块11,每个码块10包括0~n个所述子码块11,每个码块10根据其所包括的子码块11的数量和区域不同,而被赋予相应的第一层数据信息;若干个所述码块10的灰度值互不统一,每个码块10的灰度值落入m个灰度等级中的一个等级,每个码块10根据其灰度等级的不同,而被赋予相应的第二层数据信息。

基于上述多维码,本实施例提供以下一些具体实施方式,在互不抵触的前提下,可以将以下举例任意组合,以形成新一种多维码。应当理解的,对于由任意举例组合所形成的新一种多维码,均应落入本发明的保护范围。

举例,请参阅图2所示,每个码块10的形状可以为正方形,相邻码块之间紧密排列而无间距,每个码块10被均匀划分为4个区域,所述四个区域分别为左上区域、右上区域、左下区域和右下区域,所述四个区域分别对应一个子码块10,分别为左上子码块、右上子码块、左下子码块和右下子码块。应当理解的,每个码块10的形状还可以有其他选择,例如所述码块10还可以选用矩形。并且码块的区域划分也可以有其他选择,例如平均划分为两块、三块或八块区域等等。

例如,请参阅图3所示,对于不包括任何子码块的码块,其代表第一层二进制数据0000;对于只包括左上子码块的码块,其代表第一层二进制数据0001;对于只包括右上子码块的码块,其代表第一层二进制数据0010;对于只包括左下子码块的码块,其代表第一层二进制数据0011;对于只包括右下子码块的码块,其代表第一层二进制数据0100;对于只包括左上子码块和右上子码块的码块,其代表第一层二进制数据0101;对于只包括左下子码块和右下子码块的码块,其代表第一层二进制数据0110;对于只包括左上子码块和左下子码块的码块,其代表第一层二进制数据0111;对于只包括右上子码块和右下子码块的码块,其代表第一层二进制数据1000;对于只包括左上子码块和右下子码块的码块,其代表第一层二进制数据1001;对于只包括右上子码块和左下子码块的码块,其代表第一层二进制数据1010;对于只包括左上子码块、右上子码块和左下子码块的码块,其代表第一层二进制数据1011;对于只包括左上子码块、右上子码块和右下子码块的码块,其代表第一层二进制数据1100;对于只包括左上子码块、左下子码块和右下子码块的码块,其代表第一层二进制数据1101;对于只包括右上子码块、左下子码块和右下子码块的码块,其代表第一层二进制数据1110;对于包括全部四个子码块的码块,其代表第一层二进制数据1111。每个码块的第一层数据信息量是现有二维码的16倍。应当理解的,每种类型的码块所对应的二进制数据并不局限于上述方法,例如每种类型的码块所对应的二进制数据可对调。

例如,所述m个灰度等级具体为8个灰度等级,所述8个灰度等级的灰度区间分别为0~31、32~63、64~95、96~127、128~159、160~191、192~223、224~254。应当理解的,所述m不局限于8,还可以是4、16、32等等。灰度等级划分越细,承载的信息量越大,但是对多维码的印刷颜色和清晰度要求更高,并且对识别器的计算能力要求更高。请参阅图4所示,如果m为8,则对于落入0~31灰度区间的码块,其代表第二层二进制数据000;对于落入32~63灰度区间的码块,其代表第二层二进制数据001;对于落入64~95灰度区间的码块,其代表第二层二进制数据010;对于落入96~127灰度区间的码块,其代表第二层二进制数据011;对于落入128~159灰度区间的码块,其代表第二层二进制数据100;对于落入160~191灰度区间的码块,其代表第二层二进制数据101;对于落入192~223灰度区间的码块,其代表第二层二进制数据110;对于落入224~254灰度区间的码块,其代表第二层二进制数据111。每个码块的第一层数据信息量是现有二维码的8倍。应当理解的,每种灰度值的码块所对应的二进制数据并不局限于上述方法,例如每种灰度值的码块所对应的二进制数据可对调。考虑到对于不包括子码块的码块而言,其灰度值必然是255,因此其不具备被赋予第二层数据的条件,因此对于灰度值为255的码块,其不被赋予第二层数据。

例如,请参阅图5所示,所述还包括三个位置探测图形20,所述三个位置探测图形位于所述二维矩阵的四个角点中的其中三个处。考虑到所述三个位置探测图形的具体图形及识别方法可直接参考二维码技术,因此本实施例对此不再赘述。

由于本实施例提供的多维码的每个码块可承载两层数据信息,而每层数据信息又可以代表数位二进制数据,通过以上举例的结合,每个码块可代表24种数据,因此相比现有二位码的每个码块只能代表一位二进制数据,本技术方案所提供的多维码的信息承载能力是现有二维码信息承载能力的24倍。并且在识别设备硬件和计算能力能满足识别计算能力的情况下,所述多维码可通过进一步细化灰度级和子码块区域而成倍提高其信息承载能力。

由于所述多维码的信息承载能力强,因此一方面,其搭载相同大小的信息量时,其面积更小,可以被应用于各种体积较微小的产品中;另一方面,在相同面积情况下,其可搭载更多的数据,因此可应用于搭载图片、动图或者音频文件等等,具有广泛的应用前景,可涉及各领域的应用。

实施例2:

请参阅图6所述,本实施例提供了一种多维码识别方法,用于识别实施例1中提供的多维码。所述方法主要包括图6中所示的s101~s106这六步,下面将对各步骤进行详细介绍。

s101.获取图像,所述图像中包含有所述多维码的图形。

例如,所述图像的获取途径可以是通过摄像头拍摄获得,相应的,所述多维码的识别装置可以是装有摄像头的手机,或者是装有摄像头的识别器。

s102.对所获取的图像进行预处理,并从中套取出所述多维码的方图。

例如,该步骤可具体包括以下子步骤:s102-1.对所述图像进行几何校正处理,使所述多维码的长和宽分别与所述图像的长和宽平行;s102-2.对所述图像进行图像分割处理,沿所述多维码的长和宽套取出所述多维码的方图。

其中,几何校正的方法可具体包括①②两步。分别为①图像空间坐标变换,即首先建立图像像素坐标(行、列号)和物方(或参考图)对应点坐标间的映射关系,求解映射关系中的未知参数,然后根据映射关系对图像各个像素坐标进行校正;例如图像中多维码占据100×100个像素点,选取所述图像中多维码的四个角点,这四个角点的坐标分别为(x1,y1)、(x2,y2)、(x3,y3)和(x4,y4),其变换后的坐标分别设定为(0,0)、(0,100)、(100,100)和(100,0),根据四个角点变换前后的坐标值即可计算出相应的变换映射关系,进而可以根据求得的映射关系对其他像素点进行几何校正,校正后,该多维码的图形为方正的图形。②确定各像素的灰度值,主要采用灰度级插值法。由于数字图像的几何校正为现有技术,因此本实施例不再对该部分内容进行赘述。

其中,图像分割处理处理时,以所述多维码的外轮廓为边界进行图像分割。考虑到图像分割也为成熟的现有技术,因此本实施例不再赘述。图像分割完成后,所套取的图像刚好仅包括该多维码。

s103.根据多维码的码块的尺寸大小,将所述方图划分为若干个栅格,每个所述栅格对应一个所述码块。

s104.依次判断每个栅格中码块所包含的子码块的数量和区域,并根据判断结果解码出相应的第一层数据信息,每个码块解码出的第一层数据信息拼接在其前一个码块解码出的第一层数据信息之后,形成第一数据信息流。

例如,该步骤可具体包括以下子步骤:s104-1.计算栅格中所有像素点的灰度值,将灰度值等于255的像素点记为0,将其余像素点记为1,形成仅包含0和1两种元素的小矩阵;s104-2.利用卷积神经网络算法对该小矩阵进行卷积,卷积过程中使用到若干个过滤器,每个所述过滤器对应一种码块类型,每个过滤器的矩阵行数和矩阵列数分别与所述小矩阵的行数和列数相等;每个过滤器卷积后得到一个特征值,将所得的特征值和与之对应的过滤器进行匹配,选取出匹配程度最高的一组特征值和过滤器,将该过滤器所对应的码块类型作为判断结果。

比如,请参阅图7所示,仅包含左上子码块和右下子码块的码块,每个子码块中包含四个像素点,其进过步骤s104-1后,形成如图7所示的小矩阵。

比如,请参阅图8所示,卷积过程中使用到16个过滤器。其中第一个过滤器的最佳匹配特征值为0,第二~第五个过滤器的最佳匹配特征值为4,第六~第十一个过滤器的最佳匹配特征值为8,第十二~第十五个过滤器的最佳匹配特征值为12,第十六个过滤器的最佳匹配特征值为16。本实施例中,将所有过滤器分别与图7所示小矩阵进行卷积,最后对每个所得特征值与相应滤波器进行结合分析,发现刚好第十个滤波器所得的特征值为8,与第十个滤波器的最佳匹配特征值相等,因此判定该码块的类型与第九个滤波器所对应的码块类型相同。如果当有多个过滤器,其计算所得的特征值等于其最佳匹配特征值,则选取其中最大特征值对应的过滤器,以该过滤器所对应的码块类型作为判断结果。

s105.依次计算每个栅格中码块的灰度值,并根据计算结果解码出相应的第二层数据信息,每个码块解码出的第二层数据信息拼接在其前一个码块解码出的第二层数据信息之后,形成第二数据信息流。

例如,该步骤可具体包括以下子步骤:s105-1.计算栅格中所有像素点的灰度值;s105-2.计算所有灰度值小于等于254的像素点的灰度平均值,并将所述灰度平均值作为所述码块的灰度值。

比如,计算像素点灰度值时,可选用如下公式,gray=(r*30+g*59+b*11+50)/100,其中gray表示灰度值,r表示rgb的红色分量,g表示rgb的绿色分量,b表示rgb的蓝色分量。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员,在本发明揭露的技术范围内,可轻易想到变化或替换,都应该涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1