二维码的识别方法
技术领域
本发明涉及一种二维码,特别是一种信息含量大、识别率高的二维码以及对该二维码的识别方法。
背景技术
近年来,二维码因其具有储存量大、保密性高、追踪性高、抗损性强、备援性大、成本便宜等特性,在表单、安全保密、追踪、证照、存货盘点、资料备援等多个领域得到了广泛应用。通常,二维码设计者都会在条码内嵌入一些固定不变的图式作为识读的定位和定向依据。
为便于叙述,以下我们将二维码中一个识别单元称为“码字”,把码字中表征数据的黑白色块或黑白的点等称为“码元”,把码字中码元的某种组合所代表的数值称为“码值”,把码字能表征的所有码值称为“码域”,把码域内所包含的码值总量称为“码量”。
图1所示为QR码的二维码,QR来自英文“QuickResponse”的缩写,即快速反应的意思,源自发明者希望QR码可让其内容快速被解码。QR码呈正方形,只有黑白两色,在4个角落的其中3个,印有较小的像“回”字的正方图案。这3个正方图案是帮助解码软件定位的图案,使用者不需要对准,无论以任何角度扫描,二维码仍可被正确读取。这也使QR码比普通的条码可储存更多资料,亦无需像普通条码般在扫描时以直线对准扫描器。目前,二维码面临的最大问题是克隆,人们能够通过简单的复制的办法,将二维码批量复制,加上二维码具有天然的纠错和抗损能力,和识读器越来越敏锐的识别功能,复制出来的二维码基本上可以轻松识读。
但是在某些应用领域中,由于面积有限,需要二维码占用的面积越小越好,而码域则越宽越好。如图2所示,中国专利CN101064013A公开了一种编码方法,其码字201包含一表头部202和数据部203。表头部202内包含多个按预定方式排列的定位码元204,用于提供识读码字的方法和界限。数据部203分为若干状态区域,每个状态区域内设置一个数据码元205。在如图2所示的码字中,表头部用了7个定位码元,数据部用了9个数据码元。9个数据码元可以表示为(22)9=218=262144个十进制数,也就是说该二维码的码量为262144。然而这种编码方法中数据点:定位点=9:7,显然存在码字面积利用率不充分的问题。
中国专利CN101794404A公开了另外一种编码方法,如图3所示,定位部中包含了彼此垂直放置的长方形基准码元301和长方形定向码元302,每个码字区按照一固定距离L设置虚拟网线,虚拟网线的交叉点形成虚拟格点304,基准码元和定向码元的中心分别位于其中一个虚拟格点处,在其他各个虚拟格点沿横向或纵向偏移间距d的不同排列组合形成多个用于设置数据码元的虚拟空穴305,同一码元区只有一个数据码元306,根据各个虚拟格点的权重、以及同一码元区中数据码元各偏移方位的权重,对所有数据码元进行加权级联组合,即可得到对应的码值。这种算法确实在码字利用率上做出了改善,但是很显然一个缺点是基准码元和定向码元非常小,尤其是其短边的长度非常短,这种依靠取基准码元和数据码元中距离非常近的两个点所确定的线加以延伸,来确定码字区的方法,很容易与实际网格线产生较大倾斜,其结果直接影响数据码元的寻找和计算。
在上述两种传统隐形二维码的算法中,定位线与虚拟线都是相平行,而且有些相距很近,很容易使两者相互干扰,影响计算的稳定性。
在隐形二维码的应用领域中,一种特殊的应用是,将码值不同的二维码嵌入印刷物的不同位置,通过专门设计的识读器对印刷物不同位置进行识读,得到嵌入在该位置的二维码码值,然后根据得到的码值执行预订的动作,比如发出对应的声音、播放对应的视频节目等。这种专门的识读器设计成笔状,形象地称为点读笔,将嵌入隐形二维码的印刷物称为多媒体书。在这种点读笔应用中,为了避免对主体内容形成干扰,必须把码元设计的尽量小,码元之间尽量稀,码字的面积尽量小。因此,对点读笔应用来说,采用的隐形二维码必须能够在尽量小得码字面积内、以尽量小和尽量少得码元、获取尽量大的码量。
发明内容
针对现有技术的不足,本发明的目的是要提供一种码域宽广、识别率高的二维码及其识别方法。
为实现提供一种二维码的目的,本发明采用的技术方案如下:
一种二维码,形成于一物体表面上且对应一具体数值,所述二维码包括:
一定位部,包括一中心对称的多边形的顶点和中心点以及至少两个定位点,所述多边线具有N个顶点,N是自然数且N大于或等于三,所述定位点分别设于所述中心点与所述多边形的相邻的顶点连线上;及
一数据部,包括码元区和至少一表示在所述码元区内的数值,所述码元区设于所述多边形内。
具体的,所述多边形为一正六边形或者正方形或者正三角形。
优选的,所述定位部具有三个所述定位点,所述定位点通过与所述中心点的距离区分。
进一步,所述码元区为一所述多边形的边线、中心点与顶点的连线以及中心点到该边线的垂线形成的区域。
进一步,所述码元区为一所述多边形的边线、两条中心点与相邻的顶点形成的区域。
具体的,所述码元区中的数值由码元区中至少一虚拟格点和设于所述虚拟格点上的码元构成,各虚拟格点分别对应一数值。
进一步,所述码元区中还包含有冗余码。
具体的,所述二维码中包括至少两个码字,相邻的码字之间共享多边形相邻的顶点。
为了实现提供一种识别上述二维码的识别方法,本发明采用的技术方案如下:
一种识别权利要求1中所述二维码的方法,包括以下步骤:
1)在物体表面形成如权利要求1中所述的二维码;
2)读取至少具有一个完整码字的图像,并在所述图像中任取一个点X,;
3)以点X为圆心做一个以码字的中心点到多边形边线的最短距离为内径、中心点到多边形顶点为外径的圆环,如果在圆环中或者内径上或者外径上找到N个点,则进入步骤4),否则返回步骤2);
4)如果点X与圆环中的N个点中相邻的两个点的连线上具有所述定位点,则根据点X确定一码字的中心点,进入步骤5);否则取圆环中N个点中的一个点作为新的点X,返回步骤3);
5)根据确定的码字中码元区的数值和该码元区的编码计算该码字对应的码值。
进一步,在所述步骤2)中获取图像后,还需要对图像进行校正。
相对于现有技术,本发明所述的技术方案具有如下优点:
1、蜂窝状排列结构数据点和定位点的比例明显提高,因此在同样码字面积和码元密度条件下具有更大的码值空间;
2、需要获取的图像面积有效减少:由于蜂窝状隐形二维码由于具有正六边形的中心对称结构,只要有一个拍摄面积为1.5倍正六边形面积的取图面积,所取图像中就能组成一个完整的码字单元;
3、由于不同码区重复点之间的距离和虚拟数据线的长度不一致,因此不同码字中的重复点的连线不会对虚拟数据线、虚拟垂直线等产生干扰;
4、双环判据可以链式快速查找码字中的所有定位点,提高了识读速度;
5、蜂窝状的正六边形结构,使隐形二维码在识读中无方向性,无需对拍摄到的图像进行旋转处理;并且能有效避免获取图像时图像的缩放变形、倾斜变形及运动变形等图像变形方式,将拍摄到的图像校准为理想图像带来了极大的方便。
进一步,本发明所述的蜂窝状二维码及其识别方法尤其适合运用于点读笔或者点读装置中,通过点读笔上的摄像头获取书本中形成的二维码的图像并读取码值后,发出相应的声音或者显示相应的视频等。
为了充分地了解本发明的目的、特征和效果,以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明。
附图说明
图1是现有技术中QR码的示意图;
图2是现有技术中一种二维码的示意图;
图3是现有技术中另外一种二维码的示意图;
图4是本发明所述的二维码识别方法中的二维码的示意图;
图4a是图4中单个码字的定位部的示意图;
图4b是图4中单个码字的数据部的示意图;
图5是本发明所述的二维码识别方法的流程图。
图中:
400—码字;410—定位部;411—顶点;412—中心点;413—定位点;414—外径;415—内径;420—数据部;421—码元区;422—虚拟格点;423—码元。
具体实施方式
请参阅图4至图4b,图中所示为一种二维码,该二维码形成于一物体表面上且对应一具体数值。二维码包括一定位部和一数据部,定位部包括一多边形的顶点和中心点以及至少两个定位点,所述定位点分别设于所述中心点与所述多边形的相邻的顶点连线上;数据部包括码元区和便是在码元区中的数值,所述码元区设于所述多边形中。其中多边形为一中心对称的多边形,可以为正三角形、正方形或者正六边形中的一种。
作为一种优选的实施方式,本实施例中采用正六边形进行详细描述本发明所述的技术方案。二维码中至少包含一个码字400,一个码字400包括定位部410和数据部420。多个码字400呈蜂窝状组合在一起,组成所述的二维码。
请参阅图4,正六边形的码字400呈蜂窝状排列在一起,相邻的正六边形共享其相邻的顶点。请参阅图4a,图4a所述为一个码字400的定位部410。定位部410包括一正六边形的六个顶点411和中心点412以及三个定位点413,定位点413设于三条相邻的中心点412与顶点411之间的连线上,可以通过各定位点413与中心点412之间的距离对各定位点413进行区分。
数据部420包括码元区421和设于码元区421中的数值。码元区421设于所述正六边形当中。优选的,可以将所述正六边形的相邻顶点411之间的连线、中心点412与顶点411之间的连线以及上述相邻顶点411之间的连线上通过中心点412的垂线构成的直角三角形包围的区域作为一个码元区421。或者,也可以将相邻顶点411与中心点412的连线、该相邻顶点412连接的边线构成的正三角形作为一个码元区412。
如果采用将所述正六边形的相邻顶点411之间的连线、中心点412与顶点411之间的连线以及上述相邻顶点411之间的连线上通过中心点412的垂线构成的直角三角形包围的区域作为一个码元区421,一个码字400中就具有12个码元区421,通过定位点413的定位,可以对码元区421进行编号。可以通过定位点413与中心点412的距离来区别各定位点413,根据定位点413的区别来确定以其中一个定位点413所在的中心点412与顶点411之间的连线的右侧的码元区421为起点,设置该码元区421的编号为0,其以后的码元区421按顺时针方向依次为1号、2号直到11号码元区421。
请参阅图4b,图4b所示为一个码元区421中数值的表示。优选的,可以在码元区421中设置21个虚拟格点422,所有虚拟格点422在码元区421中均匀排列,每个相邻虚拟格点422中心点上下相距距离为A,左右相距B,码元423的本身高度为H,宽度为C。每个虚拟格点422在码元区421中的位置对应的数据可以为从左到右,从上到下顺序对应的数值为0~20。一个码元423占据一个虚拟格点422则表示该虚拟格点422对应的数据,因此一个码元区421可以表示21个数值,相当于4.5bit的二进制数据。如果将相邻的码元区421进行合并,可以形成9bit的数据存储区域。因此在这种情况下,一个码字400中的12个码元区421可以形成54bit的码量。
以下详细描述一种对该二维码的识别方法:
请参阅图5,本实施例中的二维码的识别方法主要包括以下步骤:
步骤S501:在物体表面建立上述的二维码,该二维码中至少包含一个码字400。
步骤S502:读取二维码的图像,读取的图像中至少应该具有一个完整的码字,并在图像中取一个点X。
步骤S503:以点X为圆心,做一个以码字的中心点到多边形边线的最短距离为内径、中心点到多边形顶点为外径的圆环。在多边形为正六边形的情况下,假设正六边形的边长为L,则中心点到边线的最短距离为其中心点到多边形顶点的距离为L。因此得到圆环的内径为和外径为L的圆环。
如果能够在圆环中找到6个点,则进入步骤S504,否则返回步骤S502继续准备寻找。值得注意的是,该处的圆环不仅包括圆环内的区域,还包括圆环的内环和外环上。
步骤S504:如果找的的6个点中相邻的至少两个点与点X的连线上具有一定位点413,则可以确定点X为一码字400的中心点412,根据该中心点412确定的6个点为六边形的顶点411,进入步骤S505;否则,确定的点X为某一码字的六边形的顶点411,其确定的6个点中有三个中心点411和三个顶点612,并且中心点411与顶点412间隔排列。在6个点中取一个点作为新的点X后返回步骤S503。
步骤S505:根据确定的码字400计算码字400的码值。由于定位点413与中心点之间的距离的区别来对定位点413进行区分,因此可以通过定位点413对码元区421的排序,确定各码元区421相应的权重;通过码元区421中码元423在虚拟格点422的位置后可以通过查表的方式获知其所代表的数据,从而得到当前码元区421中的存储的数据。最后通过与其对应的码元区421对应的权重的加权,对所有码元区421存储的数据进行计算得到相应的码值。由于码元区421中的数值均通过查表的方式得到,一旦其中一个码元区421中的数值存在错误,并不影响其他码元区421内数据的正确性。
值得注意的是,还可以在码元区421中设置冗余码,即使码元区421中的数值存在错误也可以通过冗余码进行校验纠正错误的码,同时,某一码元区内的数据出现错误的时候,还可以通过单独校验获取的图像中的另外一码字中同一码元区421中的数据的方式进行纠错。
在获取图像之后,可以对摄取的图像进行校正,使图像的拍摄效果相对于垂直拍摄的产生的效果,这样能够有效的避免获取图像时图像的缩放变形、倾斜变形以及运动变形等。其次,在书本中的二维码可以采用隐形的二维码,以获得更美观的效果。
相对于现有技术,本发明采用的蜂窝状排列结构数据点和定位点的比例明显提高,本发明上述优选方案中数据点和定位点的比例为12:5,因此在同样码字面积和码元密度条件下具有更大的码值空间;
其次,需要获取的图像面积有效减少。现有隐形二维码为了能在拍摄图像中获取一个完整码字,摄像头拍摄图像面积至少应该为码字面积的2倍以上的实线框,若取图面积小于码字面积2倍势必会因为所取图像不完整而导致图像突发。而本发明所述的中二维码由于具有正六边形的中心对称结构,所拍摄图像只需为码字面积的1.5倍以上即可以在所拍摄图像中获取一个完整的码字,只要有一个拍摄面积为1.5倍正六边形面积的取图面积,所取图像中肯定就能组成一个完整的码字单元;
再次,由于不同码区重复点之间的距离和虚拟数据线的长度不一致,因此不同码字中的重复点的连线不会对虚拟数据线、虚拟垂直线等产生干扰;双环判据可以链式快速查找码字中的所有定位点,提高了识读速度;
最后,正六边形结构的二维码使隐形二维码在识读中无方向性,无需像传统隐形二维码一样,为了使码字处于水平状态,对拍摄到的图像进行旋转处理;并且,由于二维码的正六边形结构的对称特性,为有效避免获取图像时图像的缩放变形、倾斜变形及运动变形等图像变形方式,将拍摄到的图像校准为理想图像带来了极大的方便。
本发明所述的蜂窝状二维码及其识别方法尤其适合运用于点读笔中,通过点读笔上的摄像头获取书本中形成的二维码的图像并读取码值后,发出相应的声音或者显示相应的视频等。采用本发明所述的二维码进行识别,极大的提高了点读笔的性能和容量。
以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。