CN103889879B - 识别、匹配并跟踪图像序列中的多个对象 - Google Patents
识别、匹配并跟踪图像序列中的多个对象 Download PDFInfo
- Publication number
- CN103889879B CN103889879B CN201280051242.2A CN201280051242A CN103889879B CN 103889879 B CN103889879 B CN 103889879B CN 201280051242 A CN201280051242 A CN 201280051242A CN 103889879 B CN103889879 B CN 103889879B
- Authority
- CN
- China
- Prior art keywords
- candidate target
- scoring
- picture frame
- value
- existing
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
- B66F9/12—Platforms; Forks; Other load supporting or gripping members
- B66F9/122—Platforms; Forks; Other load supporting or gripping members longitudinally movable
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
- B66F9/20—Means for actuating or controlling masts, platforms, or forks
- B66F9/24—Electrical devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Transportation (AREA)
- Structural Engineering (AREA)
- Geology (AREA)
- Civil Engineering (AREA)
- Mechanical Engineering (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Combustion & Propulsion (AREA)
- Chemical & Material Sciences (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
提供了在由照相机获得的图像帧序列中跟踪评分的候选对象的方法。评分的候选对象可以包括与前一图像帧关联的一组现有的评分的候选对象以及与下一图像帧关联的一组新的评分的候选对象。
Description
技术领域
本发明一般而言涉及材料搬运车辆,并且更具体地说涉及用于成像并定位要被该车辆拾起的托盘的系统。
背景技术
在典型的仓库或配送中心,托盘化的库存物品存储在与通常长而平行延伸的通道每一侧对齐的货架或其它存储结构中。为了最大化可用的空间,让几个存储结构垂直堆放是常见的,使得库存可以在升高的高度存储。因此,检索和/或摆放库存的材料搬运车辆的操作人员可能需要从车辆的操作位置向上看,以便识别用于检索或摆放库存的叉子的正确高度和横向位置。
在增加的高度处定位叉架以便拾起或摆放托盘化的材料变得越来越困难。可视角度变得更加困难。为了有效地执行必要的定位调整,会需要大量的培训。即使具有足够的能力,正确定位也会花比材料搬运车辆和操作人员的有效使用所期望的更多的时间。
发明内容
根据本发明的第一方面,提供了在由照相机获得的图像帧序列中跟踪评分的候选对象的方法。评分的候选对象可以包括与前一图像帧关联的一组现有的评分的候选对象以及与下一图像帧关联的一组新评分的候选对象。该方法可以包括:由计算机确定在下一图像帧中每个新评分的候选对象的相应位置;并且分析新评分的候选对象,其中所述分析包括:对于每个特定的现有评分的候选对象:由计算机识别该特定的现有评分的候选对象在前一图像帧中的相应第一位置,由计算机估计在下一图像帧中的相应第二位置,其中相应第二位置是基于前一图像帧和下一图像帧的获得之间照相机的移动估计的,由计算机计算相应预测窗口,其中相应预测窗口定义在下一图像帧中在相应第二位置附近的一组像素位置,并且,对于在相应预测窗口中具有相应位置的任何新的评分的候选对象,试验性地匹配该新评分的候选对象与该特定的现有评分的候选对象。
计算机可以维护被跟踪的现有评分的候选对象的列表。
分析可以包括把其相应位置不在用于任何现有评分的候选对象的相应预测窗口内的任何新评分的候选对象添加到被跟踪的评分的候选对象的现有列表中。
多个评分的候选对象中每一个都可以具有相应合成对象得分。
分析可以包括:对于试验性地与第一现有评分的候选对象和第二现有评分的候选对象都匹配的每个新评分的候选对象:计算第一值,该第一值包括该新评分的候选对象的相应合成对象得分与第一现有评分的候选对象的相应合成对象得分之差的绝对值;计算第二值,该第二值包括该新评分的候选对象的相应合成对象得分与第二现有评分的候选对象的相应合成对象得分之差的绝对值;如果第一值小于或等于第二值,则维护第一现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第二现有评分的候选对象忽略该新评分的候选对象;并且,如果第二值小于第一值,则维护第二现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第一现有评分的候选对象忽略该新评分的候选对象。
分析可以包括:对于试验性地与第一新评分的候选对象和第二新评分的候选对象都匹配的每个现有评分的候选对象:计算第一值,该第一值包括该现有评分的候选对象的相应合成对象得分与第一新评分的候选对象的相应合成对象得分之差的绝对值;计算第二值,该第二值包括该现有评分的候选对象的相应合成对象得分与第二新评分的候选对象的相应合成对象得分之差的绝对值;如果第一值小于或等于第二值,则维护该现有评分的候选对象与第一新评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第二新评分的候选对象;并且,如果第二值小于第一值,则维护第二新评分的候选对象与该现有评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第一新评分的候选对象。
分析可以包括从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象,其中不匹配的现有评分的候选对象没有匹配的新评分的候选对象。
图像帧序列可以包括:按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,并且,当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象可以包括:对于序列中紧接着在前一图像帧前面的图像帧子集中的每个图像帧,确定当该子集的该图像帧是序列中的当前前一个图像时,不匹配的现有评分的候选对象是否也不匹配;如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中也不匹配,则删除该不匹配的现有评分的候选对象;并且如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中不是不匹配,则在被跟踪的评分的候选对象的列表中维护该不匹配的现有评分的候选对象。
图像帧子集可以包括3个图像帧。
该方法还可以包括:获得相对于当前下一个图像帧的新后继图像帧;把当前下一个图像帧的角色改变成当前前一个图像帧的角色;并且基于所述分析更新被跟踪的评分的候选对象的列表。
根据本发明的第二方面,提供了在由计算机获得的图像帧序列中跟踪评分的候选对象的系统。评分的候选对象可以包括与前一图像帧关联的一组现有的评分的候选对象以及与下一图像帧关联的一组新评分的候选对象。该系统可以包括:处理器,配置为执行可访问存储器中的指令;对象定位部件,配置为确定在下一图像帧中每个新评分的候选对象的相应位置;以及分析器部件,配置为对新评分的候选对象执行分析,其中所述分析包括:对于每个特定的现有评分的候选对象:识别该特定的现有评分的候选对象在前一图像帧中的相应第一位置,估计在下一图像帧中的相应第二位置,其中相应第二位置是基于前一图像帧和下一图像帧的获得之间照相机的移动估计的,计算相应预测窗口,其中相应预测窗口定义在下一图像帧中在相应第二位置附近的一组像素位置,并且,对于在相应预测窗口中具有相应位置的任何新评分的候选对象,试验性地匹配该新评分的候选对象与该特定的现有评分的候选对象。
该系统还可以包括存储被跟踪的现有评分的候选对象的列表的第一存储器设备。
分析还可以包括把其相应位置不在用于任何现有评分的候选对象的相应预测窗口内的任何新评分的候选对象添加到被跟踪的评分的候选对象的现有列表中。
多个评分的候选对象中每一个都可以具有相应合成对象得分。
分析还可以包括:对于试验性地与第一现有评分的候选对象和第二现有评分的候选对象都匹配的每个新评分的候选对象:计算第一值,该第一值包括该新评分的候选对象的相应合成对象得分与第一现有评分的候选对象的相应合成对象得分之差的绝对值;计算第二值,该第二值包括该新评分的候选对象的相应合成对象得分与第二现有评分的候选对象的相应合成对象得分之差的绝对值;如果第一值小于或等于第二值,则维护第一现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第二现有评分的候选对象忽略该新评分的候选对象;并且,如果第二值小于第一值,则维护第二现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第一现有评分的候选对象忽略该新评分的候选对象。
分析还可以包括:对于试验性地与第一新评分的候选对象和第二新评分的候选对象都匹配的每个现有评分的候选对象:计算第一值,该第一值包括该现有评分的候选对象的相应合成对象得分与第一新评分的候选对象的相应合成对象得分之差的绝对值;计算第二值,该第二值包括该现有评分的候选对象的相应合成对象得分与第二新评分的候选对象的相应合成对象得分之差的绝对值;如果第一值小于或等于第二值,则维护该现有评分的候选对象与第一新评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第二新评分的候选对象;并且,如果第二值小于第一值,则维护第二新的评分的候选对象与该现有评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第一新评分的候选对象。
该系统还可以包括删除部件,配置为从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象,其中不匹配的现有评分的候选对象没有匹配的新评分的候选对象。
图像帧序列可以包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,并且,当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
删除部件可以配置为根据以下从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象:对于序列中紧接着在前一图像帧前面的图像帧子集中的每个图像帧,确定当该子集的该图像帧是序列中的当前前一个图像时,不匹配的现有评分的候选对象是否也不匹配;如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中也不匹配,则删除该不匹配的现有评分的候选对象;并且如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中不是不匹配,则在被跟踪的评分的候选对象的列表中维护该不匹配的现有评分的候选对象。
图像帧子集可以包括3个图像帧。
该系统还可以包括:图像获得部件,配置为获得相对于当前下一个图像帧的新后继图像帧;图像更新部件,配置为把当前下一个图像帧的角色改变成当前前一个图像帧的角色;及对象更新部件,配置为基于所述分析更新被跟踪的评分的候选对象的列表。
根据本发明的第三方面,提供了在由照相机获得的图像帧序列中跟踪评分的候选对象的计算机程序产品。评分的候选对象可以包括与前一图像帧关联的一组现有的评分的候选对象以及与下一图像帧关联的一组新评分的候选对象。该计算机程序产品可以包括:其中包含计算机可读程序代码的计算机可读存储介质,该计算机可读程序代码包括:配置为确定在下一图像帧中每个新评分的候选对象的相应位置的计算机可读程序代码;以及配置为对新评分的候选对象执行分析的计算机可读程序代码,其中所述分析包括:对于每个特定的现有评分的候选对象:识别该特定的现有评分的候选对象在前一图像帧中的相应第一位置,估计在下一图像帧中的相应第二位置,其中相应第二位置是基于前一图像帧和下一图像帧的获得之间照相机的移动估计的,计算相应预测窗口,其中相应预测窗口定义在下一图像帧中在相应第二位置附近的一组像素位置,并且,对于在相应预测窗口中具有相应位置的任何新评分的候选对象,试验性地匹配该新评分的候选对象与该特定的现有评分的候选对象。
该计算机程序产品还可以包括配置为维护被跟踪的现有评分的候选对象的列表的计算机可读程序代码。
该计算机程序产品还可以包括配置为把其相应位置不在用于任何现有评分的候选对象的相应预测窗口内的任何新评分的候选对象添加到被跟踪的评分的候选对象的现有列表中的计算机可读程序代码。
多个评分的候选对象中每一个都可以具有相应合成对象得分。
分析还可以包括:对于试验性地与第一现有评分的候选对象和第二现有评分的候选对象都匹配的每个新评分的候选对象:计算第一值,该第一值包括该新评分的候选对象的相应合成对象得分与第一现有评分的候选对象的相应合成对象得分之差的绝对值;计算第二值,该第二值包括该新评分的候选对象的相应合成对象得分与第二现有评分的候选对象的相应合成对象得分之差的绝对值;如果第一值小于或等于第二值,则维护第一现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第二现有评分的候选对象忽略该新评分的候选对象;并且,如果第二值小于第一值,则维护第二现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第一现有评分的候选对象忽略该新评分的候选对象。
分析还可以包括:对于试验性地与第一新评分的候选对象和第二新评分的候选对象都匹配的每个现有评分的候选对象:计算第一值,该第一值包括该现有评分的候选对象的相应合成对象得分与第一新评分的候选对象的相应合成对象得分之差的绝对值;计算第二值,该第二值包括该现有评分的候选对象的相应合成对象得分与第二新评分的候选对象的相应合成对象得分之差的绝对值;如果第一值小于或等于第二值,则维护该现有评分的候选对象与第一新评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第二新评分的候选对象;并且,如果第二值小于第一值,则维护第二新评分的候选对象与该现有评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第一新评分的候选对象。
该计算机程序产品还可以包括配置为从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象的计算机可读程序代码,其中不匹配的现有评分的候选对象没有匹配的新评分的候选对象。
图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,并且,当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
该计算机程序产品还可以包括:配置为根据以下从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象的计算机可读程序代码:对于序列中紧接着在前一图像帧前面的图像帧子集中的每个图像帧,确定当该子集的该图像帧是序列中的当前前一个图像时,不匹配的现有评分的候选对象是否也不匹配;如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中也不匹配,则删除该不匹配的现有评分的候选对象;并且如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中不是不匹配,则在被跟踪的评分的候选对象的列表中维护该不匹配的现有评分的候选对象。
图像帧子集可以包括3个图像帧。
该计算机程序产品还可以包括:配置为获得相对于当前下一个图像帧的新后继图像帧的计算机可读程序代码;配置为把当前下一个图像帧的角色改变成当前前一个图像帧的角色的计算机可读程序代码;及基于所述分析更新被跟踪的评分的候选对象的列表的计算机可读程序代码。
附图说明
图1是本发明基于图像的检测系统可以结合在其中的材料搬运车辆的侧视图;
图2是构成图1中所说明的车辆的叉架装置(fork carriage apparatus)的透视图;
图3是托盘的前视图;
图4是说明由根据本发明的图像分析计算机实现的步骤的流程图;
图5是说明由根据本发明的图像分析计算机为了识别可能的托盘角落而实现的步骤的流程图;
图6、7、6B和7A说明了第一、第二、第三和第四角落模板;
图6A说明了位于水平和垂直交叉相关结果之上的第一角落模板;
图6C-6E说明了用于定位左下角图像中最大像素值的例子;
图6F说明了从较高分辨率图像产生较低分辨率图像的例子;
图6G说明了为了潜在的左下角的位置而被进一步分析的中等水平图像的一部分;
图8是说明由根据本发明的图像分析计算机为了确定第一Ro图像和可选的第二Ro图像而实现的步骤的流程图;
图9说明了用于计算水平梯度图像中的像素值的例子;
图10说明了用于计算垂直梯度图像中的像素值的例子;
图11A-11D说明了包括至少一个窗口的左Ro图像的部分;
图12A、12B、13A和13B是说明由根据本发明一种实施例的图像分析计算机为了从左Ro图像中的左下角开始跟踪水平和垂直线而实现的步骤的流程图;
图14A和14B说明了包括至少一个窗口的左Ro图像的部分;
图14C和14D是说明根据本发明另一种实施例用于从左下角开始跟踪水平和垂直线的步骤的流程图;
图14E是具有作为图14C流程图中对应步骤的备选方案的一些步骤的流程图;
图15是说明由根据本发明的图像分析计算机为了确定多条可能的线中哪条最有可能是经过预审合格的左下角的实际线而实现的步骤的流程图;
图15A说明了穿过预审合格的左下角的两条可能线;及
图16A说明了规格化的灰度级图像,该图像说明了具有底部托盘板200和中心纵梁208的托盘P;
图16B是对应于图16A中灰度级图像的水平交叉相关图像;
图16C是对应于图16A中灰度级图像的垂直交叉相关图像;
图16D是对应于图16A中灰度级图像的水平梯度图像;
图16E是对应于图16A中灰度级图像的垂直梯度图像;
图16F是对应于图16A中灰度级图像的第一Ro图像;
图16G是对应于图16A中灰度级图像的第二Ro图像;
图17是说明左下角和右下角的托盘一部分的视图;
图18说明了根据本发明的原理、用于评估托盘结构潜在的洞和中心纵梁的几何框架;
图19A说明了根据本发明的原理、用于估计中心纵梁高度的几何框架;
图19B说明了根据本发明的原理、用于评估中心纵梁可能的左和右垂直边缘的几何框架;
图20A是说明由根据本发明的图像分析计算机为了分析中心纵梁的可能左边缘而实现的步骤的流程图;
图20B说明了根据图20A的流程图分析的图像部分中像素的例子;
图21A是说明由根据本发明的图像分析计算机为了确定潜在地代表托盘各个部分的多个矩形的高度而实现的步骤的流程图;
图21B说明了图形解释图21A流程图操作各方面的几何框架;
图22A说明了有可能代表位于托盘中心纵梁左边的叉子开口的第一矩形的例子;
图22B说明了有可能代表位于托盘中心纵梁右边的叉子开口的第二矩形的例子;
图22C说明了有可能代表托盘中心纵梁的第三矩形的例子;
图23A是说明由根据本发明的图像分析计算机为了计算包括所述第一、第二和第三矩形的像素而实现的步骤的流程图;
图23B说明了图形解释图23A流程图操作各方面的几何框架;
图23C是说明由根据本发明的图像分析计算机为了计算第一和第二矩形的负像素的垂直投影而实现的步骤的流程图;
图23D是说明由根据本发明的图像分析计算机为了计算第三矩形的至少一些负像素的垂直投影而实现的步骤的流程图;
图23E绘出了根据本发明的原理、用于维护图像帧中候选对象的对象列表(Objectlist)的示例性算法的流程图;
图24A绘出了根据本发明的原理、用于从用于图像帧的Objectlist中消除至少一些候选对象的示例性算法的流程图;
图24B绘出了根据本发明的原理、用于消除在彼此附近的一个或多个候选对象的示例性算法的流程图;
图24C绘出了根据本发明的原理、用于消除在彼此垂直本地(vertically local)的一个或多个候选对象的示例性算法的流程图;
图24D绘出了根据本发明的原理、具有候选对象的示例图像帧;
图25是根据本发明的原理、用于在不同的图像帧之间跟踪候选对象的流程图;
图26A和26B绘出了根据本发明的原理、具有候选对象的前一图像帧和下一个图像帧;
图27A说明了物理世界中其位置可以相对于多于一个参考帧来计算的托盘;
图27B说明了用于把物理世界位置投影到图像平面上的针孔照相机模型;
图27C说明了根据本发明的原理、具有不同像素位置的灰度级图像;
图27D是说明由根据本发明的图像分析计算机为了识别离群数据而实现的步骤的流程图;
图27E说明了根据本发明的原理、照相机坐标系统轴关于世界坐标系统的相对旋转;
图27F说明了根据本发明的原理、物理世界中可以相对于多于一个参考帧来计算的托盘位置;
图28是说明由根据本发明的图像分析计算机为了利用卡尔曼(Kalman)滤波器预测状态变量而实现的步骤的流程图;
图29A-29F是说明根据本发明的原理、用于确定切口(cutout)位置的流程图;及
图30说明了根据本发明的原理、可用于执行外在照相机校准的多个托盘的图像投影配置。
具体实施方式
现在参考图1,图1说明了本发明可以结合在其中的叉车或车辆10。车辆10包括包含操作人员隔间22的动力单元或主体20。车辆10还包括桅杆(mast)组件30和叉架装置40,如图2中最好地示出的。虽然本发明在本文中参考直立式平衡卡车来描述,但是对本领域技术人员来说将很显然,本发明及本发明的变体可以更一般性地应用于各种其它材料搬运车辆,包括包含单桅杆的驾驶者可达(rider reach)叉车,如在美国专利申请公开No.2010/0065377中所描述的,该申请的全部公开内容在此引入作为参考。本发明的实施例可以结合在其中的车辆10的不同类型包括手动车辆、半自主车辆和自主车辆。
桅杆组件30包括第一、第二和第三桅杆焊件32、34和36,其中第二焊件34套在第一焊件32中,而第三焊件36套在第二焊件34中。第一焊件32固定地耦合到卡车主体20。第二或中间焊件34能够相对于第一焊件32垂直移动。第三或内部焊件36能够相对于第一和第二焊件32和34垂直移动。
为了实现第二焊件34相对于第一焊件32的移动,第一和第二提升油缸(liftram)/汽缸组件35(在图1中只说明了第一个组件)耦合到第一和第二焊件32和34。链条35A(在图1中只说明了第一个组件的链条)固定到第一和第二提升组件的汽缸及第三焊件36,并且在耦合到对应的一个油缸的滑轮35B(在图1中只说明了第一个组件的滑轮)之上延伸,使得第一和第二提升组件的油缸的移动实现第三焊件36相对于第一和第二焊件32和34的移动。
叉架装置40耦合到第三焊件36,从而相对于第三级焊件36垂直移动。叉架装置40还与第三焊件36一起相对于第一和第二焊件32和34垂直移动。
在所说明的实施例中,叉架装置40包括第一和第二叉子42A和42B安装到其的叉架机制44。叉架机制44安装到到达机制(reach machanism)46,该到达机制46又安装到桅杆支架组件48。桅杆支架组件48可移动地耦合到第三焊件36。到达机制46包括缩放或剪刀结构46A,该结构实现叉架机制44以及第一和第二叉子42A和42B朝着和远离桅杆支架组件48和第三焊件36的移动。
叉架机制44包括支架支撑结构44A和叉架框44B。叉子42A和42B安装到叉架框44B。该叉架框44B耦合到支架支撑结构44A,用于相对于支撑结构44A横向和枢轴移动。侧移活塞/汽缸单元44C安装到支架支撑结构44A和叉架框44B,从而实现叉架框44B相对于支架支撑结构44A的横向移动。
仅在图1中示出的倾斜活塞/汽缸单元44D固定地附连到支架支撑结构44A并且与叉架框44B接触,用于实现叉架框44B相对于支架支撑结构44A的枢轴移动。
站在隔间22中的操作人员可以经舵盘(tiller)12控制卡车10行进的方向。操作人员还可以经多功能控制器14控制卡车10的行进速度、叉架装置和桅杆组件的延伸,以及第一和第二叉子42A和42B的倾斜和侧移。
根据本发明,提供了基于图像的托盘检测系统100,该系统用于在叉架装置40被升高和降低时重复地捕捉图像,识别图像帧中可能包括一个或多个托盘的一个或多个对象,确定这一个或多个对象中哪一个最有可能包括托盘,在多个帧中跟踪这一个或多个对象以便确定它们相对于叉架装置40的位置,并且生成并向位于车辆动力单元20上的车辆计算机50发送托盘位置信息。
系统100包括耦合到叉架框44B的图像分析计算机110、耦合到叉架框44B下部144B的光源120、耦合到叉架框44B下部144B的成像照相机130以及位于操作人员隔间22中以便致动系统100的触发器开关140。虽然有些安装位置可能比其它位置更加优选,但是成像照相机和灯可以位于叉子上面或下面。期望照相机随叉子侧移,但是不一定需要随叉子倾斜。不管照相机和灯如何安装,叉子都应当在视场的底部,以便给出关于正在接近的托盘的最大预警。在所说明的实施例中,成像照相机130和灯120在叉子的下面,见图1。计算机110可以位于卡车上任何位置。还有可能零件110、120和130可以组合到单个包装中,包括智能照相机。在所说明的实施例中,光源120包括近红外光源,这可以是例如一个或多个在叉子42A和42B移动时开启或者只在获得图像时才“脉动”开启的发光二极管(LED)。图像分析计算机110可以利用有线电缆或者无线地向车辆计算机50传送托盘识别和位置信息,使得车辆计算机50可以准确地在垂直和横向方向定位叉子42A和42B,如分别由Y轴和X轴定义的,见图1。
车辆和图像分析计算机50和110可以包括接收输入数据、通过计算机指令处理那种数据并且生成输出数据的任何种类的设备。这种计算机可以是手持式设备、膝上型或笔记本计算机、台式计算机、微型计算机、数字信号处理器(DSP)、大型机、服务器、手机、个人数字助理、其它可编程计算机设备,或者其任意组合。这种计算机还可以利用可编程的逻辑设备来实现,诸如现场可编程门阵列(FPGA),或者作为替代,实现为专用集成电路(ASIC)或类似的设备。术语“计算机”也要涵盖上述设备中两个或更多个的组合,例如,两个或更多个微型计算机。车辆和图像分析计算机50和110可以无线地或者硬连线地彼此连接。还预期计算机50和110可以组合成作为单个计算机。因此,本发明的各方面可以完全作为硬件、完全作为软件(包括固件、驻留软件、微代码等)或者以组合的软件和硬件实现来实现,本文一般称为“电路”、“模块”、“部件”或“系统”。此外,本发明的各方面还可以采取在一种或多种计算机可读介质中体现的计算机程序产品的形式,该计算机可读介质中包含计算机可读程序代码。
当操作人员希望拾起一个托盘P时,操作人员操纵车辆10,使得它直接定位在货架R上要拾起的期望托盘P的前面并在X方向与其大体横向对准,见图1。然后,操作人员经多功能控制器14的致动在Y方向垂直地升高叉子42A和42B至高于应当被忽略的最后一个托盘P的位置。在叉架装置40持续垂直移动的时候,图像分析计算机110使成像照相机130拍摄图像帧,诸如以10-30fps(帧/秒)的速率。如以下将更具体讨论的,图像分析计算机110分析图像,识别图像帧中的一个或多个对象,确定这一个或多个对象中哪一个最有可能包括托盘,在多个图像帧中跟踪这一个或多个对象,确定对象相对于世界坐标原点的位置并且生成并向车辆计算机50传送托盘位置信息。图像分析计算机110还可以无线地向车辆计算机50传送托盘位置信息,使得车辆计算机50可以准确地在垂直和横向方向定位叉子42A和42B,从而使得叉子42A和42B直接位于托盘中开口的前面。其后,操作人员只需要使叉架装置朝着托盘移动,使得叉子进入托盘开口。
在图3中,说明了具有底部和顶部托盘板200和202、第一和第二外部纵梁204以及中心纵梁208的托盘P。板200、202及纵梁204、206和208定义第一和第二叉子接纳开口210和212。托盘板200和202以及中心纵梁208还定义左下角214、右下角216、左上角218和右上角220。左下角214在本文中也称为中心纵梁208的左下角,而右下角216在本文中也称为中心纵梁208的右下角。
为了在成像照相机130拍摄的每个图像帧中识别一个或多个对象并且确定这一个或多个对象中哪一个最有可能包括托盘,假设照相机定向成或者向上或者直接向前看,或者在叉子的上面或者在叉子的下面,图像分析计算机110实现至少以下过程:识别灰度级图像中一个或多个托盘P的可能角落,见图4的过程230;确定包括从原点到对应灰度级图像中一个或多个可能托盘上一条或多条可能线的正交距离的第一和可选的第二Ro图像,见图4的过程232;尝试从第三组可能的左下角中每个可能的左下角跟踪水平和垂直线,以定义一组预审合格的左下角,见图4的过程234;对于每个预审合格的左下角,确定多条可能的线中哪一条最有可能是经过预审合格的左下角的实际线,见图4的过程236;并且尝试为找出实际线的每个预审合格的左下角识别一组右下角,见图4的过程238。还预期成像照相机可以位于叉子42A、42B上面,朝下而不是朝上看,当照相机位于叉子42A、42B下面时,朝上看。在这种实施例中,计算机110可以尝试从第三组可能的左上角中每个可能的左上角跟踪水平和垂直线,以定义一组预审合格的左上角,并且为每个预审合格的左上角确定多条可能的线中哪一条最有可能是经过预审合格的左上角的实际线。计算机110还可以尝试定位与每个左上角关联的第三组可能的右上角。
现在将参考图5描述用于识别图像中一个或多个托盘P的可能角落的过程230。在所说明的实施例中,定义从成像照相机130接收到的每个图像帧的数据包括灰度级数据。图像分析计算机110规格化灰度级数据,使其成为零均值数据,见图5中的步骤240。规格化的灰度级图像的创建可以通过计算灰度级图像中所有像素的均值,然后从每个个别的像素值减去那个均值来实现。因此,对应于托盘结构的规格化灰度级图像中的像素趋于具有正像素值,而规格化灰度级图像中的其它像素趋于具有负像素值。下文中所使用的术语“灰度级数据”和“灰度级图像”分别指“规格化的灰度级数据”和“规格化的灰度级图像”。然后,图像分析计算机110利用第一步进-边缘模板确定一组水平交叉相关结果,即水平交叉相关图像,见步骤242,在所说明的实施例中该第一步进-边缘模板包括:
T(x)=-1,-1,-1,-1,-1,-1,+1,+1,+1,+1,+1,+1
其中“-1”对应于开放区域,而“+1”对应于托盘上的结构。
利用第一步进-边缘模板T(x)和规格化的灰度级图像数据,图像分析计算机110根据以下单维规格化交叉相关公式确定水平交叉相关结果:
其中:
W(x)=第一步进-边缘模板的维度限制,即在所说明的实施例中是12;
fx=灰度级图像中单个点的灰度级强度值;
遍及(over)W(x)的强度值的平均;及
T(x)=第一步进-边缘模板。
水平交叉相关图像具有与其对应灰度级图像相同数量的像素,使得在灰度级图像和水平交叉相关图像中的像素位置之间存在一对一的对应性。水平交叉相关图像提供关于灰度级图像的一个区域与第一步进-边缘模板相似的信息,其中第一步进-边缘模板水平定位在该图像区域之上。利用具有-m至+n之间值的规格化灰度级图像数据,水平交叉相关图像中的每个像素都具有-1和+1之间的值,其中具有值-1的像素对应于模板和目标在其上定位的灰度级像素之间的完美失配,而具有值+1的像素对应于模板和目标在其上定位的灰度级像素之间的完美匹配。由此,在+1附近或等于+1的正水平交叉相关值对应于开放区域和相邻托盘结构之间的垂直界面,即开放区域在左边而托盘结构在右边,其中开放区域和托盘结构之间的界面在Y或垂直方向延伸。
图16A说明了规格化的灰度级图像,该图像说明了具有底部托盘板200和中心纵梁208的托盘P。图16B是对应于图16A中灰度级图像的水平交叉相关图像。在图16B中,区域1010具有正像素值而区域1020具有负像素值。区域1012具有在+1附近或等于+1的高幅值正值,使得它们可以对应于灰度级图像中开放区域与托盘的垂直朝向边缘之间的过渡。由此,区域1012A对应于托盘开口210和中心纵梁208的左表面208A之间的界面。
然后,图像分析计算机110利用第二步进-边缘模板确定一组垂直交叉相关结果,即垂直交叉相关图像,见步骤244,在所说明的实施例中该第二步进-边缘模板包括:
T(y)=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,+1,+1,+1,+1,+1,+1,+1,+1,+1,+1,+1,+1
其中“-1”对应于开放区域,而“+1”对应于托盘上的结构。
利用第二步进-边缘模板T(y)和图像灰度级数据,图像分析计算机110根据以下单维规格化交叉相关公式确定垂直交叉相关结果:
其中:
W(y)=该模板的维度限制,即在所说明的实施例中是24;
fy=灰度级图像中单个点的灰度级强度值;
遍及W(y)的强度值的平均;及
T(y)=第二步进-边缘模板。
垂直交叉相关图像具有与其对应灰度级图像相同数量的像素,使得在灰度级图像和垂直交叉相关图像中的像素位置之间存在一对一的对应性。垂直交叉相关图像提供关于灰度级图像的一个区域与第二步进-边缘模板相似的信息,其中第二步进-边缘模板垂直定位在该图像区域之上,使得负模板值垂直定位在正模板值之上。利用具有-m至+n之间值的规格化灰度级图像数据,垂直交叉相关图像中的每个像素都具有-1和+1之间的值,其中具有值-1的像素对应于模板T(y)和模板在其上定位的灰度级像素之间的完美失配,而具有值+1的像素对应于模板T(y)和模板在其上定位的灰度级像素之间的完美匹配。由此,处于+1的正垂直交叉相关值识别开放区域和相邻托盘结构之间的完美水平界面,即开放区域在托盘结构之上,其中开放区域和托盘结构之间的水平界面在X或水平方向延伸,而-1表示完全相反。
图16C是对应于图16A中灰度级图像的垂直交叉相关图像。在图16C中,区域1030具有正像素值而区域1040具有负像素值。区域1032具有高幅值正值,使得它们大体上对应于灰度级图像中开放区域与托盘的水平朝向边缘之间的过渡。由此,区域1032A对应于开放区域和底部托盘板200的上表面200A之间的界面。
如上所述,水平交叉相关图像和垂直交叉相关图像可以具有与规格化灰度级图像相同数量的像素。这意味着对应的水平和垂直交叉相关值是为灰度级图像中的每个像素计算的。作为替代,相应的交叉相关图像可以按这样一种方式计算,使得每个这种图像都具有比规格化灰度级图像更少的像素。
例如,成像照相机130可以配置为使得灰度级图像捕捉从基本上与第二或左边叉子42B的外边缘成一条直线的第一个点水平地延伸到基本上与第一或右边叉子42A的外边缘成一条直线的第二个点的视图。因而,在灰度级图像中存在一个可以被描述为“在叉子42A和42B之间的”内部区域。就是在叉子之间的这个区域中搜寻角落。
示例性的灰度级图像可以具有480列和752行的像素。如果用于这个灰度级图像的原点定义为左上角像素位置,则最左边的一列像素具有x坐标值“1”并且最右边的一列像素具有x坐标值“480”。类似地,在垂直方向,最顶部的一行像素可以具有y坐标值“1”并且最底部的一行像素可以具有y坐标值“752”。对于灰度级图像,x坐标的左极限可以选择成对应于基本上与左边叉子42B的内边缘成一条直线的点;而x坐标的右极限可以选择成对应于基本上与右边叉子42A的内边缘成一条直线的点。灰度级图像中其x坐标在所述左和右极限之间的像素被认为是“在叉子之间”。例如,左极限可以是“80”,而右极限可以是“400”,但是,在不背离本发明范围的情况下,可以代替地选择其它值。
因而,在以上关于计算水平交叉相关图像和垂直交叉相关图像的描述中,计算可以局限于仅位于叉子之间的那些像素,使得水平交叉相关图像和垂直交叉相关图像中每个都具有比灰度级图像更少列的像素。
接下来,图像分析计算机110利用第一角落模板、水平交叉相关结果和垂直交叉相关结果来确定对应于一个或多个托盘的第一组可能的第一角落(即,左下角的图像)的像素值,见图5中的步骤246。在所说明的实施例中,可能的第一角落包括一个或多个托盘的可能的左下角。第一角落模板300由对应于托盘左下角的MxN窗口定义,在所说明的实施例中是3x3窗口,见图6。
计算机110在所述水平或第一交叉相关结果集合或图像290以及所述垂直或第二交叉相关结果集合或图像292之上同时滑动第一角落模板300,从而为左下角图像确定像素值,见图6A。更具体而言,第一角落模板300位于水平和垂直交叉相关之上,使得来自每个相关的所需值可以被检索。因而,像素位置304在第一和第二交叉相关图像中相似定位的像素之上移动。当模板像素位置304顺序地在第一交叉相关图像中的每个像素以及第二交叉相关图像中相似定位的像素之上移动时,为左下角图像定义用于那个像素位置的像素值ScoreLowerLeftCorner。在第一角落模板300的每次放置过程中,计算机110把对应的水平交叉相关结果或像素值,即在水平交叉相关图像中具有对应位置的像素值,放到外部垂直列301的第一和第二像素301A和301B中,并且把对应的垂直交叉相关结果或像素值,即在垂直交叉相关图像中具有对应位置的像素值,放到外部水平行302的第一和第二像素302A和302B中,见图6。没有值放到像素303中。然后,计算机110确定像素301A、301B、302A和302B的最低或最小值,其中该最小值是模糊逻辑AND,并且把那个最低或最小值分配给位于垂直和水平列301和302的交点的像素304,见图6,像素304应当具有-1和+1之间的值。接近“-1”和“+1”的值指示像素具有定义灰度级图像中托盘上的结构与开放区域之间或者反过来的过渡的很大可能性。接近“0”的值指示像素具有规格化灰度级图像的定义对应于连续托盘结构或连续开放区域的连续区域的很大可能性。如以下所指出的,当图像分析计算机110尝试找出具有+1附近的值的像素时,接近“0”的值通常被忽略。分配给像素304的值也被分配给左下角图像中的对应像素位置,即来自像素304的值分配给左下角图像中与第一和第二交叉相关图像每一个当中模板像素位置304在其上定位的像素位置对应的像素位置。结果产生的左下角图像中的像素定义对应于第一组可能的第一或左下角的第一组像素。在一个实施例中,左下角图像中第一组像素的个数等于灰度级图像、水平交叉相关图像和垂直交叉相关图像中每一个当中的像素个数。作为替代,类似于以上关于交叉相关图像所描述的技术,左下角图像中像素值的确定可以局限于仅叉子之间(即,如上所述,左极限和右极限之间)的那些像素位置。在这种情况下,左下角图像、垂直交叉相关图像和水平交叉相关图像都将具有相同数量的像素,但是这个数量将小于灰度级图像中的像素数量。
对于落在水平和垂直交叉相关结果或图像290和292的边界外面的垂直列第一和第二像素301A和301B以及水平列第一和第二像素302A和302B中的一个或多个,计算机110通过在那些像素中每一个当中放置0来“填满(pad out)”水平和垂直交叉相关结果或图像290和292。由此,在图6A所说明的例子中,0放在像素301A和302A中。
为了减少第一角落像素的数量,图像分析计算机110比较第一组像素中每个像素的值与第一阈值,诸如在所说明的实施例中是0.5,见图5中的步骤248。该第一组中其值小于第一阈值的所有像素都被消除,即用于每个被消除的像素的值都变成0。所有剩余的像素,即其值等于或大于第一阈值的那些像素,定义对应于第二组可能的第一角落的第二组像素。其值小于0.5的像素被认为不可能是第一角落,因为接近+1的像素指示左边开放区域和右边托盘结构之间的垂直界面或者上部开放区域和下部托盘结构之间的水平界面。
为了进一步减少第一角落像素的数量,图像分析计算机110在第二组像素上递归地滑动局部最大值定位窗口,例如,MxM窗口,其中M等于或大于3,并且在窗口的每次放置从第二组像素消除除具有最大值的像素之外的所有像素。更具体而言,最大值定位窗口的行为是就好像它被顺序移动,使得最大值定位窗口的中心像素位于第二组像素中的每个像素之上。在最大值定位窗口的每次定位过程中,除具有最大值的像素之外的所有像素都被消除(即,设置成“0”)。在窗口已经在第二组像素中的所有像素之上顺序移动之后,剩余的像素定义对应于第三组可能的第一角落的第三组像素,见图5中的步骤250。但是,在实践当中,完全相同的结果可以利用少得多的计算复杂性获得。
图6C-6E说明了用于移动5×5窗口以便例如识别第二组像素值具有最大值的像素的有效方法的顺序。在图6C中,仅仅绘出了包括第二组像素的大图像的一部分。特别地,图6C的图像部分702是11列×6行的像素,其中每个像素都具有如前所述利用3×3角落模板确定的值,其中一些具有大于第一阈值0.5的值。图6C-6E包括图像部分702的一系列“快照”,以说明,为了有效地定位最大值像素,5×5的窗口如何迭代移动。图像部分702的每个快照对应于移动5×5窗口704的迭代步进;步进号位于左列706中。
首先,如第一个快照中所绘出的,5×5窗口704放在图像部分702的左上角中。图像部分702的左上角可以把其x坐标位置放在对应于灰度级图像最左边的列的位置。但是,如果图像分析计算机110对左下角图像的处理局限于“叉子之间的”那些像素,则图像部分702的左上角的x坐标位置由用于x坐标的左极限的值(例如,80)来确定。评估了25个像素,确定在位置(2,2)的具有值0.95的像素是最大值像素。5×5的窗口704中所有其它像素的值都设置成零。保留最大值像素的位置和值,以备后用。
然后,5×5窗口704向右移动一个像素,如第二个快照中所示出的。5×5窗口704的四个最左边的列708具有,如果存在的话,除最大值之后全都为零的像素。因而,在“步进2”中,最右边的列710中的5个值进行比较,以确定是否有任何一个大于先前识别出的最大值,其中假定先前识别出的最大值在5×5窗口704的界限内。在这第二个快照中,先前识别出的最大值在窗口704的界限内。由此,最右边的列710中的5个值与0.95,即先前识别出的最大值,进行比较。没有必要考虑四个最左边的列708中剩余的19个像素的值。在这种情况下,最右边的列710中没有像素大于0.95。因为最大值的位置(例如,像素(2,2))位于5×5窗口704的跨度内,所以列710中的所有像素都设置成零并且最大值像素的值和位置保持相同。
在第三个快照中,5×5窗口704再次向右移动一列。最右边的列710当前放置中的像素不对照先前识别出的最大值进行评估,因为它不再处于位于5×5窗口704中。在这个快照中,最右边的列710中的像素仅彼此之间进行比较。在这些条件下,位于位置(7,1)的像素变成具有值0.8的新最大值像素。
当5×5窗口704再次向右移动一个像素时,第四个快照发生。在这种情况下,最右边的列的当前放置中没有像素大于当前的最大值。因为当前的最大值像素也在5×5窗口704的边界内,所以最大值像素位置和像素值保持不变。另外,最右边的列中的所有像素都设置成零。
第五和第六步进发生,以便产生在图6D的第五和第六个快照中示出的5×5窗口704。在第六步进中,最右边的列与图像部分702的列10对准。在这一列中,在位置(10,5)存在大于当前最大值“0.8”的像素并且当前最大值仍然位于5×5窗口704的边界内(例如,像素(7,1))。在这些条件下,发生以下变化:之前的最大值像素位置(7,1)设置成零,当前的最大像素值被识别为“1”并且当前的最大像素值位置被识别为(10,5)。
在下一次迭代中,5×5窗口704位于图像部分702最右边的部分。最终,5×5窗口704将到达最右边的列710与完整图像最右边的列对准的点。一旦发生这种情况,移动窗口704的下一次迭代就将产生图6D底部快照中所示的窗口放置。换句话说,当到达图像最右边的边缘时,5×5窗口704返回到图像最左边的边缘但是向下偏移一行。如果图像分析计算机110对左下角图像的处理局限于“叉子之间的”那些像素,则图像部分702最右边的列的x坐标位置由用于x坐标的右极限的值(例如,400)确定。
当放置5×5窗口704时,如图6D底部快照中所示,使得其最左边的列与图像最左边的列对准(这可以由用于x坐标的左极限(例如,80)来确定),所关心的像素不是窗口704最右边的列,而是最底部的行712。再调用(recall)最初保存的位于位置(2,2)的最大值“0.95”,最底部行712中的像素与其进行比较,看是否有任何一个像素大于那个最大值,其中假定先前的最大值像素位于5×5窗口704的当前边界内。在这种情况下,不存在大于“0.95”的像素,这将使最底部行712中的所有像素都被设置成零。因而,最大值仍然是位于位置(2,2)的“0.95”,而且这个信息再次保存,使得它可以在5×5窗口704一旦再次返回图像最左边的列时使用。
在下一次迭代中,5×5窗口704向右移动一个像素并且焦点返回到最右边的列710中的像素。这些像素与当前的最大值和像素位置进行比较,以确定什么像素可能需要修改。窗口704的移动像前面一样继续,直到5×5窗口到达图像最底部和最右边的像素。在那个时候,存在定义第三组可能的第一角落的像素矩阵,该矩阵具有与左下角图像相同的维度,并且具有非零值的每个像素都具有代表该像素对应于规格化灰度级图像中托盘结构的可能的左下角的置信得分的值。
接下来,图像分析计算机110利用第二角落模板、水平交叉相关结果和垂直交叉相关结果确定对应于一个或多个托盘的第一组可能的第二角落(即,右下角的图像)的像素值,见图5中的步骤252。在所说明的实施例中,可能的第二角落包括右下角。第二角落模板310由对应于托盘右下角的SxT窗口定义,在所说明的例子中是3x3窗口,见图7。
计算机110在所述水平交叉相关结果集合以及所述垂直交叉相关结果集合之上同时滑动第二角落模板310,从而为右下角图像定义像素值,ScoreLowerRightCorner。更具体而言,第二角落模板310位于水平和垂直交叉相关之上,使得来自每个相关的所需值可以被检索。因而,像素位置312C在第一和第二交叉相关图像中相似定位的像素之上顺序移动,见图7。当模板像素位置312C顺序地在第一交叉相关图像中的每个像素以及第二交叉相关图像中相似定位的像素之上移动时,为右下角图像定义用于那个像素位置的像素值。在第二角落模板310的每次放置过程中,计算机110把对应的水平交叉相关结果或像素值,即在水平交叉相关图像中具有对应位置的像素值,放到中心垂直列311的第一和第二像素311A和311B中,并且把对应的垂直交叉相关结果或像素值,即在垂直交叉相关图像中具有对应位置的像素值,放到外部水平行312的第一和第二像素312A和312B中。计算机110还使添加到第一和第二像素311A和311B的值求反(negate)。水平交叉相关图像中接近-1的值对应于左边的托盘结构和右边的开放区域之间的界面。通过使第一和第二像素311A和311B中的值求反,水平交叉相关图像中的高幅值负值被转换成高幅值正值。由此,左边的托盘结构和右边的开放区域之间的垂直过渡由该高幅值的正值定义,这在以如下所讨论的方式找出第五和第六组像素时是有利的。没有值放到像素313中。然后,计算机110确定像素311A、311B、312A和312B的最低或最小值,其中该最小值是模糊逻辑AND,并且把那个最低或最小值分配给位于水平行312的像素312C,见图7。像素312C中的结果值应当具有-1和+1之间的值。接近“-1”和“+1”的值指示像素具有定义灰度级图像中开放区域与托盘上的结构之间或者反过来的过渡的很大可能性。接近“0”的值指示像素具有定义规格化灰度级图像的对应于连续托盘结构或连续开放区域的连续区域的很大可能性。在一种实施例中,分配给像素312C的值也分配给位于右下角图像中对应的像素位置。作为替代,类似于以上关于左下角图像所描述的技术,右下角图像中像素值的确定可以局限于仅叉子之间(即,如上所述,左极限和右极限之间)的那些像素位置。在这种情况下,右下角图像、垂直交叉相关图像和水平交叉相关图像将全都具有相同数量的像素,但是这个数量将小于灰度级图像中像素的数量。结果产生的右下角图像中的像素定义对应于第一组可能的第二或右下角的第四组像素。右下角图像中第四组像素的数量等于灰度级图像、水平交叉相关图像和垂直交叉相关图像中每一个当中的像素数量。
图像分析计算机110比较第四组像素中每个像素的值与第二阈值,诸如0.5,见图5中的步骤254。所有其值小于该第二阈值的可能的第二角落像素都被消除,即用于每个被消除的第二角落像素的值都变成0。所有剩余的第二角落像素,即其值等于或大于第二阈值的那些像素,定义对应于第二组可能的第二角落的第五组像素。其值小于0.5的像素被认为不可能是第一角落,因为接近+1的像素指示左边托盘结构和右边开放区域之间的垂直界面或者上部开放区域和下部托盘结构之间的水平界面。
图像分析计算机110递归地在第五组像素之上滑动局部最大值定位窗口,例如MxM窗口,其中M等于或大于3,并且在窗口的每次放置消除除具有最大值的像素之外的所有像素,使得定义对应于第三组可能的第二角落的第六组像素,见图5中的步骤256。更具体而言,最大值定位窗口顺序移动,使得最大值定位窗口的中心像素位于第五组像素中的每个像素之上。在最大值定位窗口的每次定位过程中,第五组像素中除具有最大值的像素之外的所有像素都被消除。剩余的像素定义对应于第三组可能的第二角落的第六组像素,以上关于图6C-6E讨论的确定对应于第三组可能的第一角落的第三组像素的方法可以用于定义对应于第三组第二角落的第六组像素。
如以上所指出的,在进一步预期的实施例中,成像照相机可以位于叉子42A、42B之上,朝下看而不是朝上或向前看。在这种实施例中,计算机110可以尝试定位多个可能的左上角和多个可能的右上角,而不是定位可能的左下角和右下角。
图像分析计算机110利用第三角落模板500、水平交叉相关结果和垂直交叉相关结果确定对应于一个或多个托盘的第一组可能的左上角的像素值,见图6B。第三角落模板500在所说明的实施例中由对应于托盘左上角的3x3窗口定义。
计算机110在所述水平交叉相关结果集合以及所述垂直交叉相关结果集合之上同时滑动第三角落模板500,从而为左上角图像定义像素值。更具体而言,第三角落模板500位于水平和垂直交叉相关之上,使得来自每个相关的所需值可以被检索。因而,像素位置501在第一和第二交叉相关图像中相似定位的像素之上顺序移动,见图6B。当模板像素位置501顺序地在第一交叉相关图像中的每个像素以及第二交叉相关图像中相似定位的像素之上移动时,为左上角图像定义用于那个像素位置的像素值。在第三角落模板500的每次放置过程中,计算机110把对应的水平交叉相关结果或像素值,即在水平交叉相关图像中具有对应位置的像素值,放到外部垂直列504的第一和第二像素503A和503B中,并且把对应的垂直交叉相关结果或像素值,即在垂直交叉相关图像中具有对应位置的像素值,放到中间水平行506的第一和第二像素505A和505B中。计算机110还使添加到第一和第二像素505A和505B的值求反。然后,计算机110确定像素503A、503B、505A和505B的最低或最小值,并且把那个最低或最小值分配给垂直行504的像素501,见图6B。像素501中的结果值应当具有-1和+1之间的值。结果左上角图像中的像素定义对应于第一组可能的左上角的第一组像素。
图像分析计算机110比较第一组左上角像素中每个像素的值与第三阈值,诸如0.5。所有其值小于该第三阈值的可能的左上角像素都被消除,即用于每个被消除的左上角像素的值都变成0。所有剩余的左上角像素,即其值等于或大于第三阈值的那些像素,定义对应于第二组可能的左上角的第二组像素。
图像分析计算机110递归地在第二组左上角像素之上滑动局部最大值定位窗口,例如MxM窗口,其中M等于或大于3,并且在窗口的每次放置消除除具有最大值的像素之外的所有像素,使得定义第三组左上角像素。
图像分析计算机110利用第四角落模板520、水平交叉相关结果和垂直交叉相关结果确定对应于一个或多个托盘的第一组可能的右上角的像素值,见图7A。第四角落模板520在所说明的实施例中由对应于托盘右上角3x3的窗口定义。
计算机110在所述水平交叉相关结果集合以及所述垂直交叉相关结果集合之上同时滑动第四角落模板520,从而为右上角图像定义像素值。更具体而言,第四角落模板520位于水平和垂直交叉相关之上,使得来自每个相关的所需值可以被检索。因而,像素位置521在第一和第二交叉相关图像中相似定位的像素之上顺序移动,见图7A。当模板像素位置521顺序地在第一交叉相关图像中的每个像素以及第二交叉相关图像中相似定位的像素之上移动时,为右上角图像定义用于那个像素位置的像素值。在第四角落模板窗口520的每次放置过程中,计算机110把对应的水平交叉相关结果或像素值,即在水平交叉相关图像中具有对应位置的像素值,放到外部垂直列524的第一和第二像素523A和523B中,并且把对应的垂直交叉相关结果或像素值,即在垂直交叉相关图像中具有对应位置的像素值,放到中间水平行526的第一和第二像素525A和525B中。计算机110还使添加到垂直列524和水平行526中的第一和第二像素523A、523B和525A、525B的值求反。然后,计算机110确定像素523A、523B、525A和525B的最低或最小值,并且把那个最低或最小绝对值分配给垂直行524的像素521,见图7A。结果右上角图像中的像素定义对应于第一组可能的右上角的第一组像素。
图像分析计算机110比较第一组右上角像素中每个像素的值与第四阈值,诸如0.5。所有其值小于该第四阈值的可能的右上角像素都被消除,即用于每个被消除的右上角像素的值都变成0。所有剩余的右上角像素,即其值等于或大于第四阈值的那些像素,定义对应于第二组可能的右上角的第二组像素。
图像分析计算机110递归地在第二组右上角像素之上滑动局部最大值定位窗口,例如MxM窗口,其中M等于或大于3,并且在窗口的每次放置消除除具有最大值的像素之外的所有像素,使得定义第三组右上角像素。
在以上对不同图像分析和图像操纵步骤的描述当中,存在在步进过程中所考虑和使用的像素列局限于被认为“在叉子之间的”那些像素列的情况。以类似的方式,在这些步进中的一些当中所考虑和使用的像素行的个数也可以减少。例如,如果灰度级图像具有752行像素,则不是所有这些像素行都需要对前面所描述的所有图像分析和操纵步骤使用和/或考虑。
作为一个例子,只有500行像素可以使用,而其它的252行像素被忽略。如果叉架装置40向上移动,则只有灰度级图像顶部的500行像素可以用于上述角落发现和类似步骤。相反,如果叉架装置40向下行进,则图像底部的500行像素可以被认为是与分析相关的。因而,车辆计算机50可以向图像分析计算机110指示叉架装置40行进的方向。利用这种信息,图像分析计算机110可以确定要为各种图像分析和操纵步骤使用的像素行的垂直跨度。
以上所述的角落发现过程涉及可以是例如480(列)x752(行)像素的规格化的灰度级图像,或者,作为替代,涉及可以是灰度级图像中例如321(列)x752(行)像素或者甚至321(列)x500(行)像素的有限的图像区域。因为对于每个像素,所述计算当中许多都执行一次,或者有可能两次,所以依赖于所使用的图像分析计算机110的类型,计算负担可能相当高。在尝试识别托盘对象时用于评估和分析规格化灰度级图像的计算步骤可以通过使用多种技术来减少。特别地,图像金字塔的概念可以用于减少在识别托盘对象的过程的特定步骤被分析的图像中的像素数量。
例如,如果规格化的灰度级图像包括480x752像素并且被认为是图像金字塔的基本图像,则可以定义具有较粗分辨率的中间层图像,并且可以定义具有甚至更粗分辨率的顶层图像。例如,可以通过使用2x2窗口以便把基本图像的四个像素求平均来创建低通和次采样的中间层图像,以便给中间层图像中的一个像素生成像素值。参考图6F,说明了基本图像720以及2x2窗口724用于在基本图像720的一个区域中选择4个像素。窗口724中这四个像素的值可以求平均并且那个值被放在中间层图像722的像素726中。其结果是创建了具有基本图像1/4像素数量的中间层图像722。这个相同的过程可以对中间层图像722执行,以创建图像金字塔的顶层图像。这个顶层图像将具有基本图像的1/16像素数量。利用上述对基本图像的示例尺寸,中间层图像将是240x376像素,
而顶层图像将是120x188像素。
前面所述用于创建垂直交叉相关图像和水平交叉相关图像的过程可以应用到具有减少的像素数量的顶层图像,以便减少定位第一组可能的左或右角落的计算负担。如前所述,第一步进-边缘模板T(x)具有12个元素的尺寸,而第二步进-边缘模板T(y)具有24个元素的尺寸。在把这些各个模板应用到顶层图像时,它们的大小可以调整,使得每个模板具有6个元素。因而:
T(x)top-level=-1,-1,-1,+1,+1,+1
T(y)top-level=-1,-1,-1,+1,+1,+1
利用这些模板,水平交叉相关图像和垂直交叉相关图像如前面所描述的那样生成,使得结果产生的图像每个都具有与顶层图像相同数量的像素。第一角落模板300如前面一样在垂直和水平交叉相关图像之上滑动,以便为顶层左下角图像计算每个像素值。如前面一样,顶层左下角图像中保持非零值的像素的数量可以通过把其值小于阈值(例如,0.5)的任何像素归零并且利用5x5或其它尺寸的窗口识别局部最大值像素以归零其它像素来减少。
在顶层左下角图像中保留的像素(即,非零像素)代表可能对应于规格化灰度级图像中托盘左下角的一组像素。来自顶层左下角图像的这些像素位置中每一个都被进一步分析,以便更具体地确定左下角的可能位置。
首先,顶层图像中的每个像素位置都变换成中间层图像中的对应像素位置。虽然较低分辨率图像中的一个像素位置对应于较高分辨率图像中布置在2x2矩阵中的四个不同像素位置,但是,由于2x2平均不是完美的,仍然有假象,因此定义更大的6x6搜索区域。在较低分辨率图像(例如,顶层图像)中定义的一个像素位置允许计算6x6搜索区域的36个像素的位置。例如,假设如前所述的像素坐标系统,金字塔下一层中6x6的搜索区域的左上角可以根据下式变换:
xhigher-res=(xlower-res-1)*2-2
yhigher-res=(ylower-res-1)*2-2
如果使用图6F的图像部分,则较低分辨率图像中的像素位置(53,53)变换成较高分辨率图像中的像素位置(102,102),这意味着较高分辨率图像中的6x6搜索区域723包括向右向下的36个像素,并且包括像素(102,102)。
顶层左下角图像中每个可能的左下角位置可以变换成中间层图像中的36像素搜索区域。图6G说明了中间层图像中的任意36像素搜索区域732。
集合732中的这36个像素将用于再一次创建水平和垂直交叉相关图像,应用角落模板300,然后只在该6x6区域上保留最大值角落。由于角落模板的形状(见图6),需要集合732左边两个附加的列736用于垂直相关,并且需要集合732上面两个附加的行734用于水平相关。
如前面一样,水平步进-边缘模板应用到适当的像素,以生成水平交叉相关图像,并且垂直步进-边缘模板应用到适当的像素,以生成垂直交叉相关图像。在把这些各个模板应用到中间层图像的像素时,它们的大小可以被调整,使得每个模板具有12个元素。因而:
T(x)mid-level=-1,-1,-1,-1,-1,-1,+1,+1,+1,+1,+1,+1
T(y)mid-level=-1,-1,-1,-1,-1,-1,+1,+1,+1,+1,+1,+1.
由于图6角落模板302构建的方式,不是图6G的所有60个像素都既需要计算水平交叉相关值又需要计算垂直交叉相关值。例如,对于734的两行中的像素位置,垂直交叉相关值是不必要的并且来自最右边的列738中像素的垂直交叉相关值也不使用。类似地,对于最底部的行740或两列736中的像素,水平交叉相关值是不必要的。因而,有42个利用以上模板T(x)mid-level生成的水平交叉相关值和42个利用以上模板T(y)mid-level生成的垂直交叉相关值。水平和垂直交叉相关值以与前面相同的方式使用,如关于图6所描述的,以便为图6G的集合732的36个像素位置计算左下角值。
不是利用滑动窗口技术在36个像素中定义多于一个局部最大值,而是从这36个像素中选择具有最大值的一个像素并且忽略所有其它像素。中间层图像中识别出的像素位置对应于基本图像中隐含地参考基本图像的4个像素的一个像素位置。
以上关于从顶层图像到中间层图像变换所述的步骤重复,但是现在是用于把一个像素位置从中间层图像变换到基本图像。利用与上述完全相同的步骤,来自中间层图像的单个像素位置用于识别基本图像中可能对应于左下角的单个像素位置。可以实现的一个变化是,当基于基本图像像素计算水平和垂直交叉相关图像时,可以使用原始的步进-边缘模板T(x)和T(y)。
因而,在顶层图像中识别出可能的左下角位置。这个像素位置用于在中间层图像中选择像素的子集。这个像素子集被进一步分析,以识别基本图像的一个像素位置作进一步的分析。
上述过程对顶层左下角图像中首先识别出的每个可能的左下角重复。其结果是规格化的灰度级图像中可能对应于托盘左下角并且等效于并且代替第三组可能的第一角落使用的一组一个或多个像素位置。此外,对于这些位置当中的每一个,以下讨论的左下角得分,ScoreLowerLeftCorner,已经在图6掩码的应用过程中计算出来并保留。
以上确定可能的托盘左下角的描述涉及使用具有480x752像素维度的规格化灰度级图像中的所有像素。如前面所指出的,可以有为x坐标值定义的左极限和右极限,使得只有在灰度级图像被认为“在叉子之间的”区域中的像素才在这种确定中使用。类似地,也可以有为y坐标值定义的上极限和下极限,使得只有在灰度级图像顶部或底部附近区域中的像素才在这种确定中使用。
在有些情况下,成像照相机130可以包括电荷耦合设备(CCD)或者互补金属氧化物半导体(CMOS)照相机。这种照相机可以具有执行像素装仓(binning)的能力。在CCD照相机中,当光落到每个像素上时,为那个像素位置累计电荷。为一个像素所累积的电荷量对应于那个像素的值并且在显示结果产生的图像时由彩色或灰度级表示。利用像素装仓,CCD照相机可以组合为多个像素累积的电荷值,以达到用于一组像素的单个像素值。虽然装仓允许对光增加的灵敏度,但是结果产生的图像的分辨率减小了。
装仓通常被称为2x2或4x4装仓,并且这是指仓尺寸的水平和垂直维度。例如,2x2装仓包括4个像素的方形分组。在本发明的实施例中,具有480x752像素的CCD照相机可以与2x2像素装仓一起使用,例如,以获得尺寸为240(列)x376(行)像素的图像。这些图像可以与以上关于把一个或多个模板应用到垂直和水平交叉相关图像以便识别灰度级图像中托盘的可能左下角和其它属性所述的技术一起使用。利用图像金字塔进行分析的技术也可以与这些具有较少像素的图像一起使用。但是,在金字塔中只具有两个不同的图像尺寸可能是有利的。例如,基本图像的尺寸可以是240x376像素,而顶层图像的尺寸可以是120x188。
但是,当利用具有较少像素的图像时,以上所述的技术的有些方面可能需要修改。例如,如果使用240x376像素的图像尺寸,则被认为“在叉子之间的”列可以定义为具有不同的左极限值和不同的右极限值。而且,用于所考虑的图像行的上极限和下极限值也可以不同。例如,对于较小的图像尺寸,左极限可以是40,而右极限可以是200。因而,只有位于列40至200中的像素将被认为“在叉子之间”。而且,如果叉架装置40向上行进,则只有图像顶部的250行可以在分析过程中考虑。相反,如果叉架装置40向下行进,则只有图像底部的250行可以在分析过程中考虑。
可以使用类似的过程,但是利用图7的适当掩码,来识别规格化的灰度级图像中一组可能的右下角位置,连同对应的右下角得分,ScoreLowerRightCorner,如下讨论。
现在将参考图8来描述用于确定第一或左Ro图像和第二或右Ro图像的过程232,其中第一或左Ro图像提供对应灰度级图像中从原点到一个或多个可能托盘上的一条或多条可能的左边垂直线和一条或多条可能的水平线的正交距离,而第二或右Ro图像提供对应灰度级图像中从原点到一个或多个可能托盘上的一条或多条可能的右边垂直线和一条或多条可能的水平线的正交距离。虽然左和右Ro图像都可以包括对应于更多或更少水平线离原点的偏移量的像素,但是第一Ro图像还可以包括对应于左边垂直线,即定义左边开放区域和右边托盘结构之间垂直界面的线,离原点的偏移量的像素,这些像素具有大于0的值。第二Ro图像还可以包括对应于右边垂直线,即定义左边托盘结构和右边开放区域之间垂直界面的线,离原点的偏移量的像素,这些像素具有大于0的值。
首先,通过用第一卷积内核卷积来自给定图像帧的灰度级图像,图像分析计算机110确定水平梯度图像,见图8中的步骤260。这第一卷积内核G在所说明的实施例中包括:
G=0.0854,0.3686,0.8578,0.9079,0,-0.9079,-0.8578,-0.3686,-0.0854,其中G作为高斯函数的一阶导数来计算,其展开值选择成削弱图像噪声。例如,选择σ=2的展开值削弱了灰度级图像中的噪声。以下所示的简化高斯函数的一个例子是用展开值的平方去除负的索引x的平方的指数。然后,这个简化的高斯函数被修改,以产生梯度内核G(x),使得该内核的峰值为+1并且其最小值为-1。
因而,从以下简单的高斯公式开始
在x上的一阶导数计算为:
这个导函数的峰值发生在
并且这个导函数在这些点的幅值为
通过用这个幅值去除导函数,该导函数可以被修改成使得其最大值为+1而其最小值为-1。执行除法生成用于梯度内核G(x)的公式
计算机110通过利用第一滑动窗口SW1,见图9,评估下面的卷积公式来确定水平梯度图像,该滑动窗口具有等于第一卷积内核G的元素个数的水平相邻单元数,其中第一滑动窗口SW1定位成使得每个单元都对应于沿规格化灰度级图像特定一行的一部分的相应的像素位置。用于为水平梯度图像的每个像素计算值的卷积公式包括:
其中:
j=灰度级图像中特定的像素列位置,其中,对于卷积公式,j的值在特定行部分中的第一个像素列位置和该特定行部分中的最后一个像素列位置之间变动;
u(j)=具有j列位置的规格化灰度级图像中特定行部分中的像素值;
k=第一滑动窗口在其上居中的规格化灰度级图像的像素列位置;
(k-j)=用于第一卷积内核的索引值,当j以增加的方式变化时,这个索引值从对应于第一卷积内核的最后一个元素的最高索引值到对应于第一卷积内核的第一个元素的最低索引值变动;及
v(k-j)=第一卷积内核位于索引值(k-j)的特定元素的值。
参考图9,提供了以上卷积公式如何被评估以便找出水平梯度图像中的列100、行1像素值的例子。滑动窗口SW1示为在规格化灰度级图像中的列位置100居中并且定位成使得该滑动窗口的每个单元都对应于沿规格化灰度级图像特定行,即图9例子中的行1,一部分,即图9例子中的像素列位置96-104,的相应像素位置。由此,滑动窗口SW1具有从96延伸到104的像素列位置值。当卷积公式被评估以找出列100、行1像素值时,滑动窗口SW1向右偏移一个像素,使得它将具有从97延伸到105的像素列位置值。在图9所说明的例子中,计算出用于水平梯度图像中的列100、行1像素的值等于0.257。
水平梯度图像将具有与对应灰度级图像相同数量的像素,使得在灰度级图像和水平梯度图像中的像素位置之间存在一对一的对应性。水平梯度图像中的像素测量当在灰度级图像中水平移动时并且被开放区域和托盘结构之间的垂直界面造成的灰度级图像中对应位置的强度的变化。例如,如果8位用于代表每个像素值,则水平梯度图像中的像素可以具有从大约-27到大约+27的值。依赖于被分配来代表像素值的位数,可能的最小值和最大值的范围当然也将变化。接近零的值对应于连续区域,即连续的托盘结构或开放区域;左边托盘结构与右边开放区域之间的垂直界面将导致比零小得多的梯度值,而左边开放区域与右边托盘结构之间的垂直界面将导致比零大得多的梯度值。在图16D中,示出了对应于图16A中灰度级图像的水平梯度图像。在图16D中,第一区域1100对应于接近0的像素值,第二区域1102对应于比零小得多的像素值,第三区域1104对应于比零大得多的像素值,而第四区域1106对应于比零大很多(substantially greater than zero)的像素值。
接下来,通过用第二卷积内核卷积来自给定图像帧的灰度级图像,图像分析计算机110确定垂直梯度图像,见图8中的步骤262,在所说明的实施例中,第二卷积内核与第一卷积内核相同。如以上所指出的,第一卷积内核G包括:
G=0.0854,0.3686,0.8578,0.9079,0,-0.9079,-0.8578,-0.3686,-0.0854
计算机110通过利用第二滑动窗口评估下面的卷积公式来确定垂直梯度图像,该滑动窗口具有等于第二卷积内核的元素个数的垂直相邻单元数,其中第二滑动窗口定位成使得每个单元都对应于沿规格化灰度级图像特定一列的一部分的相应的像素位置。用于为垂直梯度图像的每个像素计算值的卷积公式包括:
其中:
c=灰度级图像中特定的像素行位置,其中,对于卷积公式,c的值在特定列部分中的第一个像素行位置和该特定列部分中的最后一个像素行位置之间变动;
u(c)=具有c行位置的规格化灰度级图像中特定列部分中的像素值;
d=第二滑动窗口在其上居中的规格化灰度级图像的像素行位置;
(d-c)=用于第二卷积内核的索引值,当c以增加的方式变化时,这个索引值从对应于第二卷积内核的最后一个元素的最高索引值到对应于第二卷积内核的第一个元素的最低索引值变动;及
v(d-c)=所述第二卷积内核位于索引值(d-c)的特定元素的值。
参考图10,提供了以上卷积公式如何被评估以找出垂直梯度图像中的列1、行7像素值的例子。滑动窗口SW2示为在规格化灰度级图像中的行位置7居中并且定位成使得该滑动窗口的每个单元都对应于沿规格化灰度级图像特定列,即图10例子中的列1,一部分,即图10例子中的像素行位置3-11,的相应像素位置。由此,滑动窗口SW2具有从3延伸到11的像素行位置值。当卷积公式被评估以便找出列1、行8像素值时,滑动窗口SW2向下偏移一个像素,使得它将具有从4延伸到12的像素行位置值。在图10所说明的例子中,计算出用于垂直梯度图像中的列1、行7像素的值等于-1.23。
垂直梯度图像将具有与对应灰度级图像相同数量的像素,使得在灰度级图像和垂直梯度图像中的像素位置之间存在一对一的对应性。垂直梯度图像中的像素测量当在灰度级图像中垂直地从上向下移动时并且被开放区域和托盘结构之间的水平界面的灰度级图像中对应位置的强度的变化。例如,如果8位用于代表每个像素值,则垂直梯度图像中的像素可以具有从大约-27到大约+27的值。接近零的值对应于连续区域,即连续的托盘结构或开放区域;上面托盘结构与下面开放区域之间的水平界面将导致比零小得多的梯度值,而上面开放区域与下面托盘结构之间的水平界面将导致比零大得多的梯度值。在图16E中,示出了对应于图16A中灰度级图像的垂直梯度图像。在图16E中,第一区域1120对应于接近0的像素值,第二区域1122对应于比零小得多的像素值,第三区域1124对应于比零大得多的像素值,而第四区域1126对应于比零大很多(substantially greater than zero)的像素值。
在确定水平和垂直梯度图像时,将存在如下情况:在图像边缘附近,滑动窗口将具有不与图像像素重叠的一个或多个单元,因为这些单元落在了图像像素范围的外面。在这些情况下,当计算卷积公式时,这些图像像素的值将被视为等于零,以便最小化这些不存在的像素对卷积计算的影响。
在确定水平和垂直梯度图像之后,图像分析计算机110确定第一Ro图像,ρleft,该图像提供像素中从(对应于照相机图像的)规格化灰度级图像上的原点到代表灰度级图像中一个或多个可能托盘的一条或多条可能水平线和左边垂直线的正交距离,见图8的步骤264。第一Ro图像是由图像分析计算机110通过评估以下公式来确定的:
其中:
x=水平方向中的梯度像素行位置;
y=垂直方向中的梯度像素列位置;
gx=来自于对应于像素位置(x,y)的水平梯度图像的梯度像素值;及
gy=来自于对应于像素位置(x,y)的垂直梯度图像的梯度像素值。
在一个像素的gx和gy都等于零的特定情况下,Ro图像像素值设置成零。
第一Ro图像将具有与对应灰度级图像相同数量的像素,使得在灰度级图像和第一Ro图像中的像素位置之间存在一对一的对应性。第一Ro图像中像素值的范围可以基于灰度级图像的维度而变化,在所说明的实施例中,灰度级图像的维度是480像素x752像素。由此,第一Ro图像像素可以具有从大约-800到大约+800的值,其中第一Ro图像像素定义从规格化灰度级图像上的原点到一条或多条可能的水平线和左边垂直线的正交距离。定义左边开放区域和右边托盘结构之间界面的垂直线或者定义上面开放区域和下面托盘结构之间界面的水平线将在第一Ro图像中由正像素值表示。定义左边托盘结构和右边开放区域之间界面的垂直线或者定义下面开放区域和上面托盘结构之间界面的水平线将在第一Ro图像中由负值表示。
在图16F中的是对应于图16A中灰度级图像的第一Ro图像。在图16F中,第一区域1110对应于负像素值,而第二区域1112对应于正像素值。第二区域1112的第一个区1112A对应于中心纵梁208的左表面208A,而第二区域1112的第二个区1112B对应于底部托盘板200的上表面200A。图16F说明,第一,或左,Ro图像像素在这些像素位置在中心纵梁208的左垂直表面208A或底部托盘板200的上水平表面200A之上时将具有正值。但是,第一Ro图像中的其它像素也可以具有正值但不必位于中心纵梁的左垂直表面或底部托盘板的上水平表面之上。
接下来,图像分析计算机110可以确定第二Ro图像,ρright,该图像提供像素中从(对应于照相机图像的)规格化灰度级图像上的原点到代表灰度级图像中一个或多个可能托盘的一条或多条可能水平线和右边垂直线的正交距离,见图8的步骤266。第二Ro图像是由图像分析计算机110通过评估以下公式来确定的:
其中:
x=水平方向中的梯度像素行位置;
y=垂直方向中的梯度像素列位置;
gx=来自于对应于像素位置(x,y)的水平梯度图像的梯度像素值;及
gy=来自于对应于像素位置(x,y)的垂直梯度图像的梯度像素值。
类似于第一Ro图像,如果一个像素的gx和gy都等于零,则这个公式的值设置成零。
第二Ro图像将具有与对应灰度级图像相同数量的像素。第二Ro图像中像素值的范围可以基于灰度级图像的维度而变化,在所说明的实施例中,灰度级图像的维度是480像素x752像素。由此,像素可以具有从大约-800到大约+800的值。定义左边托盘结构和右边开放区域之间界面的垂直线或者定义上面开放区域和下面托盘结构之间界面的水平线将在第二Ro图像中由正像素值表示。定义左边开放区域和右边托盘结构之间界面的垂直线或者定义下面开放区域和上面托盘结构之间界面的水平线将在第二Ro图像中由负像素值表示。
在图16G中,说明了对应于图16A中灰度级图像的第二Ro图像。在图16G中,第一区域1120对应于负像素值,而第二区域1122对应于正像素值。第二区域1122的第一个区1122A对应于中心纵梁208的右表面208B,而第二区域1122的第二个区1122B对应于底部托盘板200的上表面200A。图16G说明,第二,或右,Ro图像像素在这些像素位置在中心纵梁208的右垂直表面208B或底部托盘板200的上水平表面200A之上时将具有正值。但是,第二Ro图像中的其它像素也可以具有正值但不必位于中心纵梁的右垂直表面或底部托盘板的上水平表面之上。
Ro图像中单个像素的分析没有明确地揭示那个像素是在托盘的左(或右)垂直表面上还是上水平表面上。实际上,托盘结构和开口之间的界面在Ro图像中是通过具有基本上相同像素值的相邻像素串特征化的,其中那个值是从图像原点到那个界面的正交距离。因而,具有几乎相同正Ro值并且在Ro图像中从(x1,y1)拉伸到(x2,y2)的这种像素串代表灰度级图像中也在(x1,y1)和(x2,y2)之间拉伸的可能的托盘线或边缘。对于基本上垂直延伸的托盘边缘,x2可以等于x1,而对于基本水平的边缘,y2可以等于y1。此外,共享相同Ro值的像素串越长,该像素串越有可能代表托盘的实际边缘。理想地,共享相同Ro值的像素将彼此直接相邻;但是,在具有噪声和其它缺陷的真实图像中,“相邻”可以包括彼此在某个最小距离内(例如,±5像素)的像素,而不是仅仅彼此直接相邻的像素。
根据本发明第一种实施例对于来自第三组左下角的每个左下角的可选的资格预审测试是由过程234定义的,这个过程尝试从第三组第一可能的角落中每个识别出的角落即可能的左下角跟踪水平和垂直线。现在将参考图11A、11B、12A、12B、13A和13B描述过程234。如果水平和垂直线能够从可能的左下角被跟踪,则那个角落被认为是预审合格的。如果水平和垂直线不能从可能的左下角被跟踪,则那个角落被取消资格/被忽略。被跟踪的水平线可以对应于底部托盘板200的上表面200A,而被跟踪的垂直线可以对应于托盘中心纵梁208的左表面208A,见图3。
示例第一或左Ro图像的一部分在图11A中说明,该部分包括在对应于图像列178、行214的像素位置示出的可能的第一或左下角LLC。
现在将参考图12A和12B中所说明的过程描述用于尝试跟踪水平线的过程。
在图像分析计算机110在第一Ro图像中从第三组左下角识别出一个可能的左下角时,见步骤322,它在第一Ro图像中包括包含可能左下角LLC的图像行的至少一部分的多个图像行的至少一部分上放置JxK窗口323,见图12A中的步骤324。更具体而言,窗口323在包括左下角LLC的行部分上居中,列包括定义窗口323中最右边列的左下角。在所说明的实施例中,JxK窗口323包括10x7窗口,见图11A。
然后,图像分析计算机110为窗口323中的每一行计算平均像素值,见步骤326。在图11A中,窗口323包括行211A-217A。窗口行211A-217A定义了图11A中第一Ro图像的图像行211-217的部分。用于每个窗口行211A-217A的平均像素值或行均值在图11A中提供。例如,窗口行211A具有217.50012的平均像素值或行均值。
然后,计算机110确定窗口323中哪个窗口行211A-217A具有最接近被认为包括在被跟踪线(被跟踪的线在本文中也被称为“轨迹”)当中的当前像素位置行YT的Y坐标值的平均像素值,见步骤328。在图11A中,位于第一Ro图像列178、行214的左下角LLC定义被跟踪的线的起点,并且由此是被认为包括在窗口323中被跟踪线当中的当前像素位置。为了找出具有最接近当前像素位置行YT,在所说明的例子中是214,的平均像素值的窗口行,计算机110首先利用下式确定当前像素位置行YT和用于每个窗口行211A-217A的行均值之差的绝对值|D|:
公式1:|D|=|YT-行均值|
用于每个窗口行211A-217A的|D|值在图11A中提供。然后,计算机110识别具有当前像素位置行YT及其行均值之差的最小绝对值的窗口行211A-217A。对于图11A中所说明的窗口323,窗口行214A具有当前像素位置行YT及其行均值之差的最小绝对值|D|=0.01399,这是窗口323中所有窗口行211A-217A的差值的最小绝对值|D|,见图11A。具有差值的最小绝对值|D|的窗口行被定义为“最近的窗口行”;由此,在图11A的窗口323中,窗口行214A被定义为最近的窗口行。
然后,图像分析计算机110通过求解以下公式决定最近的窗口行是否在托盘P之上,见步骤330:
公式2:
其中:YNWR=JxK窗口中包括最近窗口行的图像行的Y坐标值;及
行均值(NWR)=JxK窗口中最近窗口行中的像素值的平均。
在所说明的例子中,公式2示为在图11A中求解为真,即最近窗口行214A在托盘P之上。如果最近窗口行214A在托盘之上,则假设当前像素位置,即位于图像列178、行214的可能的左下角LLC,也在托盘P之上。然后,计算机110决定当前像素位置(列178、行214)要作为构成被跟踪的水平线,即可能的底部托盘板的一个像素包括,并且把水平线计数递增1,见步骤334。然后,计算机110检查,以确定该计数是否等于预定义的计数,例如在所说明的实施例中是100,见步骤336。如果是,则计算机110得出水平线已经从左下角LLC被跟踪的结论,见步骤338。然后,计算机110转到图13A中的步骤370,这将在以下讨论,见步骤340。
如果在步骤336中该计数小于100,则计算机110把窗口323水平向左步进一个像素,在与包含先前确定为最近窗口行的图像行共线的一个新窗口行,在图11A和11B中所说明的例子当中是行214,上居中步进的窗口323A,并返回到步骤326,见步骤342。
在图11B中,步进的窗口323A示为在行214上居中。窗口323A包括窗口行211B-217B。步进的窗口323A中的当前像素位置是在窗口323A中的中心窗口行,即窗口行214B,最右边的像素。由此,被认为包括在被跟踪线中的当前像素位置是位于图像列177、行214的像素。用于步进的窗口323A中每个窗口行211B-217B的平均像素值在图11B中提供。窗口行211B具有最接近行214的Y坐标值的平均像素值,其中行214是当前轨迹位置的行。由此,窗口行211B是步进的窗口323A中最近的窗口行。公式2示为在图11B中求解为真。如图11B中所示,求解以上的公式2确定当前像素位置,即位于图像列177、行214的像素,位于托盘P之上。然后,计算机110确定当前像素位置(列177、行214)应当作为被跟踪的水平线,即可能的底部托盘板,的一个像素包括,并且把水平线计数递增1,见步骤334。然后,计算机110转到步骤336。
如果在步骤330中确定窗口323中最近的行不在托盘之上,则图像分析计算机110在窗口323中最近的行214A之上使LxM窗口323B居中,见步骤350,其中LxM窗口323B比JxK窗口323大,以方便,如果可能的话,托盘的捕捉。在所说明的实施例,LxM窗口323B包括10x9窗口。然后,计算机110为LxM窗口323B中的每一行计算像素值的平均,见步骤352,并且确定LxM窗口323B中哪一行具有最接近被认为包括在被跟踪线当中的当前像素位置的Y坐标值的平均像素值,这条被跟踪的线包括窗口323中心行的最右边像素(窗口323B的中心行与窗口323中最近的行214A相同),见步骤354。LxM窗口中具有最接近当前像素位置的Y坐标的平均像素值的行被定义为“最近的行”,并且计算机110利用以上列出的公式2确定LxM窗口323B中最近的行是否在托盘之上(其中,在评估公式2时,使用LxM窗口,而不是JxK窗口),见步骤356。如果LxM窗口323B中最近的行被确定为在托盘之上,则计算机110把水平线计数设置成等于1,把非水平线计数设置成等于零,然后前进到步骤342,见步骤358。如果LxM窗口中最近的行被确定为不在托盘之上,则非水平线计数递增1,见步骤360。然后,计算机110确定非水平线计数是否等于20,见步骤362。如果是,则该左下角被取消资格。如果非水平线计数小于20,则LxM窗口从前一个LxM窗口居中到最近的行之上,见步骤366,并且计算机返回步骤352。
来自图11A的示例第一或左Ro图像的另一部分在图11C中说明,这部分包括在对应于图像列178、行214的像素位置示出的可能的第一或左下角LLC。
现在将参考图13A和13B中所说明的过程步骤描述用于尝试跟踪垂直线的过程。在图像分析计算机110已经跟踪从可能的左下角LLC开始的水平线之后,见步骤338和340,它在第一Ro图像中包括包含可能左下角LLC的图像列的至少一部分的多个图像列的至少一部分上放置PxQ窗口371,见步骤370以及图11C。更具体而言,窗口371在包括左下角LLC的列部分上居中,行包括定义窗口371中最下面的行的左下角。在所说明的实施例中,PxQ窗口371包括5x6窗口。
然后,图像分析计算机110为窗口371中的每一列计算平均像素值,见步骤372。在图11C中,窗口371包括列176A-180A。窗口列176A-180A定义了图11C中图像列176-180的部分。用于每个窗口列176A-180A的平均像素值或列均值在图11C中提供。例如,窗口列178A具有221.2977的平均像素值或列均值。
然后,计算机110确定窗口371中哪个窗口列176A-180A具有最接近被认为包括在被跟踪线当中的当前像素位置的列XT的X坐标值的平均像素值,见步骤374。在图11C中,位于第一Ro图像列178、行214的左下角LLC定义被跟踪的线的起点,并且由此是被认为包括在窗口371中被跟踪线当中的当前像素位置。为了找出具有最接近当前像素位置列XT,在所说明的例子中是214,的平均像素值的窗口列,计算机110首先利用下式确定当前像素位置列XT和用于每个窗口列176A-180A的列均值之差的绝对值|D|:
公式3:|D|=|XT-列均值|
用于每个窗口列176A-180A的|D|值在图11C中提供。然后,计算机110识别具有当前像素位置列XT及其列均值之差的最小绝对值的窗口列176A-180A。对于图11C中所说明的窗口371,窗口列178A具有当前像素位置列XT及其列均值之差的最小绝对值|D|=43.29768,这是窗口371中所有窗口列176A-180A的差值的最小绝对值|D|,见图11C。
具有差值的最小绝对值|D|的窗口列被定义为“最近的窗口列”;由此,在图11C的窗口371中,窗口列178A被定义为最近的窗口列。
然后,图像分析计算机110通过求解以下公式4决定最近的窗口列是否在托盘P之上,见步骤330:
其中:XNWC=Ro图像中包括来自PxQ窗口的最近列的列的X坐标值;及
列均值(NWC)=PxQ窗口中最近窗口列中的像素值的平均值。
在所说明的例子中,公式4示为在图11A中求解为真,即最近窗口列178A在托盘P之上。如果最近窗口列178A在托盘之上,则假设当前像素位置,即位于图像列178、行214的可能的左下角LLC,也在托盘P之上。然后,计算机110决定最近窗口列178A中的当前像素位置(列178、行214)要作为构成被跟踪的水平线,即托盘中心纵梁208的可能左表面208A,的一个像素包括,并且把垂直线或纵梁计数递增1,见步骤380。然后,计算机110检查,以确定该纵梁计数是否等于预定义的计数,例如在所说明的实施例中是15,见步骤382。如果是,则计算机110得出垂直线已经从左下角LLC开始被跟踪的结论,见步骤384。然后,计算机110验证了从其开始跟踪水平和垂直线的左下角LLC,见图13A中的步骤386。
如果在步骤382中该计数小于15,则计算机110把窗口371垂直向上步进一个像素,在与包含先前确定为最近窗口列的图像列共线的一个新窗口列,在图11C和11D中所说明的例子当中是列178A,上居中步进的窗口371A,并返回到步骤372。
在图11D中,步进的窗口371A示为在列178上居中。窗口371A包括窗口行176B-180B。步进的窗口371A中被认为包括在被跟踪线中的当前像素位置是在窗口371A中的中心窗口列,即窗口列178B,最底部的像素。由此,被认为包括在被跟踪线中的当前像素位置是位于图像列178、行213的像素。用于步进的窗口371A中每个窗口列176B-180B的平均像素值在图11D中提供。窗口列176B具有最接近列178的X坐标值的平均像素值,其中列178是当前轨迹位置的列。由此,窗口列176B是步进的窗口371A中最近的窗口列。公式4示为在图11D中求解为真。如图11D中所示,求解公式4确定当前像素位置,即位于图像列178、行213的像素,位于托盘P之上。因而,计算机110确定当前像素位置(列178、行213)是被跟踪的垂直线,即托盘中心纵梁208的可能的左表面208A,的一个像素,并且把垂直线计数递增1,见步骤380。然后,计算机110转到步骤382。
如果在步骤376中确定窗口371中一个最近的列不在托盘之上,则图像分析计算机110在窗口371中最近的列178A之上居中RxS窗口371B,见步骤390,以方便,如果可能的话,托盘的捕捉,其中RxS窗口371B比PxQ窗口371大,见图11C。在所说明的实施例中,RxS窗口371B包括7x6窗口。然后,计算机110为RxS窗口371B中的每一列计算像素值的平均,见步骤392,确定RxS窗口371B中哪一列具有最接近被认为包括在轨迹当中的当前像素位置的X坐标值的平均像素值,这条轨迹包括窗口371B中心列的最下面像素(窗口371B的中心列与窗口371中最近的列178A相同),见步骤394,该列被定义为“最近的列”,并且利用公式4确定RxS窗口371B中最近的列是否在托盘之上(其中,在评估公式4时,使用RxS窗口,而不是PxQ窗口),见步骤396。如果RxS窗口371B中最近的列被确定为在托盘之上,则计算机110把纵梁计数设置成等于1,把非垂直线计数设置成等于零,然后前进到步骤388,见步骤398。如果RxS窗口中最近的列被确定为不在托盘之上,则非垂直线计数递增1,见步骤400。然后,计算机110确定非垂直线计数是否等于20,见步骤402。如果是,则该左下角被取消资格。如果非垂直线计数小于20,则RxS窗口从前一个RxS窗口居中到最近的列之上,见步骤406,并且计算机返回步骤392。
现在将参考图14A-14D描述根据本发明第二种实施例对每个左下角的资格预审测试。资格预审测试涉及尝试从每个可能的左下角开始跟踪水平线和垂直线。这种测试还使用来自Ro图像的像素值并且,尤其是,来自第一Ro图像的像素值。如果水平和垂直线可以从可能的左下角跟踪,则那个角落被认为是预审合格的。如果水平和垂直线不能从可能的左下角跟踪,则那个角落被取消资格/被忽略。被跟踪的水平线可以对应于底部托盘板200的上表面200A,而被跟踪的垂直线可以对应于托盘中心纵梁208的左表面208A,见图3。
示例第一或左Ro图像的一部分在图14A中说明。现在将参考图14C中所说明的过程步骤描述用于尝试跟踪水平线的过程。
在图像分析计算机110从第一Ro图像中的第三组左下角识别出一个可能的左下角之后,见步骤602,它向左移动预定数量的像素,见步骤604。例如,向左移动大约5个像素对于增加在起始轨迹位置之上利用开口而不是托盘结构开始尝试跟踪的可能性是有利的。图像分析计算机110在第一Ro图像中多个图像行的至少一部分之上定位NxO窗口639,见图14C中的步骤606。关于图14A,可能的左下角被识别为在像素位置x=237,y=124,这也可以被称为XLLC=237和YLLC=124。如所提到的,在步骤604中从该x坐标减去例如5个像素,以便初始化用于所尝试轨迹的起始位置650。因而,用于示例尝试轨迹的起始位置650是(232,124),见图14A。NxO窗口639定位成使得在像素位置(232,124)之上竖直居中,并且水平定位成使得最右边的列覆盖像素位置(232,124)。在图14A的例子中,NxO窗口639是13x8窗口,或矩阵,并且,通过其定位,窗口639有6行在像素位置(232,124)之上并且有6行在其下面。而且,窗口639有7列在像素位置(232,124)左边。虽然13x8窗口作为例子示出,但是,在不背离本发明范围的情况下,其它尺寸的窗口也可以使用。因而,NxO窗口639在y方向从行118延伸到行130并且在x方向从列225延伸到列232。每一行也通过索引值k,646来引用,如图16A中所示出的。该索引值分配成使得NxO窗口639最上面的一行处于k=1并且NxO窗口639最下面的一行处于k=13(在这个例子中)。
如以下所解释的,在跟踪方法的每一步当中,为所尝试跟踪方法的后续步骤计算新的坐标(xnew,ynew),以找出被跟踪的水平线的另一个点。当为后续步骤定位NxO窗口时,该窗口在ynew上垂直居中并且水平定位成使得最右边的列在xnew之上。
在步骤608中,图像分析计算机110为NxO窗口639的每一行计算平均值W(k)(示为列652)。该平均值是利用来自第一Ro图像的像素值计算的。然后,在步骤610,图像分析计算机110,从k=1开始,确定满足三个不同测试的第一行:
1.W(k+1)>0(示为列656);
2.MEAN(W(1:k))<0
其中MEAN(W(1:k))(示为列658)=
3.|YLLC–MEAN(W(k+1:13))|≤YLLC(示为列660)
其中MEAN(W(k+1:13))(示为列659)=
如果窗口639的所有行都被测试并且图像分析计算机110在步骤612中确定没有找到满足以上约束的行,则可能的左下角被丢弃并且该过程对这个特定的可能的左下角停止。在图14A的示例窗口639中,找到了成功的行,并且列662指示满足以上约束的第一个k值是k=4(示为列664)。在步骤614,图像分析计算机110使用这个k值来识别在确定如何为所尝试跟踪的下一步定位NxO窗口639时所使用的坐标。特别地,在步骤614,图像分析计算机110基于xnew=xcurrent-1计算新的x坐标。对于图14A的例子,xnew=231。在步骤614,图像分析计算机还基于ynew=ycurrent+k-6计算新的y坐标(示为列666)。对于图14A的例子,ynew=122。
如果图像分析计算机110在步骤616确定,对于被跟踪线的前100个点/像素,步骤610的约束已经成功满足,则水平线已经从可能的左下角成功地被跟踪。用于水平轨迹的处理停止并且继续到图16D中所示的垂直跟踪技术。如果少于100个点/像素,或者某个其它预定的点/像素数,被成功测试,则利用新的x和y坐标(xnew,ynew)用步骤606继续跟踪,以适当地定位NxO窗口。
在图14C过程的描述中,步骤610提供了三叉齿测试(prone test),来确定将在步骤614中用于在其下一个位置定位NxO窗口639的行值“k”。作为一种备选方案,图14E中所说明的不太严格而且比较简单的测试可以用于确定值“k”。在图像分析计算机110在步骤608中为NxO窗口639的每一行计算出平均值W(k)(示为列652)之后。图像分析计算机110,代替步骤610的测试,可以作为替代地在步骤610’中确定哪个平均值W(k)最小化|W(k)-YLLC|并且随后在步骤612’中确定以下不等式是否对那一行k成立:|YLLC–W(k)|≤YLLC。如果该不等式不为真,则图像分析计算机110丢弃(237,124)作为可能的左下角;如果该不等式为真,则根据步骤614计算新的坐标。
利用图14E的备选的、更简单的测试,具有W(k)=147.489988的k=6的行满足步骤610’的测试。即k值等于“6”的行具有等于“147.489988”的平均值并且把|W(k)-YLLC|的值最小化成等于“23.58999”。此外,步骤612’的不等式也被这个W(k)值满足(即,|124-147.489988|小于或等于124)。
如前面一样,在步骤614,图像分析计算机110使用识别出的k值来识别在确定为所尝试跟踪的下一步定位NxO窗口639时使用的坐标。特别地,在步骤614,图像分析计算机110基于xnew=xcurrent-1计算新的x坐标。对于图14A的例子,xnew=231。在步骤614,图像分析计算机还基于ynew=ycurrent+k-6计算新的y坐标。对于图14A的例子,当使用图14E被备选的、更简单的测试时,ynew=124。
如果水平线从可能的左下角成功地被跟踪,则也尝试从那个可能的左下角跟踪垂直线。
示例第一或左Ro图像的一部分在图14B中说明。现在将参考图14D中所说明的过程步骤描述用于尝试跟踪垂直线的过程。在步骤618,图像分析计算机110识别可能的左下角678为具有坐标(237,124)这使得x坐标XLLC等于237。
图像分析计算机110在第一Ro图像中多个图像列的至少一部分之上定位VxW窗口667,见图14D中的步骤620。如前面所提到的,基于可能的左下角的坐标,用于示例尝试轨迹的起始位置678是(237,124)。VxW窗口667定位成使得其在像素位置(237,124)上水平居中并且垂直定位成使得最下面的行覆盖像素位置(237,124)。在图14B中的例子中,VxW窗口667是4x13窗口,或矩阵,并且,通过其定位,窗口667有6列在像素位置(237,124)右边并且有6列在其左边。而且,窗口667有3行在像素位置(237,124)上面。虽然4x13窗口作为例子示出,但是,在不背离本发明范围的情况下,其它尺寸的窗口也可以使用。因而,VxW窗口667在y方向从行121延伸到行124并且在x方向从列231延伸到列243。每一列也通过索引值k,676来引用,如图14B中所示出的。该索引值分配成使得VxW窗口667最左边的一列处于k=1并且VxW窗口667最右边的一列处于k=13(在这个例子中)。
如以下所解释的,在跟踪方法的每一步当中,为所尝试跟踪方法的后续步骤计算新的坐标(xnew,ynew)。当为后续步骤定位VxW窗口时,该窗口在xnew上水平居中并且垂直定位成使得最底部的行在ynew之上。
在步骤622,图像分析计算机110为VxW窗口667的每一列计算平均值W(k)(示为行675)。该平均值是利用来自第一Ro图像的像素值计算的。然后,在步骤624,图像分析计算机110确定哪个平均值W(k)最小化|W(k)-XLLC|并且,在步骤626,确定对那一行k是否满足以下不等式:|XLLC–W(k)|≤1.5XLLC。如果该不等式不为真,则图像分析计算机在步骤628中丢弃(237,124)作为可能的左下角。
在图14B中的例子中,k值等于“5”的列具有等于“234.5113”的平均值681并且把|W(k)-XLLC|的值680最小化成等于“2.4887”。如通过答案684所指示的,图像分析计算机在步骤626中确定不等式的左手侧(即,|237-234.5113|)小于或等于1.5x237(即,355.5)。因而,在步骤630,图像分析计算机110计算新的x坐标和y坐标。具体而言,图像分析计算机110基于ynew=ycurrent-1计算新的y坐标。对于图14B的例子,ynew=123。在步骤630,图像分析计算机还基于xnew=xcurrent+k-6计算新的x坐标。对于图14B的例子,xnew=236。
如果图像分析计算机110在步骤632中确定,对于被跟踪线的前10个点/像素,步骤626的约束已经成功满足,则垂直线已经从可能的左下角成功地被跟踪,该可能的左下角现在被认为是预审合格的可能的左下角。如果少于10个点/像素,或者某个其它预定的点/像素数,被成功测试,则利用新的x和y坐标(xnew,ynew)用步骤620继续跟踪,以适当地定位PxQ窗口。
在过程234完成之后,使得尝试从第三组可能的第一角落中每个识别出的角落画出/跟踪水平线及可能还有垂直线,从而定义一组预审合格的左下角,图像分析计算机110实现过程236。由此,对于每个预审合格的左下角,计算机110确定多条可能线中哪一条最有可能是经过预审合格的左下角的实际线。过程236将参考图15来讨论。
以上所述涉及不同Ro图像和线跟踪算法的计算可以通过考虑灰度级图像中的所有像素位置的值来受益。因而,由图像分析计算机110执行的那些特定图像分析步骤不一定局限于只对“叉子之间的”像素位置执行。但是,一旦所有预审合格的左下角都已经识别出来,那组像素位置就可以通过丢弃不位于“叉子之间的”任何预审合格的左下角来修剪。因而,在这样一种实施例中,以上所述的附加分析和处理技术不对其x坐标位置在用于x坐标的左极限和右极限(例如,分别是80和400)外面的任何预审合格的左下角执行。
图像分析计算机110在第一Ro图像中定义其中一个预审合格的左下角的位置,见步骤410。然后,计算机110定义延伸通过那个预审合格的左下角LLC的多条可能的线,在所说明的实施例中是61条线,其中每条线关于第一Ro图像中的水平轴处于对应的角度,其中该角度的范围以0.5度的增量从-15度到+15度,见图15中的步骤412。在图15A说明了经过在像素位置列20、行14的预审合格的左下角LLC的两条线L1和L2。剩余59条可能的线没有在图15A中说明。线L1处于角度度,而线L2处于角度度。如以下所指出的,计算机110确定多条可能的线中哪一条最有可能是经过托盘的预审合格的左下角的实际线,见步骤414。
为了定义经过给定预审合格的左下角LLC的多条可能线中的每一条,计算机110为多条线中相应朝向一个角度的每一条线求解以下公式,从而计算从Ro图像的原点到该线的正交距离
公式5:
其中:
从Ro图像中的原点到处于角度的可能线的正交距离;
角度范围内的一个角度;及
(xpalletCorner,yPalletCorner)=Ro图像中用于托盘的预审合格的左下角的坐标。
在所说明的实施例中,公式被评估61次,61条可能的线当中每条线一次。在图15A中,说明了ρ(10)和ρ(-10)。
在为可能的线计算出之后,计算机110利用计算出的值为那条线定义点(例如,像素位置)。依赖于图像的尺寸,每条可能的线可以通过组合来自多条子线的点来定义。多条子线可以被认为“加厚”可能的线,使得足够数量的像素可以包括在可能线的评估当中。例如,如果图像尺寸是480x752,则两条子线可以用于定义可能的线。作为替代,如果图像尺寸是240x376,则可能的线可以只通过一条子线来定义。因而,可能的线根据下式通过一组子线{L}来定义:
{L}={(1,y1+k)to(M,y2+k)},其中
k=0,1,2,…,(Ny-1),
Ny=用于定义可能的线的子线的条数;及
其中
并且
假定:
从以上公式5计算出的、从Ro图像中的原点到处于角度的对应可能线的正交距离;
角度范围内的一个角度;
TOL1=凭经验确定的固定值(在所说明的实施例中等于0.5);
M=Ro图像的每一行当中水平像素的数量(在所说明的实施例中是480或240像素);及
y1=如果可能线沿着角度延伸到最左边的图像像素列x=1,可能线左端点的y或者垂直坐标;及
y2=如果可能线沿着角度延伸到最右边的图像像素列x=M,可能线右端点的y或者垂直坐标。
如所提到的,对于240x376尺寸的图像,Ny可以等于“1”,而对于480x752尺寸的图像,Ny可以等于“2”。如果Ny=“1”,则子线集合{L}可以只具有单条子线LA,该子线具有左端点(1,y1)和右端点(M,y2)。只有这条子线上的点在评估可能的线时使用。但是,如果使用较大的图像尺寸(例如,480x752),则每条可能的线通过组合来自第一条子线LA和第二条子线LB的点来定义,以便获得足够数量的点。根据以上公式,从0到1变动的值k以及用于这两条子线LA和LB的相应端点计算为使得:
用于第一条子线LA的端点包括:
(1,y1)和(M,y2);及
用于第二条子线LB的端点包括:
(1,y1+1)和(M,y2+1)。
然后,计算机110生成用于第一条子线LA的端点之间的第一中间点以及用于第二条子线LB的端点之间的中间点(如果第二条子线LB存在的话)。用于第一和第二条子线LA和LB的相应中间点是利用布氏(Bresenham)线算法确定的。如本领域普通技术人员众所周知的,布氏线算法确定像素化的显示中哪些点应当被选择,以便形成对两个给定点之间的直线的相当准确的近似。在实践中,该算法可以有效地通过为算法的每个递增步进计算误差值来实现,其中该误差值代表线上位于点x的实际y值的小数部分。相应地,那个误差值用于确定是增加y坐标值或者让它保持不变。因为,每个步进的误差值是前一误差值和线的斜率的很容易计算的函数,所以实现该算法的计算成本可以最小化。以下伪代码利用每条子线的相应斜率在-1和+1之间的约束有效地计算子线上的中间点;因而该伪代码既可以用于正斜率的线也可以用于负斜率的线。
但是,本领域普通技术人员将认识到,在不背离本发明范围的情况下,如果斜率在范围-1到+1范围之外的一条线上的点需要被计算,则以上伪代码也可以容易地修改成执行这种计算。
接下来,计算机110为每条可能的线上的每个点评估以下表达式,即为对应于每条可能的线的每条子线(LA、LB、…)上的每个点评估这个表达式:
公式6:
其中:
(X,Y)=可能的线上的一个点;
ρleft(X,Y)=来自第一Ro图像该可能的线上点X,Y的值
从以上公式5计算出的、从Ro图像中原点到处于角度的可能线的正交距离;
角度范围内的一个角度;及
TOL2=凭经验确定的固定值(在所说明的实施例中等于0.15)。
相应的计数器,可以与具有角度的可能线关联,并且可以在每次公式6的表达式对具有角度的可能线上的一个点X,Y为真时递增。因而,存在61个计数器,每个计数器具有相应的值。如以上所提到的,在有些情况下,为了获得足够数量的点,多于一条子线可以与一个计数器关联。在关于所有61条可能的线的所有点都利用公式6评估之后,计算机110把具有最大计数值的线识别为最有可能是经过预审合格的托盘左下角LLC的实际线的线,在下文中称为底部托盘板线。根据以下公式,基于61个计数器的最大值,给底部托盘板线分配一个置信得分,ScoreBaseboardLine:
其中:
M=Ro图像每一行中水平像素的数量(在所说明的实施例中是480或240个像素);及
Ny=用于定义每条可能的线的子线的条数。
一旦计算机110识别出最有可能是经过预审合格的托盘左下角LLC的实际线的线,这条线就被假设代表与这个特定的预审合格的托盘左下角LLC关联的底部或下部托盘板200的可能上表面200A。然后,预审合格的左下角LLC以及底部托盘板的可能上表面的位置可以在过程238中使用,如以上所指出的,该过程尝试识别对应于预审合格的左下角的一组可能的右下角。这组可能的右下角将关于预审合格的左下角和对应的底部托盘板上表面满足某些标准,如下:
1)对应的右下角将有可能位于预审合格的左下角LLC的某个水平范围内。由此,计算机110检查如由第三组可能的第二角落定义的所有可能的右下角,并且丢弃靠近预审合格的左下角LLC超过最小水平距离(xmin)或者远离预审合格的左下角LLC超过最大水平距离(xmax)的那些可能的右下角。特定的xmin和xmax值是以“像素”测量的,并且依赖于可视化的中心托盘纵梁尺寸的范围以及货架R离车辆10有多远。对于典型的从大约50英寸到大约60英寸的货架到车辆距离以及由木头或聚合物材料制成的其中心纵梁宽度W从大约2英寸到大约12英寸的托盘,xmin可以等于5像素而xmax可以等于150像素,其中视场是480像素x752像素,见图17。
2)对应的右下角将有可能位于从预审合格的左下角LLC定义垂直范围+/-Ytol的某个垂直距离,或歪斜(skew),内。因而,计算机110丢弃落在如由+/-Ytol定义的垂直歪斜之外的任何可能的右下角,其中+/-Ytol可可以以等于+/-10像素,见图17。
3)实际右下角将有可能位于离底部托盘板线的某个垂直距离范围内。因而,计算机110丢弃底部托盘板线之上落在距离,+Hmax,之外或者在底部托盘板线下面延伸超过距离-Hmax的任何可能的右下角。例如,+Hmax可以等于底部托盘板上表面之上4个像素,而-Hmax可以等于底部托盘板线之下4个像素,见图17。
与定位可能的右下角相关联的位置标准可以根据图像尺寸来调整。例如,以上所提供的值可能适用于尺寸为480x752像素的图像。但是,对于尺寸为240x376像素的图像,该值可以被调整,使得每个都大致为以上提供的示例值的一半。例如,垂直歪斜可以等于+/-5像素,用于+Hmax的值可以等于底部托盘板表面之上2个像素,而用于-Hmax的值可以等于底部托盘板线之下2个像素。类似地,xmin可以等于2个像素而xmax可以等于50至75个像素之间。
单个预审合格的左下角LLC和对应的底部托盘板线可以与一个或多个可能的右下角配对,从而定义一个或多个候选对象。“候选对象”在本文中也称为“可能的托盘对象”。
在以上提到的进一步的实施例中,其中成像照相机位于叉子42A、42B之上,向下看,一个或多个可能的右上角与每个预审合格的左上角配对,其中关于对右上角的找寻的限制与对右下角的那些限制类似。
对于包括预审合格的左下角LLC、对应的底部托盘板线以及对应的可能的右下角的每个候选对象,图像分析计算机110尝试识别上部托盘板202上的点与预审合格的左下角LLC之间的距离,使得托盘洞或叉子接纳开口位于其间。利用第一Ro图像,图像分析计算机110从预审合格的左下角LLC水平向左步进预定数量的像素(例如,10个像素)并且向上移动,直到像素从正到负到正过渡。向左步进确保向上的穿行发生在其中在起点之上存在开口而不是仅仅是托盘结构的区域内。正-负-正的过渡估计上部托盘板202上相对于底部托盘板200的上表面200A的潜在点的位置,其中上部托盘板202上该点和底部托盘板200的上表面200A之间的距离是上部托盘板202的下表面202A和底部托盘板200的上表面200A之间距离的粗略估计,见图3。此外,估计从底部托盘板上表面到上部托盘板202上可能点的距离的另一种方法是由计算机110通过从预审合格的左下角LLC向上移动一直到遇到第一Ro图像中的负像素值来执行的。当在到达上部托盘板202之前正垂直序列终止时(诸如由于噪声或照明变化)或者在正垂直序列一到达上部托盘板202就终止时遇到负像素。这两个估计的最大值被选择作为从预审合格的左下角到上部托盘板202上点的距离的确定。
然后,从预审合格的左下角/底部托盘板200的上表面200A到上部托盘板202上的点的距离可以用于粗略地估计可能的左上角和可能的右上角的位置。可能的左上角假设与预审合格的左下角对准并且在其之上等于从预审合格的左下角到上部托盘板202上的点的距离的距离。可能的右上角假设与预审合格的右下角对准并且在其之上等于从预审合格的左下角到上部托盘板202上的点的距离的距离。
对于包括预审合格的左下角214、对应的底部托盘板线(即,底部托盘板200的可能的上表面200A)和对应的可能的右下角的每个候选对象,并且对于其估计出对应左上和右上角的位置,可以根据以下所述的方法来计算可能的左和右垂直纵梁边缘或线。但是,以下进一步给出一种不明确地计算左和右纵梁边缘两者的备选方法。
对于潜在的左垂直纵梁线,根据以下公式(7a和7b)计算正交距离ρ1desired和角度
公式7a:
公式7b:
其中:
水平线和潜在的左纵梁线之间的角度,其中潜在的左纵梁线从预审合格的左下角延伸到估计出的左上角;
PLowerLeft(y)=用于预审合格的左下角的Y坐标;
PUpperLeft(y)=用于估计出的左上角的Y坐标;
PLowerLeft(x)=用于预审合格的左下角的X坐标;
PUpperLeft(x)=用于估计出的左上角的X坐标;及
ρ1desired=从规格化的灰度级图像上原点到经过预审合格的左下角和左上角的垂直线的正交距离。
对于潜在的右边垂直纵梁线,根据以下公式(8a和8b)计算正交距离ρ2desired和角度
公式8a:
公式8b:
其中:
Φ2=水平线和潜在的右纵梁线之间的角度,其中潜在的右纵梁线从右下角延伸到估计出的右上角;
PLowerRight(y)=用于右下角的Y坐标;
PUpperRight(y)=用于估计出的右上角的Y坐标;
PLowerRight(x)=用于右下角的X坐标;
PUpperRight(x)=用于估计出的右上角的X坐标;及
ρ2desired=从规格化的灰度级图像上原点到经过右下角和右上角的垂直线的正交距离。
图19A说明了使用以上公式来计算代表潜在的左纵梁线和潜在的右纵梁线的值。图19A不代表前面讨论过的任何图像(例如,灰度级图像、Ro图像等)的实际像素值,而是提供帮助理解用于公式7a、7b、8a和8b的几何结构的框架。但是,与早先讨论过的图的一个相关性是图19A中不同点的(x,y)坐标,以及原点,确实对应于灰度级图像的坐标系统和原点。预审合格的左下角位于图19A中的点1906并且早先估计出的对应的左上角位置位于点1908。估计出的左上角假设水平地与预审合格的左下角位于一条线上,使得它们具有完全相同的X坐标,但是在图19A中示为离预审合格的左下角稍有偏移。潜在的纵梁线1912在两个角落1906、1908之间延伸。潜在的左纵梁线1912可以通过一对值(ρ1desired,θ)来特征化,其中,如图19A中所示,ρ1desired由代表线1912离原点1914的正交距离的线1914指定,而角度θ由作为线1904相对于x轴1916的角度的角度1902指定。参数由角度1910指定并且是由潜在的左纵梁线1912和水平线1918构成的角度。因为所以正交距离ρ1desired可以根据以上公式7b来确定。虽然描述图19A的以上讨论涉及潜在的左纵梁线,但是类似的方法可以在为潜在的右纵梁线求解公式8a和8b时使用。
用利用以上公式7a计算出的角度然后可以利用来自第一Ro图像中与预审合格的左下角垂直共线并且向上延伸到估计出的左上角的像素值来确定定义来自第一Ro图像的预审合格的左下角之上的左垂直线的第一组像素是否匹配计算出的正交距离ρ1desired。利用这些像素,计算代表与灰度级图像中潜在的左垂直纵梁线是真正托盘纵梁左边缘的可能性相关的值的得分值Scoreleft。用于计算这个得分值Scoreleft的一种方法参考图20A和图20B提供。图20A绘出了用于给用于预审合格的左下角的潜在左纵梁打分的流程图,而图20B绘出了来自第一Ro图像位于预审合格的左下角附近的像素区域。对于预审合格的左下角2030,见图20B,所计算出的垂直线代表纵梁的可能的左垂直边缘,并且因此,使用来自第一或左Ro图像的值。例如,在预审合格的左下角之上选择一组Ro图像值;这个集合可以局限于诸如十个像素的最大像素数量。换句话说,对于预审合格的左下角,要从左Ro图像选择的像素数量在步骤2002中利用公式9a来确定:
hleft=min(PlowerLeft(y)-PUpperLeft(y),10)
根据以上公式,两个值中的一个用于确定要选择的像素数量;或者是以像素为单位的纵梁的高度(即,PLowerLeft(y)–PUpperLeft(y))或者是10个像素,选其中较小的一个。因而,在步骤2004中,像素的集合2032,见图20B,从左Ro图像中选择,其中该像素集合在集合中具有hleft个成员。每个成员都是具有(x,y)坐标和像素值的像素。作为一个例子,如果预审合格的左下角2030位于(x,225)并且估计出的左上角2036位于(x,219),则hleft=6,并且所选定的像素集合2032的成员在图20B中利用斜条标记示出。
图像分析计算机110在步骤2006中为随后的计算步骤初始化累加器A1和索引值i。根据图20A流程图的一个特定例子的索引值i从1到hleft变化并且用于唯一地指定像素集合2032的各个成员。涉及像素集合2032中的像素值的计算不依赖于方向,而且因此,最小索引值可以指集合2032最上面的像素2036并且在朝着集合2032最下面的像素2034向下移动集合时增加。但是,在不影响以下所述的计算的情况下,索引值可以颠倒过来。索引值i由图像分析计算机110在步骤2008测试并且,如果该索引值指示在集合2032中还有更多的像素要评估,则过程移到步骤2010。在步骤2010,图像分析计算机110确定以下不等式是否为真:
|ρ(xi,yi)-ρ1desired|≤TOL4*ρ1desired
其中:
i=指向第一像素集合2032的各个成员的索引值;
ρ(xi,yi)=取自第一Ro图像中直接位于预审合格的左下角2030之上的第一像素集合2032的第i个像素的值;
ρ1desired=以上关于公式7b计算出的、从规格化的灰度级图像上的原点到经过预审合格的左下角和左上角的线的正交距离;及
TOL4=凭经验确定的值(在所说明的实施例中等于0.5)。
如果在步骤2010中该不等式对于特定的、加索引的像素为真,则在步骤2014中对这个像素集合2032累加器A1递增,并且在步骤2012中该索引值递增,然后以步骤2008开始重复这些步骤。如果在步骤2010中该不等式不为真,则在步骤2012中索引值递增,然后以步骤2008开始重复这些步骤。一旦图像分析计算机110在步骤2008中确定像素集合2032的所有成员都已经评估过了,就在步骤2016中计算左垂直线得分值,这个值代表选定的像素2032是否位于代表实际纵梁左边缘的预审合格的左下角2030之上的置信等级。对于给定的线,该左垂直线得分值是相应累加器仓计数A1与选定的像素总计数之比:
公式9b:
与图20A类似的过程也可以用于确定右垂直线得分值。用利用以上公式8a计算出的角度然后可以通过利用来自第二或右Ro图像中从可能的右下角之上向上延伸到估计出的右上角的像素值来确定定义来自第二或右Ro图像的可能右下角之上的右垂直线的第二组像素是否匹配计算出的正交距离ρ2desired。对于可能的右下角,所计算出的垂直线代表纵梁的可能的右垂直边缘,并且因此,使用来自第二或右Ro图像的值。例如,选择在可能的右下角之上的一组Ro图像值;这个集合可以局限于诸如十个像素的最大像素数量。换句话说,在可能的右下角之上,要从右Ro图像选择的像素数量是:
公式10a:hright=min(PLowerRight(y)-PUpperRight(y),10)
因而,在可能的右下角开始,选择位于可能的右下角之上的hright个像素。
如果以下表达式对于来自第二组像素的一个像素为真,则第二累加器仓A2递增1:
|ρ(xj,yj)-ρ2desired|≤TOL4*ρ2desired
其中:
j=指向第二像素集合的各个成员的索引值;
ρ(xj,yj)=取自第二Ro图像中直接位于右下角之上的第二像素集合的第j个像素的值;
ρ2desired=以上关于公式8b计算出的、从规格化的灰度级图像上的原点到经过可能的右下角和右上角的线的正交距离;及
TOL4=凭经验确定的值(在所说明的实施例中等于0.5)。
计算右垂直线得分值,这个值代表位于右下角之上的选定像素是否代表实际的纵梁右边缘的置信等级。对于特定的线,该右垂直线得分值是相应累加器仓计数A2与选定的像素总计数之比:
公式10b:
如果其左或右得分小于阈值,在优选实施例中是0.1,或者Scoreleft和Scoreright之和小于第二阈值,在优选实施例中是0.5,则潜在地被认为包括中心纵梁的候选对象被拒绝。
如以上所提到的,还预期评估可能的纵梁的备选方法。图19B提供了在描述这种备选实施例时有帮助的几何框架。如前面一样,识别预审合格的左下角1926和底部托盘板线1930。如上所述,这些可能的托盘对象特征用于确定可能的右下角1936、估计的左上角1928和估计的右上角1938。特别地,如以上所定义的,以下的值是通过利用如下假设确定的:a)预审合格的左下角1926和估计的左上角1928具有相同的x坐标;及b)可能的右下角1936和估计的右上角1938具有相同的x坐标:
PLowerLeft(y)=用于预审合格的左下角1926的Y坐标值;
PUpperLeft(y)=用于估计的左上角1928的Y坐标值;
PLowerLeft(x)=用于预审合格的左下角1926的X坐标值;
PUpperLeft(x)=用于估计的左上角1928的X坐标值;
PLowerRight(y)=用于可能的右下角1936的Y坐标值;
PUpperRight(y)=用于估计的右上角1938的Y坐标值;
PLowerRight(x)=用于可能的右下角1936的X坐标值;及
PUpperRight(x)=用于估计的右上角1938的X坐标值。
利用这些坐标值连同上述水平梯度图像的像素值,可以计算备选的Scoreleft和Scoreright,而不是早先描述的那些。特别地,备选的Scoreleft值可以根据下式计算:
其中:
PLowerLeft(y)=用于预审合格的左下角的Y坐标值;
PUpperLeft(y)=用于估计的左上角的Y坐标值;
PLowerLeft(x)=用于预审合格的左下角的X坐标值;
k=用于求和的索引值,其中k从1到PLowerLeft(y)-PUpperLeft(y)的最大值变化;及
gx(PLowerLeft(x),(PLowerLeft(y)-k))=水平梯度图像中用于x坐标为PLowerLeft(x)且y坐标为(PLowerLeft(y)-k)的像素的像素值。
如果其左纵梁得分Scoreleft小于阈值,则潜在地被认为包括中心纵梁的候选对象被拒绝。例如,在这种备选实施例中,用于备选的Scoreleft的阈值可以是5.0。
此外,备选的Scoreright也可以计算并结合备选的Scoreleft值一起用于确定是否拒绝一个候选对象。特别地,备选的Scoreright值可以根据下式计算:
其中:
PLowerRight(y)=用于可能的右下角的Y坐标值;
PUpperRight(y)=用于估计的右上角的Y坐标值;
PLowerRight(x)=用于可能的右下角的X坐标值;
k=用于求和的索引值,其中k从1到PLowerRight(y)-PUpperRight(y)的最大值变化;及
gx(PLowerRight(x),(PLowerRight(y)-k))=水平梯度图像中用于x坐标为PLowerRight(x)且y坐标为(PLowerRight(y)-k)的像素的像素值。
如前面一样,如果其右纵梁得分Scoreright小于阈值,则潜在地被认为包括中心纵梁的候选对象被拒绝。例如,在这种备选实施例中,用于备选的Scoreright的阈值可以与用于备选的Scoreleft的左垂直纵梁相同(例如,5.0)。如果或者Scoreright或者Scoreleft低于相应的阈值,或者它们的和低于某个其它阈值,则候选对象可以被拒绝作进一步的考虑。
此外,如果其热度太高,则潜在地被认为包括中心纵梁的候选对象可以被删除。在图19B中,可能是中心纵梁的像素区域通过预审合格的左下角1926、可能的右下角1936、估计的右上角1938和估计的左上角1928来定义。如果规格化的灰度级图像中用于这个像素区域的像素值的方差(variance)大于预定的阈值,则这个候选对象可以被拒绝。一个例子是通过成像天花板灯产生的对象。天花板灯可以发射近红外线照明并且在昏暗的背景上显示为非常明亮的不规则区域,从而给出高热度级别。预定的热度阈值可以例如是大约1200。
用于这个潜在的中心纵梁区域的方差Hvar可以根据下式计算:
其中:
k=由角落1926、1928、1936和1938界定的区域中的像素个数;
i=由角落1926、1928、1936和1938界定的区域中唯一地指向k个像素之一的索引值;
GSPV(pixel(i))=规格化灰度级图像中由角落1926、1928、1936和1938界定的区域中k个像素中一个特定像素(即,pixel(i))的灰度级像素值(GSPV);及
规格化灰度级图像中由角落1926、1928、1936和1938界定的区域中所有k个像素的灰度级像素值的平均。
另一个标准涉及可以是候选对象的中心纵梁的区域的对象区域。如果由角落1926、1928、1936和1938界定的区域包括少于50个像素,则该候选对象可以被拒绝。
托盘对象可以分别由第一、第二和第三矩形1802、1804和1810定义,如图18中所示出的,其中第一和第二矩形1802、1804可以对应于图3中所说明的托盘P的第一和第二叉子接纳开口210和212的至少一部分,而第三矩形1810可以对应于托盘P的中心纵梁。给定中心纵梁估计的左上角和估计的右上角,矩形1802、1804和1810的高度h可以利用以下在图21A中所绘出的过程来计算。图21B提供了帮助理解用于图21A过程计算的几何结构的框架。
图像分析计算机110在步骤2101中检索先前计算出或确定的多个值。术语“检索”不意味着传送(convey)任何特定的存储/检索设备、方法或协议,而仅仅是这些值可以由图像分析计算机110在进行附加计算的时候访问。检索出的值中有一些是用于估计的左上角和估计的右上角的坐标,其中用于左上角的Y值和用于右上角的Y值是通过确定从预审合格的左下角/底部托盘板的上表面200A到上部托盘板202上的点的距离来找出的,然后这个距离从用于预审合格的左下角和可能的右上角的每个Y值中减去(减去这个距离是因为当点在第一Ro图像中向上移动时y坐标值减小)。其它值包括定义经过预审合格的左下角的底部托盘板线LBPB的参数
在步骤2103中,图像分析计算机110根据以下公式计算值h:
公式11:
ρBPBL=从规格化的灰度级图像上的原点到经过预审合格的左下角的底部托盘板线LBPB的正交距离;
=水平线与底部托盘板线LBPB之间的角度;
yUpperLeft=用于估计的左上角的Y坐标值;
yupperRight=用于估计的右上角的Y坐标值;
xUpperLeft=用于估计的左上角的X坐标值;及
xUpperRight=用于估计的右上角的X坐标值。
参考图21B,图21A的过程可以更容易地理解。绘出了预审合格的左下角2106、估计的左上角2108和估计的右上角2110。早先计算出的并且经过左下角2106的底部托盘板线2102离原点O具有根据以上公式5计算出的正交距离ρBPBL,并且相对于水平线构成角度2104。那个相同的角度可以用于画经过估计的左上角2108的第一条线2112和经过估计的右上角2110的第二条线(未示出)。如果估计的左上角2108适当地与估计的右上角2110对准,则同一条线可以经过这两个角落。但是,更有可能可能画出两条不同的线。这两条线中每一条都将具有相应离原点O的正交距离。公式11使用这些相应的正交距离来确定这两条可能的线当中哪一条更接近原点O并且对h产生更高的值。
在图21B中,选择了左上角2108,这仅仅是作为例子,因为它产生了离原点O具有更小正交距离并且且对h产生更高值的线2112。因而,画通过估计的左上角2108的线2112并且,其到原点的正交距离可以通过下式表示
因而,从公式11找出的h是在到底部托盘板线2102的正交距离ρBPBL和到上部线2112的正交距离ρTPBL之间的差。在做出公式11中的决定时,图像分析计算机110可以在比较这两个值之前,把这两个值中的每一个取整到最接近的相应的整数,或者可以比较原始值,然后仅取整最大值来确定h。
如前面关于图18所提到的,托盘对象可以分别由第一、第二和第三矩形1802、1804和1810来定义,这三个矩形可以代表托盘的第一和第二叉子接纳开口及垂直、中心纵梁的至少一部分。
第一矩形1802可以定义为使得它沿着底部托盘板线LBPB1805向预审合格的左下角1806的左边延伸至多200个像素并且与线1805正交地在y之上延伸h个像素。如以上所指出的,第一矩形1802潜在地代表在托盘中心纵梁左边第一叉子接纳开口210的一部分。而且,第二矩形1804可以定义为使得它沿着线1825向可能的右下角1808的右边延伸至多200个像素,这个可能的右下角1808包括具有预审合格的左下角1806的候选对象,并且与线1825正交地在y之上延伸h个像素。线1825可以或者可以不经过预审合格的左下角1806;但是,它关于x轴以相同的角度定向。第二矩形1804潜在地代表在托盘中心纵梁(对应于第三矩形1810)右边第二叉子接纳开口211的一部分。第三矩形1810从预审合格的左下角1806水平地延伸到候选对象的可能的右下角1808并且正交地在y之上延伸h个像素,以潜在地代表托盘中心纵梁。
第一矩形1802和第二矩形1804的宽度可以依赖图像的尺寸、预审合格的左下角的x坐标值XLLC以及可能的右下角的x坐标值XLRC而变。对于尺寸为480x752像素的图像,第一和第二矩形1802、1804相应的最大宽度可以是200像素。对于尺寸为240x376像素的图像,第一和第二矩形1802、1804相应的最大宽度可以是100像素。但是,候选对象可以具有在图像中定位成使得图像区域的边缘在其中一个角落的200像素(或100像素)内的预审合格的左下角和可能的右下角。在这种情况下,矩形(例如,1802、1804)的宽度可能必须小于200像素(或者,如果照相机进行2x2装仓的话,100像素)。因而,如以下更详细解释的,计算leftWidth值并且计算rightWidth值,来确定第一矩形1802和第二矩形1804相应的宽度。
例如,如果预审合格的左下角1806位于位置(145,250),可能的右下角1808位于位置(155,252),则每个矩形的宽度是相应计算出的值,h=10,而角度然后这三个矩形1802、1804和1810中每一个的所有角落1801、1821、1803、1815、1806、1808、1809、1811、1823、1813、1817和1807都可以计算。如以下更完整描述的,规格化的灰度级图像中构成不同矩形1802、1804和1810的像素的值然后可以用于计算代表这些矩形实际对应于托盘洞和中心纵梁的置信度(CONFIDENCE)的值。
虽然矩形1802、1804和1810的精确界定可以被计算并用于产生这种置信值,但是,作为替代,可以作出一些简化下述一些计算步骤的假设和近似。特别地,矩形1802、1804和1810中每一个都可以通过相应的平行四边形来近似,其中每个平行四边形都由h行像素构造,其中每行像素都与底部托盘板线1805平行。因而,作为本文中所使用的术语,“矩形”也要涵盖“平行四边形”。如前面所解释过的,快速画线算法,诸如布氏算法,可以用于在已知经一条线的两个端点时识别要包括在该线上的中间像素。
图23A提供了可以用于构造近似矩形1802、1804和1810的相应平行四边形的一种示例过程的流程图。图22A说明了对应于第一矩形1802的平行四边形。一般而言,平行四边形是通过以下步骤构造的:a)确定在两个下边角落之间所画的第一条线的像素,b)识别下一条线的两个端点,c)识别要在包括在这下一条线当中的像素,及d)对h条线重复这些步骤。最终,一个特定平行四边形的所有像素将都识别出来并且,如果期望的话,可以逻辑地分组到h个不同的线中。
如图22A中所示出的,利用第一矩形1802的下边角落1801和1821、计算出的h值以及角度可以利用图23A的过程构造近似第一矩形1802的平行四边形2202。图23A的过程可以与三个平行四边形中任何一个一起使用,但是以下的示例讨论碰巧涉及对应于第一矩形1802的第一平行四边形2202。
在步骤2302,根据下式计算左端点(即,平行四边形2202的第一条线的左下角1801)的x坐标x11:
见图18,
并且根据下式计算右端点(即,平行四边形2202的第一条线的右下角1802)的x坐标x12:
x12=XLLC–1
在以上的公式中,下标中的第一个数字指对应于该平行四边形的矩形,而下标中的第二个数字指用于平行四边形中特定线的端点。例如,“x12”指对应于第一矩形1802的平行四边形2202的当前线的第二(即,右)端点的x坐标。但是,如以下关于相应端点的y坐标更完全描述的,每个平行四边形都包括h个不同的线。因此,另一个索引值r可以添加到下标中,来区分h条线中哪个特定的线在公式中被使用。这个索引值r的范围从r=0到r=h-1,其中r=0指平行四边形最底部的线。因而,可以执行把r的值初始化成等于零的初始步骤2301。利用这个下标惯例,
见图18,用于三个平行四边形中每一个当中的第一条线的端点的x坐标可以根据以下来计算:
x12r=XLLC–1
x21r=XLRC+1
x31r=XLLC
x32r=XLRC
其中,对于第一条线,r=0;及
并且imageWidth是图像中像素列的个数。
在以上的例子中,预审合格的左下角1806位于位置(145,250),而可能的右下角1808位于位置(155,252),并且角度如果图像尺寸假设为是240x376像素,则根据以上公式,leftWidth=100且rightWidth=100。在图像尺寸为480x752像素的备选例子中,以上公式提供leftWidth=146且rightWidth=200。根据以上计算,平行四边形2202的右下角1821与第一矩形1802的右下角1821处于相同的x坐标x12,并且被选择作为在预审合格的左下角1806左边的一个像素。平行四边形2202的左下角1801与矩形1802的左下角1801处于相同的x坐标x11,并且沿着底部托盘板线1805位于预审合格的左下角1806左边leftWidth个像素。
接下来,图像分析计算机110可以为这两个端点计算y坐标,分别是y11和y12。例如,用于左下角1801的y坐标可以从用于到处于已知角度经过已知点(x11,y11)的线的正交距离ρline的公式来计算:
求解点的y坐标给出公式:
但是,如所提到的,图23A的过程自动化对h条不同的线计算端点。因此,在步骤2306,图像分析计算机110使用整数,从0到h-1变化的索引值“r”,来参考平行四边形2202中每条个别的线。图23B说明了为第一平行四边形2202计算的h-1条线中的3条。最底部的线是底部托盘板线1805并且对应于r=0。朝上的下一条线,线2301,对应于r=1并且离原点具有等于(ρBPBL–r)的正交距离。存在这些线中计算的h个,其中,最后一条线,线2303,对应于r=h-1并且离原点具有等于(ρBPBL–h+1)的正交距离。
因而,对于这些线中的任意一条(例如,r=0至r=h-1),左端点的y坐标(即,y11r)和右端点的y坐标(即,y12r)可以由图像分析计算机110在步骤2308中根据下式计算:
利用当前已知的线的两个端点的两个坐标,图像分析计算机110可以在步骤2310中利用传统的画线算法,诸如布氏算法,识别要包括在这两个端点之间的当前线中的中间像素位置。识别出要包括在一条线中的像素位置随后用于提取规格化的灰度级图像中那些位置的像素值。如以下所描述的,这些像素值用于为对应于三个矩形1802、1804和1810的三个平行四边形中每一个生成相应的垂直投影。
在步骤2312中,图像分析计算机110确定是所有h条线都已经计算过了还是还有剩下的。如果还有剩下的,则在步骤2302和2304中计算新的x坐标并且在步骤2306中递增r索引值。在步骤2302和2304中设置新x坐标值的时候,作出平行四边形的边(side)在y方向正交的近似。因而,对于h条线中的每一条,x11r和x12r都是相同的,并且步骤2302和2304只需要在图23A的算法第一次执行时计算这些值。
总之,用于第一平行四边形2202的h条线中每一条线的相应的第一和第二端点坐标根据下式计算:
x12r=XLLC–1;
及
其中:
XLLC=底部托盘板线,LBPB,通过其的预审合格的左下角的x坐标,及
r=唯一地指第一平行四边形2202、第二平行四边形2220和第三平行四边形2240中每一个当中相应h条线中一条的索引值,其值从0到(h-1)变化,其中r=0指h条线中最底部的一条。
而且,用于第二平行四边形2220的h条线中每一条的相应的第一和第二端点根据下式计算:
x21r=XLRC+1;
及
其中:
XLRC=可能的中心纵梁的可能的右下角的x坐标,及
r=唯一地指第一平行四边形2202、第二平行四边形2220和第三平行四边形2240中每一个当中相应h条线中一条的索引值,其值从0到(h-1)变化,其中r=0指h条线中最底部的一条。
最后,对于第三个平行四边形,根据下式计算h条线中每一条的相应的第一和第二端点:
x31r=XLLC;
x32r=XLRC;
及
图23A的过程突出了如何计算这h条线。但是,要计算h条线的原因涉及在步骤2310中计算的垂直投影。这个步骤的细节在图23C的流程图中说明。图23C的过程在已经计算出用于平行四边形2202的一个特定线的两个端点时开始。基于这两个端点,快速画线算法可以用于确定哪些中间像素要包括在特定的线中。
在步骤2350中,图像分析计算机110在左端点开始其第一次迭代(即,i=1)。如以上更详细描述的,快速画线算法,诸如布氏算法,在后续的迭代中,在x方向步进一个像素,每次迭代利用线的斜率以确定用于算法的那次特定迭代的y坐标值。因而,在步骤2352中,图像分析计算机110确定在算法的第i次迭代用于特定线r的当前像素位置的x坐标和y坐标。在步骤2354中确定规格化的灰度级图像中处于那个像素位置的像素值。
在示例平行四边形2202中,平行四边形的每一条线(即,每个不同的“r”值)在x方向横跨leftCount个像素,其中 并且,因此,要执行leftCount次迭代来确定每一条线的中间像素。相应的累加器Yi用于为算法2310的leftCount次不同迭代中的每一次迭代构造负像素的垂直投影。由此,在所说明的实施例中,leftCount累加器定义为对应于为平行四边形的h条线中每一条执行的leftCount次迭代。每个累加器还对应于h条线中每一条当中leftCount个像素值每一个相应的X坐标。
在步骤2356中,确定规格化的灰度级图像中处于刚在第i次迭代中生成的像素位置的像素值是否为负。如果是,则在步骤2358中那个像素值添加到累加器Yi。当不在托盘结构之上时,规格化的灰度级图像中像素的值为负,而当在托盘结构之上时,趋于为正。图像分析计算机110在步骤2360中递增索引计数i以及x坐标值。在步骤2362中,图像分析计算机110确定是否所有leftCount次迭代都已经完成。如果没有,则过程在步骤2352对线中下一个中间像素位置开始重复。
在图23C过程步骤结束时,用于特定线的中间像素值已经计算出来并且用于为快速画线算法的每次迭代更新相应的累加器Yi。因为图23A的全部过程对h条线重复,图23C的这个过程对h条线中的每一条重复,并且因此,累加器Yi代表用于构造平行四边形2202的所有线的数据。只有负像素累加到投影中。
描述如何计算累加器Yi中的值的另一种途径是根据下式在每个相应的累加器Yi中累加和时考虑上述过程:
其中:
i=指向第一平行四边形2202的特定线中特定像素位置的相对x坐标的索引值,其值从1到Q变化,其中i=1对应于特定线中最左边的像素位置,而i=Q对应于特定线中最右边的像素位置;
r=唯一地指向第一平行四边形2202、第二平行四边形2220和第三平行四边形2240中每一个当中相应h条线中一条的索引值,其值从0到(h-1)变化,其中r=0指h条线中最底部的一条;及
GSPVir=规格化的灰度级图像中位于由第一平行四边形2202第r条线中第i个位置指示的像素位置的像素的灰度级像素值(GSPV),其中,如果GSPVir小于零,就把GSPVir添加到相应的累加器和Yi。
回过头来参考图22A,示例平行四边形2202的角落具有相应的坐标值:
左下角:(45,236)
右下角:(144,250)
左上角:(45,227)
右上角:(144,240)
在这个特定的例子中,平行四边形的每一条线(即,每个不同的“r”值)都在x方向横跨100个像素,并且相应的累加器Yi用于为平行四边形2202的100个不同列中每一列构造垂直投影。例如,对于底部的线1805,快速画线算法从x=45步进到x=144并且在途中每一步计算适当的y坐标值。在图22A的例子中,对每一条线突出算法的第96步。对于线r=0,这第96步具有像素位置(140,247);对于线r=4,这第96步具有像素位置(140,243);而对于线r=9,这第96步具有像素位置(140,238)。
如果平行四边形2202覆盖到规格化的灰度级图像上,则累加器Y96可以看作来自规格化的灰度级图像的列x=140的负像素在平行四边形2202用于那一列的y界限内的垂直投影。
如所提到的,图23A和图23B的过程是关于对应于第一矩形1802的平行四边形2202描述的。但是,如图22B中所示的对应于第二矩形1804的平行四边形2220可以类似地构造。而且,如图22C中所示的对应于第三矩形1810的平行四边形2240可以类似地构造。
图22B的平行四边形2220基本上类似于第一平行四边形2202,因为有rightCount个用于确定来自平行四边形2220的像素的垂直投影的累加器2222。更一般地,虽然平行四边形2220的每一条线在x方向横跨rightCount个像素,其中由此指示有rightCount个累加器2222。但是,在其它例子中,leftCount和rightCount的值可以不同,使得可以使用不同个数的累加器。图22C的平行四边形2240对应于可能代表中心纵梁的第三矩形1810。因而,这个平行四边形的宽度不是由rightWidth或leftWidth的值确定的,而是由预审合格的左下角1806和可能的右下角1808的坐标确定的。
为了为“洞”生成得分,第一和第二平行四边形2202和2220被视为一个单元。因而,计算用于第一和第二平行四边形2202和2220的一个垂直投影并且计算单独的、用于第三平行四边形2240的第二垂直投影。
如以上所提到的,当为这些区域计算垂直投影时,第一和第二平行四边形2202和2220被视为单个单元。因而,根据图23A和图23C的过程,计算Yi的200个值,两个平行四边形2202和2220的每一列一个。非常像用于为第一平行四边形2202计算累加器值Yi的过程,也可以为第二平行四边形2220计算累加器Yi的值。对于第二平行四边形2220,负像素的累加器Yi中的值是通过根据下式在每个相应的累加器Yi中累加和来计算的:
其中:
i=指向第二平行四边形2220的特定线中特定像素位置的相对x坐标的索引值,其值从Q+1到Q+rightWidth变化,其中i=Q+1对应于特定线中最左边的像素位置,而i=Q+rightWidth对应于特定线中最右边的像素位置;
r=唯一地指向第一平行四边形2202、第二平行四边形2220和第三平行四边形2240中每一个当中相应h条线中一条的索引值,其值从0到(h-1)变化,其中r=0指h条线中最底部的一条;及
GSPVir=规格化的灰度级图像中位于由第二平行四边形2220第r条线中第i个位置指示的像素位置的像素的灰度级像素值(GSPV),其中,如果GSPVir小于零,就把GSPVir添加到相应的累加器和Yi。
基于用于所计算出的第一和第二平行四边形2202和2220的Yi的不同值,平均值可以根据公式12来确定:
其中N代表组合的两个平行四边形2202和2220中列的总数(例如,利用前面例子的坐标,N=200)。这个平均值在为第三个平行四边形2240确定得分时可以使用。
参考图22C,阴影像素代表第三个平行四边形2240。存在一个从1到11变化(在这个例子中)的索引值j2270,以便唯一地识别平行四边形2240中的每一列。对于每一列,根据图23D的过程计算值Zj2272,这个值代表灰度级图像每一列中负像素值的一部分之和。
图23D的过程与图23C的过程相似。如上所述,图23C的过程应用到第一和第二平行四边形2202和2220。图23D的过程以类似的方式应用到第三个平行四边形2240。当用于平行四边形2240特定线的两个端点(即,第三个平行四边形2240的第一条线的端点1806和1808)已经计算出来时,该过程开始。基于这两个端点,快速画线算法可以用于确定哪些中间像素要包括在该特定的线中。
在步骤2351,图像分析计算机110在平行四边形2240当前线(例如,线r)上的左端点(即,j=1)开始。如以上更详细描述的,快速划线算法,诸如布氏算法,在后续迭代中,在每次迭代在x方向步进一个像素,利用线的斜率以确定用于图23D过程的那次特定迭代的y坐标值。因而,在步骤2353中,图像分析计算机110为特定线r确定在该算法的第j次迭代用于当前像素位置的x坐标和y坐标。在步骤2355中确定规格化的灰度级图像中位于那个像素位置的像素的值。
在示例平行四边形2240中,平行四边形的每一条线(即,每个不同的“r”值)从用于预审合格的左下角1806的x坐标XLLC横跨到用于可能的右下角1808的x坐标值XLRC,并且因此,要执行(XLRC–XLLC)次迭代来确定每一条线的中间像素。相应的累加器Zj用于为图23D过程的每次不同迭代(在图22C的例子中,有11次迭代)构造一些负像素的垂直投影。由此,在所说明的实施例中,定义了对应于为平行四边形2240的h条线中每一条线执行的11次迭代的11个累加器。每个累加器还对应于h条线中每一条线的11个像素中一个的相应X坐标值。
即使用于当前像素位置的像素值(在步骤2355中)为负,也没有必要把它包括在特定累加器Zj中所计算的垂直投影中。只有那些具有满足以下不等式的灰度级值的像素才被包括:
其中是根据公式12计算的,而h是根据公式11计算的。
因而,在步骤2357中,确定规格化的灰度级图像中位于刚在第j次迭代中生成的像素位置的像素值是否满足以上不等式。如果满足,则在步骤2359中那个像素值添加到累加器Zj。图像分析计算机110在步骤2361中递增索引计数j以及x坐标值。在步骤2363中,图像分析计算机110确定是否所有迭代都已经完成。如果没有,则该过程利用当前线中的下一个中间像素位置在步骤2353开始重复。
在图23D过程步骤结束时,用于特定线的中间像素值已经计算出来并且用于为快速画线算法的每次迭代更新相应的累加器Zj。图23D的这个过程对h条线中的每一条重复,并且使得最终累加器Zj代表用于构造平行四边形2240的所有线的数据。
合起来看,Zj的值是规格化的灰度级图像中对应于平行四边形2240像素位置的负值像素的一部分的垂直投影。描述如何计算累加器Zj中的值的另一种途径是根据下式在每个相应的累加器Zj中累加和时考虑上述过程:
其中:
j=指向第三平行四边形2240的特定线中特定像素位置的相对x坐标的索引值,其值从1到s变化,其中j=1对应于特定线中最左边的像素位置,而j=s对应于特定线中最右边的像素位置;
r=唯一地指向第一平行四边形2202、第二平行四边形2220和第三平行四边形2240中每一个当中相应h条线中一条的索引值,其值从0到(h-1)变化,其中r=0指h条线中最底部的一条;及
GSPVjr=规格化的灰度级图像中位于由第三平行四边形2240第r条线中第j个位置指示的像素位置的像素的灰度级像素值(GSPV),其中,如果GSPVjr小于或等于就把GSPVjr添加到相应的累加器和Zj。
然后,利用公式13为三个平行四边形计算合成的洞得分:
其中:并且
在以上计算中,s代表从预审合格的左下角到可能的右下角的列数,而N代表组合的两个平行四边形2202和2220中总的列数。利用前面例子的坐标,s=11且N=200。
如果或者或者的相应的平均值为零,则合成的洞得分设置成零;否则就根据以上公式来计算合成的洞得分。公式13右侧中间的项对于矩形洞处于最小值,并且Z投影的均值与Z均值和Y均值之和的比(公式13中最右边的项)对于垂直纵梁处于最小值。因而,根据以上公式,当第一和第二平行四边形2202和2220位于托盘洞之上并且第三平行四边形2240位于托盘纵梁之上时,用于Scorehole的值更高。
对于其Scoreleft(和/或Scoreright,依赖于用于计算这些值的特定技术)超过如上所述预定阈值的每个候选对象,利用以下公式确定合成的对象得分:
其中:
ScoreLowerleftCorner=从左下角图像中为对应于候选对象的预审合格的左下角的像素位置计算出的值;
ScoreLowerRightCorner=从右下角图像中为对应于候选对象的可能右下角的像素位置计算出的值;及
根据利用公式6评估了的61条线的最高计数器值计算出的得分。值“M”是Ro图像的以像素为单位的宽度,而Ny是与每个计数器关联的子线的个数;及
ScoreHole=来自公式13的值。
以上描述用于识别灰度级图像中可以对应于与托盘关联的托盘的候选对象,托盘可以特征化为具有隔开托盘P的两个洞或开口的一个中心纵梁(例如,208)。本领域普通技术人员将认识到,即使存在不同的托盘结构,类似的技术也可以使用。例如,有些托盘可以包括隔开两个洞或开口的两个中心纵梁并且具有位于两个中心纵梁之间的一个中心洞或开口。在这种情况下,每个中心纵梁将具有它自己的四个角落,这些角落可以利用上述技术来识别。而且,公式13的Y和Z值可以修改成考虑附加的中心矩形洞和附加的中心纵梁。因而,示例合成得分计算可以不同,诸如像:
有些托盘可以具有其一部分延伸到底部托盘板线前面的中心纵梁。上述通用技术仍然可以使用但是可能需要对给公式6的61条线评分的方式进行补偿。有些托盘可以具有在底部托盘板线和中心纵梁之间出现的圆角,或者其它形状的角落,而不是前面关于图3的托盘P所讨论的方角。同样可以使用上述通用技术,但是与掩码300和310(见图6和7)那些不同的掩码结构可以提供有益的结果。可以有不包括下部托盘板的几个托盘。在这种情况下,托盘位于其上的货架的顶部可以是用于识别底部托盘板线的备选结构,而且与上述相同或相似的技术可以用于识别并给各个候选对象打分。
图像中的已经为其确定了合成对象得分值“ScoreObject”的候选对象在本文中被称为“评分的候选对象”并且定义图像中最有可能对应于实际托盘的对象。评分的候选对象通常具有0到大约1.0之间的ScoreObject,而实际对应于托盘的评分的候选对象对于任一图像尺寸通常都具有大于0.5、接近1.0的ScoreObject。但是,虽然图像帧中实际上只有几个托盘,但是会在图像帧中识别出大量这种评分的候选对象。因此,每个图像帧中评分的候选对象的个数可以进一步减少,以降低对多个图像帧进行后续分析的计算负担。
如以下更详细描述的,图像分析计算机110在不同的时刻获得一系列图像帧。在每个图像帧中,都利用上述技术识别候选对象并打分。然后,如果可能的话,就在图像帧之间跟踪这些评分的候选对象。为了实现这种跟踪,图像分析计算机110维护关于来自前面或前一图像帧的现有评分的候选对象以及最近获得的或者下一个图像帧中识别出的新的评分的候选对象的信息。在最近获得的图像帧中,所识别出的“新的”评分的候选对象可以包括在任何一个前面的图像帧中都没有识别出的一些评分的候选对象,但是还可以包括可以匹配,或对应于,在早先图像帧中先前识别出的现有评分的候选对象的评分的候选对象。
让图像分析计算机110维护这种信息的一种途径是维护所有评分的候选对象的列表,使得对于每个评分的候选对象,都存储包含多个对应对象特征的相应记录。对象特征可以包括,例如,作为离原点的正交距离和对应底部托盘板线的离水平面的角度的参数对应的合成对象得分值“ScoreObject”、用于对应中心纵梁的左下角的x-y坐标、用于中心纵梁的其它三个角落的x-y坐标、用于与有可能分别对应于左和右叉子接纳开口和中心纵梁的评分的候选对象所关联矩形1802、1804、1810的x-y坐标(见图18)、如根据以上公式11计算出的矩形的高度h,以及对应的个别分量得分值,诸如ScoreLowerRightCorner、ScoreLowerLeftCorner和ScoreHoles。如以下更详细描述的,还有其它特征可以包括在每个记录中,以帮助在不同图像帧之间跟踪评分的候选对象。
评分的候选对象的这个列表及其对应的记录,可以被称为对象列表(Objectlist)。图像分析计算机110可以维护两个不同的Objectlist。可以维护包括现有评分的候选对象的现有对象列表(ExistingObjectlist)并且可以维护包括最近获得的图像帧中的评分的候选对象的新对象列表(NewObjectlist)。图23E绘出了根据本发明原理用于维护Objectlist的示例性过程的流程图。在步骤2370,图像分析计算机110维护ExistingObjectlist,如以上所提到的,该列表包括用于被跟踪的、来自前面一个或多个图像帧的现有评分的候选对象的相应记录。图像分析计算机110在步骤2372中获得下一个图像帧或下一灰度级图像。此外,图像分析计算机110还为这下一个图像帧中最终的评分的候选对象创建NewObjectlist。利用上述技术,图像分析计算机在步骤2374中识别这个新图像帧中评分的候选对象然后给其打分。在以下更完整描述的步骤中,图像分析计算机110可以在步骤2376中从NewObjectlist修剪来自NewObjectlist的评分的候选对象,以减少将被跟踪的评分的候选对象的个数。在步骤2378中,修剪后的NewObjectlist中的评分的候选对象可以与ExistingObjectlist中对应的对象匹配,或者尝试匹配。ExistingObjectlist中有些评分的候选对象可能在NewObjectlist中没有匹配,并且在步骤2380中有可能可以从ExistingObjectlist中被删除,因此它们不再被跟踪。避免在第一次不匹配时删除评分的候选对象,而是在删除该评分的候选对象之前等待或者两次或者三次后续不匹配的发生可能是有益的。而且,NewObjectlist中有些评分的候选对象可能在ExistingObjectlist中不具有对应的匹配对象;于是,这些评分的候选对象将被添加到ExistingObjectlist。
依赖于评分的候选对象如何匹配,在步骤2382中,ExistingObjectlist中的记录可以被更新,以反映来自NewObjectlist的新信息,以便提供将继续被跟踪到下一个图像帧中的评分的候选对象的当前列表。而且,在步骤2384中,图像分析计算机110可以把NewObjectlist中没有找到与ExistingObjectlist中现有对象匹配的新识别出的对象添加到ExistingObjectlist中的对象。然后,过程控制返回步骤2372,在那里获得下一个图像帧,并且可以创建新的NewObjectlist,使得处理可以重复。
如以上关于图23E的步骤2376所提到的,如果期望的话,则图像分析计算机110可以从NewObjectlist修剪一些评分的候选对象。特别地,利用与每个评分的候选对象关联的对象特征,图像分析计算机110可以从图像帧的NewObjectlist中消除不可能实际对应于托盘的一些评分的候选对象。
图23E中所示的步骤示为顺序发生;但是,本领域普通技术人员将认识到,在不背离本发明范围的情况下,有些步骤可以同时执行。例如,没有必要等到在步骤2378中所有对象都匹配才开始在步骤2372中获得下一个图像帧。
图24A绘出了用于从用于一个图像帧的NewObjectlist中消除至少一些评分的候选对象的示例性算法的流程图。如以上所提到的,并且如步骤2402中所示,图像分析计算机110维护用于当前被分析的图像帧中评分的候选对象的NewObjectlist。利用用于每个评分的候选对象相应合成对象得分ScoreObject,图像分析计算机110可以在步骤2404中消除其ScoreObject值低于预定最小值的所有评分的候选对象。例如,ScoreObject得分低于0.3的所有评分的候选对象都可以从用于该图像帧的NewObjectlist删除。
根据本发明的一个示例方面,灰度级图像的图形显示可以经车辆20上的图像监控器(未示出)提供给车辆20的操作人员,其中该图形显示可以由车辆计算机50来控制。在这个图形显示中,代表ExistingObjectlist中评分的候选对象的信息可以覆盖到灰度级图像上。例如,代表评分的候选对象的底部托盘板线的红线可以在灰度级图像上相信是该底部托盘板线所在的地方可视地显示。类似地,代表用于评分的候选对象的中心纵梁的信息也可以覆盖到图形显示中的灰度级图像上。例如,可以显示两条垂直线,每条线代表纵梁相应的左垂直边缘和相应的右垂直边缘。作为替代,可以显示对应于评分的候选对象的中心纵梁的预审合格的左下角和可能的右下角的相应的圆形。图形覆盖的信息可以是彩色的或者编码的,使得不同的评分的候选对象可以在图形显示中很容易区分。为了减少显示器上视觉混乱的可能,图像分析计算机110可以在ExistingObjectlist和NewObjectlist中维护其合成对象得分大于大约0.3的评分的候选对象,但是只有ExistingObjectlist中合成对象得分大于或等于大约0.5的评分的候选对象才被车辆计算机50显示。
除了在步骤2404中消除一些评分的候选对象,图像分析计算机110还可以确定是否有与其它评分的候选对象太接近的评分的候选对象。换句话说,两个托盘不能物理上占据相同的空间,这意味着,如果两个评分的候选对象彼此接近超过托盘所允许的物理维度,则那些评分的候选对象中至少一个将被消除。因而,在步骤2406中,图像分析计算机识别并消除其ScoreObject值小于附近其它评分的候选对象的评分的候选对象。例如,图像分析计算机110可以首先确定NewObjectlist中每个评分的候选对象的位置,然后识别在彼此预定距离内的那些评分的候选对象。彼此在这个预定距离内的评分的候选对象被认为在彼此附近。对于那些被识别为在彼此附近的评分的候选对象,这些评分的候选对象中一些可以从用于那个图像帧的NewObjectlist中被消除。图24B提供了可以实现为实现步骤2406的过程的附加细节。
通过依赖用于每个评分的候选对象的相应的中心纵梁的维度,附加的评分的候选对象也可以从NewObjectlist中被消除。虽然两个评分的候选对象可以彼此远到使它们不被认为是在彼此附近,但是,基于它们相应中心纵梁的垂直坐标,它们的共存仍然可能是不可能的。因而,无论评分的候选对象的子集在水平方向的距离如何,如果其相应中心纵梁的部分重叠坐标的特定垂直跨度,则该评分的候选对象的子集可以被认为是彼此在垂直本地,或者就是是“本地”。关于那些被认为彼此在本地的评分的候选对象,具有最大合成得分ScoreObject的评分的候选对象可以在NewObjectlist保留,而其它评分的候选对象被删除。例如,给定具有底部托盘板线以及与其它本地候选对象相比具有最大值ScoreObject的特定评分的候选对象(例如,Object(m)),其中所有其它本地候选对象都位于该底部托盘板线的预定数量的像素内,在步骤2408中其它本地的候选对象可以从NewObjectlist中被消除。图24C提供了可以实现为实现步骤2408的过程的附加细节。
因而,利用修剪步骤2404、2406和2408,用于图像帧的NewObjectlist的尺寸可以减小,使得在本文所述的后续图像处理和分析过程中更少的评分的后续对象包括在NewObjectlist中。
如所提到的,图24B提供了可以实现为实现步骤2406的过程的附加细节,其中NewObjectlist中的评分的候选对象被进一步分析,以确定是否有一个或多个评分的候选对象可以从用于该图像帧的NewObjectlist中消除。首先,在步骤2410中,图像分析计算机110确定NewObjectlist中是否存在任何还没有测试的评分的候选对象。在过程2406的初次通程(pass),整个NewObjectlist都保持未测试,并且每次迭代有另一个评分的候选对象被测试,直到最终所有评分的候选对象都被测试。例如,NewObjectlist可以包括多个评分的候选对象(例如,N个)并且每个对象可以唯一地通过范围在1到N的索引值k来引用。换句话说,Object(k)可以用于唯一地表示包括在NewObjectlist中的一个评分的候选对象。因此,如果存在任何还未测试的评分的候选对象,则控制转到步骤2412;否则,控制转到步骤2422。
在步骤2412,图像分析计算机110从NewObjectlist选择其中一个评分的候选对象,Object(k)。选择对象的一种直接途径是使用索引值k,在过程2406的每次迭代过程中,该索引值k在步骤2420中递增,使得对于每一步,被测试的特定评分的候选对象都可以被称为Object(k)。在步骤2414,图像分析计算机110识别离Object(k)接近超过预定距离的所有评分的候选对象。
为了实现在附近的对象的识别,可以首先确定每个评分的候选对象的位置。如以上所提到的,存在与每个评分的候选对象关联的多个对象特征,包括涉及候选对象的不同特征(例如,中心纵梁左下角、中心纵梁右下角,等等)的多个不同的x-y坐标对。评分的候选对象,Object(k),的位置将是一组x-y坐标(xobject(k),yobject(k))。可以被认为对应于评分的候选对象的参考的有益的一个点是评分的候选对象的中心纵梁的下部中心。参考图24D,Object(k)2448通过绘制中心纵梁2454来说明。中心纵梁2454包括预审合格的左下角2450和可能的右下角2452。在第一Ro图像中经预审合格的左下角2450所画的底部托盘板线2456具有离原点2400的正交距离ρk2460。用于评分的候选对象2448(以及中心纵梁2454)的位置2458,即对象的下部中心点,的坐标可以从关于该评分的候选对象的对象特征估计。例如,利用左下角的x坐标XLLC2450和右下角的x坐标XLRC2452,x坐标值xobject(k)可以估计为等于利用对于评分的候选对象2448的来自第一Ro图像的正交距离ρk2460,坐标yobject(k)可以估计为等于ρk2460。因而,对于NewObjectlist中的每个对象,可以确定对应的相应位置。这个“位置”值可以是为用于一个图像帧的NewObjectlist中每个评分的候选对象存储的其中一个对象特征。因而,当在NewObjectlist中识别出特定的评分的候选对象时,这个对象特征,或属性,可以被检索并在图像帧的图像分析和处理中使用。本领域普通技术人员将认识到,在不背离本发明范围的情况下,评分的候选对象的“位置”可以由评分的候选对象中除中心纵梁的下部中心之外的特征来定义。
一旦识别出用于每个评分的候选对象的相应位置,步骤2414就可以识别离特定的评分的候选对象,Object(k),接近超过预定距离的所有那些评分的候选对象。在二维的图像帧中,诸如在图24D中所绘出的,两个点(xg,yg)和(xh,yh)之间的距离d可以根据来计算。利用对距离的这个计算,图像分析计算机110在步骤2414中把NewObjectlist中作为在Object(k)附近的所有评分的候选对象确定为满足以下公式的那些评分的候选对象:
其中:
k:NewObjectlist中要为其确定从Object(k)到所有其它评分的候选对象的相应距离的特定的评分的候选对象,Object(k),的索引值;k从1到N变化;
(xobject(k),yobject(k))是用于评分的候选对象Object(k)的x-y坐标对;
i:NewObjectlist中特定的评分的候选对象,Object(i),的索引值;索引值i从1到N变化,除值k之外,使得可以确定所有其它评分的候选对象离Object(k)的距离;
(xobject(i),yobject(i))是用于评分的候选对象Object(i)的x-y坐标对;及
d:评分的候选对象之间预定的可允许最小距离,其中彼此距离小于或等于d的两个候选对象被认为在彼此附近。值d可以是例如50个像素。
作为以上公式的结果,对于特定的评分的候选对象,Object(k),对照NewObjectlist中所有其它评分的后续对象测试,图像分析计算机110可以确定是否存在被确定为在Object(k)附近的任何评分的候选对象。
因为用于评分的候选对象的坐标值指像素位置,所以评分的候选对象之间的距离指像素位置之间的距离。但是,像素位置之间的距离对应于在灰度级图像中捕捉到的托盘结构,或者潜在的托盘结构,之间的物理距离。考虑托盘的典型尺寸,或者已知的尺寸范围,以及灰度级图像的对应比例,托盘结构之间的物理距离可以与灰度级图像的像素距离相关联。如果两个(或更多个)评分的候选对象像素距离比两个不同托盘物理上可能的更接近,例如,在使用大图像尺寸(例如,480x752像素)时是50像素或者对于较小图像尺寸(例如,240x376像素)是25像素,则那些候选对象中至少一个可以被消除作为可能的候选对象,因为它们两者(或者所有)不能都对应于灰度级图像中的实际托盘结构。
因而,在步骤2416中,图像分析计算机110比较Object(k)的相应ScoreObject与用于在步骤2414中识别出的所有在附近的对象的相应ScoreObject值。如果Object(k)的得分小于在步骤2414中识别出的任一对象的得分,则在步骤2418中Object(k)被放到列表中,用于将来删除。
在步骤2420中,图像分析计算机110递增k并且对NewObjectlist的下一个评分的候选对象重复该测试过程。最终,在步骤2422中,NewObjectlist中所有评分的候选对象都被测试并且添加到用于删除的列表的所有评分的候选对象随后都可以从NewObjectlist修剪掉。假设在步骤2418中一个或多个评分的候选对象添加到了删除列表,则用于NewObjectlist的索引值k现在从1到M变化,其中M<N。回过头来参考图24D,示出了围住半径为d个像素且中心在Object(k)(即,评分的候选对象2448)的位置2458的一个区域的圆形2446。对于在图24D中绘出的剩余评分的候选对象(2466、2470、2472、2474、2486),Object(4)2486被认为是在Object(k)附近,因为其位置(x4,ρ4)2488在圆形2446内。假设Object(4)2486具有比Object(k)2448更高的ScoreObject,则在步骤2418Object(k)添加到删除列表。
在真正的托盘具有最大托盘得分的假设下,灰度级图像不可能包括在相对小的y像素值带内重叠的两个(或更多个)不同的托盘纵梁。因而,如果两个(或更多个)评分的候选对象具有在灰度级图像的这个小y像素值带内重叠的相应托盘纵梁,则这些评分的候选对象除一个之外的所有其它都可以被消除。如之前描述过的,用于纵梁2454的下部中心2458的y像素值可以通过以下来估计:经评分的候选对象2448的预审合格的左下角2450画基本水平的线2456(例如,±15°),并且利用第一Ro图像计算从原点2400到那条基本水平的线2456的正交距离。因而,通过比较为每个评分的候选对象的每个相应的中心纵梁计算的相应的正交距离,在相同的y像素值范围内具有纵梁的那些评分的候选对象可以被识别为在彼此垂直本地,或者简单地说“本地”。
如以上所指出的,图24D提供了具有多个评分的候选对象2448、2466、2470、2472、2474、2486的示例图像帧,每个候选对象都由对应的相应的纵梁来表示。对于NewObjectlist中所有评分的候选对象,最强或最高值的候选对象,即具有最高ScoreObject值的对象,例如Object(m)2466可以被选择来计算定义所关心的带的y坐标值。Object(m)包括对象特征ρm2471,即从原点到Object(m)的底部托盘板线的正交距离。利用这个值,所关心的带的上部y像素值2462估计为在ρm-Vs,而该带的下部y像素值2464估计为在ρm+Vs,其中Vs代表被称为垂直跨度的预定数量的像素并且可以是例如大约50个像素。其相应的中心纵梁碰巧也在这个带内的所有评分的候选对象可以被识别为要消除,因为它们具有比Object(m)低的ScoreObject值。
因而,在y像素值的那个带内,具有那个带内所有评分的候选对象中最大ScoreObject的一个评分的候选对象2466被选择保留在NewObjectlist中,而在y像素值的那个带内的所有其它评分的候选对象都从NewObjectlist中消除。
如前面所提到的,图24C提供了可以实现为实现过程2408的过程的附加细节,其中该过程可以基于评分的候选对象相对于彼此的y坐标值消除评分的候选对象。图24C的过程对评分的候选对象的NewObjectlist开始,在图24A的步骤2406之后候选对象可能已经减少,并且产生了一个新的、可能更小的评分的候选对象的列表,称为保留对象列表(KeepObjectlist)。评分的候选对象的两个不同列表的使用仅仅是从评分的候选对象的列表测试和修剪评分的候选对象的途径的一个例子;本领域普通技术人员将认识到,在不背离本发明范围的情况下,可以使用在可编程计算机中维护列表结构的其它功能等效方法。此外,术语“KeepObjectlist”的使用仅仅是为了清晰而在以下描述中使用,以区分在过程2408结束时NewObjectlist中评分的候选对象的列表与在过程2408开始时NewObjectlist中评分的候选对象的列表。在过程2408结束时,在步骤2440,KeepObjectlist的维护指在识别出要包括的所有评分的候选对象之后进一步修剪后的NewObjectlist。因而,对于给定的时间帧,在那个帧中可能只有一个评分的候选对象的列表由图像分析计算机110维护并且那个列表继续被称为NewObjectlist。
在步骤2430,该过程以KeepObjectlist是评分的候选对象的空集初始化;随着过程2408的执行,这个列表将用在这个图像帧中继续被识别为评分的候选对象的那些评分的候选对象填充。接下来,在步骤2432,图像分析计算机110确定列表NewObjectlist是否为空集。首先,NewObjectlist包含在图24A的步骤2406之后来自图像帧的所有剩余的评分的候选对象,并且因此控制转向步骤2434,以便从NewObjectlist识别第一评分的候选对象。特别地,在步骤2434中,图像分析计算机110识别NewObjectlist中所有候选对象中具有最大对象合成得分值ScoreObject的候选对象,Object(m)。而且,见图24D,这个候选对象2466具有关联的对象特征ρm2471,即从原点到Object(m)的底部托盘板线的正交距离。这个特定的评分的候选对象添加到列表KeepObjectlist。接下来,在步骤2436,图像分析计算机110识别NewObjectlist所有具有其y坐标位置在特定值跨度内的位置的评分的候选对象。
类似于关于图24B所描述的过程,评分的候选对象的位置可以按各种不同的途径定义,但是定义评分的候选对象的位置的一种途径是识别中心纵梁的下部中心的x-y坐标的y坐标作为对象的位置。对于任何特定的评分的候选对象,Object(i),那些位置坐标可以被称为对(xLCi,yLCi)。利用用于NewObjectlist中每个评分的候选对象的这些相应的坐标,图像分析计算机110在步骤2436中可以确定NewObjectlist中哪些评分的候选对象定位成使得它们具有在值ρm2471的±Vs中的y坐标;Vs可以例如等于50像素。更特别地,Object(m)具有底部托盘板线2468,其具有到原点2400的正交距离ρm2471和离水平线的关联角度2476。其它每个识别出的评分的候选对象,Object(i),具有相应的位置(xLCi,yLCi),通过这个位置可以在与角度2476相同的角度画一条线,以计算评分的候选对象是否在关于Object(m)的所关心的垂直范围内。
特别地,在图24D中,Object(1)2470可以用作一个例子。对象2470具有(x1,ρ1)的位置2481,这个位置一般性地称为(xLCi,yLCi)。线2483可以按与角度相同的角度画,从而经过位置2481。从原点2400到线2483的正交距离也将与正交线ρm2471共线。从原点2400到线2483的正交距离可以被计算并称为ρcalci2463。特别地,可以根据以下公式为Objectlist中的任何Object(i)计算相似的正交距离:
因而,图像分析计算机110可以使用NewObjectlist中每个对象Object(i)的位置(xLCi,yLCi)来计算从那个对象的位置到原点2400的相应的正交距离ρcalci,以便识别其相应正交距离在Object(m)的底部托盘板线2468的±Vs内的所有其它评分的候选对象。换句话说,在步骤2436中识别其纵梁满足以下不等式的的所有评分的候选对象:
公式14:
在步骤2438中,满足以上不等式的所有评分的候选对象,及Object(m),都被图像分析计算机110从NewObjectlist中除去。如以上所指出的,Object(m)即评分的候选对象2466之前被添加到列表KeepObjectlist中。
在图24D的示例图像帧中,当Object(m)包括评分的候选对象2466时,只有Object(2)2472满足公式14的不等式。当图24C的过程2408执行时,在步骤2438中,Object(2)2472从NewObjectlist中消除。
这些步骤重复,直到图像分析计算机110在步骤2432中确定NewObjectlist为空。在步骤2440,在NewObjectlist为空之后,定义KeepObjectlist作为更新后的NewObjectlist,这个列表可以包括过程2408以其开始的先前NewObjectlist的修剪后的版本。NewObjectlist的这个版本在分析ExistingObjectlist的当前版本时使用,如以下详细描述的。作为这种分析的结果,ExistingObjectlist基于NewObjectlist中的信息来更新。一旦ExistingObjectlist被更新,为其创建下一个NewObjectlist的下一个图像帧就可用。因而,NewObjectlist在概念上对每个图像帧是相同的,但是NewObjectlist中的实际信息和值将对每个获得到的图像帧不同。图25绘出了用于通过不同灰度级图像帧跟踪评分的候选对象,以便进一步精炼托盘结构位于图像帧中什么地方的确定的示例性过程的流程图。当车辆10的叉架装置40移动时,由叉架装置40上成像照相机130捕捉到的图像中的评分的候选对象的位置也看起来在不同的图像帧中移动。来自一系列捕捉到的图像帧的这个信息帮助确定哪些评分的候选对象对应于实际的托盘结构。
在图25中,步骤2502代表图像分析计算机110维护ExistingObjectlist,如以上所讨论的,该列表包括来自一个或多个先前图像帧中用于当前被跟踪的现有评分的候选对象的记录。评分的候选对象分配给被跟踪对象的单独线程,每个线程具有唯一的识别标记,TagObject。如所提到的,ExistingObjectlist中每个评分的候选对象的一个属性是该对象相应的位置。如前面一样,评分的候选对象的位置可以指用于该评分的候选对象的中心纵梁的下部中心的坐标。例如,图26A中示出的对象,Object(r),2602具有通过x-y坐标(xr,yr)来指出的位置。图26A的这些评分的候选对象2602、2604是根据上述技术识别并打分的评分的候选对象。每个评分的候选对象都在ExistingObjectlist中维护。
被跟踪对象的每个线程在一个预测和更新循环上操作,每个线程具有其自己的预测器。如以下详细描述的,利用卡尔曼滤波器实现这种跟踪是一种方法;但是,本领域普通技术人员将认识到,也存在实现这种跟踪的其它已知技术。给定叉子高度的变化,作出对象在下一个图像帧中移动到什么地方的预测,观察实际对象的位置,如果满足适当的条件,则这些新的观察与现有对象匹配,并且最终对象位置预测器或者利用新的观察更新或者该对象线程被终止并删除。
如前所述,成像照相机130可以与车辆10的叉架装置40耦合。因为叉架装置40的移动是以受控制的方式发生的,所以在两个时刻之间发生的成像照相机130的结果移位可以计算。例如,知道叉架装置40移动的速度允许容易地计算图像帧之间的照相机移位。作为替代,可以提供耦合在叉架装置40和第三焊件36之间的编码器和电线或电缆组件,用于响应叉架装置40相对于第三焊件36的移动而向车辆计算机50生成脉冲,从而允许车辆计算机50确定成像照相机130的线性移位。因为被成像照相机130捕捉的两个相继的图像帧将从不同的角度拍摄,所以在不同的图像帧中评分的候选对象将看起来在不同的位置。这两个相继的图像帧可以更容易地被称为“前一个图像帧”和“下一个图像帧”。基于在步骤2503中车辆的叉架装置40的高度在前一个图像帧和下一个图像帧之间变化的量,图像分析计算机110可以在步骤2504中分别预测来自前一个图像帧的每个评分的候选对象应当位于从成像照相机130新位置捕捉到的下一个图像帧中什么地方。图像分析计算机110还将在下一个图像帧中为来自前一个图像帧的每个评分的候选对象定义包围每个预测出的位置的预测窗口。预测窗口可以是各种不同尺寸,但是本文的实施例考虑具有用于较大图像尺寸的大约50个像素和用于较小图像尺寸的25个像素的半径的预测圆形。本领域普通技术人员将认识到,在不背离本发明范围的情况下,预测窗口的其它尺寸和形状也可以选择。
例如,参考图26A,在用于前一图像帧的ExistingObjectlist中有三个候选对象,Object(r)2602、Object(s)2604和Object(t)2606。这些对象可以被称为“现有对象”或“现有评分的候选对象”。它们具有代表它们在拍摄或获得前一图像帧时的位置的相应位置(xr,yr)、(xs,ys)和(xt,yt)。当捕捉下一个图像帧时,如图26B中所示出的,下一个图像帧的照相机放离前一图像帧的照相机放置有已知的距离,可以预测图26B下一图像帧中相应的位置(x’r,y’r)2602’、(x’s,y’s)2604’和(x’t,y’t)2606’。另外,在图26B中,预测窗口2601定义中心在Object(r)的预测位置2602’周围的圆形区域,预测窗口2603定义中心在Object(s)的预测位置2604’周围的圆形区域,而预测窗口2605定义中心在Object(t)的预测位置2606’周围的圆形区域。
图像分析计算机110在步骤2505中在新的照相机位置获得下一个图像帧,然后在步骤2506中确定下一个图像帧中评分的候选对象及其相应的位置。因而,与在步骤2505中获得下一个图像帧同时,图像分析计算机110还可以在步骤2503中获得前一图像帧和下一图像帧之间车辆10的叉架装置40的高度变化的量。如以上所提到的,下一个图像帧中的对象可以被称为“新对象”或“新的评分的候选对象”。如图26B中所示出的,用于下一个图像帧的NewObjectlist包括五个新对象,Object(a)2610、Object(b)2612、Object(c)2614、Object(d)2616和Object(e)2618。这些评分的候选对象被认为是来自下一个图像帧的新评分的候选对象集合。利用这组新评分的候选对象的新确定的位置,图像分析计算机110进一步在步骤2510中确定是否有任何位于每个预测窗口2601、2603、2605中的新评分的候选对象。
图像分析计算机可以识别下一个图像帧中包含一个或多个评分的候选对象的预测窗口。在这种情况下,图像分析计算机110在步骤2510中试验性地识别来自前一图像帧的现有评分的候选对象在下一图像帧中具有匹配的新评分的候选对象。如果只有一个新的评分的候选对象在下一图像帧中的预测窗口内,则那个新的评分的候选对象被试验性地认为与来自前一图像帧的(用于计算预测窗口的)现有评分的候选对象匹配。但是,如果有两个或多个新的评分的候选对象在下一图像帧中的预测窗口内,则要执行进一步的分析来只选择这些评分的候选对象中的一个。当同一个新对象可能与多于一个现有的对象匹配时,所有匹配都被认为是试验性的并且在步骤2512中求解。
图26B的预测窗口2601是位于预测窗口内的两个或更多个新的评分的候选对象的例子。特别地,用于下一图像帧的NewObjectlist包括Object(a)2610和Object(b)2612,这两个候选对象都在对应于来自第一图像帧的Object(r)的预测位置的预测窗口2601内。这些候选对象中每一个都具有相应合成对象得分ScoreObject,该得分在步骤2512中由图像分析计算机用于确定Object(a)还是Object(b)与Object(r)匹配。在所有匹配通过步骤2512求解出来之前,所有现有的对象都不被认为是真正匹配。
特别地,评估绝对值|ScoreObject(r)–ScoreObject(a)|和|ScoreObject(r)–ScoreObject(b)|,使得具有最小绝对值的新对象(即,与Object(r)相比较而言具有最接近的ScoreObject值的新对象)被认为试验性地匹配预测窗口2601中新的评分的候选对象。对于特定的现有对象,绝对得分差在所有试验性匹配的对象上最小化。换句话说,对于特定的现有评分的候选对象,在其试验性匹配列表中新的评分的候选对象将被选作最小化绝对得分差的现有评分的候选对象的最终匹配。
例如,在图26B的图像帧中,新的评分的候选对象Object(b)可以试验性地与Object(r)和Object(s)匹配,因为它同时位于预测圆形2601和2603中。因而,在步骤2512中,图像分析计算机110还评估绝对值|ScoreObject(s)–ScoreObject(b)|和|ScoreObject(r)–ScoreObject(b)|,最小的绝对值揭示哪个现有的对象与新对象Object(b)匹配。当一个新对象与一个现有的对象匹配时,用于ExistingObjectlist中那个现有对象的记录将包括更新后的信息,诸如新对象的新位置、更新后的预测因子,及其匹配计数(MatchCount)值(预测因子和MatchCount值在下面更详细地描述)。
如果用于来自现有对象的评分的候选对象的相应预测窗口不包括任何新的评分的候选对象,则该现有评分的候选对象有可能是错误识别出的评分的候选对象并且可以被丢弃。但是,因为在灰度级图像获得过程中引入的照明、阴影或其它假象,实际的托盘对象在特定的图像帧中有可能不可辨别,虽然它在其它图像帧中可以辨别。因而,现有对象的单个实例不与新对象匹配并不会导致现有对象被识别为要丢弃的对象。值即MatchCount可以作为针对ExistingObjectlist中的现有对象存储的其中一个属性而引入。
如所提到的,ExistingObjectlist的当前版本包括评分的候选对象。这些评分的候选对象中至少一些也在ExistingObjectlist的前一版本中。ExistingObjectlist的那个前一版本具有其自己对应的NewObjectlist,其中利用该NewObjectlist对ExistingObjectlist进行分析。基于那个前面的分析,ExistingObjectlist的前一版本基于关于来自其对应的NewObjectlist的评分的候选对象的信息而被更新。ExistingObjectlist的前一版本的更新导致ExistingObjectlist的当前版本并且ExistingObjectlist的这个当前版本现在关于其自己对应的下一图像帧中评分的候选对象的NewObjectlist进行分析。
在这个目前的分析中,用于ExistingObjectlist的当前版本中现有对象的MatchCount值提供了那个对象是否未能在与ExistingObjectlist的前一版本比较的旧NewObjectlist中具有匹配的新对象的指示。例如,在当前分析过程中,如果MatchCount目前等于“1”,则指示在ExistingObjectlist的前一版本关于其自己对应的NewObjectlist进行分析时这个现有评分的候选对象未能在前面的分析中具有匹配。
当在步骤2512中一个现有对象最终被求解为匹配一个新对象时,用于ExistingObjectlist中那个现有对象的MatchCount在步骤2514中被图像分析计算机110设置成预定的值,诸如“2”。
在步骤2516,图像分析计算机110识别不与其中一个新对象匹配的现有评分的候选对象(如果有的话)。然后,图像分析计算机110在步骤2518中评估用于那个现有对象的相应的MatchCount,以确定它是否等于“0”。如果是,则那个现有对象不再被认为是在后续图像帧中要被跟踪的评分的候选对象,并且在步骤2520中它被丢弃。如果用于未匹配的现有对象的MatchCount值不等于“0”,则现有对象不被丢弃,而是在步骤2522中其MatchCount值递减。在图26B中,没有位于用于Object(t)的预测窗口2605中的新对象。因而,在这个例子中,现有评分的候选Object(t)将不在NewObjectlist中具有匹配的新对象。
如以下将更详细描述的,评分的候选对象过去的位置以及计算和匹配预测窗口的准确度在精炼计算后续预测窗口的途径时会是有用的。因而,在步骤2524中,图像分析计算机110更新其用来计算在用于每个评分的候选对象的后续图像帧中相应预测窗口的因子。
图像分析计算机110在步骤2526中识别下一图像帧中不对应于来自前面图像帧的任何现有评分的候选对象的新评分的候选对象。例如,在图26B中,有一个新的评分的候选对象Object(c)2614位于预测窗口2601、2603、2605和2607的外面。因而,这是一个在ExistingObjectlist中没有对应现有评分的候选对象的新评分的候选对象。在步骤2526,图像分析计算机110把这个新的候选对象添加到ExistingObjectlist并且把其MatchCount值设置成等于“2”。
如以上所提到的,Object(c)2614是没有匹配的现有对象的新对象,因此Object(c)添加到更新后的ExistingObjectlist。还有不具有匹配的现有对象的新对象的另一种可能性。在图26A中,有现有的Object(u)2608。在图26B中,有预测出的位置2608’和预测窗口2607。在预测窗口2607中有两个新的评分的候选对象,Object(d)2616和Object(e)2618。如以上所提到的,在步骤2512中,Object(u)、Object(e)和Object(d)相应合成对象得分用于求解匹配的对象对。例如,如果Object(e)2618被确定为是Object(u)2608的匹配,则Object(d)2616不匹配ExistingObjectlist中任何现有的对象。因而,Object(d)2616作为要开始跟踪的新的评分的候选对象添加到更新后的ExistingObjectlist。
利用更新后的ExistingObjectlist,图像分析计算机110在步骤2528中可以向车辆计算机50提供更新后的对象信息,使得现有评分的候选对象的图形显示可以被更新。
然后,通过对每次迭代返回到步骤2504,图25的过程对第三个图像帧、第四个图像帧等等自己重复。
与修剪和预测评分的候选对象关联的值可以根据图像尺寸来调整。例如,以上所提供的值对于尺寸为480x752像素的图像可能是适合的。但是,对于尺寸为240x376像素的图像,这些值可以调整,使得每个值都大致为以上提供的示例值的一半。例如,Vs可以是25像素而不是50像素,预测窗口(例如,图26B的2607)可以具有大约25像素而不是50像素的半径,并且用于定义在附近的对象的值(见图24A的步骤2406)可以是25像素而不是50像素。
图27绘出了物理世界中的一个托盘2702,该托盘具有代表托盘2702的位置2704的下部中点。托盘2702的位置2704依赖于什么参考帧,或3D坐标系统,用于定义托盘位置2704的坐标。如前面所提到的,本发明的一方面涉及检测对在托盘的一个或多个开口放置车辆10的叉子42A、42B有利的信息。因而,用于定义托盘2702位置的世界3D坐标系统(在本文中也称为“世界坐标系统”)可以具有位于车辆10上或者其附近的固定位置的原点2706,诸如当叉子42A、42B处于下部起始位置时基本上与叉子42A、42B具有相同Y位置的桅杆组件上的固定位置。在这种实施例中,世界坐标原点2706是固定的,使得叉架装置40和叉子42A、42B相对于固定的世界坐标原点移动。如果世界坐标系统定向为使得Z方向与叉子42A、42B平行并且Y方向与叉子42A、42B上下的垂直移动方向平行,则世界坐标原点2706可以定义成使得可以确定托盘位置2704的坐标(Xw,Yw,Zw)。特别地,这些坐标基本上代表从世界坐标原点2706到托盘2702下部中点(即,位置2704)的向量。世界3D坐标系统还可以在车辆10前面在地板上和叉子42A、42B下面定位。在这种实施例中,世界3D坐标系统将仍然关于车辆10固定并且与车辆10一起移动。X和Z方向的卡车移动可以经卡车测距法来说明。
物理世界中由成像照相机130成像的场景也可以参考成像照相机130的位置2708来指出。这是有帮助的,因为,当物理对象的位置被看作相对于照相机位置2708时,图像中像素位置和物理对象的位置之间的变换操作可以被简化。照相机坐标系统也是3D坐标系统,具有从原点延伸的三个相互正交的方向轴。照相机坐标系统的方向向量的朝向和照相机坐标系统的原点的位置可以与世界坐标系统的那些位置不同。习惯上,已知从一个3D坐标系统到另一个的变换可以利用代表两个坐标系统之间差异的旋转矩阵和平移向量来实现。如果(Xc,Yc,Zc)是托盘位置2704关于照相机坐标系统的坐标,则
公式15A:
坐标(Xw,Yw,Zw)和坐标(Xc,Yc,Zc)都识别物理世界中同一个点2704的位置。一组坐标(Xw,Yw,Zw)是参考世界坐标原点2706的,而另一组坐标(Xc,Yc,Zc)是参考照相机位置2708的。在公式15A中,[Rcam]是两个坐标系统的轴之间的3x3旋转矩阵,而最右边的项是平移向量,Tcam=[tcx,tcy,tcz]T,代表世界坐标系统的原点2706相对于照相机坐标系统的原点2708之间的平移。如果成像照相机130附连到叉架装置40,则当包括叉子42A和42B的叉架装置40上下移动时,成像照相机130相对于世界坐标原点2706的平移,tcy,将变化。如图27A中所示,这个平移值,tcy,可以具有一个代表叉子42A和42B相对于固定的世界坐标原点2706沿桅杆组件30的移动量的分量ty,并且可以具有代表成像照相机130相对于叉子42A和42B之间的固定垂直偏移量的第二个分量tybias。当叉子42A和42B移动时,ty的值可以变化;但是tybias的值将保持相同。如前面所提到的,成像照相机可以固定到叉架装置,使得它在叉子42A和42B下面的位置中(即,tybias<0),但是当成像照相机130向上移动时,照相机坐标系统原点位置2708的Y坐标可以位于世界坐标系统原点2706之上(即,(ty+tybias)>0),如图27A中所示。而且,如以下所讨论的还可以有水平偏移量值txbias。
图27A绘出了其中照相机坐标系统把其轴关于X轴2707旋转角度θe2701的实施例。因而,照相机坐标系统的Z轴被称为Zθe2703,以便与世界坐标原点的Z轴区分,并且照相机坐标系统的Y轴被称为Yθe2709,以便与世界坐标原点的Y轴2711区分。角度θe2701的幅值可以是例如大约2.2263°;并且,从照相机坐标系统的参考点开始,世界坐标系统的Z轴向下倾斜一个大约为-2.2263°的角度。在这种实施例中,公式15A中托盘位置2704的坐标(Xc,Yc,Zc)将关于照相机坐标系统轴(Xθe,Yθe,Zθe)来定义。
图27B绘出了理想的针孔照相机模型的几何结构。用于理想的针孔照相机的模型涉及点(Xc,Yc,Zc)2704通过照相机位置2708投影到图像平面2712上,该平面在Zθe方向中离照相机位置2708有距离f。存在一个照相机中心2714,这是照相机位置2708在Zθe方向中到图像平面2712上的投影。在所说明的实施例中,距离f是等于Zθe方向中照相机焦距的固定距离。
因而,图27B的几何结构为众所周知的针孔照相机投影模型提供了用于像素图像坐标的基础:
其中:
(Xc,Yc,Zc)是照相机坐标系统中托盘位置2704的三维坐标;
(xcol,yrow)是图像平面2712上托盘位置2704根据针孔照相机模型投影的像素位置坐标;
(x0,y0)是照相机中心2714并且是图像平面2712上照相机中心(或者照相机坐标系统原点)2708根据针孔照相机模型投影的像素位置坐标;
fx是以x方向,或水平,像素相关的单位表示的焦距f;及
fy是以y方向,或垂直,像素相关单位表示的焦距f。
以上公式可以根据下式写成齐次坐标:
公式16: 其中λ=Zc
来自先前的公式15也可以写成:
公式17A:
利用公式17A,公式16的投影变换可以写成:
公式18:
总的来说,公式18可以写成:
公式19A:其中
3x4矩阵[Rcam|Tcam]常常被称为外在照相机矩阵。矩阵[K]可以被称为用于成像照相机130的内在照相机矩阵。通常,用于矩阵[K]的值可以利用照相机后方交会(resectioning)过程确定,如本领域中已知的。一般而言,内在照相机矩阵具有形式:
其中:
(x0,y0)是照相机中心2714并且是图像平面2712上照相机中心(或者照相机坐标系统原点)2708根据针孔照相机模型投影的像素位置坐标;
fx是以x方向,或水平,像素相关的单位表示的焦距f;及
fy是以y方向,或垂直,像素相关单位表示的焦距f;及
γ代表x和y轴之间的歪斜因子,并且常常是“0”。
对于480x752像素的图像,用于内在照相机矩阵的示例值可以是:fx=783.1441,fy=784.4520,γ=0,x0=237.8432,y0=380.7313
对于240x276像素的图像,用于内在照相机矩阵的示例值可以是:fx=458.333344,fx=458.333344,γ=0,x0=142.282608,y0=171.300568
依靠缩放因子λ,公式19A关连托盘位置2704与灰度级图像像素位置(xcol,yrow)。这暗示公式19A的左侧和右侧是共线的向量,这导致零叉积。叉积公式为:
公式20A:
旋转矩阵[Rcam]和平移向量Tcam的谨慎选择可以简化公式20A中所涉及的计算。特别地,如果世界坐标系统轴和照相机坐标系统轴彼此相互对准,则旋转矩阵是简单的3x3单位矩阵。但是,照相机通常可以向上旋转一个仰角,θe,如图27A中所示,使得,相对于照相机的Zθe轴,世界坐标Z轴向下倾斜角度-θe。轴中的这种差异导致一个可能的旋转矩阵:
公式21:
此外,照相机位置2708可以选择成使得其相对于世界坐标原点2706被平移向量,如以上所提到的所平移。在一种示例性实施例中,成像照相机130以这样一种方式附连到车辆框架,使得它具有与世界坐标原点2706相同的Z坐标值(即,tcz=0)但是具有离世界坐标原点2706偏移一个偏置值(即,tcx=txbias)的X坐标。如以上所提到的,当叉架装置40上下移动时,照相机130相对于世界坐标原点2706的平移还在Y方向改变。因此,照相机平移向量可以实现为:
给定:
公式20A简化为:
该公式简化成公式22:
计算叉积的前两个元素提供了统称为公式23的两个线性公式:
-Xwfx-Ywx0sinθe-Zwx0cosθe+xcol(Ywsinθe+Zwcosθe)-fx(txbias)=0
yrow(Ywsinθe+Zwcosθe)-Yw(fycosθe+y0sinθe)-Zw(-fysinθe+y0cosθe)-fy(ty+tybias)=0
以矩阵的形式,以上两个公式可以写成公式24A:
因而,对于在成像照相机130位于相对于世界坐标原点2706的位置(txbias′(ty+tybias))时获得到的特定灰度级图像,有一个对应于托盘2702的位置(Xw,Yw,Zw)2704的图像像素位置(xcol,yrow)。因而,具有图像像素位置(xcol,yrow)的评分的候选对象(见,例如,图24D的对象2448和位置2458)也在物理世界中具有关联的位置(Xw,Yw,Zw)2704。因而,图像空间中这个评分的候选对象具有与其关联的高度Yw,这是对应于该评分的候选对象的托盘在物理世界中的高度。高度Yw可以简单地被称为“评分的候选对象的高度”,作为一种陈述图像空间中处于位置(xcol,yrow)的评分的候选对象在物理世界中具有处于位置2704的对应托盘的关联高度Yw的缩写方式。如以下所讨论的,图像像素位置(xcol,yrow)对应于图像空间中测出的值。如果成像照相机130改变其位置并且获得到第二灰度级图像,则公式24A将对(Xw,Yw,Zw)保持为真,但是对于ty和(xcol,yrow)将是不同的值。因而,对于每个获得到的不同图像帧,都有用于ty和(xcol,yrow)的相应的值,因此公式24A可以更清楚地写成:
公式25A:
其中n是表示一系列获得到的图像帧中图像帧的索引值,txbias是成像照相机130离世界坐标原点2706的水平平移,而是对应于当获得图像帧n时成像照相机130离世界坐标原点2706的垂直平移。图像像素位置可以被称为图像空间中托盘位置2704的一个“观察”。公式25A中的公式对可以对同一托盘位置2704的多次观察收集到一起,以提供一系列公式,如下:
公式26A:
这个公式可以概念性地写成公式27:
,该公式可以被操纵以形成:
公式28A: 其中
并且
一旦有对托盘位置2704的两个或更多个观察,公式28A就提供比未知更多的公式,并且可以利用最小二乘法来求解,以便关于世界坐标原点2706估计托盘位置(Xw,Yw,Zw)。此外,一直等到在两个观察之间存在至少某个最小距离也是有益的。例如,优选的是在估计托盘位置(Xw,Yw,Zw)之前,存在至少最小叉子差异(即,英寸)。
利用图27A的配置开发出的公式21的旋转矩阵只考虑照相机坐标系统相对于世界坐标系统的X轴的旋转(例如,角度θe2701)。但是,用于照相机的旋转矩阵可以被一般化,以考虑照相机坐标系统相对于世界坐标系统所有三个轴的旋转,如图27E中所示。在图27E中,照相机坐标系统的轴(2707’、2711’和2705’)相对于世界坐标系统的轴(2707、2711、2705)示出。特别地,θx2762可以代表照相机坐标系统相对于X轴2707的旋转(被称为仰角)、θy2764可以代表照相机坐标系统相对于Y轴2711的旋转(被称为螺旋角),而θz2766可以代表照相机坐标系统相对于Z轴2705的旋转(被称为偏转角)。因此,照相机坐标系统将导致其轴(2707’、2711’和2705’)关于世界坐标系统的轴(2707、2711、2705)旋转代表个别旋转角θx2762、θy2764和θz2766的组合的量。旋转的每个角度为照相机提供整个旋转矩阵的一个分量。
公式29A:
公式29B:
公式29C:
更一般化的,或完全的,旋转矩阵是这三个分量矩阵相乘,以提供公式29D:
但是,不是完全的旋转矩阵,本发明的各方面考虑具有关于x轴的一个旋转自由度和关于z轴的另一个旋转自由度的旋转矩阵。如上所述,关于x轴的旋转角度通常被称为仰角θe。关于z轴的旋转角度可以被称为偏转角并且由表示。这个特定的示例旋转矩阵的三个分量由以下公式提供:
公式30A:
公式30B:
公式30C:
把这三个分量矩阵相乘到一起提供了由公式30D提供的示例性旋转矩阵:
使用这个旋转矩阵(代替公式21的矩阵)将产生与公式24A的那些相似的一对线性公式。特别地,这两个线性公式由公式24B提供:
并且可以对同一托盘位置2704的多个观察收集到一起,以提供可以按类似于公式28A的方式为求解的一系列公式。
为了简化,公式21、29D和30D的不同旋转矩阵可以概念化为公式30E,其中:
把公式30E的记号替换到公式20A中并且假设与公式25A的那些类似的一对线性公式可以为任何旋转矩阵[Rcam]确定。这对线性公式可以求解托盘位置(Xw,Yw,Zw)并且由公式30F给出:
其中:
类似于前面,托盘位置的多个观察可以收集并用于按最小二乘法方式求解托盘位置(Xw,Yw,Zw)。因而,利用这种记号,与公式28A类似的公式可以根据下式计算:
公式31A: 其中:
并且
在以上公式中代表成像照相机轴关于X轴的旋转的仰角,θe,(或者在更一般的完全旋转矩阵中是角度θx)可以包括对整个角度起作用的多于一个分量。例如,仰角θe可以包括基于成像照相机130安装在叉架装置40上的角度对应于固定旋转角度θec的第一分量以及对应于车辆叉子42A和42B可以经倾斜活塞/汽缸单元44D相对于支架支撑结构44A倾斜的角度θef的第二分量。因而,在以上的公式中,θe=(θec+θef)。
叉子仰角θef对整体仰角θe的贡献可以通过与叉架支撑结构44A和叉架框架44B中一个或二者关联的传统倾斜角传感器(未示出)来测量。这种传统的倾斜角传感器可以具有大约0.001度的分辨率并且把叉子42A、42B的倾斜角提供给车辆计算机50,计算机50可以把这种信息传送给图像分析计算机110。照相机仰角θec对整体仰角θe的贡献可以由外在的校准例程来确定,如以下详细解释的。
如果角度θe的两个分量(即,θec和θef)都是常量值,则对以上任一公式确定和使用仰角θe是相当直接的。在某些实施例中,成像照相机130安装在叉架装置40上,使得其仰角θec在图像帧之间不变。但是,由于叉子的倾斜,θef,仰角分量在图像帧之间可以改变。在这些条件下,以上讨论的旋转矩阵可以被操纵成考虑θef的潜在变化性。
回过头来参考公式21,一个示例旋转矩阵由下式提供:
其中,如所提到的,θe=(θec+θef)。可根据下式以构造只说明照相机角度θec的贡献的中间旋转矩阵:
利用这个中间旋转矩阵,中间外在照相机矩阵可以写成:
修改这个中间外在照相机矩阵的一种途径是用只考虑叉子倾斜角θef的贡献的旋转矩阵后乘(post-multiply)。为了执行这种相乘,典型的3x3旋转矩阵可以根据下式扩展成4x4矩阵:
然后执行如上所述的后乘:
结果产生公式31B:
利用两个几何恒恒等式(geometrical identity):
cos(a+b)=cos(a)cos(b)-sin(a)sin(b)
sin(a+b)=sin(a)cos(b)+cos(a)sin(b)
公式31B可以简化为:
该公式可以进一步简化为:
,这可以简单地是。
一般而言,这种技术可以与以上讨论的任何外在照相机矩阵一起使用,使得利用基于θe的旋转矩阵(例如,公式21、29D、30D或30E)形成的任何外在照相机矩阵可以利用基于θec的中间旋转矩阵然后用基于θef的旋转矩阵后乘从相应的中间外在照相机矩阵构造。
如前面所提到的,叉子42A和42B倾斜的量(即,θef)可以在所获得的每个图像帧之间变化。因而,仰角θe(或者更一般地说是θx))也会在图像帧之间变化。因此,公式25A和26A可以被修改,以考虑仰角θe的变化性,如下所示:
公式25B:
及公式26B:
但是,即使具有会在图像帧之间发生的θe的变化性,用于求解托盘位置(Xw,Yw,Zw)的技术仍然保持相同。但是,对于每个图像帧,图像分析计算机110现在除和之外还可以存储。因此,公式25B和26B可以重新整理,以提供公式28B: 其中:
并且
在以上的例子中,一个假设是叉子的移动ty基本上在世界坐标系统的Y轴2711的方向中发生。但是,桅杆组件30可以不必与世界坐标系统的Y轴2711的方向对准。如图27F中所示,向量2775可以代表桅杆组件30关于世界坐标系统的方向。
因而,在图27F中,在世界系统坐标中相对于世界坐标原点2706存在沿着向量方向2775、代表叉子42A和42B的位置2770的向量2776。叉子42A和42B的位置2770可以被看作是叉子坐标系统的原点,它与三个正交轴2707A、2711A和2705A一起定义叉子坐标系统。在叉子坐标系统中,向量2774代表叉子系统坐标中相对于叉子位置2770的托盘的位置2704。如前面所讨论的,存在定义照相机坐标原点的照相机位置2708,该照相机坐标原点与三个正交轴2707B、2711B和2705B一起定义照相机坐标系统。因此,存在代表在照相机系统坐标中相对于照相机位置2708的托盘位置2704的向量2778。
照相机坐标系统的轴2707B、2711B和2705B可以相对于叉子坐标系统的轴2707A、2711A和2705A旋转,并且还可以相对于叉子坐标系统平移。因而,叉子坐标系统中的托盘位置2704可以根据公式15B变换成照相机坐标系统中的位置:
其中:
是照相机系统坐标中托盘位置2704的坐标;
是代表照相机坐标系统相对于叉子坐标系统的旋转的旋转矩阵;
是叉子坐标系统中托盘位置2704的坐标;及
是代表照相机坐标系统原点2708沿着叉子坐标系统的轴2707A、2711A和2705A的方向相对于叉子坐标系统原点2770的移位的平移向量。
叉子坐标系统原点2770的位置是根据公式15C提供的:
其中:
是叉子位置2770在世界系统坐标中的位置;
是代表桅杆组件30相对于世界坐标系统的轴2707、2711和2705旋转的旋转矩阵;及
是代表叉子42A和42B在沿着向量2775的方向从世界坐标原点2706移位的平移向量。
如果叉子坐标系统的轴2707A、2711A和2705A与世界坐标系统的轴2707、2711和2705旋转对准,则通过向量相加,2772根据公式15D给出:
用[Rcam-forks]去乘公式15D的两侧提供:
通过在公式15C替换,该公式提供:
公式15B的项可以重新整理,以提供:
这可以在以上的公式中替换,以提供公式15E:
公式15E中的项可以重新整理,以产生如下的公式15F:
两个3x3的旋转矩阵[Rcam-forks]和[Rmast-world]相乘,以形成具有其值依赖于和的元素的合成的3x3旋转矩阵。但是,当利用平移向量乘出(multiply out)时,其结果是可以概念化为的3x1平移向量,其中用于αr、βr和γr的值依赖于合成的旋转矩阵的元素。因而,公式15F可以重新整理,以提供公式15G:
其中:
是托盘位置2704在世界系统坐标中的位置。
把负号结合到值αr、βr和γr当中允许公式15G更简单地写成公式15H:
这个公式在形式上与以上讨论的原始公式15A和17A相似。因而,类似于公式17A,公式15H可以在齐次坐标中写成公式17B:
因而,公式17B代表计算托盘位置2704的照相机坐标的备选途径。这种备选方法考虑到沿向量2775方向(例如,桅杆组件30)的移位ty不一定在与世界坐标系统的Y轴2711相同的方向中发生。类似于以上讨论的公式19A,根据这种备选方法的照相机坐标根据公式19B关于图像坐标位置:
其中
参数估计实用性暗示可以对公式19B作一些改变。用于tcfzbias的非零值可以暗示多个答案。其次,已经观察到估计βr的尝试产生全都为零的平凡解。由此,可以作两个假设来帮助简化公式19B:第一,tcfzbias的值=0及,其次,βr=1。利用这些假设,公式19B可以写成公式19C:
在求解时,以上示出的公式19C的特定形式导致在高度估计,即,用于YW的值具有适当的幅值但是符号为负。因而,利用YW值执行计算的其它算法和方法可以适当地设计成考虑负号的YW值。依赖缩放因子λ,公式19C关联托盘位置2704与灰度级图像像素位置(xcol,yrow)。这暗示公式19C的左侧和右侧是导致零叉积的共线向量。类似于公式20A,该叉积公式是:
公式20B:
类似于以上所讨论的步骤,公式20B的叉积公式提供了可以为多个观察收集并且求解托盘位置(Xw,Yw,Zw)的一对线性公式。对于托盘的单个观察,n,当叉子42A和42B的移位是时,这两个线性公式由公式30G给出:
其中:
与前面类似,托盘位置的多个观察可以收集并用于以最小二乘法方式求解托盘位置(Xw,Yw,Zw)。
在一个坏的观察可能不期望地歪斜最小二乘法估计的意义上而言,以上用于求解托盘位置(Xw,Yw,Zw)的方法容易发生错误。因而,在对托盘位置2704的一组观察当中,可能存在当为托盘位置求解公式28A(或者公式28B或公式31A)时不应当考虑的一个或多个观察。RANSAC是“随机采样一致”的缩写,这是一种从包含离群值的一组观察数据估计数学模型的估计的迭代方法。一个基本的假设是数据包括作为其分布可以用某个模型参数集合来解释的数据的“圈内值(inlier)”,以及作为不适合该模型的数据的“离群值”。除此之外,数据可能有噪声。离群值会来自例如噪声的极值或者来自错误测量或关于数据解读的不正确假定。
图27D绘出了对用于确定托盘位置(Xw,Yw,Zw)的多个观察图像像素位置应用RANSAC的示例性方法的流程图。RANSAC方法的每次迭代选择一个最小样本集合,然后该集合用于识别相应的一致数据集。通过对不同的最小样本集合重复这种迭代,会识别出多于一个一致集合。最终,来自不同一致集合的最大一致集合可以在执行后续计算时使用。
对于ExistingObjectlist中的评分的候选对象,将有从n个图像帧收集到的与ExistingObjectlist中那个特定的评分的候选对象关联的多个不同的观察图像像素位置,其中,如以下所讨论的,针对图像变形了校正的实际像素位置存储在ExistingObjectlist的测量列表中。在步骤2730中,图像分析计算机110确定是否有更多图像像素位置要测试,或者是否已经执行了预定的最大次数的迭代。首先,所有不同的观察图像像素位置,即,包括针对图像变形进行了校正的实际托盘像素坐标,都可用于选择,使得过程继续到步骤2732。在步骤2732中,图像分析计算机110随机地选择这些观察图像像素位置中的两个,这可以被称为最小样本集(MSS)。给这两个观察图像像素位置作标记,使得它们不在后续的迭代中使用。利用MSS,图像分析计算机110在步骤2734中以最小二乘法方式从公式28A(或者公式28B或者公式31A)求解(Xw,Yw,Zw)。例如,如果来自灰度级图像n=3和n=6的相应的图像像素位置被随机选择,则公式26B实现为:
并且可以,如公式28B中所示,用于例如估计(Xw,Yw,Zw)的最小二乘法解答。这个解答可以被称为“MSS模型”,因为它是只利用MSS为(Xw,Yw,Zw)估计的。在步骤2736,计算基于MSS中每个图像像素位置和MSS模型之间误差的误差值。特别地,计算利用MSS模型的每个观察图像像素位置的均方误差。例如,在考虑照相机坐标系统只关于X轴旋转时,均方误差,εn,可以根据下式计算:
公式32A:
在更一般的情况下,其中使用公式30E的概念旋转矩阵[Rcam],则均方误差,εn,可以根据公式32B计算:
在这个例子的具体MSS中,两个均方误差值(即,ε3和ε6)在步骤2736中计算。利用这两个均方误差值,计算用于这两个误差值的标准偏差σε并且在步骤2738中图像分析计算机110根据下式计算阈值δ:
公式33:
δ=1.0σε
在步骤2740中,图像分析计算机110通过采用公式32A(或者公式32B)以及利用MSS通过公式28A(或者公式28B或公式31A)确定的Xw、Yw、Zw值,即MSS模型,为这个评分的候选对象确定用于不在MSS中的每个剩余观察图像像素位置的相应误差。然后,图像分析计算机110确定其误差小于阈值δ(根据公式32A或32B)的所有观察图像像素位置,即那些不在MSS中的位置。在步骤2740中识别出的观察图像像素位置是利用这个特定的MSS用于RANSAC方法的这次特定迭代的一致集合。如果这个一致集合大于任何前面确定的一致集合,则在步骤2742中它被存储为最大一致集合。如果这个一致集合不大于任何一个前面确定的一致集合,则所存储的最大一致集合仍保持被存储。
RANSAC方法返回步骤2730,在那里图像分析计算机110确定是否有更多观察图像像素位置要作为MSS来尝试,或者是否已经执行了预定最大次数的迭代。例如,如果期望的话,则迭代可以限于大约20次。最终,这个阈值将被达到或者所有观察图像像素位置将已经被选择包括在至少一个MSS中。一旦发生那种情况,图像分析计算机110就可以在步骤2744中使用最大一致集合中的观察图像像素位置从公式28A(或者公式28B或公式31A)求解(Xw,Yw,Zw)。因而,对托盘位置2704的解答可以不必使用将把有害误差引入解答的“离群值”观察图像像素位置。但是,离群值观察图像像素位置可以保留在ExistingObjectlist中用于这个评分的候选对象的记录中。
一旦确定了托盘位置2704,车辆计算机50就可以控制叉子42A和42B的放置,使得叉子可以啮合托盘2702,如以下进一步讨论的。
以上关于托盘位置2704(Xw,Yw,Zw)到观察图像像素位置(xcol,yrow)的投影的讨论使用不考虑可以由成像照相机130的透镜引入的变形的简单模型。因而,利用具有透镜变形的实际成像照相机130识别出的实测图像像素位置可以在位置2723(见图27C),这与如果托盘位置2704通过理想透镜未形变地投影到图像平面2712上点2718时不同,如用于开发上述公式所使用的。为了考虑透镜变形的可能性,简化的投影模型可以扩展。在简化的投影模型中,公式16可以重新整理,以提供:
公式34:xcol=fxx″+x0和yrow=fyy″+y0
其中未变形的照相机坐标被认为是:
和
透镜的变形可以包括切向变形系数(p1,p2)和径向变形系数(k1、k2、k3),这些系数是为特定的照相机透镜定义的,如本领域中众所周知的。考虑透镜变形的一种常见模型是根据下式扩展原始变换模型,即公式34:
公式35:xcol=fxx′+x0和yrow=fyy′+y0
其中:x’和y’被认为是变形后的照相机坐标并且根据下式与未变形的的照相机坐标x”和y”关联:
x″=x′(1+k1r2+k2r4+k3r6)+2p1x′y′+p2(r2+2x′2);
y″=y′(1+k1r2+k2r4+k3r6)+2p2x′y′+p1(r2+2y′2);及
r2=x′2+y′2
当识别实测图像像素位置时并且当预测图像像素位置可以在后续图像帧中位于什么地方时,这些要在以下讨论,有些计算可以在已经扩展成考虑透镜变形的投影模型中发生,而其它计算可以在不考虑透镜变形的简化投影模型中发生。通过添加扩展的投影模型,现在会有两种不同类型的图像像素位置-未变形的图像像素位置和变形的图像像素位置。用于在变形的和未变形的值之间转换的技术可以在图像分析过程的不同步骤中简化运算和计算,如以下更完全描述的。
由成像照相机130获得并且由图像分析计算机110分析的实际灰度级图像涉及实际透镜,而不是理想透镜。因而,当图像分析计算机110为灰度级图像或者从灰度级图像导出的其它计算的图像测量和分析图像像素位置时,图像像素坐标可以在变形的图像空间中。如以上所提到的,把那些像素坐标变换到公式34的投影模型中可能是有益的,其中公式34的投影模型可以被称为未变形的图像空间。为了帮助区分这两种不同类型图像空间中的像素坐标,附加的修改量可以添加到用于坐标位置(xcol,yrow)的下标。用于变形的图像空间中的像素位置的坐标(根据公式35)可以被称为(xD-col,yD-row),而用于未变形的图像空间中的像素位置的坐标(根据公式34)可以被称为(xUD-col,yUD-row)。
为了把未变形的像素坐标(xUD-col,yUD-row)转换到变形的图像空间,公式34用于根据下式确定x”和y”:
x″=(xUD-col-x0)/fx和y″=(yUD-row-y0)/fy
利用用于x”和y”的这些值,公式35的项x’和y’根据下式计算:
x″=x′(1+k1r2+k2r4+k3r6)+2p1x′y′+p2(r2+2x′2)
y″=y′(1+k1r2+k2r4+k3r6)+2p2x′y′+p1(r2+2y′2)
以上两个公式可以重新整理,以产生:
以上两个公式中每一个都不能直接求解,但是可以利用将收敛到用于x’和y’相应值的迭代方法求解,其中:
其中t是表示迭代的索引值。因而,计算公式的左手侧被计算并且在下次迭代中在右手侧使用。迭代过程以对x,(0)和y,(0)的初始估计开始(即,t=0)并且继续多次迭代,直到相继的迭代之间的误差充分小。作为一个例子,误差可以是用于(x’,y’)的两个估计之间的欧几里德距离。因而,误差可以计算为:
迭代继续,直到误差小于预定的阈值,诸如像0.0001。
在一种示例实施例中,用于迭代过程的初始估计值可以是x′(0)=x″和y′(0)=y″.
一旦计算出用于x’和y’的值,它们就可以在公式35中用于确定变形的位置坐标:
xD-col=fxx′+x0和yD-row=fyy′+y0
变形的图像空间像素坐标(xD-col,yD-row)到未变形的图像空间像素坐标(xUD-col,yUD-row)的转换可以用类似的方式实现。首先,公式35用于根据下式确定x’和y’:
x′=(xD-col-x0)/fx和y′=(yD-row-y0)/fy
利用这些用于x’和y’的值,根据下式计算公式34的项x”和y”:
x″=x′(1+k1r2+k2r4+k3r6)+2p1x′y′+p2(r2+2x′2)
y″=y′(1+k1r2+k2r4+k3r6)+2p2x′y′+p1(r2+2y′2)
一旦计算出用于x”和y”的值,它们就可以在公式34中用于确定未变形的位置坐标:
xUD-col=fxx″+x0和yUD-row=fyy"+y0
对于利用聚焦在无限远的5.5mm焦距透镜捕捉到的480x752像素图像,透镜变形系数的例子可以是:
k1=0.1260,k2=-1.0477,k3=2.3851,p1=-0.0056,p2=-0.0028
对于利用聚焦在无限远的5.5mm焦距透镜捕捉到的240x376像素图像,透镜变形系数的例子可以是:
k1=0.091604,k2=-0.235003,k3=0,p1=-0.003286,p2=-0.010984
在变形和未变形的图像空间之间转换的一个特定例子可以涉及用于评分的候选对象的托盘底部中点的定位,然后预测后续图像帧中它们的位置并计算对应的预测窗口。
返回图25,对于其中检测到评分的候选对象的每个图像帧,维护相应测出的未变形像素位置值(xUD-col,yUD-row)。如以上间接提到的,并且以下更详细讨论的,这个值是由图像分析计算机130在灰度级图像帧测出的实际像素位置,可以针对变形进行了校正。在步骤2505中获得下一个图像帧,使得在两个图像帧之间,成像照相机在y方向移动已知的距离tdiff并且在x方向或z方向不移动。
在简化的,或者未变形的,投影模型中,透视投影公式(公式19A)提供,一般而言,世界点(World point)根据公式36A投影到图像平面上一个位置:
其中:
是用于位于(Xw,Yw,Zw)的世界点相对于世界坐标系统原点的齐次坐标;
[K]是3x3内在照相机矩阵;
[Rcam]是描述照相机的坐标系统和世界坐标系统的相对朝向的3x3旋转矩阵;
[Tcam]是描述两个图像帧之间照相机原点位置的移位的3x1平移向量;
是图像平面上一个投影的像素位置的齐次坐标,它(回过头来参考公式19A)关于像素位置(xcol,yrow),使得u=ξxcol并且v=ξyrow;及
ξ代表可以作为卡尔曼滤波器的状态变量估计的未知缩放因子,如以下解释的。
公式36A可以用于两个相继的图像帧,其中照相机在每一帧的获得之间移动。当在两个相继的图像帧之间时,代表两个图像帧之间照相机的相对平移。换句话说,如果在获得第二个图像帧时照相机的位置被认为相对于在获得第一个图像帧时照相机的位置,则要在公式36A中使用的、用于第一图像帧的平移向量是而要在公式36A中使用的、用于第二图像帧的平移向量是
因而,对于第一个图像帧,公式36A提供公式36B:
这个公式可以重新整理,以提供公式36C:
任何旋转矩阵的一个属性是它是规格化正交的,这意味着[R]T[R]=I。用[R]T乘以两侧并且用以下公式36D重新给左手侧作标记:
允许公式36C变换成公式36E:
该公式简化成公式36F:
因为世界点的位置是以齐次坐标的形式(即,),所以用于这同一个世界点的齐次坐标的等效设置也通过来提供。在公式36F中使用这些等效的齐次坐标提供了公式36G:
并且乘出右手侧产生公式36H:
利用也包括ω的世界点的齐次坐标表示,用于第二个图像帧的投影公式由公式 36I提供:
其中ω是可以作为卡尔曼滤波器的另一个状态变量估计的未知缩放因子,如下所述。公式36I用简明的记号可以写成公式36J:
其中
在公式36J的右手侧利用公式36H提供了公式36K:
当乘出时,公式36K的右手侧变成以下的公式36L。这个结果依赖于规格化正交的旋转矩阵,使得用其转置相乘的旋转矩阵产生单位矩阵。
公式36L:
公式36D可以替换到公式36L中,以提供公式36M:
这个公式可以简化,以揭示公式36N:
因而,公式36N提供了一种模型,该模型描述世界点的投影如何在获得的相继的图像帧之间变化,使得照相机在图像帧之间在y方向移动量tdiff。特别地,该模型预测用于下一个图像帧的投影位置可以基于前一图像帧的投影位置和成像照相机130在两个图像帧之间的移动Tcam来计算。
特别地,对于公式36N提供
公式37:u2=u1+ωγtdiff和v2=v1+ωfytdiff
因而,公式37揭示,在未变形的图像空间中,用于一个投影位置的后续状态可以从前一个状态和值tdiff来计算。后续状态依赖于用于u1、v1、γ、ω和fy的值以及用于tdiff的当前值。
这是卡尔曼滤波器可以用于估计系统状态的系统或模型的类型;在这个特定的例子中,系统的状态可以包括在图像帧之间被跟踪的评分的候选对象的投影位置的估计。
一般而言,卡尔曼滤波器是对嘈杂输入观察数据的流实时操作的迭代算法。依照本文所述的图像分析系统,用于评分的候选对象的观察数据是当其通过图像序列被识别并跟踪时该评分的候选对象的位置坐标的序列。卡尔曼滤波器还基于作为观察数据的基础的模型生成对系统未来状态的预测。依照本文所述的图像分析系统,当计算下一图像帧中用于一个评分的候选对象的未调整的预测位置时,预测是在图25的步骤2504执行的。该模型的未调整的预测位置,或者说预备预测位置,与该评分的候选对象为那个图像帧实际测出的图像像素位置进行比较,并且这个差值被一个称为“卡尔曼增益”的因子缩放。缩放后的差值作为反馈提供到模型中,以便调整预备或未调整的预测位置并由此改进后续的预测。
在每次的步进,或迭代,卡尔曼滤波器都产生对未知值的估计,连同其不确定性。一旦观察到下一个测量的结果,这些估计就利用加权的平均值更新,其中,更多的权重给予具有更低不确定性的估计。权重是从系统状态的预测的协方差计算的,其中协方差是对不确定性的测量。结果是一个位于未调整或预备预测系统状态和实测或观察到的系统状态之间的新的状态估计(或调整后的预测)。在许多应用中,诸如这个应用,建模系统的内部状态可以包括比可测量或可观察变量多的状态变量;但是,卡尔曼滤波器可以用于估计所有的状态变量。因而,对变量γ、ω和fy的估计可以为卡尔曼滤波器的不同迭代计算,并且其相应的值可以随时间变化,使得用于γ(t)、ω(t)和fy(t)的相应的值可以对不同的迭代不同。
卡尔曼滤波器利用以下矩阵开始:状态转换模型Φ;观察模型H;建模过程噪声的协方差Q;以及观察噪声的协方差R。协方差矩阵Q和R可以通过进行多次观察并分析结果数据来用实验方法计算。
利用传统的索引“t”而不是公式37的数值下标来表示卡尔曼滤波器中不同变量的迭代顺序,公式37提供了两个公式,这两个公式表示在下一图像帧中该模型的在未变形的图像空间中评分的候选对象的投影位置的当前未调整的预测基于其来自前一图像帧的估计的前一估计状态或调整后的预测投影位置(u(t-1),v(t-1)),,其中:
如以下更完全地解释地,在卡尔曼滤波器中有一些要为其计算预备或未调整预测并且然后进行调整的变量。对于卡尔曼滤波器的特定迭代,用于一个变量的未调整的预测值用变量符号之上的^重音符号表示。但是,基于卡尔曼滤波器的操作,这个未调整的预测值可以利用更新后的预测值调整,并且用于调整后的预测值的变量通过略去变量符号之上的^重音符号来表示。不是卡尔曼滤波器中的所有变量都要首先预备预测然后再调整;不调整的那些变量通常也可以通过略去变量名之上的^重音符号来表示。
如随后讨论的,ξ,来自前一公式(例如,公式36A)的齐次坐标的缩放因子,也作为包括卡尔曼滤波器的一个状态变量,或因子而被包括。利用这些因子,用于卡尔曼滤波器的当前未调整预测状态的一组示例性未调整的预测公式可以定义为:
其中:
至于初始来调整的预测,可以利用初始状态,Z(0),来计算,其中Z(0)可以初始化为:
在初始状态,Z(0),用于γ和fy的值来自,如以上所指出的,可以根据已知的照相机后方交会技术计算的内在照相机矩阵[K]。坐标(xOBS(0),yOBS(0))代表新的评分的候选对象在初始灰度级图像帧中(在未变形的图像空间中)实测或观察到的图像位置,在所述初始灰度级图像帧中,那个新的评分的候选对象首次被图像分析计算机110识别。
从这些公式,要在卡尔曼滤波器中使用的状态转换矩阵[Φ(t)]可以确定为:
因为前两个未调整的预测公式(即,和)关于系统的前一个估计状态,或调整后的状态(即,u(t-1)和v(t-1))的非线性性,所以未调整的预测状态的每次计算都利用状态转换矩阵中线性化的模型来估计,该计算关于适当的状态变量取状态转换公式的偏导数。例如,为了到达对应于的以上示例状态转换矩阵Φ(t)的第一行,以下偏导数可以对计算,以提供状态转换矩阵Φ(t)的第一行中的系数:
状态转换矩阵[Φ(t)]的剩余元素以类似的方式计算。
如以上简明地提到的,利用卡尔曼滤波器,系统当前未调整的预测状态是根据各种状态转换矩阵系数从系统的前一个估计状态Z(t-1)计算的。记号表示在迭代“t”还没有利用当前的观察或测量更新的系统的未调整的预测状态估计。记号Z(t)表示在迭代“t”考虑了当前的观察或测量的调整后的预测状态估计。
如以上所提到的,当前未调整的预测投影位置值是,而且这些值代表下一个图像帧中在未变形的图像空间中预计托盘对象要投影到什么地方。但是,这个当前未调整的预测投影位置是依照齐次坐标的,并且包括预测的缩放因子。为了把齐次坐标转换成在由图像分析计算机110分析的图像中的未调整的预测投影位置值,缩放因子根据下式通过除法被除去了:
和
这个当前未调整的预测图像像素位置在未变形的图像空间中,并且可以转换到变形的图像空间,使得它可以用作下一个图像帧的预测圆形的中心(见图25的步骤2504)。特别地,映射到变形的图像空间中的当前未调整的预测图像像素位置是用于识别与NewObjectlist关联的下一个图像帧中所识别出的匹配的新的评分的候选对象的预测窗口的中心。在获得后续的帧时,计算对应的当前未调整的预测像素位置(在变形的像素坐标中),并用作用于每个最近下一图像帧的预测窗口的中心。
对于卡尔曼滤波器的目的来说,在迭代“t”的“测量”是在迭代“t”用于新的评分的候选对象的观察或实测位置(即,图像像素坐标),可以被称为(xOBS(t),yOBS(t)),并且存储在NewObjectlist中。这个观察到的位置是下一个帧中由图像分析计算机110识别(在变形的图像空间中测量,然后转换成未变形的图像位置)为下一图像帧(即,结合NewObjectlist使用的图像帧)中新的评分的候选对象的下部中点的图像位置。因为卡尔曼滤波器预测的变量是利用齐次坐标预测的投影位置,而观察到的或者实测的变量是图像帧的像素位置,所以观察矩阵[H]构造为把预测的变量(即,在齐次坐标中)与实测的变量(即,在图像帧中的像素位置中)关联。因而,观察矩阵依据来写,其中:
并且
这两个公式关于当前未调整的预测投影位置(即,是非线性的,并且通过关于卡尔曼滤波器的不同状态变量计算每个公式的偏导数来构造线性化的观察矩阵,类似于以上的状态转换矩阵。
换句话说,观察矩阵是根据下式构造的:
这些公式为卡尔曼滤波器提供了观察或测量矩阵H(t),其中:
卡尔曼滤波器的残差(residual),在迭代“t”的观察或测量(即,(xOBS(t),yOBS(t)),),与来自的缩放的当前未调整预测估计(即,之间的差值,可以如下计算:
这还可以写成:
如在卡尔曼滤波器技术中已知的,先验预测过程协方差矩阵可以根据下式计算:
残差协方差矩阵可以根据下式计算:
最优卡尔曼增益可以根据下式计算:
然后,更新后的状态估计,Z(t),可以根据下式计算:
这个当前调整后的预测状态估计Z(t)将对值(u(t),v(t))具有更新后的预测,这被认为是要在卡尔曼滤波器的下一次迭代中使用的用于这些状态变量的估计值。更新后的状态估计Z(t)还将对其它四个也要在卡尔曼滤波器的下一次迭代中使用的状态变量ω(t)、γ(t)、ξ(t)和fy(t)具有更新后的预测值或者估计值。除了在ExistingObjectlist中存储用于新的评分的候选对象的更新的卡尔曼滤波器状态(即,Z(t)),未变形的图像空间中测出的像素位置坐标(即,(xOBS,yOBS))也作为ExistingObjectlist中所存储的未变形像素位置序列中用于这个特定的评分的候选对象的下一个未变形的像素位置添加。如前面所描述的,就是ExistingObjectlist记录中的用于这个特定评分的候选对象的未变形像素位置序列在公式28A(或者公式28B或公式31A)中用于计算用于该评分的候选对象的托盘向量(Xw,Yw,Zw)。
调整后的后验过程协方差矩阵可以根据下式计算:
至于初始化卡尔曼滤波器,P(0)可以是6x6单位矩阵,Q可以是每个元素=0的6x6矩阵,而R可以是每个对角线元素=.001的2x2对角矩阵。
图28是突出图25过程的进一步部分细节的示例性过程的流程图。如以上所提到的,卡尔曼滤波器利用当前状态估计,或者来自卡尔曼滤波器前一次迭代的更新后的预测投影位置,u(t),v(t),在未变形的图像空间中操作。
为了清晰,选择两个特定的图像帧,以关于ExistingObjectlist中特定一个可能的评分的候选对象来描述图28的过程的操作。例如,如果前一图像帧是n=4并且下一个图像帧是n=5,则ExistingObjectlist将包括未变形的图像空间中用于这个评分的候选对象的校正后的实际/实测图像像素位置。例如,ExistingObjectlist中用于这个评分的候选对象的最近校正后的实际图像像素位置具有坐标此外,如步骤2802中所示,ExistingObjectlist还将存储如由卡尔曼滤波器的紧接着前一次迭代计算出的当前调整后的预测状态变量值。换句话说,对于图像帧n=4,ExistingObjectlist存储(依照卡尔曼滤波器变量)系统状态变量的当前估计状态(u(t-1),v(t-1)),其中位置值(u(t-1),v(t-1))是通过来自卡尔曼滤波器的前一次迭代的更新后的预测投影位置值(u(t),v(t))定义的。
在步骤2804中,实现卡尔曼滤波器的图像分析计算机110可以使用这个当前估计的状态(u(t-1),v(t-1))和在图像帧之间的照相机移动量tdiff来计算当前未调整的预测估计这种预测代表,由于在两个图像帧之间所发生的照相机移动,底层物理模型预测(没有任何类型的调整)在下一个图像帧(即,图像帧n=5)中在世界点(XW,YW,ZW)的投影位置(例如,)将是什么。
在步骤2806中,未调整的预测投影位置的齐次坐标值通过除以被缩放,以确定下一个图像帧(即,帧n=5)中对应的未调整的预测像素位置这个未调整的预测像素位置是在未变形的图像空间中,并且在步骤2808中被转换成变形的图像像素坐标。这些变形的图像像素坐标被认为是评分的候选对象在下一个图像帧n=5中的未调整的预测新像素位置(在变形的图像空间中),如图25的步骤2504中所示出的。在步骤2810,参考这些变形的像素坐标在图像帧n=5中定义未调整的预测新位置和预测窗口。
假设在图25的步骤2512中在图像帧n=5中一个新的评分的候选对象被识别出、被定位并与ExistingObjectlist中这个特定的现有候选对象匹配,则那个新的评分的候选对象将在图像帧n=5中在变形的图像空间中具有观察到的或实测的图像像素位置
图像分析计算机110在步骤2812中考虑这个图像像素位置作为要在卡尔曼滤波器的当前迭代中使用的、用于这个评分的候选对象的未校正测量位置。
在步骤2814,图像分析计算机将变形的图像像素位置坐标校正或者把其转换成测出的未变形图像位置坐标这些测出的未变形的图像位置坐标被认为是当前测量并且通过卡尔曼滤波器将其与用于帧n=5的未调整的预测像素位置进行比较,以计算残差,[εr(t)],并且以更新滤波器的状态,如图25的步骤2524中所示。
一旦更新了卡尔曼滤波器的状态,调整后的预测,或估计的状态,Z(t)就将对(u(t),v(t))以及对用于新的评分的候选对象的其它状态变量具有调整后的预测值。还将有一个调整后的过程协方差矩阵P(t)。这些用于(u(t),v(t))的调整后的预测值是卡尔曼滤波器指示要在卡尔曼滤波器的下一次迭代过程中在预备或未调整预测中使用的用于这些状态变量的当前估计值。因而,在步骤2816中,图像分析计算机110把用于这个评分的候选对象的这个调整后的预测,或估计状态,Z(t)存储在ExistingObjectlist中。
除了在ExistingObjectlist中存储用于评分的候选对象的更新后的卡尔曼滤波器状态,在步骤2818中,未变形的图像空间中测出的像素位置坐标(即,(xOBS,yOBS))也可以作为ExistingObjectlist列表中所存储的用于这个特定的评分的候选对象的未变形像素位置序列中下一个未变形的像素位置而添加。
就是这些未变形的图像像素坐标(xOBS,yOBS)要作为用于图像帧n=5中对象位置的校正后的实际未变形坐标而存储。如以上所提到的,就是这些未变形的坐标要被其它过程用于周期性地计算用于评分的候选对象的托盘向量(XW,YW,ZW)。
卡尔曼滤波器的应用在这个评分的候选对象通过后续图像帧n=6、7、8、...被跟踪时以类似的方式重复应用。
以上获得图像、跟踪对象和估计托盘向量的描述假设车辆20是固定的,而带有成像照相机130的叉架装置40在Y方向上下行进。但是,即使车辆20在提升操作中移动,这个移动也可以被考虑到。
特别地,车辆20可以在X方向(即,在托盘正面的侧面)和Z方向(即,朝着托盘正面或远离其)移动,但是假定车辆20在Y方向不移动(即,上下浮动)。而且,假定车辆20关于X轴不旋转(即,前后倾斜),假定关于Z轴不旋转(即,侧面到侧面倾斜),并且假定能够关于Y轴旋转(即,调整车辆20相对于托盘正面如何成角度(square))。
在之前无车辆移动的假设下,物理世界坐标系统的原点被认为是恒定的。因而,有一系列图像点托盘位置这些位置是同一物理世界托盘位置(XW,YW,ZW)的不同观察,并且其索引n指图像帧编号。但是,在车辆可以在图像帧之间移动的假设下,物理世界坐标的位置现在也包括索引值n,因为物理世界中的坐标在获得图像帧n时是相对于世界坐标系统原点On的。例如,世界坐标系统原点On可以位于车辆20的框架上。如果在图像帧n和图像帧n+1之间车辆20移动,则这个原点On移动并且物理世界中托盘2702的位置2704将具有相对于在获得图像帧n+1时的世界坐标系统原点On+1的坐标
关于两个不同坐标系统之间变换的概念已经在上面关于公式15和21描述过了,通过在卡车20在图像之间移动的背景下应用这些技术,提供
公式38A:它在齐次坐标下是
公式38B:
其中:
是评分的候选对象相对于当获得图像帧n时的世界坐标系统原点On的物理世界坐标;
是评分的候选对象相对于当获得图像帧n-1时的世界坐标系统原点On-1的物理世界坐标;
是图像帧n-1和图像帧n之间基于相应世界原点的旋转的旋转矩阵(即,车辆20围绕Y轴的旋转,);及
是图像帧n-1和图像帧n之间基于相应世界原点的移动的平移矩阵(即,车辆20的位置在两个图像帧之间的移动)。
车辆20在帧之间旋转或移动的量可以由与车辆计算机50通信的各种传感器测量或计算。例如,转向角传感器可以与车辆20的转向控制机制耦合,以便提供在公式38B的旋转矩阵中使用的角度此外,来自车轮旋转传感器或类似传感器的测距数据以及来自转向角传感器的数据可以用于计算车辆20的平移移动,即可以用于确定沿X和Z方向的移动。然后,车辆计算机50可以与图像分析计算机110通信,以提供适当的信息。
公式38B可以写作公式38C:
其中给出关于车辆20可以如何在图像帧之间移动的假设,是:
重新整理公式38C可以实现为提供
公式38D:
其中所指出的逆矩阵由下式给出:
在车辆20现在可以在图像帧之间移动的假设下,公式19A可以通过给不同的变量添加适当的下标来扩充(augment),以提供公式39A:
公式39A依赖缩放因子λ把物理世界位置与灰度级图像像素位置关联。把公式38D的左侧替换到公式39A的右侧将产生公式39B:
这个公式依照相对于在获得图像帧n时的新世界坐标系统原点On的物理世界位置提供前一个图像位置点等效的公式39B可以为任何前面的图像位置点写。例如,公式39B可以写成:
公式39C:
并且把公式38D替换到公式39C中提供公式39D:
因而,公式39C和39D可以一般化为公式39E:
这个公式允许来自图像帧(n-N)的任何前面的图像位置坐标依照相对于在获得图像帧n时的新世界坐标系统原点On的物理世界位置来表示。“N”对应于期望的前面的图像帧并且等于当前帧“n”前面它位于的帧数。在公式39E中,从k=N至k=1执行乘法序列。
公式39E在结构上与公式19A相似,根据上面是:
公式19A:
因而,与公式20相似的叉积公式可以写成公式40:
在公式20A中,外在照相机矩阵[Rcam|Tcam]是3x4矩阵。在公式40中,还给出了相似但更复杂的3x4外在照相机矩阵
但是公式40在概念上与公式20A相同。因而,类似于公式20A如何被操纵来产生公式23中的两个线性公式,公式40也可以被操纵产生两个相似但更复杂的线性公式。特别地,这两个线性公式将提供把对于图像帧n-N的图像像素位置关联到物理对象相对于在获得图像帧n时的世界坐标系统原点On的物理世界位置坐标的公式。即使同一个物理对象相对于在获得图像帧n-N时的世界坐标系统原点O(n-N)具有不同的物理世界位置坐标这也是成立的。如前面所描述的,关于公式25A和公式26A,这些线性公式对可以分别对物理对象的多个观察进行收集,使得可以计算能够表示例如物理托盘相对于在获得图像帧n时的世界坐标系统原点On的下部中点的位置的托盘向量如上面讨论过的,可以提供编码器,以便响应于叉架装置40相对于第三焊件36的移动而向车辆计算机50生成脉冲。在获得图像帧n时的世界坐标系统原点On相对于第三焊件是固定的,从而允许车辆计算机50确定成像照相机130以及叉子42A和42B相对于在获得图像帧n时的世界坐标系统原点On的线性移位。由此,成像照相机130及叉子42A和42B相对于在获得图像帧n时的世界坐标系统原点On的位置可以由车辆计算机50向图像分析计算机110提供。然后,这个托盘向量可以由车辆计算机50用于指引叉子42A和42B啮合物理托盘。
如上所述,图像分析计算机110通过一系列图像识别并跟踪多个评分的候选对象。用于每个评分的候选对象的相应记录在ExistingObjectlist中维护。除其它的值以外,用于特定评分的候选对象的对应记录可以包括评分的候选对象的当前位置(XW,YW,ZW)以及用于该评分的候选对象的合成对象得分ScoreObject。用于评分的候选对象的对应记录还可以包括值TagObject,如以下所讨论的,这个值可以与切口关联,但是更一般地说与一串(athread of)匹配对象关联,其中切口定义为叉子42A和42B要在托盘停止的高度。切口本身有一个标记Tagcutout。如下所述,在满足评分的候选对象的某些条件的任何时候或者当TagObject等于Tagcutout时切口被更新。
Yw坐标可以用于指物理世界中车辆20操作的高度。对于所有评分的候选对象利用这个信息,图像分析计算机可以计算切口位置信息,如以下所讨论的,该信息可以传送到车辆计算机50,用于控制诸如像叉子放置和移动的操作。例如,一旦评分的候选对象已经在当车辆叉子42A和42B处于不同高度时分别由成像照相机130获得到的两个不同图像帧中被识别出来,评分的候选对象相对于世界坐标原点2706的托盘向量,或者说当前位置,(XW,YW,ZW)就可以估计。如以上所讨论的,可以提供一个编码器来响应于叉架装置40相对于第三焊件36的移动而向车辆计算机50生成脉冲,其中第三焊件相对于世界坐标原点2706是固定的,从而允许车辆计算机50确定叉子42A和42B及成像照相机130沿桅杆组件30的长度的线性移位。由此,叉子42A和42B相对于世界坐标原点2706的位置可以通过车辆计算机50提供给图像分析计算机110。因为车辆计算机50为图像分析计算机110提供值ty,所以图像分析计算机110可以通过把ty和tbias的值求和来确定成像照相机130相对于世界坐标原点2706的位置。如下所述,用于成像照相机130当前视场内的评分的候选对象的托盘向量可以被图像分析计算机110用于计算“切口”,即托盘内叉子接纳开口210和212相对于世界坐标原点2706的高度,叉子42A和42B在这个位置停止。然后,图像分析计算机110可以周期性地把这个切口位置信息发送到车辆计算机50。例如,切口位置信息可以在它每次被更新时传送,或者带切口信息的消息可以按预定的周期性调度传送。
如以上所指出的,在操作中,操作人员经多功能控制器14的致动在Y方向垂直地把叉子42A和42B提升到高于最后一个要被忽略的托盘P的位置。然后,在叉子42A和42B仍然移动的同时,操作人员致动触发器开关140。独立于触发器开口140的致动,当叉架装置40继续垂直移动时,图像分析计算机110使成像照相机130拍摄图像帧,诸如以10-30fps(帧/秒)的速率。图像分析计算机110分析图像、识别图像帧中的一个或多个对象、确定这多个图像帧中哪个最有可能包括托盘、跟踪这多个图像帧中的一个或多个对象、确定这一个或多个对象相对于世界坐标原点2706的位置并且以切口位置值的形式生成对象位置信息并向车辆计算机50发送。在接收到这种切口位置值之后,车辆计算机50控制叉子移动,使得一旦触发器开关140被致动,它就在新的第一当前停止高度或切口位置值自动地停止叉子。
应当指出,叉子可以在其自动停止的一个或多个高度或切口位置值可以由图像分析计算机110计算。例如,新的第一停止高度可以与具有最接近车辆20的目前叉子高度的垂直高度的评分的候选对象关联。而且,还可以计算分别对应于该新的第一停止高度之上评分的候选对象的附加停止高度。
如所提到的,这些停止高度习惯上可以被称为“切口”或“切口位置值”,并且图像分析计算机110可以,例如,计算分别对应于当前叉子位置附近的第一评分的候选对象、高于第一评分的候选对象的第二评分的候选对象和高于第二评分的候选对象的第三评分的候选对象的三个不同的切口(或者更多或更少)。特别地,如以下更详细描述的,切口可以设置成等于与来自ExistingObjectlist中其记录的评分的候选对象关联的当前Yw,或者以别的方式从其计算。因此,每个切口都固有地与用于设置那个特定切口值的一个特定评分的候选对象关联。如以上所提到的,每个评分的候选对象还在ExistingObjectlist中它的记录当中具有标记值TagObject。因此,除了仅仅维持一个或多个切口值,每个切口值还具有对应的标记值TagCutout,这个值等于用于设置切口值的评分的候选对象的TagObject。
图29A-29F绘出了根据本发明原理用于计算切口的示例性方法的流程图。如以上所提到的,一个或多个切口位置值可以随后被车辆计算机50连同触发器开关140一起用于控制叉子42A和42B的移动。特别地,在叉子42A和42B提升的同时,触发器开关140的致动将使车辆计算机50首先减慢叉子42A和42B提升的速度(例如,减慢至大约14英寸/秒),然后使叉子42A和42B在由图像分析计算机110提供的新的第一停止高度或切口位置停止,如以下关于步骤2982将要讨论的。如以下关于图29A-29F的方法解释的,这个新的第一切口位置值是由图像分析计算机110计算出的调整后的切口值,其最接近并且大于叉子42A和42B的当前高度。
首先,在步骤2902,作为开始图像获得、对象定位以及对象跟踪初始化步骤的一部分,图像分析计算机110也把所有切口初始化为等于零。其次,有一个调整后的切口值,如以下所描述的,该值被图像分析计算机用于把第一切口值调整到新的第一切口位置值并且这也被初始化成零。在所说明的实施例中,定义新第一切口位置值的调整后的切口值等于第一切口值相对于世界坐标原点的估计高度加1.5英寸,并且基于其值也相对于世界坐标原点的对应评分的候选对象的托盘向量(Xw,Yw,Zw)的Yw坐标。(见例如图27A的托盘位置2704。)在所说明的实施例中,1.5英寸的附加量对应于3英寸高的叉子接纳开口210和212并且添加到切口位置值,从而确保叉子42A和42B进入叉子接纳开口210和212并且不接触底部托盘板200。而且,一个计数器(COUNTER)被初始化,其中该计数器具有反映是否应当对第一切口进行调整以达到要传送到车辆计算机50的调整后切口值的确定性或置信度的值。此外,贯穿图29A-29F的过程所使用的其它值也在步骤2902中初始化。如以上所指出的,在操作中,车辆计算机50基于操作人员经多功能控制器14的控制输入移动卡车叉子。这种叉子移动在流程图中作为步骤2904绘出,并且在给定的时刻叉子处于特定的“叉子高度”。车辆计算机50可以把这种信息传送到图像分析计算机110,以允许图像分析计算机110执行以下所述的切口计算。
如以上所指出的,首先,所有切口值都等于零。但是,如以下所描述的,切口值最终设置成等于或者几乎等于特定评分的候选对象的高度(例如,Yw坐标)。如所提到的,图像分析计算机110可以维护多个切口。在图29A-29F的示例流程图中,维护三个切口。第一个切口关于当前的切口高度或当前的切口位置值,而第二个和第三个切口关于在第一个切口之上的切口高度。
一旦图像分析计算机110具有可用于一个或多个评分的候选对象的托盘向量,计算机110就知道了那些一个或者多个评分的候选对象在Y方向相对于世界坐标原点的距离。一旦计算机110知道了一个或多个评分的候选对象相对于世界坐标原点的高度,图29A-29F的过程的后续步骤就将基于那些各个评分的候选对象设置三个切口值中的一个或多个。一旦车辆的叉子42A和42B被提升至当前的第一切口位置值(例如,cutout[0])之上,当前的第一切口值就不再需要并且第二切口位置值可以变成第一切口值。依次,第二切口值可以设置成等于第三切口位置值并且第三切口值被初始化为等于零。如后面描述的(在步骤2946中),在某些条件下,第三切口也可以设置成新的值。以这种方式,图像分析计算机110可以维护三个切口值,但是它们被更新,以确保所有三个切口值都在叉子42A和42B的当前高度之上。因为在评分的候选对象的实际高度(例如,其Yw坐标)中会存在某种不确定性,所以图像分析计算机110可以进行检查,来看第一切口值是否小于当前叉子高度减去一个小的量,例如,(“叉子高度”-1.5英寸(“放至中心值”)),而不是确定第一切口值是否精确地小于当期的“叉子高度”。基于步骤2906中的这种确定,图像分析计算机110可以在步骤2908中偏移切口值,如以上所描述的,或者直接前进到步骤2910。在步骤2902中初始化的计数器与当前第一切口值中的置信度(CONFIDENCE)关联。因而,一旦在步骤2908中当前的第一切口值被丢弃并且用当前的第二切口值代替,这个计数器就也重新初始化。而且,在步骤2908中,不同切口的对应标记值(例如,Tagcutout[k])可以类似于切口值偏移的方式向左偏移。
步骤2910中所发生的动作可以在图29A-29F中所绘出的过程的逻辑流之外发生。但是,在图29B中绘出是为了指示步骤2910的动作发生,使得这个动作的结果可以在流程图随后的步骤中使用。特别地,在步骤2910中,图像分析计算机110确保在每个新的评分的候选对象首次添加到ExistingObjectlist时,用于那个对象的记录包括用于TagObject的相应的值。
如步骤2902中所示,值next_Tag初始化为等于一。当真正第一个(very first)评分的候选对象添加到ExistingObjectlist时,在步骤2910中其对应的TagObject值设置成等于next_Tag(即,设置成等于“1”)。用于next_Tag的值也在步骤2910中递增,使得添加到ExistingObjectlist的下一个新识别出的评分的候选对象(即,见图23E的步骤2384)的TagObject值通过步骤2910设置成等于next_Tag(即,设置成等于“2”)。因而,步骤2910的动作代表添加到ExistingObjectlist的每个新识别出的对象如何基于next_Tag的当前值被分配唯一的“标记”值。
在步骤2912中,图像分析计算机110识别ExistingObjectlist中满足要成为切口候选的某个标准的n个评分的候选对象。例如,a)合成对象得分,ScoreObject,大于预定阈值(例如,0.5),或者标记值TagObject等于当前与第一个切口cutout[0]所关联的标记Tagcutout[0],以及b)Yw坐标大于预定最小高度(例如,35英寸)并大于当前“叉子高度”(叉子高度-1.5英寸)并且Zw坐标大于零的那些评分的候选对象可以被识别为用作用于设置切口值的切口候选的可能的评分的候选对象。如果没有识别出这种切口候选,则图像分析计算机可以继续步骤2968。
如关于图24B所讨论的,在ExistingObjectlist中,图像分析计算机110可以用相应的索引值唯一地指每个评分的候选对象并且,因此,在步骤2912结束时,可以识别出一个这些索引值的列表,其中这些索引值引用ExistingObjectlist中作为用于设置切口值的可能候选而保留的那n个评分的候选对象。如步骤2916中所示,图像分析计算机110可以为在该列表中具有索引值的剩余评分的候选对象中每一个执行多个步骤。一旦这些评分的候选对象,或者切口候选,全都用过了,该过程的这个部分就完成了并且,在步骤2966中,图像分析计算机继续步骤2970。如随后关于步骤2922所描述的,存在确定在每个切口预定距离内是否有切口候选是有益的情况。因而,在步骤2914中,在步骤2916的循环开始之前,值cutoutFound[k]被初始化。如下所述,用于cutoutFound[k]的实际值将反映对cutout[k]步骤2922是否满足。
在步骤2918中,对于剩余评分的候选对象或切口候选中特定的一个,图像分析计算机110为三个切口中每一个循环通过并且执行多个步骤。在步骤2920中,图像分析计算机110确定当前的切口值是否已经设置,或者换句话说,是否是不等于零的当前切口值。如果当前切口值已经设置,则图像分析计算机110继续步骤2922。如果当前切口值还没有设置,则图像分析计算机继续步骤2938。
在步骤2922中,图像分析计算机110确定,与步骤2916中所启动循环的当前迭代的评分的候选对象的Yw相比,当前切口值是否在预定的高度差内。切口可以一般性地称为数组cutout[j],其中j=0,1或2(在其中有三个切口的例子中)。因而,在步骤2922中,图像分析计算机可以确定是否|cutout[j]-Yw|<15英寸。如果是,则图像分析计算机可以执行步骤2924、2926和2928。如果不是,则图像分析计算机110继续步骤2950,以便,如果可用的话,移动到下一个切口值(即,cutout[j+1])。通常,将只有一个切口在当前评分的候选对象的15英寸内。假设没有托盘彼此接近超过预定的距离(例如,15英寸)。因而,如果有多于一个评分的候选对象接近一个特定的当前切口值超过预定的距离,则图像分析计算机110在步骤2924中识别出高度Yw最接近当前切口值的切口候选(即,步骤2912中所确定的那n个评分的候选对象)并且使用用于这个识别出的评分的候选对象的来自ExistingObjectlist记录的属性来潜在地更新当前切口值,cutout[j]。
特别地,在步骤2926中,用于识别出的最接近的切口候选的Yw值被用于设置best_Cutout[j]的值。用于best_Cutout[j]的这个值代表比其当前值可能更准确的cutout[j]值。因为步骤2926可以潜在地对n个不同的切口候选中的每一个重复,所以用于best_Cutout[j]的值可以在步骤2916中启动的循环的随后迭代中改变。因为cutout[j]还具有关联的Tagcutout[j],所以还有一个值best_cut_tag[j],这个值设置成对应于用于设置best_Cutout[j]的最接近的识别出的切口候选的Tagcutout值。
因而,在步骤2924中,图像分析计算机110识别其Yw值最接近当前切口,即在步骤2922中识别出的cutout[j],的切口候选。例如,如果用于当前切口候选的Yw在如步骤2922中所确定的cutout[2]的15英寸内,则图像分析计算机110确定(来自步骤2912的)哪个切口候选具有最接近cutout[2]的当前值的相应Yw值。一旦识别出这个最接近的切口候选,其Yw值就用于设置best_Cutout[2],这有可能是用于cutout[2]的更好的值。例如,best_Cutout[2]可以部分依赖于用于cutout[2]的当前值并且部分依赖于所识别出的Yw值。用于设置best_Cutout[2]的值的一个可能的公式,如步骤2926中所示出的,可以是:
best_Cutout[2]=0.5x(cutout[2]+YW)
在步骤2928中,图像分析计算机110确定在步骤2922中识别出的切口是否是第一个切口。如上所述,三个切口可以作为数组存储(cutout[0]、cutout[1]、cutout[2])并且它们对应的标记值Tagcutout也可以作为数组存储(Tagcutout[0]、Tagcutout[1]、Tagcutout[2])。图像分析计算机110可以通过检查其在所存储数组中的索引值来确定在步骤2922中识别出的一个cutout[j]是否是第一个切口。如果所识别出的切口不是第一个切口,则图像分析计算机110继续步骤2932,其中cutoutfound[j]设置成等于1,然后继续在步骤2918中开始的循环。如果所识别出的切口是第一个切口,则在步骤2930中之前计算出的并且与这个第一切口关联的前一置信值基于步骤2924中被识别为最接近这个切口值的切口候选的合成对象得分Scorecutout来调整。例如,“置信”值可以根据下式来计算:
置信度=0.5(前一置信度+合成对象得分(i.e.,ScoreObject))
一旦计算出置信值,图像分析计算机110就继续步骤2932,以继续在步骤2918中开始的循环。在步骤2932中,图像分析计算机110把用于cutoutfound[j]的值设置成等于1,如以上所指出的,从而指示对于cutout[j]步骤2922是满足的。图像分析计算机110继续步骤2950,以便,如果可用的话,移动到下一个切口值(即,cutout[j+1])。
如果在步骤2920中当前的cutout[j]被识别为还没有设置,则图像分析计算机110在步骤2938中确定当前对象,即在步骤2916中所启动循环的当前迭代的评分的候选对象,的Yw是否大于叉子高度。如果不是,则用于当前切口值cutout[j]的当前循环完成并且索引值“j”在步骤2950中递增,使得,如果例如在步骤2952中递增后j的值小于三,则利用新切口值的新迭代可以在步骤2918中开始。当在步骤2938中比较Yw与叉子高度时,把一个相对小的预定值添加到叉子高度可能是有益的,使得,例如,图像分析计算机110可能确定是否Yw>(叉子高度+5英寸),而不是与确切的叉子高度值进行严格的比较。
但是,如果步骤2938的标准被满足,则图像分析计算机110继续步骤2940。在步骤2940中,图像分析计算机110确定第一个切口是否在零和在步骤2916的这次特定迭代中使用的特定评分的候选对象或切口候选的Yw值之间。如果在,则图像分析计算机110在步骤2942中把第二切口值设置成等于用于这个特定评分的候选对象的Yw值并且把切口标记值Tagcutout[1]设置成用于这个特定评分的候选对象的Tagobject值。然后,图像分析计算机移到步骤2950,使得,如果例如在步骤2952中递增后j的值小于三,则利用新切口值的新迭代可以在步骤2918中开始。如果步骤2940的标准没有满足,则图像分析计算机110前进到步骤2944。
在步骤2944中,图像分析计算机110确定第一切口是否大于在步骤2916的这次特定迭代中使用的特定评分的候选对象或切口候选的Yw。如果是,则在步骤2946中,图像分析计算机110向右偏移这三个切口,使得第三个切口值设置成当前的第二切口值,第二切口值设置成当前的第一切口值,而第一切口值设置成等于Yw。图像分析计算机还以类似的方式偏移对应的第一、第二和第三Tagcutout值。此外,图像分析计算机110还基于用于当前考虑的评分的候选对象或切口候选的合成对象得分来根据下式为新的第一切口值设置置信得分:
置信度=ScoreObject
一旦切口值及其相应关联的标记值在步骤2946中偏移并且置信得分已设置,图像分析计算机110就继续步骤2950,使得,如果例如在步骤2952中递增后j的值小于三,则利用新切口值的新迭代可以在步骤2918中开始。如果在步骤2944中图像分析计算机110确定第一切口值不大于Yw,则图像分析计算机110在步骤2948中把第一切口设置成等于在步骤2916的这次特定迭代中使用的特定切口候选的Yw值,把第一切口标记值,Tagcutout[0],设置成等于用于这个特定切口候选的Tagobject值,把用于第一切口的“置信”值设置成等于用于这个特定切口候选的合成对象得分,Scoreobject,并且继续步骤2950,使得,如果例如在步骤2952中递增后j的值小于三,则利用新切口值的新迭代可以在步骤2918中开始。步骤2948通常在第一切口值等于“0”时到达。这种情况会在以下时候发生:当所有切口值最初都设置成等于“0”时或者,在步骤2908中,如果发生切口值的右移导致“零”值分配给第一切口值。最终,步骤2950的重复执行将导致用于在步骤2918中启动的循环的索引值,j,等于步骤2952中切口值的个数(例如,三)。在这种情况下,步骤2918的循环完成并且,在步骤2954中,识别出新的切口候选索引值i,在步骤2956中,i用于在步骤2916中启动的循环的下一次迭代。最终,i在步骤2956中递增,直到其超过步骤2956中切口候选的个数n。在这种情况下,步骤2916的循环完成并且图像分析计算机继续步骤2958。
在步骤2958中,启动通过不同切口值(例如,j=0至2)的循环。首先,在步骤2960中,图像分析计算机110确定cutoutfound[j]是否不等于零。当对cutout[j]步骤2922满足至少一次时,这个标准为真。因此,用于cutout[j]的可能更好的值也被计算为best_Cutout[j],它具有对应的标记值best_cut_tag[j]。因此,在步骤2962中,cutout[j]和Tagcutout[j]被更新,以分别反映best_Cutout[j]和best_cut_tag[j]的值。
一旦步骤2962完成,或者如果在步骤2960中cutout[j]等于“0”,图像分析计算机110就在步骤2964中递增j并且,如果,如步骤2966所确定的,还有剩余的切口,则循环返回步骤2958。一旦步骤2958的循环对所有切口完成,则图像分析计算机110继续步骤2970。
如果在步骤2912中没有对当前叉子高度识别出可能的评分的候选对象,则图像分析计算机110继续步骤2968。在步骤2968中,减少与第一个切口关联的置信值。例如,新的置信值可以根据下式计算:
置信度=0.5(置信度).
一旦在步骤2968中调整了置信得分或者一旦2958的循环的所有步骤完成,图像分析计算机110就继续步骤2970。特别地,如果图像分析计算机110在步骤2970中确定用于第一切口的置信值高于预定阈值(例如,0.5),则与该置信值关联的计数器可以,例如,在步骤2972中递减。例如,如果该计数器设置成等于三并且在每次置信值高于预定阈值的时候递减,则第一切口所遇到的较高置信值次数越多,计数器的值越低。本领域普通技术人员将认识到,这个计数器值可以变化并且可以,例如,大于三(例如,五)或者小于三(例如,一)。
如果置信值不高于预定阈值,如在步骤2970中所确定的,或者一旦计数器被调整,如在步骤2972中,则图像分析计算机110在步骤2974中确定第一切口值是否大于零。如果是,则用于第一切口的调整后的第一切口值由图像分析计算机110在步骤2976中计算。例如,调整后的第一切口值可以根据下式计算:
调整后的值=cutout[0]+1.5英寸
其中预定的偏移量(例如,1.5英寸)添加到用于cutout[0]的值。一旦在步骤2976中计算出调整后的值或者如果,如在步骤2974中所确定的,第一切口值不大于零,则图像分析计算机110继续步骤2978。在步骤2978中,图像分析计算机110确定计数器是否大于预定的值。如果例如计数器值大于零,则没有发生高于预定阈值的最小个数的“置信”值(见步骤2970和2972)。在这些条件下,图像分析计算机110在步骤2980中把调整后的值复位成等于零并且通过返回步骤2904来重复该过程。
但是,如果计数器值指示已经发生了高于预定阈值的最小个数的“置信”值,则图像分析计算机110在步骤2982把“调整后的”值(例如,第一切口值+1.5英寸)传送到车辆计算机50,作为新的第一切口位置或停止高度,并且还可以传送第二和第三切口值。然后,通过返回步骤2904,该过程重复。
以上描述假设叉子向上提升并且操作人员期望叉子停止在下一个更高的切口。但是,本领域普通技术人员将认识到,图29A-29F的算法可以修改成在叉子向下行进并且操作人员期望叉子停止在下一个更低的切口的时候也适当地操作。
评分的候选对象可以通过一系列图像帧被检测和跟踪的准确度可以通过执行照相机的内在和外在校准来改进。如前面所提到的,内在照相机矩阵具有形式:
其中:
(x0,y0)是照相机的中心2714并且是图像平面2712上照相机中心(或者照相机坐标系统原点)2708根据针孔照相机模型投影的像素位置;
fx是以x方向,或水平的,像素相关的单位表示的焦距f;及
fy是以y方向,或垂直的,像素相关的单位表示的焦距f,及
γ代表x和y轴之间的歪斜因子,并且常常是“0”。
用于这个矩阵的元素的值可以利用已知的照相机后方交会技术确定,并且可以作为照相机制造过程的一部分来执行。至于成像照相机130的外部校准,其它技术对于确定前面讨论过的外在照相机矩阵[Rcam|Tcam]的值是有用的。由于这些值可以依赖于照相机相对于车辆20安装的具体方式,因此外在校准可以有益地在车辆20将被使用的地点执行。例如,可以为以下的量确定值:
tybias(成像照相机130以及叉子42A和42B的位置之间的固定垂直偏移量),
txbias(成像照相机130和世界坐标原点2706的位置之间的固定水平偏移量),
θx(照相机坐标系统相对于X轴2707的旋转,称为仰角,在图27A中指定为θe)。理想地,仰角可以在叉子42A和42B具有零倾斜角的时候被校准。如以上所指出的,如果叉子42A和42B的倾斜角θef不为零,则成像照相机130的整体仰角θe=(θec+ef)将包括由于叉子42A和42B倾斜造成的部分θef和由于照相机130倾斜造成的部分θec,其中θef可以由与车辆计算机50通信的倾斜角传感器提供,
θy(照相机坐标系统相对于Y轴2711的旋转,称为螺旋角),及
θz(照相机坐标系统相对于Z轴2705的旋转,称为偏转角)。
初始估计可以分配给这些值,以便开始外在照相机校准过程。例如,当只考虑仰角时,估计的θx初始值可以是0度,并且用于tybias的初始估计值可以是成像照相机130离叉子42A和42B的物理实测高度。水平偏移量txbias、螺旋角和偏转角可以认为等于零。利用这些初始估计值,可以在已知的或实测的世界几何结构的图像中获得多于一个评分的候选对象(即,潜在的托盘)。例如,基于多于一个托盘相对于世界坐标原点2706的相应手动预先测出的距离和高度,对应的世界坐标位置(Xw,Yw,Zw)可以确定(其中,当只有仰角非零并且照相机在X方向没有平移偏移量(即,txbias=0)时,Xw的值可以不必测量,如以下更完全描述的),其中,如以上指出的,世界坐标原点2706位于车辆10上已知的位置。作为替代,可以实现类似的技术,该技术使用来自从不同照相机位置拍摄的多个图像帧中关于单个潜在托盘的相应的测量信息。
图30绘出了用于一个示例场景的一系列图像帧中的一个图像帧,在该场景中,三个潜在的托盘位置3002、3004、3006已经被成像照相机130捕捉并且投影到图像平面3010上,作为三个相应的像素位置3012、3014和3016。还有可能从其中角落位置取代下部纵梁点的多个棋盘视图(from multiple views of chessboards)获得校准数据。如前面所讨论的,这些像素位置的变形可以被校正,使得位置3012、3014和3016处于未变形的图像空间中。在所绘出的场景中,以下值已经确定:
当捕捉图像帧3010时叉子的平移,ty,可以从车辆计算机50确定;
第一个潜在的托盘位置3002投影到未变形的图像像素位置(x1,y1)3012并且相对于世界坐标原点进行测量,以便具有对应的世界坐标位置(X1,Y1,Z1);
第二个潜在的托盘位置3004投影到未变形的图像像素位置(x2,y2)3014并且相对于世界坐标原点进行测量,以便具有对应的世界坐标位置(X2,Y2,Z2);及
第三个潜在的托盘位置3006投影到未变形的图像像素位置(x3,y3)3016并且相对于世界坐标原点进行测量,以便具有对应的世界坐标位置(X3,Y3,Z3)。
在只有仰角(即,θx)的配置中,公式23的第二个线性公式提供公式41A(其中θx表示仰角):
yrow(Ywsinθx+Zwcosθx)-Yw(fycosθx+y0sinθx)-Zw(-fysinθx+y0cosθx)=fy(ty+tybias)
这个公式可以重新整理,以提供在执行外在照相机校准时有用的第一公式。特别地,公式41A可以重新整理成公式41B:
cosθx(-fyYw+(yrow-y0)Zw)+sinθx((yrow-y0)Yw+fyZw)=fy(ty+tybias)
如前面所提到的,仰角θx可以包括来自成像照相机130的倾斜角的一部分θec和来自叉子42A和42B的角度的一部分θef,使得:
θx=θec+θef
第二个公式可以从公式42的众所周知的三角原理导出:
cos2θec+sin2θec=1.
利用这两个公式,用于tybias和θx的适当的值可以利用以下所述的迭代过程确定。一般而言,该迭代过程首先基于公式41B和公式42定义两个残差函数。特别地,这两个残差函数由公式43A定义:
f=fy(ty+tybias)-cosθx(-fyYw+(yrow-y0)Zw)-sinθx((yrow-y0)Yw+fyZw)
但是,公式43A可以关于多于一个潜在的托盘(或者评分的候选对象);因而,它可以更一般性地写成公式43B:
f(i)=fy(ty+tybias)-cosθx(-fyYi+(yi-y0)Zi)-sinθx((yi-y0)yi+fyZi)
其中i是用于区分可以在图像帧3010中观察到的不同评分的候选对象(例如,3002、3004、3006)的索引。在公式43B中,每个这种评分的候选对象都具有相应的残差公式f(i)并且具有相应的手动测量的世界坐标位置(Xi,Yi,Zi)以及图像像素位置高度值yi。公式43B的格式可以通过把它写成公式43C来简化:
f(i)=fy(ty+tybias)-cosθx(qi)-sinθx(ri)
其中:
qi=(-fyYi+(yu-y0)Zi)
ri=((yi-y0)yi+fyZi)
利用两个几何恒等式:
cos(θx)=cos(θec+θef)=cos(θec)cos(θef)-sin(θec)sin(θef)
sin(θx)=sin(θec+θef)=sin(θec)cos(θef)+cos(θec)sin(θef)
允许公式43C写成公式43D:
f(i)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](qi)-[sin(θec)cos(θef)+cos(θec)sin(θef)](ri)
基于公式42的第二个残差公式由公式44定义:
ge=1-cos2θec-sin2θec
通过找出每个残差公式相应的根(即,导致f(i)和ge等于零的变量的那些值),可以计算用于确定外在照相机校准的适当的值。在以上的记号中,f(i)代表评分的候选对象i的残差公式并且不表示f是独立变量i的函数。
一般而言,函数w可以利用泰勒(Taylor),或幂,级数(series)(n0+e)在评估,其中:
w(n0+e)=w(n0)+w′(n0)e+1/2w″(n0)e2...
取该级数的前两个项提供w的近似,其中:
w(n0+e)≈w(n0)+w′(n0)e
在这个泰勒近似中,n0可以被认为是函数w的根的初始猜想,而e是要定位比n0更靠近w的实际根的初始偏移量。设置w(n0+e)=0并且求解“e”提供了用于偏移量“e”的初始估计值。Taylor级数的这种使用可以迭代执行,使得“e”的每个前一次计算都在根据牛顿-拉弗森(Newton-Rhapson)方法求解w的根的下一次迭代中使用。
换句话说,利用对w的根的当前猜想,n(t),提供:
0≈w(n(t))+w′(n(t))*e(t)
然后,这可以根据下式被求解,以估计在迭代算法中使用的偏移量或“步进”的值:
利用新计算出的对步进e(t)的估计,对w的根的更新后的猜想n(t+1)由下式提供:
n(t+1)=n(t)+e(t)
就是这个值n(t+1)在计算估计的偏移量或步进值的下一次迭代中使用。这个迭代过程可以重复,直到e(t)达到预定的阈值。以这种方式,泰勒级数近似可以迭代地用于求解函数w的根。
对于多变量函数,诸如像w(n,m),泰勒级数近似在点(n0+e1,m0+e2)周围的前两项是通过根据下式取偏导数来形成的:
对于与这第一种配置中外在照相机校准相关的残差公式,所关心的变量是cosθec,sinθec和tybias,而且其中每个变量都具有相应的估计的偏移量p0、p1和p2。如果有至少两个评分的候选对象,则使用上述关于泰勒级数近似的原理提供以下用于执行外在照相机校准的残差公式:
公式45A:
ge=1-cos2θec-sin2θec
f(0)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q0)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r0)
f(1)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q1)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r1)
如果有附加的评分的候选对象可用,则附加的残差公式也可以使用;这些附加的残差公式将具有形式:
f(i)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](qi)-[sin(θec)cos(θef)+cos(θec)sin(θef)](ri)
其中i指唯一识别评分的候选对象的索引值。
残差公式的相应的泰勒级数近似是公式46A:
ge≈1-cos2θec-sin2θec-2cosθec*p0-2sinθec*p1
f(0)≈
fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q0)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r0)-[q0cos(θef)+r0sin(θef)]*p0-[-q0sin(θef)+r0cos(θef)]*p1+fy*p2
f(1)≈fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q1)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r1)-[q1cos(θef)+r1sin(θef)]*p0-[-q1sin(θef)+r1cos(θef)]*p1+fy*p2
把来自公式46A的每个公式设置成等于零来求解相应的根提供了公式47A:
2cosθec*p0+2sinθec*p1≈1-cos2θec-sin2θec
[q0cos(θef)+r0sin(θef)]*p0+[-q0sin(θef)+r0cos(θef)]*p1-fy*p2≈fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q0)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r0)
[q1cos(θef)+r1sin(θef)]*p0+[-q1sin(θef)+r1cos(θef)]*p1-fy*p2≈fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q1)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r1)
公式47A的这三个公式可以用矩阵记号写作公式48A:
其中:
qi=(-fyYi+(yi-y0)Zi)
ri=((yi-y0)Yi+fyZi)
f(i)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](qi)-[sin(θec)cos(θef)+cos(θec)sin(θef)](ri)
ge=1-cos2θl-sin2θec
如所提到的,在图像帧3010中可以有多于仅两个评分的候选对象,因此,公式48A将具有值qi、ri和fi的附加行。公式48A的通用形式是公式49A中所示的形式:
其中:
这可以被操纵,以形成公式49B:
相应地,公式49B揭示了多个托盘的相应观察和用于cosθec,sinθec和tybias的相应估计可以用于为向量值提供最小二乘法解答。这个向量值可以用于根据公式50迭代地更新用于cosθec,sinθec和tybias的相应估计:
cosθec(t+1)=cosθec(t)+p0
sinθec(t+1)=sinθec(t)+p1
tybias(t+1)=tybias(t)+p2
然后,用于cosθec,sinθec和tybias的更新后的估计可以在公式49B中用于找出的新值。这个迭代过程可以重复,直到每个为计算出的值都小于预定的阈值。例如,这个预定的阈值可以是10-6。一旦迭代过程完成,用于cosθec,sinθec和tybias的相应的值就已经根据公式50计算出来了并且照相机对仰角的贡献,θec,可以从确定。对于这种实施例,照相机对仰角的贡献,θec和tybias,包括外在照相机校准值。
在上述配置中,为了让多个托盘观察用于求解两个外在照相机校准值,θec和tybias,只利用来自公式23的一个线性公式就足够了(连同ge)。但是,在其中只存在仰角θx的配置中,仍然存在其中txbias≠0的情况。在这种情况下,手动测量成像照相机130的位置和世界坐标原点2706位置之间的水平偏移量可以为这个值提供足够的准确度。但是,执行外在照相机校准以确定用于txbias的校准值也可以实现,但是将利用除公式48那些之外的附加公式。可以如何定义txbias以便简化特定托盘位置的Xw坐标的物理测量的完整解释在下面关于其中既有仰角θx又有偏转角θz的照相机配置来解释。
在其中没有偏转角θz但是txbias≠0的配置中,公式23的第一个线性公式由下式给出:
-Xwfx-Ywx0sinθx-Zwx0cosθx+xi(Ywsinθx+Zwcosθx)-fx(txbias)=0
该公式可以重新整理,以提供用于在确定txbias时有用的特定托盘位置i的附加残差公式:
f*(i)=Xwfx+fx(txbias)-((xi-x0)Zw)cosθx-((xi-x0)Yw)sinθx
其中记号f*(i)用于方便区分这个附加的残差公式与前面讨论过的残差公式f(i)。这个附加的残差公式可以写成公式43E:
其中:
同样,利用两个几何恒等式:
cos(θx)=cos(θec+θef)=cos(θec)cos(θef)-sin(θec)sin(θef)
sin(θx)=sin(θec+θef)=sin(θec)cos(θef)+cos(θec)sin(θef)
允许公式43E写成公式43F:
在这种修改后的第一配置中利用这个关于外在照相机校准的附加残差公式,所关心的变量是cosθec,sin0ec和txbias,而且其中每个变量都具有相应的估计的偏移量p0、p1和p2。如果有至少两个评分的候选对象,则使用上述关于泰勒级数近似的原理提供以下用于执行外在照相机校准的残差公式。
公式45B:
ge=1-cos2θec-sin2θec
f(0)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q0)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r0)
f(1)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q1)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r1)
如果有附加的评分的候选对象可用,则附加的残差公式也可以使用;
这些附加的残差公式将具有形式:
其中i指唯一地识别评分的候选对象的索引值。
公式45B的残差公式相应的泰勒级数近似是公式46B:
ge≈1-cos2θec-sin2θec-2cosθec*p0-2sinθec*p1
f(0)≈
fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q0)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r0)-[q0cos(θef)+r0sin(θef)]*p0-[-q0sin(θef)+r0cos(θef)]*p1+fy*p2
f(1)≈
fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q1)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r1)-[q1cos(θef)+r1sin(θef)]*p0-[-q1sin(θef)+r1cos(θef)]*p1+fy*p2
类似于前面,把来自公式46B的每个公式设置成等于零来求解相应的根提供了公 式47B:
2cosθec*p0+2sinθec*p1≈1-cos2θec-sin2θec
[q0cos(θef)+r0sin(θef)]*p0+[-q0sin(θef)+r0cos(θef)]*p1-fy*p2≈fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q0)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r0)
[q1cos(θef)+r1sin(θef)]*p0+[-q1sin(θef)+r1cos(θef)]*p1-fy*p2≈fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](q1)-[sin(θec)cos(θef)+cos(θec)sin(θef)](r1)
公式47B的这五个公式可以用矩阵记号写成公式48B:
其中:
qi=(-fyYi+(yi-y0)Zi)
ri=((yi-y0)Yi+fyZi)
f(i)=fy(ty+tybias)-[cos(θec)cos(θef)-sin(θec)sin(θef)](qi)-[sin(θec)cos(θef)+cos(θec)sin(θef)](ri)
并且ge=1-cos2θec-sin2θec
然后,公式48可以用与公式48A、49A、49B和50相似的方式用于迭代地求解三个外在照相机校准值:照相机对仰角的贡献,θec、txbias和tybias,这包括用于这种具有非零仰角θx和X方向偏移量txbias的这一修改后的第一种配置的外在照相机校准值。
当仰角θx和偏转角θz都存在时,用于每个托盘位置的所有三个相应的世界坐标值(Xw,Yw,Zw)都可以用于计算外在照相机校准值。特别地,用于特定托盘位置的Xw值可以认为相对于参考托盘位置,诸如像最底部的托盘位置(例如,图30的3006)。为了这么做,水平偏移量值,txbias,可以按特定的方式定义,以帮助校准过程。如前面所讨论的,成像照相机130可以按这样-种方式附连到车辆框架,使得它具有离世界坐标原点2706有偏置值(即,tcx=txbias)的X坐标值偏移量。在校准过程中,车辆20可以仔细地定位,使得车辆20上已经被指定为世界坐标原点的位置基本上在X方向与最底部的托盘位置(例如,图30的3006)对准。因此,水平世界坐标X3可以定义为等于零并且水平世界坐标X2可以通过测量位于托盘位置3004的中心托盘纵梁的下部中心和位于托盘位置3004的下部中心托盘纵梁的中心之间的水平距离获得。用于托盘位置3002的水平坐标X1可以按类似地方式测量。因此,以下所述的过程将允许确定对txbias的校准值。
当偏转角也存在时,公式24B的线性公式可以重新整理成为评分的候选对象i提供公式51A的残差公式:
f1(i)=((xi-x0)sinθxsinθz-fxcosθz)Xi+((xi-x0)cosθzsinθx)Yi+((xi-x0)cosθx)Zi-fxtxbias
f2(i)=(((yi-y0)sinθx-fycosθx)sinθz)Xi+(((yi-y0)sinθx-fycosθx)cosθz)Yi+((yi-y0)cosθx+fysinθx)Zi-fy(ty+tybias)
由公式51B提供两个其它的残差公式:
ge=cos2θec+sin2θec-1
gd=cos2θz+sin2θz-1
其中θx=θec+θef
以上关于仅仰角场景描述过的牛顿-拉弗森迭代方法可以按类似的方式应用到本场景,其中要计算的外在照相机参数是偏转角θz、照相机仰角θec、x偏置值txbias和y偏置值tybias。对于图像平面3010中的至少两个潜在托盘位置,矩阵[F’]可以定义为公式52:
基于矩阵[F’],对应的雅可比(Jacobian)矩阵[J’]可以根据公式53来计算:
只研究[F’]和[J’]的第一行揭示了这些矩阵如何可以用于执行为仰角和偏转角都存在的这种配置求解外在照相机校准值的迭代过程。例如,[F’]的第一行提供了:
ge=cos2θec+sin2θec-1
并且[J’]的第一行提供了:
[2cosθec 2sinθec 0 0 0 0]
[F’]的第一行(设置成等于零)的泰勒级数扩展提供了:
0=cos2θec+sin2θec-1+(2cosθec*p0)+(2sinθec*p1)
这可以重新整理,以提供公式54:
(2cosθec*p0)+(2sinθec*p1)=--cos2θec-sin2θec+1
因此,与公式49B相似的、用于为这种配置执行外在照相机校准的公式由公式55A提供:
这个公式可以被操纵,以形成公式55B:
因此,公式55B揭示了多个托盘的相应观察以及用于cosθec,sinθec,cosθz,sinθz,txbias和tybias的相应估计可以用于为向量值是供最小二乘法解答。这个向量值可以用于根据公式56A迭代地更新用于cosθec,sinθec,cosθz,sinθz,txbias和tybias的相应估计:
cosθec(t+1)=cosθec(t)+p0
sinθec(t+1)=sinθec(t)+p1
cosθz(t+1)=cosθz(t)+p2
sinθz(t+1)=sinθz(t)+p3
txbias(t+1)=txbias(t)+p4
tybias(t+1)=tybias(t)+p5
然后,更新后的用于cosθec,sinθec,cosθz,sinθz,txbias和tybias的估计可以在公式55B中用于为找出新值。这个迭代过程可以重复,直到每个为计算出的值都小于预定的阈值。例如,这个预定的阈值可以是10-6。一旦迭代过程完成,用于cosθec,sinθec,cosθz,sinθz,txbias和tybias的相应的值就已经计算出来并且照相机对仰角的贡献θec可以从确定,而偏转角θz可以从确定。对于这种实施例,照相机对仰角的贡献θec、偏转角θz、txbias和tybias包括外在照相机校准值。
多个上述公式是非线性的并且各种技术可以用于迭代过程以帮助收敛到用于外在照相机校准值的解答。首先,用于向量的范数||P||的允许的最大值maxSizefp可以任意选择,从而根据以下公式57限制或调整[P]的尺寸:
其中,例如,maxSizefp=10;
[P’]潜在地包括缩放后的向量[P];及
向量[P]的范数||P||可以是,例如,欧几里德范数,使得
用于避免上述迭代过程中发散的另一种技术涉及规定减小为每次迭代计算出的偏移量或步进值(例如,pn)影响的步进尺寸。在这个例子中,向量具有六个元素并且,因此,代表6维空间中的特定方向。为了方便,这个方便被称为牛顿方向。这个向量[P]也代表用于为公式56A计算更新后的值的“步进”,并且可以方便地被称为牛顿步进。在有些情况下,使用在牛顿方向中的完全牛顿步进以便在牛顿-拉弗森方法中计算下一个迭代值不能提供最好的结果。虽然牛顿方向可以假设为是在其中作出步进的正确方向,但是在有些情况下,减小那个步进的量可以比使用完全牛顿步进更好。因此,可以计算与[P]相乘的“步进尺寸”λ(其中0<λ≤1),以便确定可以用于为公式56A计算更新后的值的修改后的牛顿步进(例如,λ[P])。
特别地,这种技术涉及在牛顿-拉弗森方法的每次迭代执行线搜索,以确定在更新公式56A的值时要使用的步进尺寸λ。特别地,公式56A暗示使用完全牛顿步进或者,换句话说,在每次迭代使用λ(t)=1的步进尺寸。但是,如所提到的,具有0和1之间的值的较小的步进尺寸(例如,0<λ(t)≤1)可以使用,这提供了公式56B:
cosθec(t+1)=cosθec(t)+λ(t)p0
sinθec(t+1)=sinθec(t)+λ(t)p1
cosθz(t+1)=cosθz(t)+λ(t)p2
sinθz(t+1)=sinθz(t)+λ(t)p3
txbias(t+1)=txbias(t)+λ(t)p4
tybias(t+1)=tybias(t)+λ(t)p5
如本领域中已知的,例如在Numerical Recipes inC:The Artof ScientificComputing(2nd ed.),Press,et al.,1992,Cambridge University Press,New York,NY,USA当中,关于一个点的线搜索首先使用下降方向,目标函数沿着该方向将减小,然后计算决定在那个方向移动多远的步进尺寸。步进尺寸代表最小化或者总体上减小目标函数期望的量的、离起点的距离。在上述用于外在照相机校准的一个示例目标函数[E]由公式58提供:
线搜索技术的目标是找出步进尺寸λ,使得[E]相对于前一个值减小足够的量。如随后所描述的,减小量的“足够性”是通过用于特定线搜索策略的接受条件定义的。一般而言,线搜索首先利用全牛顿步进(即,λ=1)基于[E]计算一个值,并且确定是否满足接受条件。如果满足,则线搜索完成。如果不满足,则在每次后续的迭代中,线搜索通过使用较小的λ值沿着在牛顿方向延伸的线回溯。这个过程可以用越来越小的λ值重复,直到满足接受条件。
各种不同的线搜索技术都可以使用,诸如像内插线搜索、二等分线搜索、试位法(Regula-Falsi)线搜索、割线线搜索,等等。以下更完整地解释一种示例线搜索技术,Armijo Rule线搜索。在这个例子中,λ(t)指为牛顿-拉弗森方法的当前迭代计算的最终步进尺寸。但是,线搜索方法本身也是迭代的并且索引符号“n”指线搜索的当前迭代。
如以上所提到的,线搜索首先基于目标函数[E]计算一个值。在牛顿-拉弗森方法的特定迭代,函数[E]可以利用当前的迭代值和当前的牛顿步进但是利用用于步进尺寸λ的不同测试值来计算。因而,对于迭代t,目标函数[E]可以被认为是依赖于步进尺寸λ的值的函数。特别地,在成像照相机130的这种特定配置中,由牛顿-拉弗森方法从公式56B计算出的迭代值连同牛顿步进[P]一起可以用于定义公式56C:
[V(n+1)]=[V(n)]+λ(n)[P]
其中并且
公式56C揭示了用于确定[F](并且因此也确定[E])的值[V(n)]如何基于所选的特定步进尺寸λ(n)而变。特别地,在公式56C中,用于[V(n)]的值对应于用于牛顿-拉弗森方法的当前迭代的迭代值,而[P]是从牛顿-拉弗森方法的当前迭代开始的牛顿步进。因此,对于线搜索的特定迭代n,用于步进尺寸λ(n)的变化的值被测试,这导致在为[E]计算值时所使用的不同的[V(n+1)]值。因而,用于牛顿-拉弗森方法的特定迭代的线搜索函数G(λ)可以根据下式定义:
G(λ)=[E]
其中G(λ)表示G是步进尺寸λ的函数,而[E]表示用于牛顿-拉弗森方法的迭代t的目标函数[E]的值。
G(λ)的一阶近似由公式56D给出:
利用全牛顿步进,线搜索利用n=1和λ(1)=1开始。线搜索迭代地确定是否满足接受条件:如果满足,则λ(n)被认为是可接受的步进尺寸并且在公式56B中用作λ(t)。但是,如果该不等式失败,则根据下式减小步进尺寸:
并且线搜索利用新的迭代继续。公式56D中用于ε的值可以任何选择成在0和1之间,诸如像ε=0.5。
因而,前面关于公式56A所述的牛顿-拉弗森方法迭代过程可以对每次迭代t修改,以便如前面所描述过的,根据下式帮助通过首先为公式55B计算解答来确保收敛:
但是,在使用这些值更新用于用在下一次迭代(t+1)中使用的cosθec,sinθec,cosθz,sinθz,txbias和tybias的值之前,它们利用刚描述过的技术进行调整。特别地,用于[P]的值可以潜在地根据公式57来限制:
以产生受限的偏移量值:向量[P’]被认为是规定用于牛顿-拉弗森方法的当前迭代的全牛顿步进和牛顿方向。此外,利用这些值,对当前迭代t,利用函数[E]的线搜索可以执行,以便计算在更新cosθec,sinθec,cosθz,sinθz,txbias和tybias的值时要使用的步进尺寸λ(t)。因而,用于公式56B的类似公式由公式56E提供:
cosθec(t+1)′=cosθec(t)+λ(t)p0′
sinθec(t+1)′=sinθec(t)+λ(t)p1′
cosθz(t+1)′=cosθz(t)+λ(t)p2′
sinθz(t+1)′=sinθz(t)+λ(t)p3′
txbias(t+1)′=txbias(t)+λ(t)p4′
tybias(t+1)′=tybias(t)+λ(t)p5′
就是这些用于cosθec′,sinθec′,cosθz′,sinθz′,t′xbias和tybias′的新值要在用于外在照相机校准的过程的下一次迭代中使用。
校准成像照相机130的第三种配置涉及全旋转矩阵,该矩阵包括用于θx仰角、θy螺旋角、θz偏转角以及txbias和tybias的非零值。类似于公式30F,可以定义以下残差公式来处理用于每个潜在托盘对象的全旋转矩阵的元素。
公式59A:f1(k)=(akXw+bkYw+ckZw-fxtxbias)
f2(k)=(dkXw+ekYw+fkZw-fy(ty+tybias))
其中:ak=xkr20-fxr00-x0r20
bk=xkr21-fxr01-x0r21
ck=xkr22-fxr02-x0r22
dk=ykr20-fyr10-y0r20
ek=ykr21-fyr11-y0r21
fk=ykr22-fyr12-y0r22
附加的残差公式可以由公式59B提供:
ge=cos2θec+sin2θec-1
gp=cos2θy+sin2θy-1
gd=cos2θz+sin2θz-1
其中θx=θec+θef。
利用这些残差公式产生与公式52和53类似的矩阵。例如:
因此,对用于执行外在照相机校准的这种当前配置,与公式49B类似的公式由公式 60A提供:
这个公式可以被操纵,以形成公式60B:
因此,公式60B揭示了多个托盘的相应观察以及用于cosθec,sinθec,cosθy,sinθy,cosθz,sinθz,txbias和tybias的相应估计可用于为向量值提供最小二乘法解答。这个向量值可用于根据公式61A迭代地更新用于cosθec,sinθec,cosθy,sinθy,cosθz,sinθz,txbias和tybias的相应估计:
cosθec(t+1)=cosθec(t)+p0
sinθec(t+1)=sinθec(t)+p1
cosθy(t+1)=cosθy(t)+p2
sinθy(t+1)=sinθy(t)+p3
cosθz(t+1)=cosθz(t)+p4
sinθz(t+1)=sinθz(t)+p5
txbias(t+1)=txbias(t)+p6
tybias(t+1)=tybias(t)+p7
然后,用于cosθec,sinθec,cosθy,sinθy,cosθz,sinθz,txbias和tybias的更新后的值可以在公式60B中用于找到的新值。这个迭代过程可以重复,直到为计算出的每个值都小于预定的阈值。例如,这个阈值可以是10-6。一旦迭代过程完成,用于cosθec,sinθec,cosθy,sinθy,cosθz,sinθz,txbias和tybias中每一个的新值就已经计算出来了,并且照相机对仰角的贡献θec可以从确定,螺旋角θy可以从确定,而偏转角θz可以从确定。此外,前面所述用于避免发散的技术也可以应用到用于执行外在照相机校准的这种特定配置。
虽然上述公开内容讨论了说明性方面和/或实施例,但是应当指出,在不背离如由所附权利要求定义的所述各方面和/或实施例范围的情况下,在此可以进行各种改变和修改。例如,以上描述了用于分析图像帧以便识别、定位、打分和修剪潜在托盘对象及其相应的一些特征的多种二维图像分析技术。这些技术同等地适用于利用单照相机系统或双照相机系统捕捉到的图像帧。此外,虽然所述各方面和/或实施例的元素可能是以单数描述或阐述的,但是,除非明确地声明对单数的限制,否则复数也是考虑的。此外,除非另外声明,否则任何一个方面和/或实施例的全部或部分都可以在任何其它方面和/或实施例的全部或部分中使用。
Claims (33)
1.一种在由照相机获得的图像帧序列中跟踪评分的候选对象的方法,评分的候选对象包括与前一图像帧关联的一组现有评分的候选对象以及与下一图像帧关联的一组新评分的候选对象,其中每个评分的候选对象具有相应合成对象得分,所述相应合成对象得分表示评分的候选对象对应于在评分的候选对象的关联图像帧中的实际托盘结构的可能性,该方法包括:
由计算机确定在下一图像帧中每个新评分的候选对象的相应位置;及
分析新评分的候选对象,其中所述分析包括:
对于每个特定的现有评分的候选对象:
由计算机识别该特定的现有评分的候选对象在前一图像帧中的相应第一位置,
由计算机估计在下一图像帧中的相应第二位置,其中相应第二位置是基于前一图像帧和下一图像帧的获得之间照相机的移动估计的,
由计算机计算相应预测窗口,其中相应预测窗口定义在下一图像帧中在相应第二位置附近的一组像素位置,及
对于在相应预测窗口中具有相应位置的任何新评分的候选对象,试验性地匹配该新评分的候选对象与该特定的现有评分的候选对象。
2.如权利要求1所述的方法,其中计算机维护被跟踪的现有评分的候选对象的列表。
3.如权利要求2所述的方法,其中所述分析包括:
把其相应位置不在用于任何现有评分的候选对象的相应预测窗口内的任何新评分的候选对象添加到被跟踪的评分的候选对象的现有列表。
4.如权利要求1所述的方法,其中所述分析包括:
对于试验性地与第一现有评分的候选对象和第二现有评分的候选对象都匹配的每个新评分的候选对象:
计算第一值,该第一值包括该新评分的候选对象的相应合成对象得分与第一现有评分的候选对象的相应合成对象得分之差的绝对值;
计算第二值,该第二值包括该新评分的候选对象的相应合成对象得分与第二现有评分的候选对象的相应合成对象得分之差的绝对值;
如果第一值小于或等于第二值,则维护第一现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第二现有评分的候选对象忽略该新评分的候选对象;及
如果第二值小于第一值,则维护第二现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第一现有评分的候选对象忽略该新评分的候选对象。
5.如权利要求1所述的方法,其中所述分析包括:
对于试验性地与第一新评分的候选对象和第二新评分的候选对象都匹配的每个现有评分的候选对象:
计算第一值,该第一值包括该现有评分的候选对象的相应合成对象得分与第一新评分的候选对象的相应合成对象得分之差的绝对值;
计算第二值,该第二值包括该现有评分的候选对象的相应合成对象得分与第二新评分的候选对象的相应合成对象得分之差的绝对值;
如果第一值小于或等于第二值,则维护该现有评分的候选对象与第一新评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第二新评分的候选对象;及
如果第二值小于第一值,则维护第二新评分的候选对象与该现有评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第一新评分的候选对象。
6.如权利要求2所述的方法,其中所述分析包括:
从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象,其中不匹配的现有评分的候选对象没有匹配的新评分的候选对象。
7.如权利要求6所述的方法,其中图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:
当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,及
当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
8.如权利要求7所述的方法,其中从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象包括:
对于序列中紧接着在前一图像帧前面的图像帧子集中的每个图像帧,确定当该子集的该图像帧是序列中的当前前一个图像时,不匹配的现有评分的候选对象是否也不匹配;
如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中也不匹配,则删除该不匹配的现有评分的候选对象;及
如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中不是不匹配,则在被跟踪的评分的候选对象的列表中维护该不匹配的现有评分的候选对象。
9.如权利要求8所述的方法,其中图像帧子集包括3个图像帧。
10.如权利要求2所述的方法,其中图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:
当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,及
当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
11.如权利要求10所述的方法,还包括:
获得相对于当前下一个图像帧的新后继图像帧;
把当前下一个图像帧的角色改变成当前前一个图像帧的角色;及
基于所述分析更新被跟踪的评分的候选对象的列表。
12.一种在由计算机获得的图像帧序列中跟踪评分的候选对象的系统,评分的候选对象包括与前一图像帧关联的一组现有的评分的候选对象以及与下一图像帧关联的一组新评分的候选对象,其中每个评分的候选对象具有相应合成对象得分,所述相应合成对象得分表示评分的候选对象对应于在评分的候选对象的关联图像帧中的实际托盘结构的可能性,该系统包括:
处理器,配置为执行可访问存储器中的指令;
对象定位部件,配置为确定在下一图像帧中每个新评分的候选对象的相应位置;及
分析器部件,配置为对新评分的候选对象执行分析,其中所述分析包括:
对于每个特定的现有评分的候选对象:
识别该特定的现有评分的候选对象在前一图像帧中的相应第一位置,
估计在下一图像帧中的相应第二位置,其中相应第二位置是基于前一图像帧和下一图像帧的获得之间照相机的移动估计的,
计算相应预测窗口,其中相应预测窗口定义在下一图像帧中在相应第二位置附近的一组像素位置,及
对于在相应预测窗口中具有相应位置的任何新评分的候选对象,试验性地匹配该新评分的候选对象与该特定的现有评分的候选对象。
13.如权利要求12所述的系统,还包括:
第一存储器设备,存储被跟踪的现有评分的候选对象的列表。
14.如权利要求13所述的系统,其中所述分析还包括:
把其相应位置不在用于任何现有评分的候选对象的相应预测窗口内的任何新评分的候选对象添加到被跟踪的评分的候选对象的现有列表。
15.如权利要求12所述的系统,其中所述分析还包括:
对于试验性地与第一现有评分的候选对象和第二现有评分的候选对象都匹配的每个新评分的候选对象:
计算第一值,该第一值包括该新评分的候选对象的相应合成对象得分与第一现有评分的候选对象的相应合成对象得分之差的绝对值;
计算第二值,该第二值包括该新评分的候选对象的相应合成对象得分与第二现有评分的候选对象的相应合成对象得分之差的绝对值;
如果第一值小于或等于第二值,则维护第一现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第二现有评分的候选对象忽略该新评分的候选对象;及
如果第二值小于第一值,则维护第二现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第一现有评分的候选对象忽略该新评分的候选对象。
16.如权利要求12所述的系统,其中所述分析还包括:
对于试验性地与第一新评分的候选对象和第二新评分的候选对象都匹配的每个现有评分的候选对象:
计算第一值,该第一值包括该现有评分的候选对象的相应合成对象得分与第一新评分的候选对象的相应合成对象得分之差的绝对值;
计算第二值,该第二值包括该现有评分的候选对象的相应合成对象得分与第二新评分的候选对象的相应合成对象得分之差的绝对值;
如果第一值小于或等于第二值,则维护该现有评分的候选对象与第一新评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第二新评分的候选对象;及
如果第二值小于第一值,则维护第二新评分的候选对象与该现有评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第一新评分的候选对象。
17.如权利要求13所述的系统,还包括:
删除部件,配置为从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象,其中不匹配的现有评分的候选对象没有匹配的新评分的候选对象。
18.如权利要求17所述的系统,其中图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:
当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,及
当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
19.如权利要求18所述的系统,其中删除部件配置为根据以下从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象:
对于序列中紧接着在前一图像帧前面的图像帧子集中的每个图像帧,确定当该子集的该图像帧是序列中的当前前一个图像时,不匹配的现有评分的候选对象是否也不匹配;
如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中也不匹配,则删除该不匹配的现有评分的候选对象;及
如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中不是不匹配,则在被跟踪的评分的候选对象的列表中维护该不匹配的现有评分的候选对象。
20.如权利要求19所述的系统,其中图像帧子集包括3个图像帧。
21.如权利要求13所述的系统,其中图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:
当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,及
当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
22.如权利要求21所述的系统,还包括:
图像获得部件,配置为获得相对于当前下一个图像帧的新后继图像帧;
图像更新部件,配置为把当前下一个图像帧的角色改变成当前前一个图像帧的角色;及
对象更新部件,配置为基于所述分析更新被跟踪的评分的候选对象的列表。
23.一种在由照相机获得的图像帧序列中跟踪评分的候选对象的设备,评分的候选对象包括与前一图像帧关联的一组现有的评分的候选对象以及与下一图像帧关联的一组新评分的候选对象,其中每个评分的候选对象具有相应合成对象得分,所述相应合成对象得分表示评分的候选对象对应于在评分的候选对象的关联图像帧中的实际托盘结构的可能性,该设备包括:
用于确定在下一图像帧中每个新评分的候选对象的相应位置的装置;及
用于对新评分的候选对象执行分析的装置,其中所述分析包括:
对于每个特定的现有评分的候选对象:
识别该特定的现有评分的候选对象在前一图像帧中的相应第一位置,
估计在下一图像帧中的相应第二位置,其中相应第二位置是基于前一图像帧和下一图像帧的获得之间照相机的移动估计的,
计算相应预测窗口,其中相应预测窗口定义在下一图像帧中在相应第二位置附近的一组像素位置,及
对于在相应预测窗口中具有相应位置的任何新评分的候选对象,试验性地匹配该新评分的候选对象与该特定的现有评分的候选对象。
24.如权利要求23所述的设备,还包括:
用于维护被跟踪的现有评分的候选对象的列表的装置。
25.如权利要求24所述的设备,还包括:
用于把其相应位置不在用于任何现有评分的候选对象的相应预测窗口内的任何新评分的候选对象添加到被跟踪的评分的候选对象的现有列表的装置。
26.如权利要求23所述的设备,其中所述分析还包括:
对于试验性地与第一现有评分的候选对象和第二现有评分的候选对象都匹配的每个新评分的候选对象:
计算第一值,该第一值包括该新评分的候选对象的相应合成对象得分与第一现有评分的候选对象的相应合成对象得分之差的绝对值;
计算第二值,该第二值包括该新评分的候选对象的相应合成对象得分与第二现有评分的候选对象的相应合成对象得分之差的绝对值;
如果第一值小于或等于第二值,则维护第一现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第二现有评分的候选对象忽略该新评分的候选对象;及
如果第二值小于第一值,则维护第二现有评分的候选对象与该新评分的候选对象之间的试验性匹配,并且关于第一现有评分的候选对象忽略该新评分的候选对象。
27.如权利要求23所述的设备,其中所述分析还包括:
对于试验性地与第一新评分的候选对象和第二新评分的候选对象都匹配的每个现有评分的候选对象:
计算第一值,该第一值包括该现有评分的候选对象的相应合成对象得分与第一新评分的候选对象的相应合成对象得分之差的绝对值;
计算第二值,该第二值包括该现有评分的候选对象的相应合成对象得分与第二新评分的候选对象的相应合成对象得分之差的绝对值;
如果第一值小于或等于第二值,则维护该现有评分的候选对象与第一新评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第二新评分的候选对象;及
如果第二值小于第一值,则维护第二新评分的候选对象与该现有评分的候选对象之间的试验性匹配,并且关于该现有评分的候选对象忽略第一新评分的候选对象。
28.如权利要求24所述的设备,还包括:
用于从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象的装置,其中不匹配的现有评分的候选对象没有匹配的新评分的候选对象。
29.如权利要求28所述的设备,其中图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:
当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,及
当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
30.如权利要求29所述的设备,还包括:
用于根据以下操作从被跟踪的评分的候选对象的列表中删除任何不匹配的现有评分的候选对象的装置:
对于序列中紧接着在前一图像帧前面的图像帧子集中的每个图像帧,确定当该子集的该图像帧是序列中的当前前一个图像时,不匹配的现有评分的候选对象是否也不匹配;
如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中也不匹配,则删除该不匹配的现有评分的候选对象;及
如果不匹配的现有评分的候选对象在该图像帧子集的每个图像帧中不是不匹配,则在被跟踪的评分的候选对象的列表中维护该不匹配的现有评分的候选对象。
31.如权利要求30所述的设备,其中图像帧子集包括3个图像帧。
32.如权利要求23所述的设备,其中图像帧序列包括按在第一个图像帧开始并且在最后一个图像帧结束的顺序次序的多个图像帧,其中第一个图像帧的获得在最后一个图像帧的获得之前发生,由此,除第一个图像帧和最后一个图像帧之外,每个特定的图像帧都具有双重角色:
当该特定的图像帧在序列中其紧接着的前驱图像帧的获得之后被获得时,作为序列中的当前下一个图像帧,及
当在该特定图像帧的获得之后序列中紧接着的后继图像帧被获得时,作为序列中的当前前一个图像帧。
33.如权利要求32所述的设备,还包括:
用于获得相对于当前下一个图像帧的新后继图像帧的装置;
用于把当前下一个图像帧的角色改变成当前前一个图像帧的角色的装置;及
用于基于所述分析更新被跟踪的评分的候选对象的列表的装置。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161548776P | 2011-10-19 | 2011-10-19 | |
US61/548,776 | 2011-10-19 | ||
US201161569596P | 2011-12-12 | 2011-12-12 | |
US61/569,596 | 2011-12-12 | ||
US201261709611P | 2012-10-04 | 2012-10-04 | |
US61/709,611 | 2012-10-04 | ||
PCT/US2012/060352 WO2013059153A1 (en) | 2011-10-19 | 2012-10-16 | Identifying, matching and tracking multiple objects in a sequence of images |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103889879A CN103889879A (zh) | 2014-06-25 |
CN103889879B true CN103889879B (zh) | 2017-03-22 |
Family
ID=47080867
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280051229.7A Expired - Fee Related CN104011772B (zh) | 2011-10-19 | 2012-10-16 | 基于识别和跟踪图像场景中的多个对象来控制车叉 |
CN201280051228.2A Expired - Fee Related CN103889878B (zh) | 2011-10-19 | 2012-10-16 | 选择图像场景中彼此对应于托盘的垂直范围内的对象 |
CN201280051242.2A Expired - Fee Related CN103889879B (zh) | 2011-10-19 | 2012-10-16 | 识别、匹配并跟踪图像序列中的多个对象 |
CN201280051235.2A Expired - Fee Related CN103875021B (zh) | 2011-10-19 | 2012-10-16 | 识别并选择图像场景中可能对应于托盘的对象 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280051229.7A Expired - Fee Related CN104011772B (zh) | 2011-10-19 | 2012-10-16 | 基于识别和跟踪图像场景中的多个对象来控制车叉 |
CN201280051228.2A Expired - Fee Related CN103889878B (zh) | 2011-10-19 | 2012-10-16 | 选择图像场景中彼此对应于托盘的垂直范围内的对象 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280051235.2A Expired - Fee Related CN103875021B (zh) | 2011-10-19 | 2012-10-16 | 识别并选择图像场景中可能对应于托盘的对象 |
Country Status (4)
Country | Link |
---|---|
US (11) | US9025827B2 (zh) |
EP (4) | EP2768758B1 (zh) |
CN (4) | CN104011772B (zh) |
WO (11) | WO2013059153A1 (zh) |
Families Citing this family (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8908995B2 (en) | 2009-01-12 | 2014-12-09 | Intermec Ip Corp. | Semi-automatic dimensioning with imager on a portable device |
WO2012054036A1 (en) * | 2010-10-21 | 2012-04-26 | Hewlett-Packard Development Company, L.P. | Method and system for generating a document having a layered void pantograph |
US9146559B2 (en) * | 2011-03-18 | 2015-09-29 | The Raymond Corporation | System and method for gathering video data related to operation of an autonomous industrial vehicle |
WO2012141601A2 (en) | 2011-04-11 | 2012-10-18 | Crown Equipment Limited | Method and apparatus for efficient scheduling for multiple automated non-holonomic vehicles using a coordinated path planner |
US8909244B2 (en) | 2011-06-28 | 2014-12-09 | Qualcomm Incorporated | Distributed positioning mechanism for wireless communication devices |
US10209771B2 (en) * | 2016-09-30 | 2019-02-19 | Sony Interactive Entertainment Inc. | Predictive RF beamforming for head mounted display |
US20140058634A1 (en) | 2012-08-24 | 2014-02-27 | Crown Equipment Limited | Method and apparatus for using unique landmarks to locate industrial vehicles at start-up |
US9056754B2 (en) * | 2011-09-07 | 2015-06-16 | Crown Equipment Limited | Method and apparatus for using pre-positioned objects to localize an industrial vehicle |
US8521181B2 (en) | 2011-09-19 | 2013-08-27 | Qualcomm Incorporated | Time of arrival based positioning system |
US8755304B2 (en) * | 2011-10-21 | 2014-06-17 | Qualcomm Incorporated | Time of arrival based positioning for wireless communication systems |
JP5822664B2 (ja) | 2011-11-11 | 2015-11-24 | 株式会社Pfu | 画像処理装置、直線検出方法及びコンピュータプログラム |
JP5854774B2 (ja) | 2011-11-11 | 2016-02-09 | 株式会社Pfu | 画像処理装置、直線検出方法及びコンピュータプログラム |
JP5871571B2 (ja) * | 2011-11-11 | 2016-03-01 | 株式会社Pfu | 画像処理装置、矩形検出方法及びコンピュータプログラム |
US8824325B2 (en) | 2011-12-08 | 2014-09-02 | Qualcomm Incorporated | Positioning technique for wireless communication system |
KR101703177B1 (ko) * | 2011-12-14 | 2017-02-07 | 한국전자통신연구원 | 차량 위치 인식 장치 및 방법 |
US9779546B2 (en) | 2012-05-04 | 2017-10-03 | Intermec Ip Corp. | Volume dimensioning systems and methods |
US10007858B2 (en) | 2012-05-15 | 2018-06-26 | Honeywell International Inc. | Terminals and methods for dimensioning objects |
US10321127B2 (en) | 2012-08-20 | 2019-06-11 | Intermec Ip Corp. | Volume dimensioning system calibration systems and methods |
US9939259B2 (en) | 2012-10-04 | 2018-04-10 | Hand Held Products, Inc. | Measuring object dimensions using mobile computer |
US20140104413A1 (en) | 2012-10-16 | 2014-04-17 | Hand Held Products, Inc. | Integrated dimensioning and weighing system |
US9080856B2 (en) | 2013-03-13 | 2015-07-14 | Intermec Ip Corp. | Systems and methods for enhancing dimensioning, for example volume dimensioning |
ITPI20130036A1 (it) * | 2013-05-06 | 2014-11-07 | Newtecnik S R L | Un dispositivo di pesatura applicabile magneticamente alla forca di un sollevatore con collegamento dati wireless |
US10228452B2 (en) | 2013-06-07 | 2019-03-12 | Hand Held Products, Inc. | Method of error correction for 3D imaging device |
DE102013109055A1 (de) | 2013-08-21 | 2015-02-26 | Turbodynamics Gmbh | Ausrichteinrichtung und Handhabungsvorrichtung |
US9761033B2 (en) | 2013-10-18 | 2017-09-12 | Apple Inc. | Object matching in a presentation application using a matching function to define match categories |
KR102099914B1 (ko) * | 2013-10-29 | 2020-05-15 | 삼성전자주식회사 | 영상 처리 장치 및 영상 처리 방법 |
US10464740B2 (en) | 2014-01-15 | 2019-11-05 | Cargo Cube Systems, Llc | Modular shipping apparatus and system |
US9499334B2 (en) | 2014-01-15 | 2016-11-22 | Cargo Cube Systems, Llc | Modular shipping apparatus and system |
US9708119B2 (en) | 2014-01-15 | 2017-07-18 | Cargo Cube Systems, Llc | Modular shipping apparatus and system |
US9868589B2 (en) | 2014-01-15 | 2018-01-16 | Cargo Cube Systems, Llc | Modular transportation systems, devices and methods |
US9908723B2 (en) | 2014-01-15 | 2018-03-06 | Cargo Cuge Systems, LLC | Modular transportation systems, devices and methods |
JPWO2015162910A1 (ja) * | 2014-04-24 | 2017-04-13 | パナソニックIpマネジメント株式会社 | 車載用表示装置、車載用表示装置の制御方法、プログラム |
JP2015225450A (ja) * | 2014-05-27 | 2015-12-14 | 村田機械株式会社 | 自律走行車、及び自律走行車における物体認識方法 |
WO2015199553A2 (en) * | 2014-06-27 | 2015-12-30 | Crown Equipment Limited | Lost vehicle recovery utilizing associated feature pairs |
US9823059B2 (en) | 2014-08-06 | 2017-11-21 | Hand Held Products, Inc. | Dimensioning system with guided alignment |
WO2016040928A1 (en) | 2014-09-14 | 2016-03-17 | Crown Equipment Corporation | Dynamic industrial vehicle measure |
EP3000771B1 (en) * | 2014-09-25 | 2017-11-22 | Toyota Material Handling Manufacturing Sweden AB | Fork-lift truck |
CN105513037B (zh) * | 2014-09-30 | 2018-06-22 | 展讯通信(上海)有限公司 | 角点检测方法及装置 |
US10775165B2 (en) | 2014-10-10 | 2020-09-15 | Hand Held Products, Inc. | Methods for improving the accuracy of dimensioning-system measurements |
US9779276B2 (en) | 2014-10-10 | 2017-10-03 | Hand Held Products, Inc. | Depth sensor based auto-focus system for an indicia scanner |
US10810715B2 (en) | 2014-10-10 | 2020-10-20 | Hand Held Products, Inc | System and method for picking validation |
US9762793B2 (en) | 2014-10-21 | 2017-09-12 | Hand Held Products, Inc. | System and method for dimensioning |
US10060729B2 (en) | 2014-10-21 | 2018-08-28 | Hand Held Products, Inc. | Handheld dimensioner with data-quality indication |
US9752864B2 (en) | 2014-10-21 | 2017-09-05 | Hand Held Products, Inc. | Handheld dimensioning system with feedback |
US9897434B2 (en) | 2014-10-21 | 2018-02-20 | Hand Held Products, Inc. | Handheld dimensioning system with measurement-conformance feedback |
EP3020868B1 (en) * | 2014-11-14 | 2020-11-04 | Caterpillar Inc. | Machine of a kind comprising a body and an implement movable relative to the body with a system for assisting a user of the machine |
DE102014116780A1 (de) * | 2014-11-17 | 2016-05-19 | Still Gmbh | Verfahren zur Hubhöhenvorwahl bei einem Flurförderzeug |
CN105989588B (zh) * | 2015-02-05 | 2021-02-09 | 上海隶首信息技术有限公司 | 一种异形材料切割图像校正方法及系统 |
US9786101B2 (en) | 2015-05-19 | 2017-10-10 | Hand Held Products, Inc. | Evaluating image values |
WO2016191181A1 (en) * | 2015-05-26 | 2016-12-01 | Crown Equipment Corporation | Systems and methods for image capture device calibration for a materials handling vehicle |
US10066982B2 (en) | 2015-06-16 | 2018-09-04 | Hand Held Products, Inc. | Calibrating a volume dimensioner |
US20160377414A1 (en) | 2015-06-23 | 2016-12-29 | Hand Held Products, Inc. | Optical pattern projector |
US9835486B2 (en) | 2015-07-07 | 2017-12-05 | Hand Held Products, Inc. | Mobile dimensioner apparatus for use in commerce |
EP3396313B1 (en) | 2015-07-15 | 2020-10-21 | Hand Held Products, Inc. | Mobile dimensioning method and device with dynamic accuracy compatible with nist standard |
US10094650B2 (en) | 2015-07-16 | 2018-10-09 | Hand Held Products, Inc. | Dimensioning and imaging items |
US20170017301A1 (en) | 2015-07-16 | 2017-01-19 | Hand Held Products, Inc. | Adjusting dimensioning results using augmented reality |
BR112017025504A2 (pt) | 2015-07-17 | 2018-08-07 | Crown Equipment Corporation | dispositivo de processamento tendo uma interface gráfica de usuário. |
KR20180049024A (ko) | 2015-09-04 | 2018-05-10 | 크라운 이큅먼트 코포레이션 | 특징부-기반 위치파악 및 네비게이션을 이용하는 산업용 차량 |
CN105129678A (zh) * | 2015-09-11 | 2015-12-09 | 苏州市新瑞奇节电科技有限公司 | 一种叉车监控系统 |
WO2017071143A1 (en) | 2015-10-30 | 2017-05-04 | SZ DJI Technology Co., Ltd. | Systems and methods for uav path planning and control |
EP3353706A4 (en) * | 2015-09-15 | 2019-05-08 | SZ DJI Technology Co., Ltd. | SYSTEM AND METHOD FOR MONITORING UNIFORM TARGET TRACKING |
US10249030B2 (en) | 2015-10-30 | 2019-04-02 | Hand Held Products, Inc. | Image transformation for indicia reading |
US10225544B2 (en) | 2015-11-19 | 2019-03-05 | Hand Held Products, Inc. | High resolution dot pattern |
US10080539B2 (en) * | 2015-11-25 | 2018-09-25 | General Electric Company | Systems and methods for X-ray image pasting |
US10025314B2 (en) * | 2016-01-27 | 2018-07-17 | Hand Held Products, Inc. | Vehicle positioning and object avoidance |
US11423651B2 (en) * | 2016-02-09 | 2022-08-23 | Hrl Laboratories, Llc | System and method for the fusion of bottom-up whole-image features and top-down enttiy classification for accurate image/video scene classification |
JP6721998B2 (ja) * | 2016-02-23 | 2020-07-15 | 村田機械株式会社 | 物体状態特定方法、物体状態特定装置、および、搬送車 |
CN105776077B (zh) * | 2016-03-28 | 2017-12-19 | 广州飞锐机器人科技有限公司 | 一种使用智能叉车识别卡板叉孔的方法及装置 |
US9990535B2 (en) * | 2016-04-27 | 2018-06-05 | Crown Equipment Corporation | Pallet detection using units of physical length |
FR3051456B1 (fr) * | 2016-05-18 | 2020-11-06 | Haulotte Group | Systeme d'aide a l'evaluation et a la gestion d'un danger sur une nacelle elevatrice |
US10339352B2 (en) | 2016-06-03 | 2019-07-02 | Hand Held Products, Inc. | Wearable metrological apparatus |
US9940721B2 (en) | 2016-06-10 | 2018-04-10 | Hand Held Products, Inc. | Scene change detection in a dimensioner |
US10163216B2 (en) | 2016-06-15 | 2018-12-25 | Hand Held Products, Inc. | Automatic mode switching in a volume dimensioner |
US9718661B1 (en) * | 2016-07-06 | 2017-08-01 | Hyster-Yale Group, Inc. | Automated load handling for industrial vehicle |
US10435284B1 (en) * | 2016-07-22 | 2019-10-08 | Fozi Androus | Load laser guidance system for forklift |
CN106125738A (zh) * | 2016-08-26 | 2016-11-16 | 北京航空航天大学 | 一种基于agv的货架识别装置及方法 |
CN106219453A (zh) * | 2016-09-09 | 2016-12-14 | 安徽工程大学 | 一种可伸缩超长行程的堆垛机货叉装置 |
BR112019006440A2 (pt) | 2016-11-22 | 2019-06-25 | Crown Equip Corp | dispositivo de exibição e processamento para um veículo industrial, e, veículo industrial |
US10909708B2 (en) | 2016-12-09 | 2021-02-02 | Hand Held Products, Inc. | Calibrating a dimensioner using ratios of measurable parameters of optic ally-perceptible geometric elements |
DE102016224766A1 (de) * | 2016-12-13 | 2018-06-14 | Robert Bosch Gmbh | Verfahren zur Kalibrierung von Sensoren an einer mobilen Plattform |
US10255507B2 (en) | 2016-12-19 | 2019-04-09 | Canon Kabushiki Kaisha | Detection of an object in a distorted image |
CN106874845B (zh) * | 2016-12-30 | 2021-03-26 | 东软集团股份有限公司 | 图像识别的方法和装置 |
CN106672859B (zh) * | 2017-01-05 | 2018-11-09 | 深圳市有光图像科技有限公司 | 一种基于叉车视觉识别托盘的方法及叉车 |
US11047672B2 (en) | 2017-03-28 | 2021-06-29 | Hand Held Products, Inc. | System for optically dimensioning |
MX2019012059A (es) | 2017-04-07 | 2020-07-20 | Bxb Digital Pty Ltd | Sistemas y métodos para el seguimiento de promociones. |
US10671881B2 (en) | 2017-04-11 | 2020-06-02 | Microsoft Technology Licensing, Llc | Image processing system with discriminative control |
US10328578B2 (en) | 2017-04-21 | 2019-06-25 | X Development Llc | Methods and systems for detecting, recognizing, and localizing pallets |
US10832208B2 (en) | 2017-05-02 | 2020-11-10 | BXB Digital Pty Limited | Systems and methods for facility matching and localization |
US10824904B2 (en) | 2017-05-02 | 2020-11-03 | BXB Digital Pty Limited | Systems and methods for pallet identification |
WO2018204912A1 (en) | 2017-05-05 | 2018-11-08 | BXB Digital Pty Limited | Pallet with tracking device |
CN107218927B (zh) * | 2017-05-16 | 2019-08-09 | 上海交通大学 | 一种基于tof相机的货物托盘检测系统和方法 |
CN110770760B (zh) * | 2017-05-19 | 2024-01-12 | 渊慧科技有限公司 | 视觉交互网络系统及其方法、训练方法和计算机存储介质 |
CN109215044B (zh) * | 2017-06-30 | 2020-12-15 | 京东方科技集团股份有限公司 | 图像处理方法和系统、存储介质和移动系统 |
CA3073606A1 (en) | 2017-08-21 | 2019-02-28 | BXB Digital Pty Limited | Systems and methods for pallet tracking using hub and spoke architecture |
US10839257B2 (en) | 2017-08-30 | 2020-11-17 | Qualcomm Incorporated | Prioritizing objects for object recognition |
JP6783732B2 (ja) * | 2017-09-15 | 2020-11-11 | 株式会社東芝 | 画像処理装置および画像処理方法 |
US10733739B2 (en) * | 2017-09-29 | 2020-08-04 | Nanjing Avatarmind Robot Technology Co., Ltd. | Method and system for displaying target image based on robot |
WO2019073920A1 (ja) * | 2017-10-12 | 2019-04-18 | ソニー株式会社 | 情報処理装置、移動装置、および方法、並びにプログラム |
AU2018353840B2 (en) * | 2017-10-20 | 2021-09-16 | BXB Digital Pty Limited | Systems and methods for tracking goods carriers |
CN109754426B (zh) * | 2017-11-01 | 2021-04-23 | 虹软科技股份有限公司 | 一种用于摄像标定参数验证的方法、系统和装置 |
CN108182376B (zh) * | 2017-11-15 | 2020-12-08 | 浙江工业大学 | 一种基于车窗角点检测的车窗定位方法 |
EP3731177A4 (en) * | 2017-12-20 | 2020-12-09 | Fujitsu Limited | OBJECT INFORMATION GENERATION SYSTEM AND OBJECT INFORMATION GENERATION PROGRAM |
US10640347B2 (en) * | 2017-12-22 | 2020-05-05 | X Development Llc | Pallet tracking during engagement and disengagement |
US10657654B2 (en) * | 2017-12-28 | 2020-05-19 | Denso Ten Limited | Abnormality detection device and abnormality detection method |
US10839266B2 (en) * | 2018-03-30 | 2020-11-17 | Intel Corporation | Distributed object detection processing |
CN108502810B (zh) * | 2018-04-13 | 2020-11-24 | 深圳市有光图像科技有限公司 | 一种叉车识别托盘的方法及叉车 |
US10584962B2 (en) | 2018-05-01 | 2020-03-10 | Hand Held Products, Inc | System and method for validating physical-item security |
US20210077195A1 (en) * | 2018-05-16 | 2021-03-18 | University Of Maryland, College Park | Confidence-based robotically-assisted surgery system |
JP7427614B2 (ja) * | 2018-06-29 | 2024-02-05 | ズークス インコーポレイテッド | センサ較正 |
US10997736B2 (en) | 2018-08-10 | 2021-05-04 | Apple Inc. | Circuit for performing normalized cross correlation |
US11495028B2 (en) * | 2018-09-28 | 2022-11-08 | Intel Corporation | Obstacle analyzer, vehicle control system, and methods thereof |
US11488374B1 (en) * | 2018-09-28 | 2022-11-01 | Apple Inc. | Motion trajectory tracking for action detection |
CN111062836B (zh) * | 2018-10-16 | 2023-03-07 | 杭州海康威视数字技术股份有限公司 | 一种基于视频的评分方法、装置及电子设备 |
WO2020107327A1 (en) | 2018-11-29 | 2020-06-04 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for target identification in video |
US10816637B2 (en) | 2018-12-27 | 2020-10-27 | Chep Technology Pty Limited | Site matching for asset tracking |
CN109816588B (zh) * | 2018-12-29 | 2023-03-21 | 百度在线网络技术(北京)有限公司 | 行车轨迹线的记录方法、装置及设备 |
CN111436133B (zh) * | 2019-01-11 | 2023-07-14 | 华为技术有限公司 | 信道测量方法和装置 |
AU2020228607B2 (en) | 2019-02-25 | 2021-08-19 | BXB Digital Pty Limited | Smart physical closure in supply chain |
US11046519B2 (en) | 2019-02-25 | 2021-06-29 | Rehrig Pacific Company | Delivery system |
US10807846B1 (en) * | 2019-04-17 | 2020-10-20 | Richard Everett Vos, Jr. | Remotely adjustable automotive lift arm |
JP7162142B2 (ja) * | 2019-08-02 | 2022-10-27 | 日立Astemo株式会社 | エイミング装置、運転制御システム、及びセンサデータの補正量の計算方法 |
US11120294B1 (en) * | 2019-08-07 | 2021-09-14 | Matrox Electronic Systems Ltd. | Method and system for three-dimensional profiling of an object |
CN112419146B (zh) * | 2019-08-20 | 2023-12-29 | 武汉Tcl集团工业研究院有限公司 | 一种图像处理方法、装置及终端设备 |
CN110705689B (zh) * | 2019-09-11 | 2021-09-24 | 清华大学 | 可区分特征的持续学习方法及装置 |
CN111167731B (zh) * | 2019-10-23 | 2022-11-08 | 武汉库柏特科技有限公司 | 一种产品分拣方法、产品分拣系统和智能分拣机器人 |
CN110992392A (zh) * | 2019-11-20 | 2020-04-10 | 北京影谱科技股份有限公司 | 一种基于运动状态的关键帧选取方法及装置 |
FR3103941B1 (fr) | 2019-11-29 | 2022-06-03 | Balyo | Procede de determination de la position relative d’un prehenseur |
CN111091204B (zh) * | 2019-12-14 | 2023-07-18 | 树行科技(上海)有限公司 | 维护行为的智能监控方法、装置及计算机可读存储介质 |
US11465839B2 (en) | 2020-02-25 | 2022-10-11 | Crown Equipment Corporation | System comprising a multilevel warehouse racking system comprising tote transfer zones, materials handling vehicles, and transporters, and methods of use thereof |
US11465843B2 (en) | 2020-02-25 | 2022-10-11 | Crown Equipment Corporation | Materials handling vehicle and goods storage and retrieval system comprising mobile storage carts, transporters, and materials handling vehicles |
CN113311448A (zh) * | 2020-02-27 | 2021-08-27 | 郑州宇通客车股份有限公司 | 一种基于多特征信息的动态目标跟踪方法与装置 |
CN112364881B (zh) * | 2020-04-01 | 2022-06-28 | 武汉理工大学 | 一种进阶采样一致性图像匹配方法 |
CA3115442A1 (en) | 2020-04-20 | 2021-10-20 | Rehrig Pacific Company | Camera enabled portal |
JP7086148B2 (ja) * | 2020-08-31 | 2022-06-17 | 三菱ロジスネクスト株式会社 | パレット検知装置、フォークリフト、パレット検知方法、及びプログラム |
DE102020211892A1 (de) | 2020-09-23 | 2022-03-24 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zur Objekterkennung, Computerprogramm, Speichermedium, Objekterkennungseinrichtung und Überwachungsanordnung |
US20220194424A1 (en) * | 2020-12-22 | 2022-06-23 | Waymo Llc | Autonomous vehicle trajectory computed using box-based probabilistic overlap model |
CN112528932B (zh) * | 2020-12-22 | 2023-12-08 | 阿波罗智联(北京)科技有限公司 | 用于优化位置信息的方法、装置、路侧设备和云控平台 |
CN113284189B (zh) * | 2021-05-12 | 2024-07-19 | 深圳市格灵精睿视觉有限公司 | 畸变参数标定方法、装置、设备及存储介质 |
US11562555B2 (en) * | 2021-06-02 | 2023-01-24 | The Nielsen Company (Us), Llc | Methods, systems, articles of manufacture, and apparatus to extract shape features based on a structural angle template |
TWI775525B (zh) * | 2021-07-09 | 2022-08-21 | 群邁通訊股份有限公司 | 零部件識別方法及系統 |
CN113470001B (zh) * | 2021-07-22 | 2024-01-09 | 西北工业大学 | 一种用于红外图像的目标搜索方法 |
WO2023023366A1 (en) | 2021-08-19 | 2023-02-23 | Rehrig Pacific Company | Imaging system with unsupervised learning |
JP7559707B2 (ja) * | 2021-08-24 | 2024-10-02 | 株式会社豊田自動織機 | フォークリフト |
US12084330B2 (en) | 2021-08-27 | 2024-09-10 | Deere & Company | Work vehicle fork alignment system and method |
MX2022013771A (es) | 2021-11-01 | 2023-05-02 | Rehrig Pacific Co | Sistemas de entrega. |
CN114516605B (zh) * | 2021-12-25 | 2023-11-24 | 米亚斯物流设备(昆山)有限公司 | 一种超重载的伸缩货叉及其载荷计算方法 |
DE102022000342A1 (de) * | 2022-01-28 | 2023-08-03 | Kaup GmbH & Co. KG Gesellschaft für Maschinenbau | Vorrichtung zum Bewegen eines Gabelträgers, eine Verwendung und ein Verfahren |
US20230400858A1 (en) * | 2022-06-10 | 2023-12-14 | Autoguide, LLC | Identifying transport structures |
US11887338B2 (en) * | 2022-06-16 | 2024-01-30 | Motional Ad Llc | Maintaining calibration of an IBIS camera |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5208753A (en) * | 1991-03-28 | 1993-05-04 | Acuff Dallas W | Forklift alignment system |
US5995001A (en) * | 1997-07-09 | 1999-11-30 | Crown Equipment Corporation | Method and apparatus for providing operating information to an operator of a fork lift truck |
EP1413404A2 (en) * | 2002-10-25 | 2004-04-28 | Fanuc Ltd | Object conveying system and conveying method using two robots |
US7344037B1 (en) * | 2002-11-18 | 2008-03-18 | Mi-Jack Products, Inc. | Inventory storage and retrieval system and method with guidance for load-handling vehicle |
Family Cites Families (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3069654A (en) | 1960-03-25 | 1962-12-18 | Paul V C Hough | Method and means for recognizing complex patterns |
US3672470A (en) | 1969-11-26 | 1972-06-27 | Eaton Yale & Towne | Photoelectric control for load handling device |
US3854820A (en) | 1972-09-13 | 1974-12-17 | Clark Equipment Co | Light reference system for aiding operator positioning of load handling devices and the like |
US4122957A (en) | 1977-10-06 | 1978-10-31 | The Raymond Corporation | Lift truck having height indicating means |
SE7804927L (sv) | 1978-04-28 | 1979-10-29 | Volvo Ab | Anordning for att orientera exempelvis ett lyftdon i forhallande till en last |
US4224657A (en) | 1979-02-08 | 1980-09-23 | Cascade Corporation | Light assembly for positioning lift truck load-handling device |
US4547844A (en) | 1979-03-16 | 1985-10-15 | The Raymond Corporation | Shelf height selector |
US4331417A (en) | 1980-03-07 | 1982-05-25 | Rapitsan Division, Lear Siegler, Inc. | Vehicle alignment and method |
US4411577A (en) | 1980-03-07 | 1983-10-25 | Rapistan Division, Lear Siegler, Inc. | Vehicle sensor monitoring system |
US4490848A (en) | 1982-03-31 | 1984-12-25 | General Electric Company | Method and apparatus for sorting corner points in a visual image processing system |
US4564085A (en) | 1985-01-22 | 1986-01-14 | Towmotor Corporation | Controlling arrangement |
US4678329A (en) | 1985-10-18 | 1987-07-07 | Calspan Corporation | Automatically guided vehicle control system |
KR880700512A (ko) | 1985-10-18 | 1988-03-15 | 소나 루 홀트 | 자동유도차량 위치설정용 타게트 및 제어시스템 |
US4684247A (en) | 1985-10-18 | 1987-08-04 | Calspan Corporation | Target member for use in a positioning system |
US4679329A (en) | 1986-08-04 | 1987-07-14 | Goldsmith Wesley R | Combined primary and secondary sine bars |
JPH04298453A (ja) | 1991-03-26 | 1992-10-22 | Fuji Photo Film Co Ltd | シート状物のオーバーラップ形成方法および装置 |
DE4141925A1 (de) | 1991-12-19 | 1993-06-24 | Walter Ketterer | Vorrichtung zum aufnehmen von guetern und gabelzinke fuer eine solche vorrichtung |
US5318219A (en) | 1992-06-05 | 1994-06-07 | Four M Manufacturing Group Of Cpc, Inc. | Collapsible pallet mounted container |
US5749696A (en) | 1992-07-23 | 1998-05-12 | Scott Westlake | Height and tilt indicator for forklift truck |
US5300869A (en) | 1992-07-30 | 1994-04-05 | Iowa State University Research Foundation, Inc. | Nonholonomic camera space manipulation |
DE4405770A1 (de) | 1994-02-23 | 1995-08-31 | Joerg Heintz | Vorrichtung und Verfahren zum Aufnehmen und Absetzen von Lasten |
JP3163215B2 (ja) | 1994-03-07 | 2001-05-08 | 日本電信電話株式会社 | 直線抽出ハフ変換画像処理装置 |
JPH07257270A (ja) | 1994-03-22 | 1995-10-09 | Toyota Autom Loom Works Ltd | フォークリフト |
IT1275664B1 (it) | 1994-11-16 | 1997-10-17 | Consorzio Telerobot | Sistema per il controlllo e guida automatica di un gruppo elevatore a forche |
CA2144886A1 (en) | 1995-03-17 | 1996-09-18 | William J. Doherty | Video camera guidance system for forklifts |
US5586620A (en) | 1995-05-12 | 1996-12-24 | Crown Equipment Corporation | Remote viewing apparatus for fork lift trucks |
JP2986382B2 (ja) | 1995-07-19 | 1999-12-06 | 一夫 吉田 | フォークリフト |
DE19613386A1 (de) | 1996-04-03 | 1997-10-09 | Fiat Om Carrelli Elevatori | Flurförderzeug, das wahlweise manuell oder automatisch betreibbar ausgebildet ist |
JPH09278397A (ja) | 1996-04-10 | 1997-10-28 | Sumitomo Heavy Ind Ltd | 無人フォ−クリフトにおける多段棚への安定格納装置 |
US5920480A (en) | 1997-01-10 | 1999-07-06 | Nakamura; Kaoru | Method and apparatus for detecting pallet full load state in sheet metal machining line and method and apparatus for controlling sheet metal machining line and work identifying apparatus |
US6760061B1 (en) | 1997-04-14 | 2004-07-06 | Nestor Traffic Systems, Inc. | Traffic sensor |
US6052637A (en) * | 1997-06-09 | 2000-04-18 | Eaton Corporation | Clutch adjustment determination |
JPH10338496A (ja) * | 1997-06-11 | 1998-12-22 | Toyota Autom Loom Works Ltd | 産業車両の揺動制御装置及び前後重心位置推定装置 |
DE19814779A1 (de) | 1998-04-02 | 1999-10-07 | Vitronic Dr Ing Stein Bildvera | Verfahren und Vorrichtung zum Steuern eines beweglichen Gegenstandes |
JP3316842B2 (ja) * | 1998-08-06 | 2002-08-19 | 村田機械株式会社 | 無人搬送車システムと無人搬送車の誘導方法 |
US6150938A (en) | 1998-09-09 | 2000-11-21 | Sower; Forrest D. | Laser lighting assembly mounted on a forklift to project a light beam parallel to and in the same plane as a fork and utilized to accurately direct the fork into a fork receiving volume of a pallet, thereby avoiding any fork damage to a load on a pallet |
JP2000226199A (ja) | 1999-02-04 | 2000-08-15 | Nippon Yusoki Co Ltd | フォ−クリフト |
JP2001002395A (ja) | 1999-06-21 | 2001-01-09 | Nippon Yusoki Co Ltd | フォークリフトの荷役補助装置 |
JP3659474B2 (ja) | 1999-10-22 | 2005-06-15 | 日本輸送機株式会社 | フォークリフト |
US6194860B1 (en) | 1999-11-01 | 2001-02-27 | Yoder Software, Inc. | Mobile camera-space manipulation |
JP3690642B2 (ja) | 1999-11-12 | 2005-08-31 | 日本輸送機株式会社 | 車両の位置決め装置 |
JP2001139298A (ja) | 1999-11-15 | 2001-05-22 | Nippon Yusoki Co Ltd | フォークリフトの電源装置 |
JP2001206684A (ja) | 2000-01-25 | 2001-07-31 | Toyota Autom Loom Works Ltd | 荷役車両の照明装置 |
JP2001226092A (ja) | 2000-02-10 | 2001-08-21 | Nippon Yusoki Co Ltd | フォークリフト |
FR2815450A1 (fr) | 2000-10-12 | 2002-04-19 | Sertel Vision | Dispositif adaptable sur un chariot elevateur permettant d'effectuer les inventaires et pour aider a la surveillance des produits dans une plate-forme logistique ou un entrepot |
US6411210B1 (en) | 2000-11-20 | 2002-06-25 | Forrest D. Sower | Laser lighting assembly mounted on a forklift |
US7320385B2 (en) | 2001-02-16 | 2008-01-22 | Kabushiki Kaisha Toyota Jidoshokki | Camera lifting apparatus and cargo handling operation aiding apparatus in industrial vehicle and industrial vehicle |
JP3932811B2 (ja) | 2001-02-16 | 2007-06-20 | 株式会社豊田自動織機 | 産業車両におけるカメラ昇降装置 |
US6713750B2 (en) | 2001-02-26 | 2004-03-30 | L. A. Goddard | Visible light forklift alignment apparatus |
GB0116575D0 (en) | 2001-07-06 | 2001-08-29 | Randox Lab Ltd | Biochip deposition system and method |
WO2003008325A1 (fr) | 2001-07-17 | 2003-01-30 | Kabushiki Kaisha Toyota Jidoshokki | Vehicule industriel equipe d'un controleur de travaux de manipulation de materiaux |
US6952488B2 (en) | 2001-08-27 | 2005-10-04 | Carnegie Mellon University | System and method for object localization |
US7221776B2 (en) | 2001-10-31 | 2007-05-22 | Arcsoft, Inc. | Video stabilizer |
JP2003192295A (ja) | 2001-12-28 | 2003-07-09 | Nippon Yusoki Co Ltd | フォークリフト |
EP1502896A4 (en) | 2002-01-23 | 2009-11-18 | Toyota Jidoshokki Kk | POSITION CONTROL DEVICE AND POSITION CONTROL PROCESS FOR LOADING DEVICE IN INDUSTRIAL VEHICLE |
JP2003341996A (ja) | 2002-05-22 | 2003-12-03 | Nippon Yusoki Co Ltd | フォークリフト用マーカ装置 |
SI2078954T1 (sl) | 2002-12-10 | 2017-10-30 | Chep Technology Pty Limited | Avtomatiziran pregled palet |
JP2004198211A (ja) | 2002-12-18 | 2004-07-15 | Aisin Seiki Co Ltd | 移動体周辺監視装置 |
DE10323641A1 (de) | 2003-05-26 | 2005-01-05 | Daimlerchrysler Ag | Bewegliche Sensoreinrichtung am Lastmittel eines Gabelstaplers |
JP3911492B2 (ja) | 2003-06-26 | 2007-05-09 | トヨタ自動車株式会社 | 車両用走行支援装置 |
US7620218B2 (en) | 2006-08-11 | 2009-11-17 | Fotonation Ireland Limited | Real-time face tracking with reference images |
FR2857131A1 (fr) | 2003-07-01 | 2005-01-07 | Thomson Licensing Sa | Procede de recalage automatique d'un modele geometrique d'une scene sur une image de la scene, dispositif de mise en oeuvre et support de programmation. |
JP4298453B2 (ja) | 2003-09-30 | 2009-07-22 | 住友ナコ マテリアル ハンドリング株式会社 | 荷役補助装置、及び、監視装置 |
EP1524622A1 (en) | 2003-10-17 | 2005-04-20 | Koninklijke Philips Electronics N.V. | Method and image processing device for analyzing an object contour image, method and image processing device for detecting an object, industrial vision apparatus, smart camera, image display, security system, and computer program product |
PT1694570E (pt) | 2003-12-19 | 2011-07-25 | Chep Technology Pty Ltd | Aparelho e método para a inspeção e a reparação automatizada de paletas |
US8974169B2 (en) | 2004-03-15 | 2015-03-10 | Richard J. Mizner | Fork lift attachment tools and methods |
US9090441B2 (en) | 2004-03-15 | 2015-07-28 | Richard J. Mizner | Truck fork attachment including adjustable mast for ground clearance |
CN101090840A (zh) | 2004-05-03 | 2007-12-19 | 杰维斯·B·韦布国际公司 | 运输装置的自动装货系统和方法 |
DE102004021919A1 (de) | 2004-05-04 | 2005-12-01 | Robert Bosch Gmbh | Vorrichtung zum Fördern von Kraftstoff aus einem Vorratsbehälter zu einer Brennkraftmaschine |
DE102004027446B4 (de) | 2004-06-04 | 2007-08-23 | Jungheinrich Aktiengesellschaft | Vorrichtung zur Unterstützung des Ein- und Ausstapelns bei einem Stapler |
WO2006093523A2 (en) | 2004-07-15 | 2006-09-08 | Kenji Suzuki | Computerized scheme for distinction between benign and malignant nodules in thoracic low-dose ct |
DE102005035746B4 (de) | 2005-07-29 | 2010-02-18 | Siemens Ag | Verfahren zur Bestimmung einer Relativposition einer mobilen Einheit durch Vergleich von Scans einer Umgebung und mobile Einheit |
US20070154295A1 (en) | 2005-12-01 | 2007-07-05 | Jerr-Dan Corporation | Side loading vehicle system |
US8265349B2 (en) | 2006-02-07 | 2012-09-11 | Qualcomm Incorporated | Intra-mode region-of-interest video object segmentation |
US20070213869A1 (en) | 2006-02-08 | 2007-09-13 | Intermec Ip Corp. | Cargo transporter with automatic data collection devices |
KR101408959B1 (ko) | 2006-03-14 | 2014-07-02 | 프라임센스 엘티디. | 삼차원 감지를 위한 깊이 가변 광 필드 |
JP4479710B2 (ja) * | 2006-11-01 | 2010-06-09 | ソニー株式会社 | 液晶用駆動装置、液晶用駆動方法及び液晶表示装置 |
WO2008057504A2 (en) | 2006-11-06 | 2008-05-15 | Aman James A | Load tracking system based on self- tracking forklift |
US8116550B2 (en) | 2006-12-20 | 2012-02-14 | Cytyc Corporation | Method and system for locating and focusing on fiducial marks on specimen slides |
US8009864B2 (en) | 2007-08-31 | 2011-08-30 | Accenture Global Services Limited | Determination of inventory conditions based on image processing |
US8565913B2 (en) | 2008-02-01 | 2013-10-22 | Sky-Trax, Inc. | Apparatus and method for asset tracking |
JP5442959B2 (ja) * | 2008-04-25 | 2014-03-19 | ニチユ三菱フォークリフト株式会社 | 荷役作業用車輌における表示装置 |
US8243987B2 (en) | 2008-06-06 | 2012-08-14 | International Business Machines Corporation | Object tracking using color histogram and object size |
US8395671B2 (en) | 2008-06-09 | 2013-03-12 | Panasonic Corporation | Imaging device and imaging method for correcting effects of motion on a captured image |
EP2138027B9 (en) | 2008-06-25 | 2018-10-24 | CLAAS E-Systems KGaA mbH & Co KG | A transfering device and an agricultural vehicle |
US8705792B2 (en) | 2008-08-06 | 2014-04-22 | Toyota Motor Engineering & Manufacturing North America, Inc. | Object tracking using linear features |
MX341580B (es) | 2008-09-12 | 2016-08-25 | Crown Equipment Corp * | Monomastil para un vehiculo para manejo de materiales. |
US9105080B2 (en) | 2008-10-01 | 2015-08-11 | Hi-Key Limited | Method and a system for calibrating an image capture device |
US20100091094A1 (en) | 2008-10-14 | 2010-04-15 | Marek Sekowski | Mechanism for Directing a Three-Dimensional Camera System |
CN201327383Y (zh) * | 2008-12-15 | 2009-10-14 | 浙江大学 | 一种叉车货叉自然下滑量的自动测量系统 |
US8939842B2 (en) | 2009-01-13 | 2015-01-27 | Meimadtek Ltd. | Method and system for operating a self-propelled vehicle according to scene images |
US9393691B2 (en) | 2009-02-12 | 2016-07-19 | Mitsubishi Electric Corporation | Industrial robot system including action planning circuitry for temporary halts |
CN201458666U (zh) * | 2009-07-06 | 2010-05-12 | 杭州浙力叉车集团有限公司 | 叉车货叉位置显示装置 |
TWI416068B (zh) | 2009-12-10 | 2013-11-21 | Ind Tech Res Inst | 跨感測器間之物體追蹤方法與系統 |
US8553982B2 (en) | 2009-12-23 | 2013-10-08 | Intel Corporation | Model-based play field registration |
US8866901B2 (en) | 2010-01-15 | 2014-10-21 | Honda Elesys Co., Ltd. | Motion calculation device and motion calculation method |
DE102010002250B4 (de) | 2010-02-23 | 2022-01-20 | pmdtechnologies ag | Überwachungssystem |
US8508590B2 (en) | 2010-03-02 | 2013-08-13 | Crown Equipment Limited | Method and apparatus for simulating a physical environment to facilitate vehicle operation and task completion |
US8538577B2 (en) | 2010-03-05 | 2013-09-17 | Crown Equipment Limited | Method and apparatus for sensing object load engagement, transportation and disengagement by automated vehicles |
JP5589527B2 (ja) | 2010-04-23 | 2014-09-17 | 株式会社リコー | 撮像装置および追尾被写体検出方法 |
KR101149329B1 (ko) * | 2010-06-30 | 2012-05-23 | 아주대학교산학협력단 | 감시카메라를 이용한 능동적 객체 추적 장치 및 방법 |
US20120095575A1 (en) | 2010-10-14 | 2012-04-19 | Cedes Safety & Automation Ag | Time of flight (tof) human machine interface (hmi) |
US20120123614A1 (en) * | 2010-11-17 | 2012-05-17 | INRO Technologies Limited | Method and apparatus for virtualizing industrial vehicles to automate task execution in a physical environment |
EP2643792A4 (en) | 2010-11-18 | 2015-09-02 | Sky Trax Inc | LOAD TRACKING WITH LOAD IDENTIFICATION MARKINGS AND SPATIAL DISTINCTION |
US8744196B2 (en) | 2010-11-26 | 2014-06-03 | Hewlett-Packard Development Company, L.P. | Automatic recognition of images |
DE102010055774A1 (de) | 2010-12-23 | 2012-06-28 | Jungheinrich Aktiengesellschaft | Flurförderzeug mit einem Sensor zur Erfassung einer räumlichen Umgebung und Verfahren zum Betreiben eines solchen Flurförderzeugs |
US8655588B2 (en) | 2011-05-26 | 2014-02-18 | Crown Equipment Limited | Method and apparatus for providing accurate localization for an industrial vehicle |
US20130054129A1 (en) | 2011-08-26 | 2013-02-28 | INRO Technologies Limited | Method and apparatus for using unique landmarks to locate industrial vehicles at start-up |
CN202766229U (zh) * | 2012-09-26 | 2013-03-06 | 长安大学 | 用于堆高机的监控系统 |
-
2012
- 2012-10-16 CN CN201280051229.7A patent/CN104011772B/zh not_active Expired - Fee Related
- 2012-10-16 WO PCT/US2012/060352 patent/WO2013059153A1/en active Application Filing
- 2012-10-16 US US13/652,622 patent/US9025827B2/en active Active
- 2012-10-16 US US13/652,630 patent/US9025886B2/en active Active
- 2012-10-16 US US13/652,649 patent/US9087384B2/en not_active Expired - Fee Related
- 2012-10-16 EP EP12778923.8A patent/EP2768758B1/en not_active Not-in-force
- 2012-10-16 EP EP12778921.2A patent/EP2769361B1/en not_active Not-in-force
- 2012-10-16 WO PCT/US2012/060340 patent/WO2013059148A1/en active Application Filing
- 2012-10-16 WO PCT/US2012/060348 patent/WO2013059150A1/en active Application Filing
- 2012-10-16 WO PCT/US2012/060336 patent/WO2013066613A1/en active Application Filing
- 2012-10-16 WO PCT/US2012/060334 patent/WO2013059145A1/en active Application Filing
- 2012-10-16 US US13/652,524 patent/US8718372B2/en active Active
- 2012-10-16 EP EP12778922.0A patent/EP2769362B1/en not_active Not-in-force
- 2012-10-16 CN CN201280051228.2A patent/CN103889878B/zh not_active Expired - Fee Related
- 2012-10-16 US US13/652,572 patent/US9082195B2/en not_active Expired - Fee Related
- 2012-10-16 WO PCT/US2012/060343 patent/WO2013059149A1/en active Application Filing
- 2012-10-16 CN CN201280051242.2A patent/CN103889879B/zh not_active Expired - Fee Related
- 2012-10-16 US US13/652,640 patent/US8938126B2/en not_active Expired - Fee Related
- 2012-10-16 US US13/652,546 patent/US8885948B2/en not_active Expired - Fee Related
- 2012-10-16 US US13/652,563 patent/US8977032B2/en not_active Expired - Fee Related
- 2012-10-16 US US13/652,534 patent/US8849007B2/en not_active Expired - Fee Related
- 2012-10-16 WO PCT/US2012/060329 patent/WO2013059142A1/en active Application Filing
- 2012-10-16 US US13/652,510 patent/US8934672B2/en not_active Expired - Fee Related
- 2012-10-16 WO PCT/US2012/060350 patent/WO2013059151A1/en active Application Filing
- 2012-10-16 WO PCT/US2012/060333 patent/WO2013059144A1/en active Application Filing
- 2012-10-16 WO PCT/US2012/060332 patent/WO2013059143A1/en active Application Filing
- 2012-10-16 CN CN201280051235.2A patent/CN103875021B/zh not_active Expired - Fee Related
- 2012-10-16 EP EP12788665.3A patent/EP2768759B1/en not_active Not-in-force
- 2012-10-16 US US13/652,516 patent/US8995743B2/en not_active Expired - Fee Related
- 2012-10-16 WO PCT/US2012/060339 patent/WO2013059147A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5208753A (en) * | 1991-03-28 | 1993-05-04 | Acuff Dallas W | Forklift alignment system |
US5995001A (en) * | 1997-07-09 | 1999-11-30 | Crown Equipment Corporation | Method and apparatus for providing operating information to an operator of a fork lift truck |
EP1413404A2 (en) * | 2002-10-25 | 2004-04-28 | Fanuc Ltd | Object conveying system and conveying method using two robots |
US7344037B1 (en) * | 2002-11-18 | 2008-03-18 | Mi-Jack Products, Inc. | Inventory storage and retrieval system and method with guidance for load-handling vehicle |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103889879B (zh) | 识别、匹配并跟踪图像序列中的多个对象 | |
KR102326097B1 (ko) | 물리적 길이의 단위를 사용하는 팔렛 검출 | |
US20130107010A1 (en) | Surface segmentation from rgb and depth images | |
CN107532125A (zh) | 用于视觉系统的基于图像的管槽圆形检测 | |
JP2005164323A (ja) | 位置検出用マーク、並びに、マーク検出装置、その方法及びそのプログラム | |
KR20060100376A (ko) | 물체 윤곽 이미지를 분석하기 위한 방법 및 이미지 처리장치, 물체를 검출하기 위한 방법 및 이미지 처리 장치,산업용 비전 장치, 스마트 카메라, 이미지 디스플레이,보안 시스템, 및 컴퓨터 프로그램 제품 | |
CN112883955B (zh) | 货架布局检测方法、装置及计算机可读存储介质 | |
CN107403160A (zh) | 一种智能驾驶场景中图像检测方法、设备及其存储设备 | |
US20020064299A1 (en) | Method for identifying an object image | |
Yang et al. | Robust line detection using two-orthogonal direction image scanning | |
JPH07121713A (ja) | パターン認識方法 | |
Lifshits et al. | Image-based wafer navigation | |
Armênio et al. | Estimating the 3D center point of an object with Kinect sensor RGB-D images | |
Károly et al. | Robotic Manipulation of Pathological Slides Powered by Deep Learning and Classical Image Processing | |
Bertsche | Recurring Adaptive Segmentation and Object Recognition |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170322 Termination date: 20201016 |