基于调色板的光学识别码生成器和解码器的制作方法

文档序号:14186011阅读:304来源:国知局

本申请涉及并要求于2015年5月5日提交的标题为“PALETTE-BASED OPTICAL RECOGNITION CODE GENERATORS AND DECODERS”的美国临时专利申请序列号No.62/157,263以及于2015年10月30日提交的标题为“PALETTE-BASED OPTICAL RECOGNITION CODE GENERATORS AND DECODERS”的美国临时专利申请序列号No.62/248,605的权益,并且通过引用而整体合并这两个申请的内容,以用于所有目的。



背景技术:

快速响应(QR)码是在从产品跟踪到市场营销的各种应用中所使用的众所周知的矩阵或二维条形码。QR码通常包括被布置在网格中的黑色正方形或点的布置,并且它可以被设备读取或成像以及被处理以提取数据。

已知的QR码技术具有各种技术问题,包括失真和尺寸(例如,小图像是不可识别的)。QR码(以及一般而言地,二维条形码)一般依靠特定比例的高对比度的形状和图案(例如,黑色和白色的条纹或正方形)。这是被设计为针对受限的成像设备(诸如与移动电话设备包括在一起的相机)使用的合理方法。例如,对这种码的检测需要很少的电力来进行计算,并且可以在许多相对低成本的设备上工作。然而,这种码一般对变形不是非常宽容,并且对许多应用而言是不实用的。因此,常规的QR码容易有两个关键问题:尺寸容差以及对比度的损失(例如,较小尺寸的QR码可能是不可识别的)。

另外,即使小的失真或缩放也会使QR码不可识别。另外,如果QR码的一小部分被模糊或(例如,用其它图形)覆盖,那么下面的QR码会变得不可识别。在一些情况下,如果在QR码下面打印图案,那么这可能使QR码变得不可识别,这是因为可能损失元素的对比度。此外,QR码周围的框架、边框或其它图案可能使该QR码不可识别。

因而,期望的是改进的光学识别码,例如,对于对比度的损失以及较小尺寸的码的检测更为宽容的光学识别码。



技术实现要素:

根据本发明的一个方面和示例,提供了一种光学识别(OR)码标记。在一个示例中,OR码包括分段的部分以及相对于该分段的部分定位的(例如以虹膜部(iris)或瞳孔部(pupil)的形式的)配准(registration)标记。OR码标记(例如,作为分段的部分的一部分)包括具有3种或更多种不同颜色的校准区域,其中每种颜色与数字(例如,“0”、“1”、“2”、...“n”等)相关联。该标记的分段的部分被进一步(用校准区域的至少3种不同颜色)着色,以对分段进行编码。相应地,可以使用配准标记和校准区域来检测OR码,以识别分段的区域并向分段的区域指派值以及对标记进行解码。

根据本发明的另一方面和示例,提供了用于对包括分段的部分和配准标记的OR码进行解码的示例性系统和过程。

此外,描述了用于生成和/或解码光学识别码的系统、电子设备、图形用户界面和非暂态计算机可读存储介质(存储介质包括用于实施所描述的一个或多个过程的程序和指令)。

附图说明

通过结合附图参考以下描述,可以最好地理解本申请,在附图中相同的部分可以被相同的数字表示。

图1A-图1C示出了根据本文提供的各种示例的示例性OR码。

图2A-图2C示出了根据各种示例的映射到编码调色板(palette)的示例性校准弧。

图3示出了根据一个示例的使用各种掩码(mask)的OR码的示例性图像。

图4A-图4C示出了根据各种示例的成像OR码的示例性候选。

图5A-图5C示出了针对本文提供的各种示例的用于确定识别出的OR码的朝向以及分段弧边界的示例性过程。

图6A-图6C示出了各种示例中的OR码的编码弧和校准分段弧的示例性序列。

图7示出了控制台对OR码进行解码的示例性帧。

图8示出了根据一个示例的用于检测和识别OR码的示例性过程。

图9示出了根据一个示例的基于亲和度的解码算法的示例性步骤。

图10描绘了被配置成执行所描述的过程(包括本文提供的光学识别码的生成、读取和/或解码)中的任何过程的示例性计算系统1400。

具体实施方式

给出以下描述以使本领域普通技术人员能够制得和使用各种实施例。对具体设备、技术和应用的描述仅作为示例提供。对本文所描述的示例的各种修改对于本领域普通技术人员来说将是明显的,并且在不背离本技术的精神和范围的情况下,本文所定义的一般原理可以应用于其它示例和应用。因此,所公开的技术不旨在被限制于本文描述和示出的示例,而应被赋予与权利要求一致的范围。

根据一个示例,提供了光学识别(OR)码,OR码具有布置在弧(例如沿着圆、椭圆或者其它弯曲或线性几何结构的一部分)中的至少三种颜色。OR码还具有在检测时用于确定OR码朝向的配准标记以及用于提供该至少三种颜色的校准区域。图1A中示出了示例性OR码100。在这个示例中,OR码100包括内环102和外环104,其中内环102包括十一个着色分段106,并且外环104包括十二个着色分段106(下面所讨论的图1B和图1C中更清楚地阐述了分段106)。

图1B和图1C在左边示出了具有着色分段的其它示例性OR码,并在右边示出了OR码的示意视图,从而示出了这些示例中的着色分段的数量。具体而言,图1B的示例的OR码在内环中包括12个着色分段并且在外环中包括17个着色分段,这些着色分段索引为从0到28。另外,图1C的示例在左边示出了OR码,并且在右边示出了OR码的示意图,该OR码在内环中具有16个着色分段并且在外环中具有20个着色分段(这些着色分段索引为从0到35)。将认识到的是,其它数量的(部分或完整的)环和分段是可能的。

本文所描述的示例性OR码可以提供相对于常规QR码或条形码的改进的光学识别(例如,对于对比度的损失以及形变更加宽容)。具体而言,在被包括或被印刷在有光泽(glossy)的纸或产品上时,示例性OR码提供改进的识别健壮性。

广义地说,并一般地参考图1A-图1C,OR码基于在具有闪烁部112的风格化的虹膜部110周围放置的两个环内生成一组弧(闪烁部112一起充当或用作OR码的配准标记)。在这个示例中,弧分段106被着色或涂上三种不同颜色(但是如将进一步详细解释的,也可以使用三种以上的颜色)。另外,在这个示例中,虹膜部、瞳孔部和闪烁部被涂成绿色、黑色和白色。OR码的这三个元素可以是恒定的,并且用于OR码检测和朝向确定。OR码例如可以被与移动设备包括在一起的相机成像,并被处理成十进制码,以便与常规的QR码类似地使用(例如,经解码的码可以被传送给远程设备或服务器以取回信息)。

在一个示例中,第一环(例如,内环102,较小半径)由16个着色弧分段106组成,第二环由20个着色弧分段106组成。相应地,36个着色弧分段被布置在两个环上。内环的三个弧(见图2A)可以被用作校准元素或校准区域。这些元素设置用于OR码的编码调色板。在识别或成像过程中,将编码弧的颜色与校准颜色进行比较。在这个示例中,校准弧的颜色与数字“2”、“1”、“0”对应。在其它示例中,其它区域(例如,其它环或分段)可以被用于校准颜色。

图2B和图2C示出了映射到编码调色板的示例性校准弧,其一般地与图1B和图1C的示例性OR码分别对应。其余的33个着色分段以三元表示(ternary notation)来表示码。在十进制表示中,这个码数字在[0000000000000000-5559060566555523]的范围中。十进制码由两部分组成。前四位是指在0000-5558范围中的校验和。尾部的12位是指在000000000000-999999999999范围中的纯码。校验和可以例如通过用范围0-5558中的某个素数除十进制表示的码来计算。下面更详细地描述对OR码和着色分段进行解码。

当然,这些示例的许多变形是可能的。例如,在这个示例中示为虹膜部/瞳孔部的中心配准标记可以包括其它形状(例如,正方形、十字形、三角形等等)、特征(例如,其它朝向特征/标记),并且还可以部署在环的外部(例如,紧邻或围绕外环)。此外,校准区域可以部署在相对于分段的弧的其它区域或位置(例如,和外环在一起、作为紧邻外环的线性条、和配准标记在一起等等)。

另外,虽然这个示例包括内圆和外圆,但是单个圆或者多于两个圆是可能的。此外,分段的弧可以形成螺旋结构、椭圆结构等等。另外,具有编码在其中的变化的着色方案或分段方案的形状(诸如正方形、多边形(五边形、六边形、八边形等))是可能的并且是预期的(其中这些形状可以是部分的(如示例1的部分外圆中所示)或者是闭合的(如示例2的外圆所示))。可以组合进一步的各种形状,例如,分段的内圆与分段的外多边形等等。

用于在OR码中使用的三种或更多种颜色可以变化,并且一般被选择为协助检测和区分不同颜色。例如,选择足够不同颜色,以便在检测/成像时容易被识别为不同颜色。

根据另一方面,现在将描述OR码的检测和识别。广义地说,检测是基于在掩码图像中搜索闭合的椭圆轮廓(例如参见图3,图3示出了图1C中所示的OR码的示例性掩码图像)。在这个示例中,四个掩码被用于轮廓搜索:a)示出图像上强度的超阈值(overthreshold)方差分布的方差掩码,b)指示存在绿色的绿掩码,c)示出图像上的高值强度分布的自适应二值化(ada-bin)掩码,以及d)指示存在白色的白掩码。一般而言,对于高光照条件下的检测,绿掩码更为相关,而对于低光照条件下的检测,白掩码是更优选的。在一个示例中,方差掩码被生成为图像上强度的超阈值方差分布图。可以以3×3的窗为每个像素计算方差。方差阈值是相对于图像中方差的最大值来计算的。自适应二值化掩码可以被生成为图像上高值强度分布图。如果OR码图像中的对应像素的强度值大于OR码的模糊图像中的对应像素的强度值,那么自适应二值化掩码的每个像素的值可以被设置为1。可以通过使用高斯模糊内核来执行模糊(在下面的示例中使用9×9像素的大小并且Σ=9)。在非均匀亮度条件下以及对于用高相机斜率和从远距离拍摄的OR码的图像,方差掩码和自适应二值化掩码对于闭合的椭圆轮廓搜索而言(比绿掩码和白掩码)更加健壮。在每个掩码中检测闭合的椭圆轮廓。选择满足若干标准的、具有最小轮廓失真的区域(例如,检查中心的黑色圆以及外围处的白色环)(参见图4)。通过搜索配准标记来确定OR码的粗略朝向(在这个示例中,搜索并寻找瞳孔部中的闪烁部,即,虹膜部上的两个白色圆)。然后可以通过搜索圆中分段弧之间的边界来更精确地计算OR码的朝向(参见图5)。

图4A示出了成像的OR码的OR码候选。左边的图像是正确的图像,这是因为低轮廓失真并且虹膜部或配准标记的黑色和白色区域相对于轮廓的正确定位。图4B示出了用于第二OR码示例的OR码候选。这里又一次地,左边的图像是正确的图像,这是因为低轮廓失真并且黑色和白色区域相对于轮廓正确定位。图4C示出了用于第三OR码示例的OR码候选。又一次地,左边是正确的图像,这是因为黑色和白色区域相对于轮廓的正确定位。

一旦OR码被识别,过程就可以确定OR码的朝向并确定分段边界。图5A示出了用于确定识别出的OR码的朝向(并且具体而言,为图1A中所示的示例性OR码确定分段弧边界)的示例性过程。如图所示,配准标记已经被确定,并且内环和外环上每个相邻分段的边界位置已经被确定(并用点来标记)。图5B和图5C示出了对于图1B和图1C的示例性OR码的类似过程。

一旦检测到分段位置或边界,就将分段的弧(参见图6)的颜色与校准弧的颜色进行比较,并将最相似的校准弧的索引指派给编码弧。图6A示出了图1A的第一OR码示例的校准分段弧(前3个)和编码(后20个)颜色的序列;图6B示出了图1B的第二OR码示例的校准分段弧(前3个)和编码(后26个)颜色的序列;并且图6C示出了图1C的第三OR码示例的校准分段弧(前3个)和编码(后33个)颜色的序列。

例如,如果第一编码弧与第一校准弧最相似,第二编码弧与第一校准弧最相似,第三编码弧与第二校准弧最相似,第四编码弧与第三校准弧最相似等,那么识别出的三元表示中的码将与“2210”对应。然后将这个确定转换成十进制表示,并划分成纯编码序列以及校验和。例如,计算纯编码序列的校验和并将其与识别出的校验和进行比较,以识别该码是否被正确识别。如果相同——那么码被认为是正确识别的(图7)。

图7示出了调试控制台的示例性帧。在这个示例中,散列(即,校验和)被计算(重新标记的码(resigned code)中的前四位)以及被识别(有符号码(signed code)中的前四位)对于第一示例和第二示例是相同的。上面的帧例证了具有29个着色分段的OR码的识别试验的示例,下面的帧例证了具有36个着色分段的OR码的识别试验的示例。

图8示出了根据本文提供的一个示例的用于检测和识别OR码的示例性过程。在这个特定的示例性过程中,该过程初始地在802处从捕获的图像中计算二进制掩码(例如,如本文所述的绿掩码、白掩码、方差掩码和ada-bin(自适应二值化)掩码)。该过程在804和806中检测以及验证二进制掩码中的闭合的椭圆轮廓,其中例如可以通过估计轮廓失真并搜索椭圆形状的中心部分中的闪烁部来验证椭圆轮廓,如806中所示。在808中,可以通过估计闪烁部位置来使用椭圆形状的中心部分中的闪烁部以计算OR码的朝向。在810处,可以通过搜索和检测OR码中的分段弧之间的边界来进一步细化或调整该朝向。

在812处,该过程可以通过对例如如本文所描述的编码弧与校准弧的颜色进行匹配来识别三元表示中的经编码的数字。用于颜色匹配的四种不同算法可以用于解码:直接解码、基于梯度的解码、sat-val规格化(normalization)以及基于亲和度的解码,从而形成8种不同的识别试验组合:直接、直接+sat-val、直接+亲和度、直接+亲和度+sat-val、梯度、梯度+sat-val、梯度+亲和度、梯度+亲和度+sat-val。直接解码过程基于已知的圆中分段总数量来执行将编码圆均匀划分为单独的编码弧。可以按以下方式在每个编码弧内估计主要颜色(prime color)。计算编码弧中所有像素的颜色分量的平均值。然后迭代地重复两个步骤直到收敛:1-选择弧中的所有像素当中颜色与计算出的平均值最接近的一半像素;重新计算所选择的像素的颜色分量的平均值。颜色分量的收敛平均值是主要颜色。然后,可以通过计算从分析颜色到每种校准颜色的(RGB空间中的)欧几里德距离并将当前编码分段与具有最小距离的校准区域相关联,来将主要颜色与校准颜色匹配。在基于梯度的解码过程内,通过搜索不同编码弧之间的最大颜色梯度来调整弧边界。sat-val规格化过程执行(在HSV颜色模型中)使用饱和度以及值的标准化值将编码弧的颜色转换到新的值。基于亲和度的解码基于通过构造连接识别弧的颜色与校准弧的颜色的生长图(growing graph)在颜色空间中聚合编码弧的主要颜色。

在图9中示意性地示出了示例性的基于亲和度的解码算法的几个步骤。具体而言,示出了在双分量颜色空间中的基于亲和度的解码过程:a)校准分段(着色圆)和识别分段(白色圆)的颜色在颜色空间中的分布;b)图生长的第一步,通过将被“?”符号标记的第一分析分段与最近的分段连接,图从被“?”符号标记的第一分析分段开始生长;c)图生长的第二步;d)图生长的第三步,与校准分段连接。尽管分析颜色与最深的校准颜色之间的距离d2大于识别颜色与另一个校准颜色之间的距离d1,但是被“?”符号标记的分段被识别为与该最深的校准颜色对应。

然后可以在814处执行三元码到十进制表示的转换,并且可以进一步执行将十进制码分离为纯码与识别出的校验和。另外,该过程可以在816处计算纯码的校验和并将其与识别出的校验和进行匹配以验证识别。在818处,该过程可以最终返回或输出纯码。

该示例性过程仅用于说明性目的,并且技术人员将认识到,代替本文明确描述的那些过程和功能或者作为其添加,可以执行其它成像过程和功能。另外,所描述的某些过程可以至少部分地并行或串行执行。

图10描绘了被配置成执行上述过程(包括光学识别码的生成、读取和/或解码)中的任何过程的示例性计算系统1400。在该场景中,计算系统1400可以包括例如处理器、存储器、存储装置和输入/输出设备(例如,监视器/显示器、相机或成像设备、键盘、盘驱动器、互联网连接等)。然而,计算系统1400可以包括用于执行过程的一些或全部方面的电路系统或其它专用硬件。在一些操作设置中,计算系统1400可以被配置成包括一个或多个单元的系统,这些单元中的每一个被配置成以软件、硬件或其某种组合来执行过程的一些方面。

图10描绘了具有可以被用来执行上述过程的若干个部件的计算系统1400。主系统1402包括主板1404,主板1404具有输入/输出(“I/O”)部1406、一个或多个中央处理单元(“CPU”)1408以及存储器部1410,存储器部1410可以具有与之相关的闪存存储器卡1412。I/O部1406连接到显示器1424、键盘1414、(用于对OR码进行成像的)成像设备或相机1415、盘存储单元1416以及介质驱动单元1418。介质驱动单元1418可以读/写计算机可读介质1420,计算机可读介质1420可以包含程序1422和/或数据。

基于上述过程的结果的至少一些值可以被保存以用于后续的使用。此外,可以使用非暂态计算机可读介质来存储(例如,有形地体现)一个或多个计算机程序,以用于通过计算机来执行上述过程中的任何过程。计算机程序可以例如以通用编程语言(例如,Pascal、C、C++、Java)或某种专用的特定于应用的语言来编写。

本文描述了各种示例性实施例。在非限制性的意义上参考这些示例。它们被提供以说明所公开的技术的更广泛适用的方面。在不背离各种实施例的真实精神和范围的情况下,可以做出各种改变并且等同物可以被替代。此外,可以进行许多修改,以使特定情况、材料、物质组成、过程、(一个或多个)过程行为或步骤适应各个实施例的(一个或多个)目标、精神或范围。另外,如本领域技术人员将认识到的,本文描述和示出的各个变形中的每一个具有分立的部件和特征,这些部件和特征可以容易地与其它若干实施例中的任何实施例的特征分离或组合,而不背离各个实施例的范围或精神。所有这些修改都旨在处于与本公开相关联的权利要求的范围内。

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