检测移动计算设备是否正在指向视觉代码的制作方法

文档序号:20012764发布日期:2020-02-22 04:36阅读:157来源:国知局
检测移动计算设备是否正在指向视觉代码的制作方法



背景技术:

数字水印和其它视觉代码是可以添加到或嵌入到图像中的视觉标记,该图像被印刷在诸如纸、硬纸板和标签等物理介质,然后可以将其粘贴在固定位置上。例如,介质可以包括为商品或服务做广告并被粘贴在机场、汽车站和其它公共场所的墙上的标志。介质可以包括产品的标志或标签,该标志或标签粘贴在产品的包装或产品本身上、或者是产品的包装或产品本身的一部分、或者粘贴到产品所处的并且列出关于产品的信息的货架上。

视觉代码对肉眼来说可以是可见的或可感知的,也可以不是对肉眼来说可见的或可感知的,但是即使是可见的或可感知的,也是人类观看者无法直观理解的。视觉代码可以是肉眼可感知的、但包含人类观看者无法理解的信息的一维或二维条形码。肉眼不可见或无法感知的视觉代码包括通过以人类观看者无法感知的方式极微地改变图像的低级方面而创建的代码。

附图说明

图1a、1b和1c是说明性地描绘了当视觉代码具有大于阈值高度的高度时,根据设备的位置和方位对与移动计算设备正在指向视觉代码的可能性相对应的第一置信度值进行的示例确定的图。

图2a、2b和2c是说明性地描绘了当视觉代码具有小于阈值高度的高度时,根据设备的位置和方位对与移动计算设备正在指向视觉代码的可能性相对应的第一置信度值进行的示例确定的图。

图3是用于根据设备的位置和方位确定与移动计算设备正在指向视觉代码的可能性相对应的第一置信度值的示例方法的流程图,该方法包含图1a、1b和1c的场景以及图2a、2b和2c的场景。

图4是用于没有在设备捕获的图像内实际检测到代码的情况下、根据所捕获的图像确定与移动计算设备正在指向视觉代码的可能性相对应的第二置信度值的示例方法的流程图。

图5a、5b和5c是说明性地描绘了根据移动计算设备的移动和方位对与移动计算设备的使用者正在试图将设备指向任何视觉代码的可能性相对应的第三置信度值进行的示例确定的图。

图6是用于根据移动计算设备的移动和方位确定与移动计算设备的使用者正尝试将设备指向任何视觉代码的可能性相对应的第三置信度值的示例性方法的流程图,该方法包含图5a、5b和5c的场景。

图7是用于基于移动计算设备是否捕获到在其中成功检测到视觉代码的图像、或者在图像中没有实际检测到代码的情况下是否检测到将设备指向视觉代码,来进行动作的示例方法的流程图。图7的方法可以采用图3、4和6的方法来确定置信度值。

图8a、图8b、图8c、图8d和图8e是基于哪个置信度值被确定而可以在图7的方法中被用于检测移动计算设备是否正在指向视觉代码的示例规则表的图。

图9是关于可以进行图7的方法的示例系统的图。

具体实施方式

如背景技术部分所述,数字水印和其它视觉代码是添加到或嵌入到印刷在可以粘贴在固定位置处的物理介质上的图像中的视觉标记。使用者可以使用包括数字图像捕获硬件的移动计算设备(例如,包括数字照相机的智能手机)来捕获物理介质上的图像,在该物理介质上已经印刷了包含视觉代码的图像。然后,在移动计算设备处或在另一计算设备(诸如服务器,移动计算设备已将其捕获的图像上载到该服务器上)处,可以对所捕获的图像进行图像处理,以在所捕获的图像内检测视觉代码。

一旦在移动计算设备捕获的图像内识别出视觉代码,就可以基于视觉代码中包含的信息来进行对应的动作。例如,使用者可能正在查看包括视觉代码的、印刷在粘贴在机场的墙上的标牌上的广告。使用者可能有兴趣了解更多有关作为广告主题的产品或服务的信息。因此,使用者可以通过他或她的智能手机捕获广告的图像。智能手机可以进行图像处理以检测并解码视觉代码,该视觉代码可以提供有关产品或服务的网站的通用资源定位器(url)地址。然后,智能手机可以自动浏览到网站供使用者阅读。

类似地,使用者可能在零售商店中并且可能有兴趣潜在地购买特定类型的产品。贴在货架上的、列出有关产品的基本信息(例如其名称和价格)的标签可能包含视觉代码。为了更多地了解该产品,使用者可以使用他或她的智能手机捕获标签的图像。成像处理检测并解码图像内的视觉代码,该视觉代码可以类似地提供有关使用者可以使用他或她的智能手机访问的产品的网站的url地址,或者该视觉代码可以导致将产品添加到虚拟购物车中以便使用者随后更轻松地结帐。

在所捕获的物理介质的图像内对视觉代码的检测和解码也可以导致进行具体的物理动作。例如,信息技术(it)人员可能负责配置诸如服务器的计算设备。使用者可以捕获包括与所选择的配置相对应的视觉代码的物理介质的图像,而不是通过显示在智能手机上的图形用户界面(gui)从多个不同的计算配置中手动选择以配置与智能手机通信连接的服务器。然后,智能手机可以根据在所捕获的图像内的检测到的视觉代码来配置服务器。

类似地,工厂或车间工人可以能够通过捕获包括视觉代码的物理介质的图像来控制工厂或车间设备,从而定制产品的生产。机器人设备可以以不同的方式对诸如钢、塑料等的材料进行物理转换。工人可以捕获包括视觉代码的物理介质的图像,该视觉代码与机器人设备对材料进行物理转换的特定方式相对应,从而导致设备根据在所捕获的图像内的检测到的视觉代码的选择的方式对材料进行物理转换。作为另一示例,工人可以捕获包括与打印设备将如何在介质上打印图像(例如,采取黑白还是彩色;在卡片纸上还是在纸上;等等)相对应的视觉代码的物理介质的图像。一旦在所捕获的图像内检测到视觉代码,就根据包含在解码后的视觉代码内的信息,相应地控制打印设备以在介质上打印图像。

这些用于利用印刷在物理介质上的视觉代码的技术取决于对所捕获的物理介质的图像内的视觉代码进行检测和解码的能力。如果不能在所捕获的图像内检测到视觉代码,则不能进行与视觉代码包含的信息相对应的动作。但是,在某些情况下,可能无法在移动计算设备(如智能手机)捕获的图像内检测到视觉代码。例如,诸如环境照明以及图像捕获硬件与视觉代码之间的距离或角度的环境条件会影响图像处理在这种条件下捕获的图像内检测视觉代码的能力。

此外,具有更先进的图像捕获硬件和图像捕获能力的非直观的智能手机可能会捕获在其中视觉代码不太可能被检测到的图像。例如,图像捕获硬件可以更高级是在于硬件可以捕获对人眼来说更加愉悦但是不太容易从中检测到视觉代码的图像。作为另一示例,图像捕获硬件可以自动进行高级图像处理以从捕获的图像中去除伪像,但是这也去除了可以基于其检测到视觉代码的某些细节。因此,不保证更新的移动计算设备将改善从其捕获的图像中对视觉代码的检测,这是因为通常改善诸如智能手机的移动设备的图像捕获硬件的目的不是帮助视觉代码检测。

本文公开的技术允许在移动计算设备捕获的图像内没有实际检测到视觉代码的情况下,检测移动计算设备是否正在指向视觉代码。可以确定两个置信度值中的一个或两个。第一置信度值与根据移动计算设备的位置和方位的、移动计算设备正在指向视觉代码的可能性相对应。第二置信度值与根据移动计算设备捕获的图像(在未在该图像内实际检测到视觉代码的情况下)的、移动计算设备指向视觉代码的可能性相对应。还可以使用与根据移动计算设备的移动和方位的、移动计算设备的使用者正在试图将移动计算设备指向任何视觉代码的可能性相对应的第三置信度值。

这样,即使当不能在由移动计算设备捕获的图像内检测到视觉代码时,本文公开的技术也能够有效地允许移动计算设备检测视觉代码。更确切些,通过检测移动计算设备是否指向视觉代码来实现视觉代码检测。如上所述,接着,基于两个置信度值中的一个或两个以及另外基于第三置信度值,来检测移动计算设备是否正在指向视觉代码。

图1a、1b和1c示例性地描绘了根据使用者104的移动计算设备102(例如具有数码相机或其它图像捕获硬件的智能手机)的位置和方位,对与设备102正在指向视觉代码106的可能性相对应的第一置信度值的示例确定。在图1a、1b和1c的示例中,视觉代码106具有在大于阈值高度110的高度108处的位置。当代码106被印刷在粘贴到所讨论的固定位置(例如,粘贴在墙上)的物理介质上时,可以预先指定视觉代码106的位置以及高度108。阈值高度110可以与中值使用者高度对应,或者与大于诸如80%、90%的给定百分比的使用者的高度对应。在图1a、1b和1c的示例中,使用者104具有等于阈值高度的高度。

在图1a和1b中,移动计算设备102的位置与视觉代码106的位置的接近度112小于接近度阈值114。相比之下,在图1c中,移动计算设备102的位置与视觉代码106的位置的接近度116大于接近度阈值114。移动计算设备102的位置可以通过设备102的全球定位系统(gps)硬件来确定,或者以另一种方式来确定,例如通过用于室内设置的wi-fi定位系统来确定,在室内设置中,gps硬件不太可能提供准确的位置。可以预先指定接近度阈值114。

在图1a、1b和1c中,根据使用者104的移动计算设备102的位置和方位,确定与移动计算设备102正在指向视觉代码106的可能性相对应的第一置信度值如下。如果移动计算设备102的位置具有小于接近度阈值114的接近度,例如图1a和1b中的接近度112,则检查设备102的方位。可以使用设备102的加速度计硬件或以另一方式(例如经由设备102的倾斜传感器硬件),来确定移动计算设备102的方位,包括其俯仰(pitch)、方向等。

在图1a中,移动计算设备102的方位具有在朝着代码106的方向上的向上的俯仰,而在图1b中,设备102的方位具有在朝着代码106的方向上的向下的俯仰。在图1a中,第一置信度值被设置为预定的高值,而在图1b中,第一置信度值被设置为预定的低值。预定的高值与移动计算设备102正在指向视觉代码106的高可能性对应,而预定的低值与设备102正在指向代码106的低可能性对应。

要注意的是,实际上可能不知道具体地在图1a中移动计算设备102是否实际上指向视觉代码106。知道的是,视觉代码106具有大于阈值高度110的高度108,移动计算设备102与代码106的接近度112小于接近度阈值114,并且设备102具有在朝向代码106的方向上的向上的俯仰。根据这三条信息,从而得出结论,无论设备102是否实际上正在指向代码106,都存在移动计算设备102正在指向视觉代码106的高可能性。

相比之下,在图1b中,即使移动计算设备102与代码106的接近度112小于接近度阈值114,仍存在移动计算设备102正在指向视觉代码106的低可能性。这是因为视觉代码106的高度108大于阈值高度110,而移动计算设备102具有在朝向代码106的方向上的向下的俯仰。因为视觉代码106位于较高位置,而移动计算设备102指向较低位置,则设备102正在指向代码106的可能性较低。

在图1c中,移动计算设备102的位置与视觉代码106的接近度116大于接近度阈值114。因此,在这种情况下,无论移动计算设备102的方位如何,第一置信度值都被设置为预定的低值。换句话说,因为移动计算设备102距离视觉代码106足够远,所以得出结论,设备102正在指向代码106的可能性较低。

作为其它示例,诸如在图1a和1b中,移动计算设备102与视觉代码106的接近度可以在接近度阈值114内,但是可以具有包括在远离代码106的方向上的俯仰的方位。例如,使用者104可能正在以如图1a中那样向上的俯仰但是在与图1a中描绘的方向相反的方向上对准移动计算设备102。在这种情况下,移动计算设备102指向视觉代码106的可能性较低,这是因为即使设备106的接近度在接近度阈值114内,方位也使得设备102处在与代码106相反的方向上的俯仰。

图2a、2b和2c也示例性地描绘了根据使用者104的移动计算设备102的位置和方位,对与设备102正在指向视觉代码106的可能性相对应的第一置信度值的示例确定。在图2a、2b和2c的示例中,与在图1a、1b和1c中大于阈值高度110相反,视觉代码106具有在小于阈值高度110的高度202处的位置。在图2a、2b和2c的示例中,使用者104再次具有等于阈值高度的高度,但是使用者在图2a中单膝跪地。在图2a和2b中,移动计算设备102的位置与视觉代码106的位置的接近度112小于接近度阈值114。相比之下,在图2c中,移动计算设备102的位置的接近度116大于接近度阈值114。

在图2a、2b和2c中,根据使用者104的移动计算设备102的位置和方位,确定与设备102正在指向视觉代码106的可能性相对应的第一置信度值如下。如果移动计算设备102的位置具有小于接近度阈值114的接近度,例如图2a和2b中的接近度112,则检查设备102的方位。在图2a中,移动计算设备102的方位具有在阈值内的垂直于地面并且在朝向代码106的方向上的俯仰;也就是说,设备102平行于视觉代码106。在图2b中,移动计算设备102的方位具有不在该阈值内的垂直于地面的俯仰;在图2b的具体示例中,设备102的方位具有尽管在朝向代码106的方向上的、但是向下的俯仰。

在图2a中,第一置信度值被设置为预定的高值。假设使用者104正在试图将移动计算设备102指向视觉代码106,这是因为使用者104正在将设备102定位为平行于代码106。视觉代码106低于阈值高度110,并且使用者104的高度可以是未知的。如果使用者104相对较高,则使用者104可以单膝跪地(如图2a的具体示例所示),或者可以坐在地上,从而使用者104能够将移动计算设备102定位为与代码106平行。如果使用者104相对较矮,则使用者104可保持站立,同时将移动计算设备102以平行于代码106而放置在例如在头部高度以下、在头部高度处或甚至在头部高度以上。

如上所述,视觉代码106低于阈值高度110,并且使用者104的高度可以是未知的。因此可以假定,如图2a中所示,当使用者104将设备102平行于代码106放置时,使用者104正在试图将移动计算设备102指向视觉代码106。然而,如果使用者104没有正在将移动计算设备102平行于视觉代码106而放置,但是设备102仍然如图2b中具有小于接近度阈值114的接近度112,则设备102的方位本身不能确定使用者104是否正在将设备102指向代码106。换句话说,可能必须采用进一步的信息来确定使用者104确实正在将移动计算设备102指向视觉代码106的可能性。

具体地,可以采用与在其它使用者的移动计算设备捕获的图像中的视觉代码106的先前成功的检测有关的元数据。当使用者的移动计算设备捕获图像并且在该图像中通过所捕获的图像的图像处理实际检测到视觉代码106时,可以将包括捕获图像时的设备的方位的元数据发送给中心计算设备,例如服务器。当移动计算设备102的接近度小于接近度阈值114时,可以将设备102捕获图像时的设备102的方位(包括设备102的俯仰、方向等)与捕获了从其成功检测到视觉代码106的图像的每个移动计算设备的方位进行比较。

这样,如果移动计算设备102的方位与视觉代码106的任何先前实际移动计算设备检测的方位在可以预先指定的方位差别阈值内匹配,则将第一置信度值设置为预定的高值。相比之下,如果移动计算设备102的方位与视觉代码106的任何先前实际移动计算设备检测的方位在方位差别阈值内不匹配,则将第一置信度值设置为预定的低值。因此,图2b的场景利用在移动计算设备捕获的图像内的视觉代码106的先前实际成功检测,来确定关于使用者104是否正在将移动计算设备102指向代码106的可能性。

可以在设备102自身或在中心计算设备处进行移动计算设备102的方位与先前捕获了从其成功检测到视觉代码106的图像的移动计算设备的方位的比较。在前一种情况下,移动计算设备102可以从中心计算设备接收先前捕获了从其成功检测到视觉代码106的图像的移动计算设备的方位,使得设备102可以进行比较。在后一种情况下,移动计算设备102可以将其方位报告给中心计算设备,然后,中心计算设备可以将设备102的方位与先前捕获了从其成功检测到视觉代码106的图像的移动计算设备的方位进行比较。

在图2c中,移动计算设备102的位置与视觉代码106的接近度116如图1c中那样大于接近度阈值114。因此,在这种情况下,无论移动计算设备102的方位如何,第一置信度值都被设置为预定的低值。更一般地,当移动计算设备102与视觉代码106的接近度116大于接近度阈值114时,无论设备102的朝向如何,并且无论代码106被放置为如图1c中那样高于阈值高度110还是如图2c中那样低于阈值高度110,第一置信度值都被设置为预定的低值。

图3示出了用于根据设备102的位置和方位确定与移动计算设备102正在指向视觉代码106的可能性相对应的第一置信度值的示例方法300。方法300反映了已经描述的图1a、1b和1c的场景以及图2a、2b和2c的场景。移动计算设备102可以完全地执行方法300,与设备102通信地连接的中心计算设备可以完全地执行方法300,或者设备102可以执行方法300的某些部分而中心计算设备可以执行方法300的其它部分。方法300可以被实现为存储在非暂时性计算机可读数据存储介质上并且由诸如移动计算设备102或中心计算设备的设备的处理器执行的程序代码。

响应于确定视觉代码106的位置在大于阈值高度的高度处(302),并且响应于确定移动计算设备102具有大于接近度阈值的接近度(304),将第一置信度值设置为预定的低值(306)。类似地,如果视觉代码106的位置在大于阈值高度的高度处(302),但是移动计算设备102具有大于接近度阈值的接近度(304),并且响应于确定设备102的方位是向下俯仰并且/或者在远离代码106的方向上(308),则将第一置信度值设置为低值(306)。但是,如果视觉代码106的位置在大于阈值高度的高度处(302),并且移动计算设备102具有大于接近度阈值的接近度(304)但是具有在朝向代码106的方向上向上俯仰的方位(308),则将第一置信度值设置为大于低值的预定的高值(310)。

通过比较,响应于确定视觉代码106的位置在小于阈值高度的高度处(302),并且响应于确定移动计算设备102具有大于接近度阈值的接近度(312),将第一置信度值设置为低值(306)。然而,如果视觉代码106的位置在小于阈值高度的高度处(302),并且如果移动计算设备102具有小于接近度阈值的接近度(312),并且响应于确定设备102的方位在阈值内垂直于地面并且在朝向代码106的方向上(314),将第一置信度值设置为高值(310)。类似地,如果代码106的位置在小于阈值高度的高度处(302),并且如果设备102具有小于接近度阈值的接近度(312)但是具有不在阈值内的垂直于地面的方位(314),则如果设备102的方位与代码106的任何先前实际检测的方位在方位差别阈值内相匹配(316),则将第一置信度值设置为高值(310)。然而,如果代码106的位置在小于阈值高度的高度处(302),并且如果设备102具有小于接近度阈值的接近度(312)但是具有不在阈值内的垂直于地面的方位(314),则如果设备102的方位与代码106的任何先前实际检测的方位在方位差别阈值内不匹配(316),则将第一置信度值设置为低值(306)。

在部分306中第一置信度值被设置成的预定的低值是低的,是在于它低于在部分310中第一置信度值设置成的预定的高值(反之亦然)。在一种实施方式中,第一置信度值因此是二元的。也就是说,第一置信度值可以取以下两个不同的值中的一个:与移动计算设备102正在指向视觉代码106的高可能性对应的高值或与移动计算设备102正在指向视觉代码106的低可能性对应的低值。

如上所述,当使用者的移动计算设备捕获图像并且在图像中通过所捕获的图像的图像处理实际检测到视觉代码106时,可以将包括捕获图像时的设备的方位的元数据发送给中心计算设备,例如服务器。在确定图2b的场景中的第一置信度值的背景中,通过将移动计算设备102的方位与捕获了从其成功地检测到代码106的图像的每个移动计算设备中的任何一个的方位进行比较,可以使用这样的与在其它使用者的移动计算设备捕获的图像中对视觉代码106的先前成功检测有关的元数据。除了发送元数据之外,捕获了图像并且在图像中通过所捕获的图像的图像处理实际检测到视觉代码的移动计算设备还可以将图像本身发送给中心计算设备。因此,除了与图像有关的元数据之外,还可以采用在其中先前成功地实际检测到视觉代码106的这些图像。现在描述这种对与视觉代码106的先前实际移动计算设备检测相对应的图像的使用。

图4示出了用于在所捕获的图像内没有实际检测到代码106的情况下,根据设备102捕获的图像确定与移动计算设备102正在指向视觉代码106的可能性相对应的第二置信度值的示例方法400。移动计算设备102可以完全地执行方法400,与设备102通信地连接的中心计算设备可以完全地执行方法400,或者设备102可以执行方法400的某些部分而中心计算设备可以执行方法400的其它部分。方法400可以被实现为存储在非暂时性计算机可读数据存储介质上并且由诸如移动计算设备102或中心计算设备的设备的处理器执行的程序代码。

基于由移动计算设备102捕获的图像与其它使用者的移动计算设备捕获的在其中实际上成功地检测到视觉代码106的图像之间的比较,来确定由移动计算设备102捕获的图像的相似性分数(402)。可以采用各种不同的图像处理技术来比较由移动计算设备102捕获的图像和与视觉代码106的先前实际移动计算设备检测相对应的图像。相似性分数事实上是关于移动计算设备102捕获的图像与其它移动计算设备捕获的在其中实际检测到视觉代码106的图像是否为相同主题(即,包括视觉代码106)的评估。

在一种实施方式中,移动计算设备102可以将其捕获的图像上载到诸如服务器的中心计算设备上,并且中心计算设备可以确定该图像与对应于视觉代码106的先前实际移动计算设备检测的图像的相似性分数。在该实施方式中,移动计算设备102不必接收可能非常庞大的图像本身。然而,在另一实施方式中,中心计算设备将与视觉代码106的先前实际移动计算设备检测相对应的图像发送给移动计算设备102,并且移动计算设备102确定相似性分数。在这种情况下,中心计算设备可以仅发送移动计算设备102附近的图像。中心计算设备还可以通过采用其它形式(例如,仅描述诸如由sift、surf和orb图像处理技术识别的特征点的特定特征点的图像描述符)来表示图像,以减少传输的数据的量。

基于确定的相似性分数来设置与移动计算设备102正在指向视觉代码106的可能性相对应的第二置信度值(404)。实际上,方法400利用了:已经知道其它移动计算设备先前捕获的图像包括视觉代码106,这是由于实际上在每个这样的图像中成功检测到了代码106。因此,即使实际上不能在移动计算设备102已经捕获的图像内检测到视觉代码106,设备102正在指向代码106的可能性也可以与所捕获的图像与在其中成功检测到代码106的这些其它图像的相似程度对应。

在一种实施方式中,如下基于确定的相似性分数来设置第二置信度值。如果相似性分数大于预定第一阈值,则将第二置信度值设置为与移动计算设备102正在指向视觉代码106的非常高的可能性对应的、预定的非常高值(406)。如果相似性分数在第一阈值和预定的更低的第二阈值之间,则将第二置信度值设置为与移动计算设备102正在指向视觉代码106的更低但仍然较高的可能性对应的、小于非常高值的预定的高值(408)。如果相似性分数小于第二阈值,则将第二置信度值设置为与移动计算设备正在指向视觉代码106的低可能性对应的、小于高值的预定的低值(410)。

因此,在该实施方式中,第二置信度值是三元的。也就是说,第二个置信度值可以取以下三个不同值中的一个:与移动计算设备102正在指向视觉代码106的非常高的可能性对应的非常高值、与设备102正在指向代码106的高可能性对应的高值、或者与设备102正在指向代码106的低可能性对应的低值。预定的非常高值是非常高的,这是因为它大于预定的高值;类似地,预定的低值是低的,这是因为它小于预定的高值。

因此,已经描述的第一置信度值和第二置信度值中的每一个对应于关于移动计算设备102是否正在指向视觉代码106的可能性。第一置信度值和第二置信度值之间的差别在于如何确定其相应的可能性。第一置信度值是根据移动计算设备102的位置和方位来确定的,而第二置信度值是根据设备102捕获的图像(与对应于视觉代码106的先前实际移动计算设备检测的图像相比)来确定的。

另外,可以确定第三置信度值。第三置信度值不特别地与移动计算设备102正在指向视觉代码106的可能性对应,因此第三置信度值在这一方面不同于第一置信度值和第二置信度值。而是,无论视觉代码是否是视觉代码106,第三置信度值都与移动计算设备102的使用者正在试图将设备102指向视觉代码的可能性对应。也就是说,第三置信度值与移动计算设备102的使用者正在试图将设备102指向任何视觉代码的可能性对应。

图5a、5b和5c示意性地描绘了对与移动计算设备102的使用者正在试图将设备102指向任何视觉代码的可能性相对应的第三置信度值的示例确定。具体地,根据移动计算设备102的移动和方位来确定第三置信度值。为了说明清楚和方便起见,未在图5a、5b和5c中示出移动计算设备102的使用者。未在图5a,5b和5c中示出使用者可能正在试图将移动计算设备102指向的视觉代码,这是因为这种视觉代码的存在不必成为确定第三置信度值的因素之一。

在图5a中,当在一个或多个变化的方向(例如,那些由箭头502指示的方向)上移动设备102(即,达到多于预定的阈值量)的同时,使用者正在将移动计算设备102的方位保持为相对地、基本地或完全地稳定或静止(即,在预定阈值内)。使用者正在保持移动计算设备102的方位可以意味着例如保持设备102的俯仰,该俯仰在图5a的示例中是向下俯仰。然而,图5a中存在移动计算设备102的平移运动。

相比之下,在图5b中,使用者正在将移动计算设备102的平移运动保持为相对地、基本地或完全地稳定或静止(即,在预定阈值内);在这方面,图5b中没有箭头502。然而,诸如通过如箭头504所示旋转设备102,使用者正在改变移动计算设备102的方位(即,达到多于预定阈值量)。因此,图5b中没有移动计算设备102的平移运动,但是设备102正在经历诸如俯仰的方位的改变。

在图5c中,使用者既移动移动计算设备102,又改变设备102的方位。于是,像图5a中一样,存在移动计算设备102的平移运动,并且像图5b中一样,存在设备102的方位的变化。在这方面,图5c包括图5a的箭头502和图5b的箭头504两者。可以使用诸如gps硬件、wi-fi定位系统硬件、加速度计硬件、倾斜传感器硬件等的移动计算设备102的各种硬件传感器来确定是否存在移动计算设备102的运动的变化和/或方位的变化。

在图5a的场景中,将第三置信度值设置为预定的高值,而在图5b和5c的场景中,将第三置信度值设置为预定的低值。在图5a中将第三置信度值设置为高值利用了以下新的观察结果:当移动设备102(即,相对于使用者向内和向外、向上和向下、向左和向右等等)的同时,正在将移动计算设备102的方位保持为稳定的使用者可能正在尝试将设备102指向像视觉代码一样的某物。相比之下,如果使用者如图5b和5c中那样改变移动计算设备102的方位,则无论使用者是否如图5b中那样没有正在移动设备102还是如图5c中那样正在移动设备102,则使用者不太可能正在试图将设备102指向像视觉代码一样的某物。

图6示出了用于根据设备102的移动和方位确定与移动计算设备102的使用者正在试图将设备102指向任何视觉代码106的可能性对应的第三置信度值的示例性方法600。方法600反映了已经描述的图5a、5b和5c的场景。移动计算设备102可以完全地执行方法600,与设备102通信地连接的中心计算设备可以完全地执行方法600,或者设备102可以执行方法600的某些部分而中心计算设备可以执行方法600的其它部分。方法600可以被实现为存储在非暂时性计算机可读数据存储介质上并且由诸如移动计算设备102或中心计算设备的设备的处理器执行的程序代码。

响应于确定使用者没有正在移动移动计算设备102(602),将第三置信度值设置为低值(604)。类似地,响应于确定使用者正在移动移动计算设备102(602)但是没有正在保持设备102的方位(606),仍将第三置信度设置为低值(604)。然而,响应于确定使用者正在移动移动计算设备102(602)并且正在保持设备102的方位(606),将第三置信度值设置为高值(608)。

在部分604中第三置信度值被设置成的预定的低值是低的,是在于它低于在部分608中第三置信度值设置成的预定的高值(反之亦然)。在一种实施方式中,第三置信度值因此是二元的。也就是说,第三置信度值可以取以下两个不同的值中的一个:与使用者正在试图将移动计算设备102指向任何视觉代码的高可能性对应的高值、或与使用者正在试图将设备102指向任何视觉代码的低可能性对应的低值。

图7示出了用于基于移动计算设备102是否捕获在其中成功检测到视觉代码106的图像、或者基于在图像内没有实际检测到代码106的情况下是否检测到设备102指向视觉代码106,来进行动作的示例方法700。因此,方法700可以包括用于确定第一置信度值、第二置信度值和第三置信度值的图3、图4和图6的方法300、400和600。移动计算设备102可以完全地执行方法600,或者设备102可以执行方法600的某些部分而与设备102通信地连接的中心计算设备可以执行方法600的其它部分。方法600可以被实现为存储在非暂时性计算机可读数据存储介质上并且由诸如移动计算设备102或中心计算设备的设备的处理器执行的程序代码。

使用者使移动计算设备102捕获图像(702)。如果例如通过进行适当的图像处理以确定所捕获的图像是否包括视觉代码106,在所捕获的图像内实际检测到视觉代码106(704),则移动计算设备102可以将图像和元数据发送给中心计算设备(706)。元数据可以包括捕获图像时的移动计算设备102的位置和设备102的方位。于是,中心计算设备可以存储来自包括移动计算设备102的各种移动计算设备的所捕获的图像和元数据,以随后在检测其它移动计算设备是否正在指向视觉代码106时使用。

但是,如果没有在所捕获的图像内成功检测到视觉代码106(704),则确定与移动计算设备102正在指向视觉代码106的可能性相对应的第一置信度值(708),并且/或者确定与该可能性相对应的第二置信度值(710)。第一置信度值可以在部分708中通过执行已经描述的方法300来确定,而第二置信度值可以在部分710中通过执行已经描述的方法400来确定。还可以例如通过执行方法600来确定与使用者正在试图将移动计算设备102指向任何视觉代码的可能性相对应的第三置信度值(712)。

然后,基于已经确定的置信度值来检测移动计算设备102是否正在指向视觉代码106(714)。稍后在详细描述中描述实现该检测的具体示例。如果已经检测到移动计算设备102指向视觉代码106(716),则可以进行诸如具体动作的动作(718),上面已经描述了其示例。如果在部分704中在图像内实际检测到视觉代码106,则也执行部分718。然而,如果没有检测到移动计算设备102指向视觉代码106(716),则结束方法700(720)而不执行部分718中的动作。然而,可以替代地在部分718中进行不同的动作。

图8a、8b、8c和8d分别示出用于基于所确定的置信度值来检测或确定移动计算设备102是否正在指向视觉代码106的示例规则表800、820、840、860和880。这样,规则表800、820、840、860和880有效地实现了方法700的部分714。如果仅第一置信度值被确定,具体地,被确定为二元值,则可以使用图8a的规则表800。如果第一置信度值被确定为高值,则移动计算设备102被检测为指向视觉代码106,而如果第一置信度被确定为低值,则设备102不被检测为指向代码106。

如果仅将第二置信度值确定为三元值,则可以使用图8b的规则表820。如果第二置信度值被确定为非常高值,则移动计算设备102被检测为指向视觉代码106,而如果第二置信度值被确定为高值或低值,则设备102不被检测为指向代码106。如果第二置信度值被替代地确定为二元值,则可以采用图8a的规则表800代替图8b的规则表820。

图8c的规则表840和图8d的规则表860分别适用于确定了第一置信度值和第二置信度值并且未确定第三置信度值的场景。如果第一置信度值和第二置信度值都被确定为二进制值,则可以使用图8c的规则表840。如果第一置信度值和第二置信度值都高,则移动计算设备102被检测为指向视觉代码106,而如果第一置信度值和第二置信度值中的一个低或二者均低,则设备102不被检测为指向代码106。

如果第一置信度值被确定为二元值并且第二置信度值被确定为三元值,则可以使用图8d的规则表860。如果第一置信度值为高并且第二置信度值为高或非常高,则移动计算设备102被检测为指向视觉代码106。但是,如果第一置信度值和第二置信度值中的一个低或二者均低,则设备102不被检测为指向代码106。

当第一置信度值被确定为二元值,第二置信度值被确定为三元值并且第三置信度值被确定为二元值时,可以使用图8e的规则表880。如果第一置信度值为高并且第二置信度值为非常高,则无论第三置信度值为何值,移动计算设备102都被检测为指向视觉代码106。但是,如果第一置信度值和第二置信度值都为高(即,第二置信度值是高而不是非常高),则第三置信度值也必须为高,以将移动计算设备102检测为指向视觉代码106。

相比之下,如果第二置信度值为非常高而第一置信度值为低,则第三置信度值也必须为高,以将移动计算设备102检测为指向视觉代码106。但是,如果第一置信度值为低并且第二置信度值仅仅为高(即,不是非常高),则无论第三置信度值为何值,都不将移动计算设备102检测为指向视觉代码106。最后,如果第二置信度值为低,则无论第一置信度值和第三置信度值为何值,都同样地不将移动计算设备102检测为指向视觉代码106。

已经关于为二元或三元值的置信度值描述了表800、820、840、860和880。在其它实施方式中,置信度值可以取多于两个或三个的值,甚至可以是实数。在这方面,表800、820、840、860和880也可以说是描述用于控制是否检测到计算设备102指向视觉代码106的阈值。例如,在表820中,如果第二置信度值具有大于阈值的诸如“非常高”的值,则检测结果为肯定(即,计算设备102被检测为指向视觉代码106)。如果第二置信度值具有小于这个第一阈值的诸如“高”或“低”的值,则检测结果为否定(即,计算设备102不被检测为指向视觉代码106)。

作为另一示例,在表860中,如果第一置信度值具有大于第一阈值的值,例如“高”,并且第二置信度值具有大于第二阈值的值,例如“高”或“非常高”,则检测结果为肯定。然而,如果第一置信度值小于第一阈值并且/或者第二置信度值小于第二阈值,则检测结果为否定。第一阈值和第二阈值可以相同或不同。

图9示出了关于可以进行图7的方法700的示例系统900。系统900包括移动计算设备102、一个或多个其它移动计算设备902和中心计算设备904,所有这些都经由网络906通信地连接。例如,如同移动计算设备902可以是智能电话那样,移动计算设备102可以是智能电话。图9中详细描绘了移动计算设备102,可以以类似的方式来实现移动计算设备902。中心计算设备904可以是服务器。网络906可以是或包括因特网、内联网、外联网、局域网(lan)、广域网(wan)、有线网络、无线网络、移动电话数据网络等。

移动计算设备102可以包括定位硬件908、定向硬件910、成像硬件912、网络硬件914、处理器916和非暂时性计算机可读数据存储介质918。定位硬件908确定设备102的位置,并且可以包括gps硬件。定向硬件910确定设备102的方位,并且可以包括加速度计硬件、倾斜传感器硬件、磁力计等。成像硬件912允许设备102捕获图像,并且可以是数字照相机或数字视频记录硬件。网络硬件914将设备102通信地连接到网络906,并且可以是无线网络硬件,例如wi-fi网络硬件、移动电话数据网络硬件等。在网络硬件914包括wi-fi网络硬件的情况下,定位硬件908可以与网络硬件914共同扩展,以经由wi-fi定位系统确定设备102的位置。处理器916执行存储在介质918上的程序代码920,以进行已经描述的方法的至少某些部分。

中心计算设备904可以包括处理器922、网络硬件924和非暂时性计算机可读介质926。网络硬件924可通信地将设备904连接至网络906,并且可以是有线网络硬件,例如以太网网络硬件。处理器922执行存储在介质928上的程序代码928,以进行已经描述的方法的至少某些部分。例如,中心计算设备902可以从移动计算设备102接收设备102的位置和方位(930)以及在所讨论的位置和方位时设备102捕获的图像(932)。基于这些信息,中心计算设备904可以在移动计算设备102捕获的图像内没有实际检测到代码的情况下,检测移动计算设备902是否被指向视觉代码。

如此,本文已经描述的技术提供了在移动计算设备捕获的图像内没有实际检测到视觉代码的情况下,进行关于移动计算设备是否正在指向视觉代码的检测。因此,即使捕获图像的环境条件或移动计算设备的成像硬件妨碍在图像内对视觉代码进行实际检测,也可以仿佛在图像内检测到代码一样进行动作。替代地,基于已经检测到移动计算设备指向视觉代码来进行这样的动作。

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