发明内容
本发明的一个目的在于提供适合用于确定购物手推车在商店中的位置的系统,其中,被使用来用于确定手推车的位置的目标是无源的,即,其无需外部能量。本发明的进一步目的是检测单一目标来确定购物手推车在商店中的位置,以及进一步地,其中每个目标的位置是相对灵活的。
根据第一方面,本发明提供一种方法,包括:获得限定空间中目标的图像;分析图像来获得标识数据和图像定位数据,图像定位数据包括参考点在图像中相对于目标的定位;使用标识数据来获得目标位置数据,目标位置数据包括目标在限定空间中的位置;以及通过对图像定位数据和目标位置数据进行组合来确定参考点在限定空间中的位置。
优选地,本发明提供了一种方法,其中参考点代表从中获取图像的位置。
优选地,本发明提供了一种方法,其中位置数据进一步包括用于在限定空间中的目标的限定空间方位数据,以及该方法进一步包括:分析图像来获得图像方位数据,该图像方位数据包括从中获取图像的相对于目标的方向;以及通过对图像方位数据和限定空间方位数据进行组合来确定在限定空间中从中获取图像的方向。
优选地,本发明提供了一种方法,其中图像包括第二目标,以及参考点代表第二目标。
优选地,本发明提供了一种方法,其中目标是反射式的,以及该方法进一步包括:为了获得目标的图像的目的而使光源照亮目标。
优选地,本发明包括在缺少照亮目标的光源的情况下从给定位置获得第一图像,使得目标在图像中较不明显;以及利用照亮目标的光源从给定位置获得第二图像,使得目标在图像中较为明显;以及通过从第二图像中减去第一图像来获得目标的图像。
优选地,本发明进一步包括使用标识数据来访问包括目标位置数据的数据库条目。
优选地,本发明进一步包括其中目标是条码。
优选地,本发明提供了其中限定空间是商店,以及参考点代表购物手推车。
根据第二方面,本发明提供了计算机程序产品,计算机程序产品包括具有计算机可读程序的计算机可用介质,其中当在计算机上实行时,计算机可读程序引起计算机执行一种方法,包括:获得限定空间中目标的图像;分析图像来获得标识数据和图像定位数据,图像定位数据包括参考点在图像中相对于目标的定位;使用标识数据来获得目标位置数据,目标位置数据包括目标在限定空间中的位置;以及通过对图像定位数据和目标位置数据进行组合来确定参考点在限定空间中的位置。
因为使用目标设备的图像来确定参考点的位置,目标可以是无源的,例如至少两种不同颜色的条码。例如,限定空间可以是在商店内。
优选地,参考点代表从中获取图像的位置。结果,该方法可用于例如确定诸如购物手推车之类的设备的位置,其中从该位置获得图像。
如果参考点代表从中获取图像的位置,那么,可选地,位置数据进一步包括用于在限定空间中的目标的限定空间方位数据,以及进而分析图像来获得图像方位数据,该图像方位数据包括从中获取图像的相对于目标的方向。这允许通过对图像方位数据和限定空间方位数据进行组合来确定在限定空间中从中获取图像的方向。
作为对代表从中获取图像的位置的参考点的替代,参考点可代表第二目标,第二目标至少部分地包含于图像中。结果,使用目标位置数据来确定第二目标在限定空间中的位置。
例如,目标可以是反射式的,在此情况下,当获得图像时,可使用光源来照亮目标。
如果使用光源来照亮目标,可选地,从给定位置获得第一和第二图像。在缺少照亮目标的光源的情况下获得第一图像,使得目标在图像中不出现,以及利用照亮目标的光源来获得第二图像,使得目标在图像中出现。继而,通过从第二图像中减去第一图像来获得目标的图像。这样就减少了图像数据中不是目标一部分的背景数据,使得分析变得容易。
可选地,使用标识数据来访问包括目标位置数据的数据库条目。可选地,标识数据对目标位置数据进行编码。
优选地,目标是条码目标,对条码进行解码来获得标识数据。
根据本发明的第三方面,提供了一种装置,包括:图像捕获设备,其用于获得对标识数据进行编码的目标的图像;以及至少一个处理器,用于:分析图像来获得标识数据和图像定位数据,图像定位数据包括参考点在图像中相对于目标的定位;使用标识数据来获得目标位置数据,该目标位置数据包括目标在限定空间中的位置;以及通过对图像定位数据和目标位置数据进行组合来确定参考点在限定空间中的位置。
注意,例如,至少一个处理器可包括用于分析图像的微处理器和用于使用标识数据确定参考点的位置的数据处理器。可选地,数据处理器是远离微处理器的,以及,该装置进一步包括通信设备,用于从微处理器向数据处理器发送标识数据和图像偏移数据,以便使用标识数据。
可选地,该装置进一步包括用于照亮目标的照明设备。例如,如果目标是反射式的,那么能够在目标反射来自通信设备的光的同时,获取图像。
如果该装置包括照明设备,可选地,照明设备能够输出多个等级的照明,以及至少一个处理器进一步改变来自照明设备的照明输出的等级。
可选地,至少一个处理器进一步控制图像捕获设备,以及当获取图像时对图像捕获设备进行指引。
图像捕获设备可以是例如数码相机或摄像机。如果图像捕获设备是摄像机,那么可选地,该装置进一步包括比较器和视频同步分离器。比较器从图像捕获设备接收图像,并基于预先确定的像素亮度等级输出二进制信号,用于将来自图像捕获设备的图像转换为二进制图像。例如,比较器可为比预先确定的亮度等级低的像素输出1,以及为比预定亮度等级高的像素输出0。视频同步分离器指示来自比较器的指出了新图像帧的开始的二进制信号,以及,指示来自比较器的指出了新图像线的开始的二进制信号。
如果优选地使用比较器,那么至少一个处理器改变预先确定的亮度等级,以改进图像的特征,例如,其使得获得目标的标识数据变得更容易。
可选地,本发明进一步包括购物手推车,在购物手推车上安装了图像捕获设备和用于分析图像的处理器。
优选地,本发明进一步提供一种装置,包括用于照亮目标的照明照亮设备。
优选地,本发明提供了一种装置,其中照明设备能够输出多个等级的照明,以及分析图像的处理器进一步改变从照明设备输出的照明等级。
优选地,本发明提供了一种装置,其中图像捕获设备是摄像机,以及该装置进一步包括:比较器,用于接收来自图像捕获设备的图像,以及基于预先确定的像素亮度等级,为图像的每个像素输出二进制信号,用于转换来自图像捕获设备的图像;以及视频同步分离器,用于指示指出了图像帧的开始的二进制信号,和指出了新的图像线的开始的二进制信号。
优选地,本发明提供了一种装置,其中分析图像的处理器改变预先确定的亮度等级来改进图像分析特征。
优选地,本发明提供了一种装置,进一步包括:通信设备,用于向处理器发送标识数据和图像偏移数据,以便使用标识数据。
优选地,本发明提供了一种装置,进一步包括购物手推车,在购物手推车上安装了图像捕获设备和用于分析图像的处理器。
从第四方面看,本发明提供了可加载到数字计算机的内部存储器的计算机程序,包括当所述产品运行于计算机之上时,用于执行以实现如前的方法的步骤的软件代码部分。根据第五部分,本发明提供了限定空间,包括:分布于限定空间的多个隔开的目标,对标识数据进行编码的每个条码,可使用标识数据来确定目标在限定空间中的位置;以及根据第三方面的装置。
优选地,限定空间进一步包括表面,该表面覆盖限定空间,以及使用维可牢(Velcro)将目标安装在该表面上。
例如,表面可以是天花板。例如,限定空间可以是商店。
具体实施方式
在下文对示例性实施例的描述中,引用作为其一部分的附图,并且其中通过示例的方式,示出在其中能够实现本发明的特定实施例。应当理解,可利用其他实施方式作为结构的改变,而不脱离本发明的范围。
在本发明的优选实施例中,使用固定在商店天花板上的逆反射式条码目标来确定购物手推车在商店中的位置。使用安装在购物手推车上照相机来获得条码目标的图像,使得在图像中的定位代表手推车位置。继而,分析图像来读出条码,并确定图像定位数据和图像方位数据。图像定位数据包括“手推车/条码图像极坐标(Cart/Barcode ImagePolar Coordinates)”,其是手推车相对于条码的(在图像中的)极坐标。“手推车/条码图像极坐标”包括“手推车/条码图像角度”,其为在图像中从手推车到条码目标的角度,以及“手推车/条码图像半径”,其为在图像中从手推车到条码目标的距离(取图像单位)。图像方位数据包括“手推车/条码图像方位”,其为手推车正相对于条码而指向的方向。继而,使用条码目标的解码来访问数据库,并获得“条码/商店方位”和“条码/商店位置”,其为用于在商店中的条码目标的物理方位和位置数据。继而,将物理方位和位置数据同图像定位数据进行组合,来确定“手推车/商店位置”和“手推车/商店方位”(在商店中的手推车相对于预定用于商店的参考点和参考线的物理定位和方位)。这将参考图1到图9而详细地描述。
图1a和图1b示出了根据本发明的优选实施例的条码逆反射式目标(条码)的基本构建块。图1a示出了由非逆反射式部分102分隔开的两个逆反射式部分101,逆反射式部分102具有同每个逆反射式部分101相同的宽度。两个逆反射式部分101的间隔距离编码1个比特,在此例子中为比特“0”。图1b示出了由非逆反射式部分103分隔开的两个逆反射式部分101,非逆反射式部分103具有两倍于逆反射式部分101的宽度。两个逆反射式部分101的间隔距离编码比特“1”。注意到,通过由相对于逆反射式部分的长度而分隔开每个逆反射式部分,例如,相邻逆反射式部分的长度提供了距离参考,可将其用于确定在两个逆反射式部分之间的间隔距离。例如,当使用广角镜头来获取条码图像或者条码被安装在弯曲表面上时,这是有用的。
图1c示出了使用图1a和图1b的基本构建块的示例条码。然而,条码的第一元素是两倍长度的逆反射式部分104,将其称作同步符号。使用此部分的伸长性质来标识条码的开始,以及进一步地,由于其长度是标准逆反射式部分的两倍,可将其长度用于确定标准逆反射式部分的长度,在解释一些条码的图像时,这会是有用的。条码的余下部分在非逆反射式部分和标准宽度逆反射式部分之间交替。非逆反射式部分定义了比特,以及在此例子中,该部分是短部分102,随后跟着一个长部分103,随后跟着两个短部分102,以及因此,图2c的条码定义了比特串“0100”。
图1d是在根据本发明的优选实施例而被获取的图片中可以看到的图1c的示例条码的图示。在此附图中,逆反射式部分(114、111)反射红外(IR)光,而非逆反射式部分(112、113)不反射。因此,基于在被获取的条码图片中的被反射的IR光部分的间隔距离来确定由条码编码的值。
在本发明的优选的实施例中,将逆反射式条码附着在商店的天花板的适当位置。图2按从地板仰望天花板的视角,对于示例天花板的区域示出了这一点。天花板区域200包括天花板瓦片201,其由填充瓦片间间隙的金属框架支撑。天花板上附着有灯202和逆反射式条码203、204、205、206。为了易于附着在天花板上,条码背面具有磁条,以及将条码放置得远离灯202,以避免在获取条码图像时的光干扰。如同参考图1a-图1d而描述的,每个条码编码不同的数字。条码203开始于伸长的部分(同步符号)207,并包括编码“0001”的非逆反射式部分。类似地,条码204、205和206分别编码“0010”、“0011”和“0100”,使得每个条码是唯一可识别的,且可以同例如在数据库中的条目相关联,该条目记录了条码在商店内的物理方位和位置。注意,每个条码的方位是不同的,然而,由于伸长的部分207、208、209和210标记了每个条码的开始,因此,这不是个问题。
图2中的购物手推车211的视角也是从地板上通过手推车的底部仰望天花板。注意,购物手推车211定向为与商店中的物理参考线221成一个角度,而且,到物理参考点220有一段距离。例如,参考线可以是商店墙壁。对如何能够计算角度和距离的描述如下。
注意,根据优选实施例的需要,考虑到执行反射或不反射IR光的功能,每个条码的逆反射式和非逆反射式部分可以是任何颜色/纹理。因此,例如,当考虑天花板瓦片和/或金属框架的颜色时,可将它们制成一种颜色以使他们较不突出,和/或在审美学上更令人愉悦。例如,如果天花板是黑色的,则可用看上去黑暗但IR透明的盖子来覆盖。
进一步注意,条码的一个或多个非逆反射部分可包括维可牢(VELCRO)材料的区域,以使得能够使用例如在一端具有互补性VELCRO材料的杆子来容易地移除条码。
图3是根据本发明的实施例的安装在购物手推车上并用来获得或解释逆反射条码目标的图像的系统300的示意图。系统300包括红外(IR)LED照明器302,使用其来散播IR光,用于从例如条码301的逆反射式条码目标进行反射。用黑白摄像机303经由通过IR而阻挡可见光的光学滤波器304来获得任何反射光的图像。使用滤波器来减少非IR光但允许IR光(诸如来自IR LED照明器302而由条码301反射的IR光)传送到摄像机303。
将摄像机303基本上垂直地安装在购物手推车内,使得由摄像机获取的图像的中心近似地代表摄像机的位置(并因此代表购物手推车的位置),以及在图像上画出的垂直线代表手推车正在指向的方向。然而,在另一个实施例中,假定能够确定从中获取图像的相对于图像中条码的定位,则可以不同地安装摄像机。
将由摄像机303获取的图像作为灰度视频信号传送至模拟比较器305和视频同步分离器306。模拟比较器305通过将灰度视频转换为黑白二进制信号来简化视频信号,因为通过IR而阻挡可见光的光学滤波器304消除了几乎所有的非IR光,所以该黑白二进制信号仅保留了来自天花板灯202的直接IR光束,以及从条码301反射的IR。明亮的IR光引起模拟比较器305输出高二进制信号,而黑暗的背景引起模拟比较器305输出低二进制信号。
视频同步分离器306从黑白摄像机303的复合视频信号输出中提取垂直和水平同步信号。微控制器307使用来自视频同步分离器306的视频同步信号来识别每个图像/帧的开始,并确定从比较器305接收的图像中的每个图像像素的X和Y位置。在每个水平同步信号的开始,将运行于微控制器307内部的代表X轴定位计数器的内部计数器重置为0,以指示新的像素行的开始。在每个垂直同步信号的开始,将Y轴定位计数器重置为0,以指示新的帧的开始。通过典型地是微处理器307时钟的内部振荡器,来增加X轴定位计数器。通过水平同步信号来增加Y轴定位计数器。
为了最小化对微控制器307存储器和处理时间的需求,模拟比较器305的上升沿引起中断。在中断例程期间,存储X轴定位计数器和Y轴定位计数器的值。继而,将在微控制器307中的中断控制器配置为在模拟比较器305的下降沿生成中断,以及重复该过程。用此方法,仅明亮对象的开始和停止位置引起需要处理和存储的中断,而消除了对存储整个图像的存储器缓冲器的需要,以及也消除了对处理每个图像像素的需要。
可选地,微控制器37还控制红外LED照明器302,在不需要的时候将其关闭,以及控制红外LED照明器302的亮度,以便仅发出足以充分地照亮条码301的IR照明,从而节省能量。
可选地,微控制器307在IR LED照明器302打开的情况下获取第一图像,而在IR LED照明器302关闭的情况下获取第二图像。继而,从第二图像中减去第一图像,来移除诸如天花板灯202之类的任何外部光源。
可选地,微控制器307控制模拟比较器305的阈值电压来精细调谐图像,使得可以在图像中更好地区分诸如条码301之类的条码与其他IR光源。
微控制器307对条码301进行解码,并执行其他低级功能,以及继而将所解码的数据传送给计算机308。
参考图2,图4a是使用安装在手推车尾部的照相机(垂直向上地指向天花板并且定向为使得在图像中手推车从图像的底部中心指向图像的顶部中心),例如图3的系统的摄像机303,从购物手推车211获取的逆反射式条码目标206的图像的图示。注意,在图4以及其他所有具有图像图示的附图中,示出的是实际图像的有效底片,即,在由图3的黑白摄像机303获取的图像中,图示中示出的黑暗区域呈现为明亮,而图示中示出的明亮区域呈现为黑暗。而且,在图像中心的叉丝不是图像的一部分,但指示图像的中心,由系统将叉丝用作将为其确定物理位置的参考点(即,照相机/手推车在商店中的位置)。换句话说,叉丝在图像中照相机直接上方的位置。从此图像中,将条码确定为编码了值“0100” (或4),以及将此值用作数据库的索引来获得条目,该条码提供了逆反射式条码301在商店中的物理方位和位置。
图4b是图4a的图像,但具有对购物手推车211(参看图2)的图示,从该手推车获取了图4a的图像。图4b中的购物手推车211的视角也是从地板上通过手推车的底部仰望天花板。购物手推车具有安装在其底部的照相机411(垂直地指向上方),用来获取图像,以及因而图像4b中的照相机411的位置同图4a中的叉丝400的位置相一致。由于照相机相对于购物手推车的方位,在图4b中手推车指向的方向(即当获取图4a的图像时)是沿着通过图像中心的垂直线。注意,在图4b中的条码和购物手推车211的方位匹配于在图2中的条码206和购物手推车211。
在本发明的优选实施例中,将描述了条码在商店中的物理位置和方位的数据存储在数据库中。此数据包括同步符号的中心的物理/商店位置,以及条码沿其长度的物理/商店方位(例如,图9中的角度902)。物理/商店位置包括在恰当的物理单位系统中的相对于在商店中的参考点(例如,图2的参考点220)的X和Y坐标。在优选的实施例中,单位是米,而在其他实施例中,可使用的其他单位例如是英尺或天花板瓦片。物理/商店方位是相对于商店参考线(例如,图2的商店墙壁221)的角度。例如,方位可包括在0到360度之间的值。可选地,物理位置数据可包括在后续计算中可能有用的附加数据,例如,同步符号的长度、条码的长度以及条码的高度。
图5是本发明的优选实施例的用于获得购物手推车在商店中的物理/商店位置和方位的方法的流程图。在步骤501,从安装在购物手推车上的照相机获得图像,该图像包括至少一个逆反射式条码目标。该图像是二进制图像,其基于来自模拟比较器305的输出,对于每个像素具有一个比特。如果像素是明亮的,则比较器输出高信号,而如果像素是黑暗的,则比较器输出低信号。
在步骤502,分析图像来获得和解码逆反射式条码目标,以及来确定有关于在图像中相对于条码和手推车的相对定位的图像定位数据和图像方位数据。图像定位数据包括从条码到手推车的角度和距离(取图像单位),而图像方位数据包括手推车正相对于条码而指向的方向。
将条码在图像中的方位称作“条码图像方位(Barcode ImageOrientation)”。这是在通过条码的长边的线和第一图像参考线之间的以度数(表示)的角度,第一图像参考线是通过图像且通过同步符号的中心的水平线。
在图像中手推车正相对于条码而指向的方向是“手推车/条码图像方位(Cart/Barcode Image Orientation)”。这是在通过条码的长边的线和第二图像参考线之间的角度,第二图像参考线代表手推车正相对于图像而指向的方向。在优选的实施例中,将照相机以如下方式安装在购物手推车上,即使得第二图像参考线垂直于图像而延伸。
从条码到条码与手推车的相对定位的角度和距离分别是“手推车/条码图像角度”和“手推车/条码图像半径”。“手推车/条码图像角度”是在通过条码的长边的线和第三参考线之间的角度,所述第三参考线从图像参考点(叉丝)400的位置延伸至条码的同步符号的中心。“手推车/条码图像半径”是从图像参考点(叉丝)400的位置到条码同步符号的中心的距离(取图像单位)。图像参考点是在图像中的代表购物手推车位置的位置,以及是直接在购物手推车211上的摄像机303的上方的点。“手推车/条码图像角度”和“手推车/条码图像半径”一起组成了“手推车/条码图像极坐标”。
在步骤503,使用对条码目标的解码来访问数据库,以获得条码在商店中的物理方位和位置数据。
条码在商店中的方位是“条码/商店方位”。这是在通过条码的长边的线和在商店中的参考线(例如图2中的商店墙壁221)之间的角度。
条码的物理位置是“条码/商店位置”。这是同步符号的中心相对于商店参考点(例如,图2中的商店参考点220)的位置的(X,Y)坐标(取商店单位)。
在步骤504,确定手推车在商店中的方位。将该方位称为“手推车/商店方位”,以及根据“条码/商店方位”和“手推车/条码图像方位”的组合确定该方位。
在步骤505,确定在商店中的手推车相对于在商店中的参考点(例如,图2的参考点220)的位置。将其称为“手推车/商店位置”,以及通过对“条码/商店方位”、“条码/商店位置”和“手推车/条码图像极坐标”进行组合来确定该“手推车/商店位置”。然而,必须首先将“手推车/条码图像极坐标”的“手推车/条码图像半径”从图像单位转换为商店单位。
对步骤502的分解和步骤502、504和505的计算将在下面参考图6、7、8和9进一步详细描述。
图6是图5中的方法步骤502的流程图,其中,分析二进制图像来识别和解码逆反射式条码目标,以及,进而确定涉及条码和手推车定位(图像的中心)的图像定位数据。
在步骤601,从左向右扫描二进制图像的行,来识别合适的对象。将对象识别为被黑暗像素围绕的邻接的明亮像素的群组。在扫描期间当明亮的像素跟随着黑暗的像素时,启动游程编码器(RLE计数器),以及在第一个后续的黑暗像素处停止游程编码器。如果RLE计数器超出了代表条码元素的可接受宽度的预定范围,则忽略该行明亮像素,以及任何其他邻接的明亮像素,因为它们代表的对象太大或太小,而不会是条码的一部分。而且,如果对象包含不在预定范围内的大量像素,那么忽略该对象,因为其太小或太大,而不会是条码段。一旦已经处理了所有像素,即整个图像,则已经获得了仅包括被认为适合于作为条码段的对象(设置比特(set bits))的二进制图像。
在步骤602,根据自图像的左下角起的像素坐标,确定每个合适对象的几何中心。
在步骤603,使用每个合适对象的几何中心来创建在邻近的对象之间的线段,以及识别候选条码段。线段测量两个对象之间的距离,以及如果在它们之间的线段的长度在预定范围内,则将对象识别为候选条码段。
在步骤604,假设最大候选条码段是同步符号(图1c的104),以此识别候选条码段。继而,将同步符号用作锚点来将邻近的条码段连成一串,成为候选条码。通过自同步符号起,从左到右,从上到下地扫描所创建的二进制图像,来定位邻近条码段。
在步骤605,检查所识别的候选条码具有正确数量的段(比特),以及可选地,其具有正确的奇偶校验(parity),来检查该所识别的候选条码的有效性。例如,尽管在附图中未示出,但在优选实施例中,为此目的使用两个奇偶校验位。
最终,在步骤606,为了在图5的步骤504和505中使用,而计算手推车正相对于条码而指向的方向(“手推车/条码图像方位”)以及手推车相对于条码(在图像中)的极坐标(“手推车/条码图像极坐标”)。
注意,在图6的方法中,使用了若干预定范围,即:代表条码元素的可接受的长度的预定范围;在可接受的对象中的像素数量的预定范围;以及用于线段长度的预定范围。在优选的实施例中,基于大量条码图像,而依靠经验获得这些范围。例如,如果图6的方法涉及若干图像,那么可将用于被识别的有效条码的数据用于确定合适的范围。
现在,通过举例的方式,参考图7、8和9来描述图5的计算步骤504和505,以及图6的步骤606。
图7示出了在本发明的优选实施例中使用的倾斜(角度)配置(slope scheme),例如,来确定条码或购物手推车相对于商店的参考墙壁(例如,商店墙壁221(也在图2中示出))的商店方位的值。该图示出了包括同步符号702和至少条码段703的条码701。将如下条码的方位视为0度,该条码平行于商店墙壁221,同步符号位于左边,如图所示。如果关于同步符号702的中心逆时针旋转条码,则最后一个条码段的中心形成了圆704,可将该圆分为四个象限705、706、707、708。在这些象限的每一个中,示出了X和Y的相对符号,其中X和Y代表分别从结尾段703的中心的x和y坐标减去同步符号702的中心的x和y坐标的值。因而,由于三角函数仅提供了+/-90度的角度计算,因此在象限706和707,相对于水平方向所计算的角度需要调节+180度,而在象限708,则需要调节+360度。
图7也示出了购物手推车705,其也定向为相对于商店墙壁221成0度。在0度,前端向右而后端向左的手推车同商店墙壁221平行。因而,当同条码701比较时,为了确定手推车方位的象限,手推车的前端相当于同步符号702,而手推车的后端相当于最后一个条码段703。结果,如果关于手推车的前端的中心逆时针旋转手推车,手推车的后端的中心将形成圆704,该圆分为四个象限705、706、707、708。
图8示出了一个图像(800),其为图4a的图像,但具有附加标记,将使用这些标记来解释在应用条码的物理位置数据之前,为获得关于图像的方位和位置数据而执行的计算。因而,参考图2,此图像是从购物手推车211获取的逆反射式条码目标206的图像,以及因而,是从照相机仰望天花板的视角。用相对于图像原点的(X,Y)坐标(取图像单位)来引用图8中的所有点,图像原点是图像的左下角。为易于理解,图8也示出了相对于图像的物理参考线(商店墙壁)221的定位。
在图8中,点(X1,Y1)是在图像中的从中获取图像的定位(即:购物手推车的定位),点(Xs,Ys)是在图像中的条码的同步符号的中心的定位,而点(Xe,Ye)是该条码的最后一个段的中心的定位。基于点相对于图像的左下角(0,0)的像素位置来确定这些点。而且,从(X1,Y1)到(X1,Ys)的线垂直通过图像,并代表了当获取图像时购物手推车正指向的方向。该图也示出了商店墙壁221相对于图像的定位。
将要从图像中计算出的方位和位置数据包括(以度为单位的)角度802和804,以及(取图像距离单位的)距离805。角度802是以度数为单位的“手推车/条码图像方位”和手推车正相对于条码而指向的方向的角度。角度804是“手推车/条码图像角度”,其为从手推车到条码目标的角度。距离805是“手推车/条码图像半径”,其为在图像中的(取图像单位的)从手推车到条码目标的距离。角度804和距离805构成了“手推车/条码图像极坐标”,并且是图像的中心相对于同步符号的中心和通过条码的长边的线的极坐标(取图像距离单位)。
角度802(“手推车/条码图像方位”)是手推车正相对于条码而指向的方向,也是在通过图像的中心(X1,Y1)的垂直线(其代表手推车正相对于图像而指向的方向)和沿着条码的长度延伸的线之间的角度。为确定角度802,首先确定角度801。基于参考图7描述的配置,角度801是“条码图像方位”,且代表在沿着条码的长度而延伸的线和图像中沿着同步符号的中心而延伸的水平线之间的角度。使用同步符号(Xs,Ys)的中心的定位和不同的条码元素(在此例子中,其为最后一个或结尾条码元素(Xe,Ye))的中心的定位来确定角度801。使用这两个定位,通过考虑由点(Xs,Ys)、(Xe,Ye)和(Xe,Ys)限定的直角三角形,使用基本三角学来计算角度801。例如,依照图7的配置(从那些同步符号中减去不同条码元素的坐标),可使用等式tan-1((Ye-Ys)/(Xe-Xs))来计算角度801。而且,(Ye-Ys)和(Xe-Xs)都是负的,作为结果,该角度在图7的象限707中。因而,所计算的角度必须被调节+180度。一旦知晓了角度801,就基于经调节的角度801和802的和是270度的事实来确定角度802。注意,角度801和802的和是270度,是因为该角度在延伸通过同步符号中心的水平参考线和从X1,Y1在图像中垂直向上到水平线的线之间,而在图7中,这对应于270度。
角度804是在从图像的中心到同步符号的中心的线和沿条码的长度延伸的线之间的角度。为确定角度804,首先确定角度803。角度803是在图像中延伸通过同步符号中心的水平线和从图像的中心延伸到同步符号的中心的线之间的角度。使用与用来确定角度801的相同的三角原理,使用tan-1((Y1-Ys)/(X1-Xs))并调节+180度来计算角度803。一旦知晓了角度803,就将角度804计算为角度803和角度801之间的差。
最后,距离805代表了从购物手推车到同步符号的中心的距离(取图像距离单位),以及距离805是从图像的中心(X1,Y1)到同步符号的中心(Xs,Ys)的线的长度。这可使用由点(X1,Y1),(Xs,Ys)和(X1,Ys)限定的直角三角形,使用基本三角法来确定。例如,可根据等式(Ys-Y1)/(sin(角度803))计算距离805。
注意,在图8中,角度802和804分别接近65度和45度。而且,注意,在本发明的优选实施例中,图像的X和Y坐标的单位是像素。
图9是经旋转的图8,使得物理参考点220在图的左下角,而物理参考线(商店墙壁)221是沿着图的底部的水平线。此旋转引起图9中的条码同条码在商店中的方位相匹配。图9的条码是图2的条码206,根据图7的配置,可以观察到其被定位为相对于商店墙壁221旋转90度。
进而,图9包括将用于描述如何确定“手推车/商店位置”和“手推车/商店方位”的标记。因而,在图9中,坐标标记是基于相对于参考点220的商店位置的。同图8相比,点(Xs,Ys),即同步符号的位置现在是点(Xb,Yb),即“条码/商店位置”,而点(X1,Y1)现在是点(Xc,Yc),“手推车/商店位置”。进一步地,距离805现在是距离805’,其为从图像坐标系统的单位缩放为商店坐标系统的单位的距离805。角度802和804同图8中的那些角度相同,因为在旋转中,这些角度被保持了。角度902是“条码/商店方位”而角度901是“手推车/商店方位”。需要确定(Xc,Yc)的值和角度901。
通过对“手推车/条码图像方位”(角度802)同“条码/商店方位”(角度902)进行组合来获得以度为单位的“手推车/商店方位”(角度901)。通过使用对条码的解码来索引数据库而获得“条码/商店方位”,或从直接编码在条码中的信息中来获得“条码/商店方位”。注意,如果将购物手推车排列为同条码平行,那么角度802将为0或180度。
因而:
“手推车/商店方位”=“手推车/条码图像方位”+“条码/商店方位”
或者
角度901=角度802+角度902
对从图像单位缩放到商店坐标单位的“条码/商店方位”、“条码/商店位置”和“手推车/条码图像极坐标”进行组合,以此确定取商店坐标系统单位的“手推车/商店位置”。
将距离805从以图像单位(例如,像素)转换为商店坐标系统单位(例如,米),以此将图8的距离805(“手推车/条码图像半径”)缩放为图9的距离805’。因而,将距离805’称作“手推车/条码商店半径”。例如,如果在两种单位集中,同步符号的长度都是已知的,那么可以从中确定缩放因子。在此情况下,将同步符号的长度连同条码物理位置数据和从图像中确定的以像素为单位的同步符号的长度一起存储于数据库中。可选地,可使用在两种单位集中都已知或可确定的条码的任何方面的长度,例如一段或整个条码的长度。
现在,知晓了“手推车/商店位置”(Xc,Yc)相对于“条码/商店位置”(Xb,Yb)的相对偏移,但这是在极坐标(“手推车条码商店极坐标”)中。极坐标(角度,半径)包括角度903(“手推车/商店角度”)和距离805’(“手推车/条码商店半径”),其中角度903是角度804(“手推车/条码图像角度”)+角度902(“条码/商店方位”)。然而,在商店系统的x和y坐标中,可将偏移表达为((Xc-Xb),(Yc-Yb))。
为将极坐标转换为x和y坐标,可使用下面的等式
X=r cos(h)
Y=r sin(h)
其中,h是极坐标的角度,而r是极坐标的半径。
因而,对于“手推车/商店位置”(Xc,Yc)相对于“条码/商店位置”的偏移,可通过将X替换为(Xc-Xb),将Y替换为(Yc-Yb),将r替换为距离805’(“手推车/条码商店半径”),以及将h替换为角度903(“手推车/商店角度”)而将这些等式重写如下:
(Xc-Xb)=距离805′*cos(角度903)
(Yc-Yb)=距离805′*sin(角度903)
以及,因此,可从下列等式确定“手推车/商店位置”坐标(Xc,Yc):
Xc=Xb+距离805′*cos(角度903)
Yc=Yb+距离805′*sin(角度903)
其中(Xb,Yb)是“条码/商店位置”,而角度903是角度804(“手推车/条码图像角度”)+角度902(“条码/商店方位”)。
因而,已经确定了从中获取图4的图像的购物手推车的“手推车/商店位置”(Xc,Yc)和“手推车/商店方位”(角度901)。
注意,根据应用,条码的每部分的尺寸和条码的整体长度可以变化。例如,根据获取图像时所期望的从条码到照相机的距离、所使用的相机的分辨率,以及用来解释图像以定位并读取条码的软件的能力来确定尺寸。例如,基于将照相机保持在距地面4英尺高的典型购物手推车,8-12英尺的照相机到条码距离(同商店天花板高度有关),以及使用640×480像素照相机的图像(VGA格式),已经发现3/4英寸乘3/4英寸的分段尺寸工作得良好。而且,此尺寸同与悬挂天花板一起使用的典型金属框架相兼容。可通过增加IR照明器(图3的302)亮度,和/或增加逆反射式部分(图1的101)的尺寸,和/或增加相机的分辨率来同更高的天花板相适应。
图10a、10b和10c是对在本发明的优选实施例的扩展中使用的图像的图示。本发明使用若干图像来减少逆反射式条码目标在图像中的光干扰,其在例如此类干扰会成问题的情况下是有用的。图10a示出了第一图像,获取第一图像而不使用红外光来照亮逆反射式目标,作为结果,图像仅包括背景光数据。此例子意在示出在图像的右下角的荧光灯1001。接着,图10b示出了来自相同定位的图像,但该图像是在红外光打开的情况下获取的,作为结果,图像包括由逆反射式条码目标1002反射的背景光和红外光。这允许获得图像10c,其为图10b的图像,但从图10a的图像中减去了背景数据。结果,图10c的图像仅包括反射的红外光,在此例子中,其仅为由逆反射式条码目标反射的红外光。因而,去除了图10a中的干扰。
图11示出了包括两个逆反射式条码目标的图像。在本发明的优选实施例的另一个扩展中,使用此类图像来校正新安装或近来改变过的条码装置。如果已知第一条码1101的位置(X和Y坐标),那么通过测量在第一和第二条码之间的X和Y像素的数量,并用缩放因子(例如,每像素英寸数)乘以像素长度,可确定第二条码1102的位置。因而,如果条码在商店中的位置是已知的,那么能够包括在该条码的图像中的任何条码的位置都能够被确定。继而,可对任何具有确定位置的条码重复此过程,作为结果,如果恰当地贯穿商店布置条码,那么已知至少一个条码被提供的位置,就可确定每一个条码的位置。例如,参考图3,如果已知条码203的位置,且获取包括条码203和205的图像,那么能够确定条码205的定位。继而,如果获取了包括条码205和206的图像,那么能够确定条码206的定位。继而,可重复此过程来确定条码204的定位,以及进一步地,在大商店中,可使用此过程来确定在商店中的所有条码的定位。如果条码没有同具有已知位置的条码同时出现于图像中,那么,可将由成像器捕获的其他对象(包括灯)用作路标,即,测量从路标到位置已知的条码的X和Y距离,并加到路标到位置未知的条码的X和Y距离上。
进一步地,参考图7,在本发明的优选实施例的另一个扩展中,使用图像来检查对系统的校准。例如,如果已知两个逆反射式条码的位置,可使用一个逆反射式条码来确定另一个的位置。继而,将所确定的位置同另一个逆反射式条码的已知位置作比较,来检查所确定的定位是否准确。
注意,本领域技术人员将意识到在不脱离本发明的情况下,许多变化对本发明的优选实施例是可能的。
例如,条码目标可采用对可读数据进行编码的任何形式,所述可读数据可以用以识别目标和确定目标的方位二者。注意,其不需要伸长的形式,例如,也可使用圆形目标,假定其具有可以从中确定视角方向的可辨别方位的话。
而且,可使用例如粘合剂、维可牢垫、带子等其他装置将条码附着在商店的天花板上。
进一步提供了可以在一些应用中识别和编码条码目标:使用逆反射式和非逆反射式部分并非必须的,可选地,可以使用不同颜色。例如,这可以依赖于诸如获取照片时的光线条件、所使用的照相机的分辨率、何/或用于区分对象的软件的能力。
注意,在可选的实施例中,可将图3的系统300安装在已知的固定位置,而将逆反射式条码目标附着在购物手推车或其他移动设备上。基于所获取的条码目标的图像,可以确定手推车/移动设备的定位。进一步地,例如,系统300的组件可以变化,实际上可使用能够捕获和分析图像的任何系统。例如,可使用彩色摄像机,或可选地,可使用由微控制器来指引何时获取图像的数码相机。注意,如果使用数码相机,则无需模拟比较器305和视频同步分离器306,以及可由微处理器或数字逻辑执行从图像到二进制图像的转换。
进一步地,注意,参考图5和6,一些步骤的顺序可以不同,以及进一步地,可在别处处理一些步骤。例如,在图5中,步骤505和506可以颠倒,而进一步地,步骤504和505是可选的。
进一步地,注意,虽然参考图6、7和8来描述了购物手推车,但本领域技术人员将意识到,对于所描述的用于确定位置和方位的计算的很多可供选择的方法。
进一步地,注意,尽管已经就确定购物手推车在商店中的位置而言描述了本发明的优选实施例,但本领域技术人员将意识到在其他实施例中,可使用本发明来确定可移动对象在限定区域内的定位,例如,汽车在停车场内的定位。可连同在已知位置的已有照相机而使用此方法。例如,可将其连同已有的安全照相机使用。
本发明可以采取完全硬件实施例、完全软件实施例或包括硬件单元和软件单元二者的实施例的形式。在优选的实施例中,以软件实现本发明,软件包括但不限于固件、驻留软件、微码等。
进一步地,本发明可以采取可从提供程序代码的计算机可用或计算机可读介质访问的计算机程序产品的形式,由计算机或任何指令执行系统使用或连同计算机或任何指令执行系统而使用该程序代码。为了本描述的目的,计算机可用或计算机可读介质可以是任何如下装置,其能够包含、存储、传送、传播、或传输程序,由指令执行系统、装置或设备使用或连同指令执行系统、装置或设备而使用该程序。
介质可以是电的、磁的、光的、电磁的、红外的、或半导体系统(或者装置或设备)、或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬盘和光盘。光盘的当前例子包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合到存储器元件的至少一个处理器。存储器元件可包括在程序代码的实际执行期间被利用的本地存储器、大容量存储设备(bulk storage)和高速缓冲存储器,高速缓冲存储器提供对至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储设备重新获取代码的次数。
可以直接地或通过中间I/O控制器来将输入和输出或I/O设备(包括但不限于键盘、显示器、指示设备等)耦合到系统。
也可将网络适配器耦合到系统来使得能够通过中间专用或公共网络而将数据处理系统变为耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅为当前可用的网络适配器的一些类型。
综上,本发明提供了用于获得例如移动设备的位置的方法、装置和计算机程序产品。获得目标在限定空间中的图像,所述目标对数据进行编码,从该数据能确定该目标在限定空间中的位置。确定代表了例如移动设备的位置的参考点在图像中相对于目标的定位。继而,通过对目标在限定空间中的位置和参考点在图像中相对于目标的相对定位的适当缩放的版本进行组合,来确定移动设备在限定空间的的位置。