CN1971591B - 用于检测二维代码的方法和二维代码检测器 - Google Patents
用于检测二维代码的方法和二维代码检测器 Download PDFInfo
- Publication number
- CN1971591B CN1971591B CN2006101628441A CN200610162844A CN1971591B CN 1971591 B CN1971591 B CN 1971591B CN 2006101628441 A CN2006101628441 A CN 2006101628441A CN 200610162844 A CN200610162844 A CN 200610162844A CN 1971591 B CN1971591 B CN 1971591B
- Authority
- CN
- China
- Prior art keywords
- code
- bit
- image
- bit cell
- outside
- 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.)
- Active
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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
Abstract
一种二维代码,包括可以根据亮度或颜色与背景区别开来的多边形外部区域,以及位于与外部区域的周界具有预定距离处的内部区域。内部区域被分成预定大小的单元,以便通过每一个单元的亮度或颜色来代表信息。这些单元被布置得彼此毗邻,每一个单元都具有六边形的形状。
Description
技术领域
本发明涉及二维代码的配置,并涉及用于从图像检测二维代码的方法和设备。
背景技术
[相关技术1]
图18示出了叫做MaxiCode的已知的二维代码。在此二维代码中,在位于二维代码的中心部分的具有不同半径的同心环状的黑白区域的周围有规律地排列着微小的正六边形单元。每一个正六边形单元都被涂成黑色或白色,从而代表了二进制信息。通过使用照相机等等捕获代码的图像,读出代码的内容。在下文中将把这种类型的二维代码称为“二维代码1”。
图19和20所示的二维代码也是已知的。这些二维代码中的每一个都具有可以根据亮度从背景区别开来的正方形外部区域,以及通过将代码的内部区域划分为大小相等的区域而形成的小的正方形单元。信息通过小的正方形单元的亮度/暗度来表达。通常,这样的二维代码的图像是通过照相机来捕获的,并且从捕获到的图像识别和检测代码的周界(轮廓)或外部形状。根据检测到的周界(轮廓)内分配的每一个小的正方形单元的亮度,读出由代码代表的信息。在下文中,将把这种类型的二维代码称为“二维代码2”。
一般而言,“二维代码1”和“二维代码2”要被附加到产品等中,并且用于管理诸如制造信息和运输信息之类的信息,其中制造信息包括产品号码、产品ID以及制造日期,运输信息包括产地、目的地以及运输日期/时间。读取这样的二维代码是根据这样的前提执行的:代码的图像是由照相机大致从代码的正面的位置(即,照相机的光轴大致正好垂直于代码的位置)捕获的,并且捕获的代码图像充分大。
[相关技术2]
在混合现实(MR)的领域中(其中虚拟对象被重叠在真实空间上以便显示在真实空间中),执行下列处理以呈现虚拟图像。估计真实的照相机相对于位于真实空间中的正方形标记的位置和取向。根据真实的照相机的估计位置和取向,设置虚拟照相机的参数。然后,根据设置的参数,呈现虚拟图像。
这样的MR应用中使用的技术的一个示例是ARToolkit,这在X.Zhang,S Fronz,N.Navab:″Visualmarker detection and decodingin AR systems:A comparative study,″Proc.of InternationalSymposium on Mixed and Augmented Reality{ISMAR′02),2002(以下简称为“Zhang等人的著作”)中进行了描述。在ARToolkit中,使用了具有正方形周界(轮廓)或外部形状的标记。从所捕获的图像检测标记周界(轮廓)的四边形形状。然后,根据检测到的四边形形状与原始正方形形状相比如何变形(即,检测到的四边形由于透视投影的效果而变形),估计照相机的位置和取向。此外,为了将一个标记与多个标记区别开来,用不同的图案施加于各个标记的内部。通过对从所捕获的图像获得的四边形的内部的图案执行称为“图案匹配”的处理,来区别每一个标记。在下文中,将把这种类型的二维代码称为“二维代码3”。
图22示出了MR应用中使用的标记的另一个示例,这是“Zhang等人的著作”中所描述的。此标记与“二维代码3”的不同之处在于,标记的内部被分成4×4网格图案。此外,根据其中心位于一个划分的网格单元的中心的每一个圆形的区域是否为黑色,实现区别每一个标记的功能。然而,此标记与“二维代码3”的相同之处在于,根据原始正方形轮廓,估计照相机的位置和取向。在下文中,将把这种类型的二维代码称为“二维代码4”。
在MR领域提出了具有正方形轮廓的其他类型的标记。例如,如图23所示的标记具有多个小的正方形单元,位于其正方形轮廓的外面。这些小的正方形单元被用来标识正方形轮廓在所捕获的图像内的旋转方向。标记的内部被分成4×4个正方形单元。用于区别标记的信息由每一个小的正方形单元的亮度来代表。在下文中,将把这种类型的二维代码称为“二维代码5”。
上文所描述的MR应用的“二维代码3”、“二维代码4”和“二维代码5”所共有的一个特征是,它们都具有正方形轮廓。
“相关技术1”中所描述的“二维代码1”具有位于代码的中心的同心圆,这些同心圆被小的正六边形单元围绕起来。这些正六边形单元彼此联锁(interlock)起来,每一个单元都被涂色成黑色或者白色。这些黑色和白色单元代表了二进制数据。使用从最里边的同心圆以60度的间隔辐射出的线作为参考,标识六边形单元的位置。换句话说,只有在从代码(索引)的大致正面的位置捕获“二维代码1”的图像的情况下(即,使用其光轴沿大致着索引(index)所附着的平面的法线方向的照相机捕获图像时),才可以检测到索引。这对“二维代码2”也成立。执行上文所描述的相关技术1的二维代码的图像的捕获的前提是,索引图像从照相机的光轴大致正好垂直于索引平面的位置捕获,而不是从照相机的光轴不正好垂直于索引平面的任意位置捕获图像。
上文所描述的“二维代码3”、“二维代码4”和“二维代码5”中的每一个都具有正方形轮廓的外部区域。此区域的亮度低于背景的亮度。在相关技术2的技术中,执行估算,以便根据二维代码的轮廓的变形来确定照相机相对于二维代码的位置和取向。变形是由于三维特征投影到二维平面中而发生的。即,执行相关技术2的索引的图像捕获的前提不是它们的图像从正好垂直于索引平面的方向捕获。相反地,执行这些索引的图像捕获的前提是,图像从可能偏离索引平面的法线方向的方向捕获。
对于“二维代码3”,为了区别各个索引,通过图案匹配技术,识别正方形轮廓内部的任意图案。预先独立地存储了索引内部的图案,供进行图案匹配时使用。然后,在通过从所捕获的图像中剪辑索引的内部区域所获得的图像被规范化之后,将规范化的图像和存储的图案进行比较,以便根据规范化的图像是否相似于存储的图案来识别索引。然而,此技术有一个缺点:随着要使用的图案的数量或要被同时捕获图像的索引的数量增大,要进行图案匹配的对的数量也增大。这可能会导致进行计算所需要的时间显著地增加。此外,图案的数量的增加产生相似的图案,会导致可能发生的对图案的错误识别。如此,实际可以同时使用不超过大约几十个图案。
另一方面,在“二维代码4”和“二维代码5”中,内部区域被相等地分成小的正方形单元,由每一个单元的亮度(黑色或白色)来代表比特值。如此,“二维代码4”和“二维代码5”没有上文所描述的与“二维代码3”关联的缺点。然而,如下面所描述的,“二维代码4”和“二维代码5”仍有改进的余地。
为了使二维代码包含尽可能多的信息,必须增大比特单元的数量。然而,由于必须从所捕获的图像中识别各个比特单元,因此,在缩小每一个比特单元的大小方面存在限制。换句话说,二维代码的可识别性取决于投射到图像上/或图像上捕获的比特单元的大小。一般而言,对于MR应用,较小的二维代码是合乎需要的。然而,当要记录在二维代码中的信息量增大时,二维代码的大小必须在物理上增大,以便它在所捕获的图像中看起来充分大。即,二维代码的大小和其中包含的信息量处于折衷的关系。如此,为了缩小二维代码的大小并且还要尽可能多地记录信息,需要在代码的内部区域高密度地排列比特单元。
“二维代码4”具有排列在正方形网格中的圆形的内部比特单元。利用这种类型的二维代码,当缩小每一个圆形比特单元的大小时,圆形单元之间的间隔的大小变得重要。例如,当被涂成黑色的圆形比特单元的大小被缩小到所捕获的图像中的像素的宽度的大小时,单元看起来是与单元周围的白色空间混合,从而产生了中性亮度的区域。这会导致在读出比特时错误的数量增加。即,希望内部单元的排列彼此靠近,它们之间没有间隔。
在“二维代码5”中,内部区域被相等地分成彼此相邻的正方形比特单元。如此,这种类型的二维代码没有与“二维代码4”关联的上述问题。此外,即使在标记所在的图像从不正好垂直于标记平面的方向被捕获的情况下,也可以检测到该标记。如此,将从哪个方向捕获小的内部正方形单元的图像是不明确的。即,这些单元的何种类型的四边形形状将出现在投影的图像中是不明确的。在“二维代码5”中,根据所捕获的图像中的各个正方形单元的亮度,执行将代码转换为基于比特的表示法的处理。如此,当读取亮度时,将读出每一个正方形单元的中心点(亮度参考点)的亮度。为了准确地读取亮度,必须捕获代码的图像,以便在所捕获的图像中的正方形单元的亮度参考点之间有足够的恒定的距离。换句话说,当原始索引中的单元的图像被投影到图像平面中时,越是接近于圆形形状(其中心位于亮度参考点中),投影图像中的每一个单元都出现在图像平面中,那么,原始索引中的单元的大小的减小程度就越大。通过减小单元的大小,会增大为整个索引区分配的比特的数量,每一个单元都代表了一个比特值。相比之下,当单元的形状是正方形时(表明每一个单元看上去是四边形,且各角位于图像平面中),这些单元可能不会被有效地高密度地排列起来。
另一方面,在“二维代码4”中,单个比特单元是圆形的。然而,在单元之间有不需要的间隔,如此,这些单元可能不会被高密度地排列起来。
发明内容
本发明是在考虑到上述情况的背景下作出的。从上文可以看出,在“二维代码4”和“二维代码3”在比特单元的排列的密度方面有改进的余地。
根据本发明的一个方面的二维代码,其包括可以根据亮度或颜色从背景区别开来的多边形外部区域,以及位于与外部区域的周界具有每一个单元的亮度或颜色来代表信息。单元被放置得彼此毗邻,每一个单元都具有六边形的形状。
根据本发明的一个方面的检测二维代码的方法包括下列步骤:从背景中检测在图像上投影的二维代码的多边形外部区域,根据图像中的多边形外部区域的形状判断内部比特单元的位置,以及根据比特单元的亮度或颜色获取比特值。二维代码包括可以根据亮度或颜色从背景区别开来的多边形外部区域,以及位于与六边形外部区域的周界具有预定距离处的内部区域,内部区域具有多个六边形比特单元,比特单元被放置得彼此毗邻。
根据本发明的一个方面的二维代码检测器包括:多边形外部区域检测设备,适用于从背景中检测在图像上投影的二维代码的多边形外部区域;比特单元识别设备,适用于根据图像中的多边形外部区域的形状识别内部比特单元的位置;以及比特值获取设备,适用于根据图像中的比特单元的亮度或颜色获取比特值。其中,二维代码包括能够根据亮度或颜色与背景区别开来的多边形外部区域,以及位于与多边形外部区域的周界具有预定距离处的内部区域,内部区域具有多个六边形比特单元,这些比特单元被布置得彼此毗邻。
通过下面的参考附图进行的详细描述,本发明的其他特征和优点将变得显而易见,其中,相同的附图标记在整个图中表示相同或类似的部分。
附图说明
本说明书收入的并构成本说明书的一部分的附图说明了本发明的实施例,并且与说明书一起用于说明本发明的原理。
图1A到1C说明了根据本发明的示范性实施例的二维代码的配置。
图2A到2C说明了根据本发明的示范性实施例的另一个二维代码的配置。
图3是说明了根据本发明的示范性实施例的二维代码检测器的方框图。
图4是说明了由根据本发明的示范性实施例的二维代码检测器所执行的处理过程的流程图。
图5A到5E是说明了用于检测二维代码的正方形轮廓的方法的示意图。
图6是示出了二维代码的原始六边形轮廓和在投影的图像上获得的二维代码的轮廓,并说明了原始轮廓和投影轮廓之间的投影变换的示意图。
图7是说明了根据检测到的六边形轮廓计算内部比特单元的中心位置的方案的示意图。
图8是说明了二维代码的投影图像中的特定比特单元的中心点和邻近像素之间的关系的示意图。
图9A到9D是说明了根据本发明的示范性实施例的二维代码的比特单元和根据已知技术的二维代码的比特单元之间的比较的示意图。
图10A到10D说明了根据本发明的示范性实施例的二维代码的配置。
图11是说明了由根据本发明的示范性实施例的二维代码检测器所执行的处理过程的流程图。
图12A到12E是说明了用于检测二维代码的正方形轮廓的方法的示意图。
图13是示出了二维代码的原始正方形轮廓和在投影图像上获得的二维代码的轮廓,并说明了原始轮廓和投影轮廓之间的投影变换的示意图。
图14A到14D是说明了根据本发明的示范性实施例的二维代码的比特单元和根据已知技术的二维代码的比特单元之间的比较的示意图。
图15说明了两种情况下的二维代码,其中一种情况在白色外部区域上提供了比特单元,另一种情况在黑色外部区域上提供了比特单元。
图16说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图17说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图18说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图19说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图20说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图21说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图22说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
图23说明了基于六边形轮廓的索引的示例,这是一种根据已知技术的二维代码类型。
具体实施方式
现在将根据附图详细描述本发明的优选实施例。
[第一示范性实施例]
请参看图1A到1C,它们示出了根据本发明的示范性实施例的二维代码。图1A示出了二维代码102,它具有白色的正六边形外部区域,并在黑色背景101上形成。在二维代码102的内部,在与二维代码102的正六边形周界(轮廓)具有预定距离处,提供了一个区域。此内部区域被分成正六边形单元,每一个单元都被涂成黑色或者白色。图1B中示出了每一个单元和外周界(轮廓)之间的关系。在此示例中,六边形单元被排列成相对于六边形周界(轮廓)的对角线倾斜30度。每一个六边形单元和外周界(轮廓)之间的间隔的长度被设置为在对角线方向等分六边形单元的线的长度的一半。图1C示出了此排列。如该图所示,由虚线表示的三角网作为额外的线覆盖在图1B中的二维代码上。此三角网由平行线的组每隔一定间隔构成,每120度角布置一组平行线。
如此,在图1A到1C中所示出的二维代码102中,六边形单元是这样排列的,以便在对角线方向连接六边形的外周界(轮廓)的顶点的线和正六边形单元的任何对边成直角地交叉。
下面,将描述用于读取二维代码的二维代码检测器的优选配置的示例。图3是示出了用于检测图1中所示的这样的二维代码的二维代码检测器的配置的方框图。
二维代码检测器包括用于捕获图1中的二维代码的图像的照相机301。所捕获的图像被根据总线控制器304的仲裁通过图像加载单元302写入到存储器305中。存储器305中记录了用于执行根据本发明的示范性实施例的处理过程的程序。CPU(中央处理单元)303根据该过程执行处理。总线控制器304对于CPU 303、图像加载单元302以及存储器305之间的数据的输入/输出执行仲裁。
请参看图4,流程图示出了图3中所示的二维代码检测器的处理过程。
在步骤S401中,由照相机301捕获二维代码的图像,并且通过图像加载单元302获取所捕获的图像。在步骤S402中,检测作为在图像上投影的二维代码(索引)的外周界(轮廓)的六边形形状。由照相机301执行此图像捕获过程时,不一定要让照相机的取向使得照相机的光轴正好垂直于索引平面。相反地,当在MR应用中使用时,可以从各种方向捕获索引图像。在此情况下,图像平面的垂直和水平轴以及索引的六边形周界(轮廓)的各边不一定排成一线。
下面将参考图5A到5E描述用于检测外周界(轮廓)的步骤S402的处理。图5A示出了从正好垂直于索引的平面的方向查看的索引。在此图中没有示出内部单元,在对步骤S402的处理的此处描述中忽略这些单元。例如,可以由照相机捕获图5B所示出的图像。甚至在索引具有正六边形形状的情况下,所捕获的图像中的索引也可以看起来像凸起的六边形,除非索引是从照相机的光轴垂直于索引平面的位置捕获的。此外,图像中的索引也可以取向为任何方向。此外,所捕获的图像中的黑色区域和白色区域用于代表亮度的级别,黑色区域和白色区域之间的边界区域代表中间亮度级别。图5C示出了通过二进制化图5B所示的图像而获得的二进制图像。此图像二进制化可以通过简单的阈值处理来实现。然而,可以应用任何二进制化方案来获得这样的图像。从此二进制图像,通过像素跟踪技术,检测形成白色区域的周界(轮廓)的像素,以便获得形成了具有图5D所示出的一个像素的宽度的闭环的像素排列。当对此像素排列(alignment)执行虚线近似法时,获得了图5E所示的六边形。此时,在索引的原来的形状不是六边形的情况下,可以通过虚线近似法发现,断点的数量不是六个。如此,可以判断原来的形状是否是六边形。
在步骤S402的处理的上述描述中,忽略了索引的内部区域中的比特单元。然而,由于在内部比特单元和六边形周界(轮廓)之间提供了空间,因此,内部单元不影响步骤S402的处理,只要索引在图像平面中占据了比预定面积更大的面积(即,如此捕获图像,以便空间的宽度大于所捕获的图像中的一个像素的宽度)。
然后,在步骤S403中,根据检测到的六边形轮廓计算各个内部比特单元的中心位置。下面将参考图6描述此计算。如该图所示,作为索引的原始轮廓的正六边形的顶点被排序为(Xn,Yn)(n=0,1,...,5),而在图像中检测到的六边形轮廓的顶点被排序为(xn,yn)。这些六边形通过二维投影变换相关联,该二维投影变换通过下面的公式来表达。
此关系表达式可以通过如下所示的矩阵运算而写成齐次坐标变换公式。
在此情况下,矩阵
称为“单应性矩阵”。顶点(Xn,Yn)和(xn,yn)具有六个对应的点。可以导出公式(1)和关联的公式(2)的六个关系表达式。换句话说,通过对联立方程进行求解,可以从六个对应的点之间的关系导出上述单应性矩阵(3)或公式(1)中的八个参数H11、H12、H13、H21、H22、H23、H31和H32。由于未知数的数量是八个,因此,为了唯一地确定八个未知数,需要四个对应的点。如此,从六个对应的点计算八个参数导致联立方程中存在冗余,希望使用最小二乘方法等等来计算参数。
一旦获得了公式(1)或(2)中所示的关系表达式,空间(X,Y)中的任何点都可以映射到空间(x,y)。即,该公式允许计算索引中的任意比特单元的中心点出现在投影图像上的位置。例如,参看图7,可以获得中心点701在投影图像中的坐标。利用上文所描述的配置,可以在步骤S403的处理中计算内部比特单元的中心点出现在投影图像平面中的位置。
随后,在步骤S404中,获取所获得的各个比特单元在图像平面中的中心位置的亮度值。由于在步骤S403的处理中计算出的中心位置是基于与六边形轮廓的图像捕获关联的投影变换的,因此,亮度值将不一定是整数值。即,要获取的亮度值不直接代表对应的像素。如此,亮度值可以被设置为最近的相邻像素的值或基于最近的四个像素的值通过诸如线性内插之类的内插方案来进行计算。使用图8对此进行了描述。假设在步骤S403中获取的比特单元在图像平面中的中心位置位于该图所示的点801处。点801的坐标值不是整数值,表明点801不对应于图像中的像素的中心。在步骤S404的处理中,获取此点801的亮度。在此示例中,使用上文所提及的最近的相邻像素的值进行的亮度计算意味着,距离点801最近的像素802的值被用作点801的亮度值。使用上文所提及的线性内插方案进行的亮度计算意味着,从最近的四个像素,即像素802、803、804和805的值内插亮度值。
然后,在步骤S405中,所获得的亮度值被转换为比特值。最简单的比特转换方案是阈值处理,其中,通过亮度值和预定阈值之间的比较,亮度值被确定为0或1。可以使用步骤S402的二进制化处理中使用的值作为预定的阈值。然而,也可以使用任何其他方案来确定阈值。此外,步骤S405的处理可以并入到在步骤S406中对所有比特单元执行了比特转换过程之后执行的处理中,而不是在步骤S404和步骤S406的处理之间执行。在此情况下,也可能在步骤S403和步骤S404中的每个处理中获取每一个比特单元的亮度值,然后,根据亮度值的分布,将所获得的亮度值转换为比特值。
在上文中,描述了根据此示范性实施例的从二维代码中读取比特值的处理,该二维代码呈现正六边形的形状,其具有内部被分成联锁的正六边形单元的区域。由于正六边形具有旋转对称性,因此,前面的处理过程没有提供例如关于投影图像中的哪个方向对应于索引的顶部的信息。鉴于此,可以使用这样的方案:事先向多个预定单元中的每一个分配一种颜色(黑色或白色),以便可以确定索引的旋转方向。作为替换,可以将另一个单元置于六边形轮廓的外部,以便可以确定旋转方向,与“二维代码5”的情况相同。
在上文中,描述了从二维代码中读取比特值的方法,该二维代码具有正六边形轮廓,并在六边形轮廓的内部具有联锁的正六边形单元。这样的二维代码是有利的,原因有下面几个。
图9A示出了根据此示范性实施例的与图1B所示的二维代码相同的二维代码,在该二维代码的内部区域中,排列有联锁的正六边形比特单元。图9B示出了根据与相关技术2的“二维代码5”中使用的方案相似的方案排列比特单元的情况。如该图所示,在内部区域排列着联锁的正方形单元。图9C示出了图9A所示的其中一个单元被覆盖到图9B所示的其中一个单元上的情况。从该图可以看出,六边形单元的相对的边之间的距离与正方形单元的相对的边之间的距离相同。如上文所描述的,从任何角度捕获这些二维代码的图像。如此,当由照相机捕获图9C所示的单个单元的图像然后覆盖在一起时,可以获得图9D所示的图像。通常,照相机将像素排列在网格中,以便获取外部对象等等的亮度和颜色,作为像素的值。如此,如上文使用图8并结合步骤S403的处理所描述的,将从相对于投影图像中的比特单元的中心点最近的相邻像素的像素值或四个最近的像素的像素值获得图9C所示的每一个比特单元的亮度或颜色。从图9D可以看出,当比特单元是正方形时,在图像中投射的四边形的顶点的附近的那些部分的大小增大,因为与图像中的六边形的顶点相比,这些顶点与中心点的距离更远。这表明,位于四边形的顶点附近的这些部分很少影响中心点的亮度或颜色。由于此二维代码的图像的捕获是在代码的图像可以从各个方向捕获的前提下执行的,因此,通过与中心点具有相同距离的点来定义比特单元,可以缩小比特单元的大小。即,希望比特单元的形状尽可能地接近于圆形,以降低比特单元的大小。虽然图9A所示的比特单元的大小是图9B所示的比特单元的0.866倍,但是,当从各个方向捕获它们的图像时,这些比特单元具有大致相同的最小可读的比特大小。尽管图9A的二维代码包含19个比特单元,而图9B的二维代码只包含16个单元。然而,图9A所示的总共19个比特单元的面积与图9B所示的总共16个比特单元的面积大致相同。如此,根据本发明的本示范性实施例,在二维代码中可以记录更多的比特数,而不会增大二维代码的大小。
第一个示范性实施例的二维代码包括具有正六边形轮廓的外部区域,以及位于外部区域中的内部区域,在该内部区域中,如图1所示的那样布置了正六边形的比特单元。然而,轮廓和每一个比特单元的形状不需要是正六边形,可以是任何六边形形状。例如,二维代码可以具有如图2所示的那样的矩形轮廓。只要联锁的六边形比特单元被布置在与二维代码的轮廓有预定距离的位置处,并且可以根据投影图像平面中的(变形的)轮廓的形状,确定投影图像平面中的每一个比特单元的位置,就可以实现本发明的本质。
此外,作为本发明的实施例的示例,描述了这样的情况:每一个比特单元都被分配了一种颜色(黑色或白色),每一个单元的亮度都通过阈值处理被转换为二进制值(1或0)。然而,作为上述实施例的修改方案,也可能使用多个亮度值,以便将它们转换为n个值。还可能向各个单元分配多个不同的颜色。也是在此情况下,如上文所描述的,可以使用相邻像素通过例如最近邻技术或诸如双线性内插法之类的内插技术获得各个单元的颜色。然后,选择与所获得的颜色最接近的多个注册的候选颜色(m个颜色),以便分配给各个单元。如此,比特单元可以被转换为最多m个值。
[第二示范性实施例]
图10A到10D说明了根据本发明的第二示范性实施例的二维代码。参看图10A,在黑色背景1001上形成二维代码1002。二维代码1002具有被涂成白色的并具有正方形轮廓的外部区域,以及在与轮廓有预定距离的位置处提供的内部区域。内部区域被分成被联锁在一起的六边形单元。每一个六边形单元都具有相等的高度和宽度,并被涂成黑色或白色。
图10B示出了六边形单元和正方形轮廓之间的关系。图10C示出了一个六边形单元,以及一个四边形,作为具有相等的高度和宽度的额外的线。该图中的值“s”是六边形单元和四边形的高度和宽度。六边形单元的两个顶点位于四边形的右边和左边的中点,其余的四个顶点位于四边形的上边和下边中,其中每一个都与右边或左边有s/4的距离。图10D示出了四个六边形单元1003、1004、1005和1006,其中每一个六边形单元都位于正方形轮廓的各个顶点的最邻近的附近处。这些六边形单元将在步骤S1103到S1106的处理中使用。每一个六边形单元1003、1004、1005和1006都分别用预定的颜色填充:在此示例中,分别为白色、黑色、黑色、黑色。
图11是示出了根据此示范性实施例的处理过程的流程图,该处理过程是使用上文所描述的二维代码检测器执行的。
在步骤S1101中,由照相机201捕获如图10所示的二维代码的图像,通过图像加载单元202获取所捕获的图像。在步骤S1102中,从所捕获的图像检测作为二维代码的轮廓的四边形。
参看图12A到12E,将描述用于检测轮廓的步骤S1102的此处理。图12A示出了当从视轴垂直于索引平面的位置查看时该索引的形状。在此描述中,忽略了内部比特单元,并且在图中没有示出。图12B示出了由照相机捕获的索引的图像的示例。即使在索引的原来的形状是正方形的情况下,它在所捕获的图像中看起来也不是正方形,而是凸的四边形,除非它是从照相机的光轴垂直于索引的平面的位置捕获的。此外,在图像平面中,索引也可以朝任何方向。此外,每一个白色和黑色单元都代表图像中的亮度的级别,黑色和白色区域之间的边界区域被观察为具有中等级别的亮度。图12C示出了通过二进制化图12B所示的图像而获得的二进制图像。此图像二进制化可以通过简单的阈值处理来实现。然而,可以应用任何二进制化方案来获得这样的图像。从此二进制图像,通过像素跟踪技术,检测形成被涂成白色的区域的轮廓的像素,以便获得形成了具有图12D所示的一个像素的宽度的闭环的像素排列。当对此像素排列执行虚线近似法时,获得了图12E所示的四边形。此时,在原始索引的形状不是正方形的情况下,通过虚线近似法可以发现,断点的数量不是四个。如此,可以判断原来的形状是否是正方形。在步骤S1102的处理的上述描述中,没有提及索引的内部区域中的比特单元。由于在内部比特单元和正方形轮廓之间提供了空间,因此,内部单元不影响步骤S1102的处理,只要索引在整个图像中占据了比预定面积更大的面积(即,空间的宽度大于所捕获的图像中的一个像素的宽度)。
然后,在步骤S1103中,根据图像平面中的检测到的四边形周界(轮廓),计算在二维代码的四个顶点的最近的附近提供的如图10D所示的各个内部比特单元1003、1004、1005,以及1006的中心位置。下面将参考图13描述此计算。如该图所示,作为索引的原始轮廓的正方形的顶点被排序为(Xn,Yn)(n=0,1,2,3),而在图像中检测到的四边形轮廓的顶点被排序为(xn,yn)。这些轮廓可以通过以下公式表达的二维投影变换相关联。
此关系表达式可以通过如下所示的矩阵运算而写成齐次坐标变换公式。
在此情况下,矩阵
叫做“单应性矩阵”。顶点(Xn,Yn)和(xn,yn)具有四个对应的点。可以导出公式(4)和关联的公式(5)的四个关系表达式。换句话说,通过对联立方程进行求解,可以从四个对应的点之间的关系导出上述单应性矩阵(6)或公式(4)中的八个参数H11、H12、H13、H21、H22、H23、H31和H32。
一旦获得了公式(4)或关联的公式(5)中所示的关系表达式,空间(X,Y)中的任何点都可以映射到空间(x,y)。即,该公式允许计算索引中的任意比特单元的中心点出现在投影图像上的位置。请注意,此示范性实施例的重要的特征是,单元1003、1004、1005以及1006的中心点位于正方形周界(轮廓)的对角线上。在正方形中,上边和下边之间的距离等于右边和左边之间的距离。如此,可以根据检测到的四边形周界(轮廓)获得图像平面上的四个六边形单元的中心位置,不管二维代码的正方形轮廓的图像所取向的方向。然而,不可能只根据图像中的四边形轮廓将各个单元1003、1004、1005和1006彼此区别开来。换句话说,在步骤S1103的处理中,获得四个六边形单元的中心点,而不将各个单元彼此区别开来。
随后,在步骤S1104中,使用与参考图4描述的步骤S403的处理中使用的方案相似的方案,获取四个六边形单元的所获得的中心位置的亮度值。
然后,在步骤S1105中,将每一个所获得的亮度值转换为二进制值(黑色或白色)。最简单的比特转换方案是阈值处理,其中,通过亮度值和预定阈值之间的比较,亮度值被确定为0或1(白色或黑色)。可以使用步骤S1102的二进制化处理中使用的值作为预定的阈值。然而,也可以使用任何其他方案来确定阈值。通过步骤S1103到步骤S1105的处理,已经确定了位于各个顶点的最近的附近处的每一个六边形单元的颜色(黑色或白色)。根据此结果,在步骤S1106中,可以确定图像中的二维代码的旋转方向(取向)。在此确定过程中,如上文所描述的,由于单元1003、1004、1005和1006分别被涂成白色、黑色、黑色和黑色,因此可以通过比较在步骤S1104的处理中所获得的单元的那些亮度值来识别每一个单元的颜色。
通过上文所描述的处理,判断投影到图像平面上的二维代码与原来的形状相比如何变形,以及二维代码在图像平面中取向为哪个方向。现在,根据上述结果,将执行读出内部比特单元的处理。在步骤S1107中,使用公式(4)或(5)计算图像平面上的任何一个比特单元(除了图10D中的比特单元1003、1004、1005和1006之外)的中心位置。然后,在步骤S1108中,获取图像平面中的单元的中心点的亮度值。此用于获取亮度值的处理类似于步骤S1104的处理。在步骤S1109中,所获得的亮度值被转换为比特值。此转换处理类似于步骤S1105的处理,其中,四个六边形单元的亮度值被转换为二进制值,并通过阈值处理等等来实现。在步骤S1110中,判断是否对所有比特单元执行了该处理。如果结果是否定的,则重复步骤S1107到步骤S1109的处理,直到对所有比特单元执行了该处理。此外,步骤S1109的处理可以并入到在步骤S1110中对所有比特单元执行了比特转换处理之后执行的处理中,而不是在步骤S1108和步骤S1110的处理之间执行。在此情况下,当执行步骤S1107、S1108和S1110的处理时,已经获得了所有比特单元的亮度值。因此,也可能根据步骤S1107、S1108和S1110的每个处理中所获得的亮度值的分布,将每一个亮度值转换为比特值。
在上文中,描述了从二维代码中读取比特值的处理,该二维代码具有正方形轮廓,并且在正方形轮廓的内部具有联锁的单元,其中每一个单元都呈现六边形形状,具有相等的高度和宽度。上文还描述了用于根据正方形轮廓检测六边形的检测器和方法。这样的二维代码是有利的,原因有下面几个。
请参看图14A,其示出了二维代码,该二维代码基本上与图10B中所示的二维代码相同。在此示范性实施例中实现的二维代码的正六边形轮廓的内部,布置着相邻的比特单元,每一个比特单元都具有六边形的形状,具有相等的高度和宽度。图14B示出了这样的情况:使用与用于上文所描述的相关技术2的“二维代码5”的方案相似的方案提供相邻的正方形比特单元。如图14A和14B所示,其中一个六边形单元和其中一个正方形单元带有阴影。在这些图中,图14A的单元看起来小于图14B的单元。然而,当它们被覆盖在一起时,如图14C所示,图14B的单元只比图14A的单元大较小的空间。如上文所描述的,这些二维代码将由照相机从任何方向进行图像捕获。如此,当图14A和14B的单元的所捕获的图像被覆盖在一起时,可以获得如图14D所示的图像。通常,照相机将像素排列在网格中,以便获得外部对象等等的亮度和颜色等作为像素的值。如此,如上文使用图6并结合步骤S1103和步骤S1107的处理所描述的,将从基于投影图像中的比特单元的中心点的最邻近的相邻像素的像素值或四个最邻近的像素的像素值获得这些比特单元中的每一个比特单元的亮度或颜色。从图14D可以看出,当比特单元是正方形时,图像平面中的四边形的顶点的周围的那些部分的大小增大,这是因为与六边形的顶点相比,这些顶点与中心点的距离更远。这表明,这些部分很少影响中心点的亮度或颜色。由于将从各个方向捕获这些二维代码的图像,因此,通过与中心点具有相同距离的点来定义比特单元,可以缩小比特单元的大小。即,希望比特单元的轮廓的形状尽可能地接近于圆形,以降低比特单元的大小。换句话说,图14A和14B的二维代码在根据该前提被捕获图像时,这些比特单元具有大致相同的最小可读比特大小。然而,图14B中的二维代码只有16个比特单元,而图14A中的二维代码具有18个比特单元。如此,根据本发明的示范性实施例,在二维代码中可以记录更多的比特数,而不会对代码的最小可识别大小产生负面影响。
此外,将每一个六边形比特单元的高度和宽度设定得相等会产生下列优点。当代码用于MR应用时,二维代码的正方形轮廓是非常重要的特征。当估计照相机的位置和取向时,在观察二维代码时,正方形轮廓将不会产生特定方向性,允许从各个视点进行观察。然而,如果每一个比特单元的形状被设置为正六边形,而正方形轮廓的形状仍保持原状,则难以在正方形轮廓的内部布置联锁的比特单元,同时在轮廓和单元之间提供恒定的距离。例如,如图16所示,在轮廓的顶边或底边和比特单元之间提供的距离比在轮廓的右边或左边和比特单元之间提供的距离长。换句话说,与如图10D所示的二维代码不同,位于图16的正方形轮廓的四个顶点附近的正六边形单元的四个中心点的位置相对于对角线不是对称的(即,中心点不在正方形轮廓的对角线上)。如此,在此情况下,不可能根据通过步骤S1103到步骤S1106的处理检测到的四边形轮廓,确定图像平面中的四边形轮廓的旋转方向或取向。由于各个比特单元的位置相对于对角线不是对称的,因此,不可能从在确定图像平面中的四边形轮廓的取向之前执行的轮廓检测结果中获得比特单元的中心点。另一方面,当使用如图10D所示的具有六边形的形状的高度和宽度相等的比特单元时,可能在正方形轮廓的顶点的最近的附近布置四个比特单元的中心位置,以便相对于顶点是对称的(中心点位于对角线上)。在使用这些四个比特单元检测图像平面中的四边形轮廓的取向之后,可以计算除了这四个比特单元之外的比特单元的中心点。此外,也可能通过在正方形轮廓的外部提供索引,确定图像平面中的四边形的取向,类似于相关技术2的“二维代码5”。然而,在这样的情况下,增大了二维代码的总的大小。如果这样的大的空间可以用于索引,可以增大正方形轮廓的大小,如此,根据本发明的示范性实施例,可以在索引中分配更多的比特数。
当希望在二维代码中表达更多数量的比特值时,可以布置更多数量的比特单元,如图17所示。如此,具有相等高度和宽度的比特单元有助于将比特单元布置在正方形中。
在上述示范性实施例中,每一个比特单元都被涂成黑色或者白色,比特单元的亮度值通过阈值处理被转换为二进制比特值(1或0)。然而,也可能使用多个亮度值,它们将被转换为n个灰度值。还可能向各个单元分配多个不同的颜色。也是在此情况下,如上文所描述的,可以通过最近邻技术或诸如使用相邻像素的双线性内插法之类的内插法获得各个单元的颜色。然后,选择与所获取的颜色最接近的多个注册的候选颜色(m个颜色),以便分配给各个单元。如此,比特单元可以被转换最多为m个色值。
在上述示范性实施例中,正方形轮廓内的外部区域用白色填充,各个比特单元通过黑色和白色来表达。然而,外部区域也可以用黑色或任何其他半色调或颜色填充。此外,如图15所示,具有黑色边界区域的二维代码和具有白色边界区域的二维代码可以一起使用,以便可以通过外部区域的颜色表达额外的一个比特。
此外,在上述示范性实施例中,描述了这样的情况:比特单元1003、1004、1005以及1006分别用白色、黑色、黑色和黑色填充,用于确定二维代码的旋转方向或取向。然而,也可以使用诸如黑色、白色、白色、白色之类的其他颜色布置。此外,具有白色、黑色、黑色以及白色的布置的二维代码和具有黑色、白色、白色以及白色的二维代码可以一起使用,以便可以通过这两种布局之间的差异表达额外的一个比特。
[其他示范性实施例]
也可以使用由多个设备构成的系统实现与上文所描述的二维代码检测器的功能相似的功能。
本发明也包含这样的布置:其中,用于实现上文所描述的实施例的功能的软件程序被提供到具有能够执行直接来自记录介质或通过有线或者无线通信读取的程序的计算机的系统或设备,以便通过执行提供到系统或设备的计算机的程序来实现等效的功能。
如此,要被提供到计算机并安装在计算机中的用于实现上文所描述的实施例的功能的程序代码也是实现本发明的特征。即,用于实现上文所描述的实施例的功能的计算机程序可以包含在本发明中。
在此情况下,程序不局限于任何形式,如目标代码、由解释器执行的程序、提供到操作系统的脚本数据等等。
用于提供程序的记录介质的示例包括磁记录介质,如软盘、硬盘、磁带等等;光学/磁光记录介质,如磁光(MO)盘、光盘只读存储器(CD-ROM)、可记录CD(CD-R)、可重写CD(CD-RW)、数字多用途盘ROM(DVD-ROM)、DVD-R、DVD-RW、等等;非易失性半导体存储器等等。
用于通过有线/无线通信提供程序的方法的示例包括,在网络上的服务器上存储数据文件(程序数据文件),它们可以充当在客户端计算机上实现本发明的计算机程序,如计算机程序本身,具有自动安装功能的压缩的和自解压文件等等;并且将程序数据文件下载到对服务器进行访问的客户端计算机。在此情况下,程序数据文件可以被分段为多个分段文件,并将分段文件存储在不同的服务器上。也就是说,服务器设备可以将用于实现本发明的功能处理的程序数据文件下载到多个用户。
即,用于将实现上述示范性实施例的功能的程序数据文件下载到多个用户的服务器设备也包含在本发明中。
此外,也可以作出这种布置,其中,根据本发明的程序被加密并存储在诸如CD-ROM之类的记录介质中,并在此状态下分发给用户,同时用于对加密信息进行解密的密钥信息从因特网主页下载给例如满足某些条件的用户,以便可以使用密钥信息执行加密的程序并安装到计算机中。
此外,除了上文所描述的实施例的功能通过读出的程序在计算机上执行来实现之外,上文所描述的实施例的功能可以由在计算机上运行的操作系统来实现,该操作系统基于程序的指令执行部分或所有实际处理。
此外,上文所描述的功能可以通过从记录介质读出的程序被写入到存储器中来实现,其中该存储器被提供到插入到计算机的功能扩展板或连接到计算机的功能扩展单元,之后,在计算机上运行的OS基于程序的指令执行部分或所有实际处理。
由于在不偏离本发明的范围的情况下,可以作出本发明的许多显然广泛不同的实施例,应该理解,本发明不限于其特定实施例,除非如所附的权利要求所限定。
Claims (16)
1.一种用于检测二维代码的方法,包括下列步骤:
从背景中检测在图像上投影的二维代码的多边形外部区域;
根据图像中的多边形外部区域的形状识别内部比特单元的位置;以及
根据图像中的比特单元的亮度或颜色获取比特值,
其中,二维代码包括能够根据亮度或颜色与背景区别开来的多边形外部区域,以及位于与多边形外部区域的周界具有预定距离处的内部区域,内部区域具有多个六边形比特单元,这些比特单元被布置得彼此毗邻。
2.根据权利要求1所述的方法,
其中在所述检测步骤中,检测到四边形外部区域作为所述多边形外部区域,并且所述识别步骤包括下列步骤:
根据在检测步骤中检测到的所述四边形外部区域的形状和对应的物理外部区域的实际形状之间的关系,计算代表二维投影变换的信息;以及
使用代表二维投影变换的信息计算图像中的每一个比特单元的位置。
3.根据权利要求1所述的方法,
其中,多边形外部区域具有六边形的形状。
4.根据权利要求3所述的方法,
其中,每一个比特单元都具有正六边形的形状。
5.根据权利要求4所述的方法,
其中,比特单元是这样排列的,以便连接六边形外部区域的相对顶点的线和与其交叉的正六边形比特单元的任何相对的边成直角地交叉。
6.根据权利要求1所述的方法,
其中,比特单元具有其高度和宽度相等的六边形的形状。
7.根据权利要求6所述的方法,
其中,外部区域具有四边形的形状。
8.根据权利要求7所述的方法,
其中,使用四个六边形单元来确定二维代码的取向,所述四个六边形单元中的每一个都位于四边形外部区域的四个顶点的其中一个的附近。
9.一种二维代码检测器,包括:
多边形外部区域检测设备,适用于从背景中检测在图像上投影的二维代码的多边形外部区域;
比特单元识别设备,适用于根据图像中的多边形外部区域的形状识别内部比特单元的位置;以及
比特值获取设备,适用于根据图像中的比特单元的亮度或颜色获取比特值,
其中,二维代码包括能够根据亮度或颜色与背景区别开来的多边形外部区域,以及位于与多边形外部区域的周界具有预定距离处的内部区域,内部区域具有多个六边形比特单元,这些比特单元被布置得彼此毗邻。
10.根据权利要求9所述的二维代码检测器,
其中所述多边形外部区域检测设备检测到四边形外部区域作为所述多边形外部区域,并且所述比特单元识别设备包括:
根据由多边形外部区域检测设备检测到的所述四边形外部区域的形状和对应的物理外部区域的实际形状之间的关系,计算代表二维投影变换的信息的装置;以及
使用代表二维投影变换的信息计算图像中的每一个比特单元的位置的装置。
11.根据权利要求9所述的二维代码检测器,
其中,多边形外部区域具有六边形的形状。
12.根据权利要求11所述的二维代码检测器,
其中,每一个比特单元都具有正六边形的形状。
13.根据权利要求12所述的二维代码检测器,
其中,比特单元是这样排列的,以便连接六边形外部区域的相对顶点的线和与其交叉的正六边形比特单元的任何相对的边成直角地交叉。
14.根据权利要求9所述的二维代码检测器,
其中,比特单元具有其高度和宽度相等的六边形的形状。
15.根据权利要求14所述的二维代码检测器,
其中,外部区域具有四边形的形状。
16.根据权利要求15所述的二维代码检测器,
其中,使用四个六边形单元来确定二维代码的取向,所述四个六边形单元中的每一个都位于四边形外部区域的四个顶点的其中一个的附近。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005-339080 | 2005-11-24 | ||
JP2005339080A JP4804125B2 (ja) | 2005-11-24 | 2005-11-24 | 2次元コード、2次元コード検出方法、および2次元コード検出装置 |
JP2005339079 | 2005-11-24 | ||
JP2005339080 | 2005-11-24 | ||
JP2005339079 | 2005-11-24 | ||
JP2005-339079 | 2005-11-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1971591A CN1971591A (zh) | 2007-05-30 |
CN1971591B true CN1971591B (zh) | 2010-05-19 |
Family
ID=37866185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101628441A Active CN1971591B (zh) | 2005-11-24 | 2006-11-24 | 用于检测二维代码的方法和二维代码检测器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7942340B2 (zh) |
EP (1) | EP1791076B1 (zh) |
CN (1) | CN1971591B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8011596B2 (en) * | 2008-02-13 | 2011-09-06 | Hand Held Products, Inc. | Machine readable 2D symbology printable on demand |
KR100974900B1 (ko) | 2008-11-04 | 2010-08-09 | 한국전자통신연구원 | 동적 임계값을 이용한 마커 인식 장치 및 방법 |
US9214004B2 (en) | 2008-12-18 | 2015-12-15 | Vmware, Inc. | Watermarking and scalability techniques for a virtual desktop planning tool |
US8347344B2 (en) * | 2008-12-18 | 2013-01-01 | Vmware, Inc. | Measuring remote video playback performance with embedded encoded pixels |
US9674562B1 (en) | 2008-12-18 | 2017-06-06 | Vmware, Inc. | Quality evaluation of multimedia delivery in cloud environments |
US8788079B2 (en) | 2010-11-09 | 2014-07-22 | Vmware, Inc. | Monitoring audio fidelity and audio-video synchronization |
US7831661B2 (en) * | 2008-12-18 | 2010-11-09 | Vmware, Inc. | Measuring client interactive performance using a display channel |
US9396421B2 (en) | 2010-08-14 | 2016-07-19 | Rujan Entwicklung Und Forschung Gmbh | Producing, capturing and using visual identification tags for moving objects |
US8910228B2 (en) | 2010-11-09 | 2014-12-09 | Vmware, Inc. | Measurement of remote display performance with image-embedded markers |
US9336117B2 (en) | 2010-11-09 | 2016-05-10 | Vmware, Inc. | Remote display performance measurement triggered by application display upgrade |
CN104200251B (zh) * | 2011-12-26 | 2018-01-12 | 华南理工大学 | 一种二维码的建立方法 |
KR101874895B1 (ko) * | 2012-01-12 | 2018-07-06 | 삼성전자 주식회사 | 증강 현실 제공 방법 및 이를 지원하는 단말기 |
US9201755B2 (en) | 2013-02-14 | 2015-12-01 | Vmware, Inc. | Real-time, interactive measurement techniques for desktop virtualization |
US20140340423A1 (en) * | 2013-03-15 | 2014-11-20 | Nexref Technologies, Llc | Marker-based augmented reality (AR) display with inventory management |
WO2014155115A1 (en) * | 2013-03-27 | 2014-10-02 | Smartglyph Limited | Optical code |
JP6090292B2 (ja) * | 2014-12-02 | 2017-03-08 | トヨタ自動車株式会社 | マーカ生成装置、マーカ認識装置、及びプログラム |
CN105760915B (zh) | 2016-02-02 | 2018-08-24 | 程烨 | 一种防伪图像的生成方法及装置 |
US9972061B2 (en) | 2016-02-02 | 2018-05-15 | Ye Cheng | Method and apparatus for generating anti-forgery image |
TR201603524A2 (zh) | 2016-03-18 | 2016-08-22 | Anadolu Ueniversitesi | |
US10528855B2 (en) * | 2017-11-29 | 2020-01-07 | Dell Products L.P. | Generating parts with encoded geometry for passively representing information |
CN109635904A (zh) * | 2018-11-16 | 2019-04-16 | 芜湖智久机器人有限公司 | 一种二维码的定位单元、模块化二维码及信息增减方法 |
KR102085480B1 (ko) | 2019-06-14 | 2020-05-18 | 이광열 | Qr 코드를 인쇄하기 위한 장치, 시스템, 방법 및 컴퓨터 프로그램 |
CN110956243B (zh) * | 2019-09-26 | 2023-03-07 | 福建亿能达信息技术股份有限公司 | 一种正六边形二维码及其生成方法 |
CN113781590B (zh) * | 2021-09-15 | 2023-08-01 | 江苏航空职业技术学院 | 一种适合不同相机视角的AprilTag码的布置和识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4874936A (en) * | 1988-04-08 | 1989-10-17 | United Parcel Service Of America, Inc. | Hexagonal, information encoding article, process and system |
CN1077299A (zh) * | 1992-04-06 | 1993-10-13 | 帝菱产业株式会社 | 二维代码符号标记的解码方法 |
US5862255A (en) * | 1996-06-18 | 1999-01-19 | Xerox Corporation | Broad bandwidth image domain communication channel with symbol interference suppression |
CN1334544A (zh) * | 2000-04-06 | 2002-02-06 | 精工爱普生株式会社 | 二维代码读取方法、信息记录媒体和二维代码读取装置 |
CN1438603A (zh) * | 2003-03-25 | 2003-08-27 | 西安理工大学 | 基于通用办公设备的二维条码自动识读方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4924078A (en) * | 1987-11-25 | 1990-05-08 | Sant Anselmo Carl | Identification symbol, system and method |
US4998010A (en) * | 1988-04-08 | 1991-03-05 | United Parcel Service Of America, Inc. | Polygonal information encoding article, process and system |
PT766191E (pt) * | 1994-06-07 | 2000-08-31 | United Parcel Service Inc | Metodo e equipamento para descodificacao de simbolos a duas dimensoes no dominio espacial |
JP3814988B2 (ja) * | 1997-10-27 | 2006-08-30 | 株式会社デンソー | 2次元コード読取装置 |
US6088482A (en) * | 1998-10-22 | 2000-07-11 | Symbol Technologies, Inc. | Techniques for reading two dimensional code, including maxicode |
-
2006
- 2006-11-21 US US11/562,216 patent/US7942340B2/en not_active Expired - Fee Related
- 2006-11-22 EP EP06124564.3A patent/EP1791076B1/en active Active
- 2006-11-24 CN CN2006101628441A patent/CN1971591B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4874936A (en) * | 1988-04-08 | 1989-10-17 | United Parcel Service Of America, Inc. | Hexagonal, information encoding article, process and system |
CN1077299A (zh) * | 1992-04-06 | 1993-10-13 | 帝菱产业株式会社 | 二维代码符号标记的解码方法 |
US5862255A (en) * | 1996-06-18 | 1999-01-19 | Xerox Corporation | Broad bandwidth image domain communication channel with symbol interference suppression |
CN1334544A (zh) * | 2000-04-06 | 2002-02-06 | 精工爱普生株式会社 | 二维代码读取方法、信息记录媒体和二维代码读取装置 |
CN1438603A (zh) * | 2003-03-25 | 2003-08-27 | 西安理工大学 | 基于通用办公设备的二维条码自动识读方法 |
Also Published As
Publication number | Publication date |
---|---|
US7942340B2 (en) | 2011-05-17 |
EP1791076A3 (en) | 2011-11-16 |
US20070125862A1 (en) | 2007-06-07 |
CN1971591A (zh) | 2007-05-30 |
EP1791076A2 (en) | 2007-05-30 |
EP1791076B1 (en) | 2013-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1971591B (zh) | 用于检测二维代码的方法和二维代码检测器 | |
US20060091215A1 (en) | Two-dimensional code and information processing method | |
US7847844B2 (en) | Information processing apparatus and method for determining whether a detected index is an index included in sensed image data | |
CN102243704B (zh) | 用于二维码的定位系统、二维码的识别方法及设备 | |
JP3639328B2 (ja) | 情報記録媒体、2次元コード、情報再生システム、及び情報再生方法 | |
CN106372702B (zh) | 一种定位标识及其定位方法 | |
EP1232480B1 (en) | Image processing apparatus | |
EP2120211B1 (en) | Marker generating system and method | |
WO2011040032A1 (ja) | 二次元コード,二次元コードリーダおよびプログラム | |
JP2012523598A (ja) | 2次元シンボルコードおよびそのシンボルコードを読取るための方法 | |
CN104866859A (zh) | 一种高鲁棒性的视觉图形标志及其识别方法 | |
RU2729399C1 (ru) | Способ обнаружения и распознавания визуальных маркеров большой дальности и высокой плотности | |
CN106228103A (zh) | 一种双层码的识别方法 | |
JP2007172596A (ja) | 2次元コード、2次元コード検出方法、および2次元コード検出装置 | |
JP6785546B2 (ja) | 二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム | |
CN113066128B (zh) | 自识别标识板的视觉检测与恢复方法、装置、设备及介质 | |
JP4675055B2 (ja) | マーカ処理方法、マーカ処理装置、プログラム、および、記録媒体 | |
JP4282067B2 (ja) | 指標識別方法および装置 | |
JPH10149435A (ja) | 環境認識システム並びに該システムに用いるマーク | |
JP4804125B2 (ja) | 2次元コード、2次元コード検出方法、および2次元コード検出装置 | |
CN112219207A (zh) | 用于光学识别标记的方法 | |
JP6952846B2 (ja) | 二次元コード | |
JP7239301B2 (ja) | 二次元マーカ、二次元マーカ認識処理システム | |
JP2006252491A (ja) | 画像識別用タグ及び画像識別システム | |
WO2023193116A1 (en) | Deformable machine-readable markers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |