摘要
基于模型的识别和运动跟踪依赖于解决投影和模型参数,使其最佳适应匹配的2D图像特征的3D模型的能力。本文将当前的参数求解方法扩展到处理具有任意曲面和任意数量的内部参数(表示关节、可变尺寸或表面变形)的对象。开发了数值稳定化方法,考虑了图像测量中固有的不准确性,并允许在匹配数小于未知参数数时确定有用的解决方案。使用Levenberg-Marquardt方法始终确保解决方案的收敛性。这些技术使基于模型的视觉能够应用于比以前的方法更广泛的问题类别。它们的应用被证明可以用于跟踪曲线、参数化对象的运动。
1 引言
基于模型的视觉允许在视觉解释过程中利用对特定对象形状和外观的先验知识。通过识别模型和从图像中提取的特征之间的一致部分匹配,可进行可靠的识别,从而使系统能够推断出比图像中明确可用信息更多的场景信息。通过提供感知和场景组件先验知识之间的联系,基于模型的识别是视觉潜在应用的一个重要组成部分。
基于模型的视觉的一个重要组成部分是解决所有视点和模型参数的值,以便将模型最佳拟合到一些匹配的图像特征中。这一点很重要,因为它允许一些初步的匹配约束模型其他特征的位置,从而生成新的匹配,可以用来验证或拒绝初始解释。通过考虑匹配过程中所有可用的定量信息来约束未知参数,可以极大地提高这一过程和最终解释的可靠性。此外,参数确定对于识别对象子类别、解释关节或灵活对象的图像以及机器人与对象的交互是必要的。
在大多数情况下,可以从单个2D图像的匹配解决3D模型的所有未知参数。然而,在某些情况下,例如当模型的大小和距离都未知时,通过同时将模型拟合到从多个视点拍摄的图像中,可以大大提高参数确定的准确性。此处介绍的方法可以在任一情况下使用。
图像中模型特征的投影位置是视点和模型参数的非线性函数。因此,解决方案基于牛顿线性化和迭代的方法执行最小二乘最小化。通过结合一个包含每个参数不确定性范围的先验模型和每个图像测量标准差的估计的稳定化方法,增加了一个稳定化方法。这允许对于在其他情况下会是欠定或病态的问题获得有用的近似解决方案。此外,Levenberg-Marquardt方法被用来始终强制解决方案收敛到局部最小值。这些技术都已经作为基于模型的运动跟踪系统的一部分进行了实施和测试,并且它们被发现是可靠和高效的。
2 先前的方法
解决视点和模型参数的尝试可以追溯到Roberts的工作[30]。尽管他的解决方法是针对特定类别的对象,比如矩形块,但Roberts清楚地了解到通过定量参数确定来使视觉对缺失和嘈杂数据具有鲁棒性的价值。然而,很不幸,在其初始发表之后的许多年里,很少有人试图在这项工作的基础上进行进一步研究。
1980年,作者[19]提出了一种使用牛顿方法进行非线性最小二乘最小化解决视点和模型2参数的通用技术。自那时以来,这种方法已经成功地应用于许多应用中,并且它也为本文所介绍的工作提供了起点。该方法在鲁棒的基于模型的识别中的应用已经由Lowe [20, 21, 22]、McIvor [26]以及Worrall、Baker和Sullivan [34]进行了描述。Bray [2]将该方法应用于刚性对象的基于模型的运动跟踪。Ishii等人[14]描述了将此工作应用于从手腕上安装的LED目标的单视图跟踪方向和位置的问题。他们的论文提供了一种详细的分析,显示了良好的准确性和稳定性。Goldberg和Lowe [8]描述了应用和测试这个问题的一些更先进的数值方法。
近年来,关于基于模型的视觉参数求解的论文数量大幅增加,大部分工作致力于解决刚性对象的视点参数。Liu等人[18]和Kumar [15]通过将旋转解决方案与平移解决方案分离,研究了解决视点参数的替代迭代方法。然而,Kumar表明,在存在嘈杂数据的情况下,这种方法导致参数估计明显更差。因此,他采用了与上述工作中使用的类似的同时最小化方法。基于使用消除方法提供初始问题表述的完全不同的方法由Ponce和Kriegman [29]提出。这也是基于牛顿方法进行最终参数确定的最小二乘最小化。
Haralick等人[11]尝试了使用迭代重新加权等鲁棒方法,以允许由不正确匹配引起的异常值。然而,他们的结果表明,即使在20个正确匹配中存在一个异常值,重新加权后预期误差也会大幅增加。本文使用的替代方法是提供一个更高级别的搜索过程,当第一组匹配未能产生准确的模型拟合时,考虑其他匹配集合。
2.1 多解决方案的问题
已经发表了大量关于表征解决六个视点参数所需的最小数据量以及解决仅有这些最小数据时可能出现的多个解决方案的工作。Fischler和Bolles [6]表明,对于将3个模型点匹配到3个图像点的问题,可能会出现最多四个解,并且他们给出了识别每个解的程序。Horaud等人[12]给出了相应的4点问题的解,该问题在某些情况下也可能有多个解。Huttenlocher和Ullman [13]表明,对于正交投影,三点问题有一个简单的解决方案,这对于一些应用来说是足够接近透视投影的。他们使用术语“对齐”来指代模型拟合过程中视点参数的解。对于许多实际应用而言,Dhome等人[4]给出了解决匹配3个模型线到3个图像线的问题的所有解的方法,这对于生成本文中使用的迭代技术的起始位置特别有用,当存在多个解决方案时。
确定所有可能的精确解的这项工作无疑对某些特定的视觉应用非常重要,但对于一般的基于模型的视觉的实际参数确定来说,这可能不是最佳方法。这些方法的一个问题是它们没有解决病态问题的问题。即使问题只有一个解析解,实践中也经常具有足够病态性,以具有大量和范围广泛的解。其次,所有这些方法都处理六个视点参数的特定属性,并且很少可能扩展到处理任意数量的内部模型参数。最后,这些方法未能解决解决方案受到限制时该如何处理的问题。本文描述的稳定方法允许在问题受到限制时获得近似解决方案,而当模型包含许多参数时,这种情况经常会发生。
或许相信不必确定所有可能解决方案的最具说服力的原因是,人类视觉显然也无法做到这一点。著名的内克立方体幻觉说明了人类视觉在确定视点参数时很容易陷入局部最小值,并且似乎无法同时考虑多个解。Rock [31]总结了人类感知似乎始终在面对完全不确定的连续变量时采用一种特定的感知方式。感知可以在面对新信息时突然转变到新的稳定位置,这些信息可能来自于视觉系统的其他组件(注意力)以及外部刺激。这种行为与一种稳定的最小化方法来确定参数值是一致的,在该方法中,当新信息可用时,过程可以从新的起始点开始。尽管人类视觉可能陷入错误的局部最小值,但在大多数识别问题中表现非常出色,这表明在确定模型参数时,局部最小值可能并不是一个主要问题。
值得注意的是,当有准确的三维图像数据可用时(比如来自扫描激光测距仪),参数求解问题就会变得更加简单,因为这样可以避免由投影引起的某些非线性。Faugeras & Hebert [5]和Grimson & Lozano-P´erez [10]给出了解决这个问题的例子。然而,在本文中,我们将注意力限制在将三维模型拟合到二维图像特征上。
3 Object and scene modeling
大多数基于模型的视觉研究都是基于简单的多面体3D对象模型。虽然它们易于处理,但显然无法代表许多真实世界的对象。一些研究是基于从某些体积原始构建的模型,其中最值得注意的是广义圆柱体 [1, 3]和超椭球体 [27]。虽然这些模型吸引人的原因是它们能够捕捉常见的对称性并用少量参数表示某些形状,但它们不适合于建模许多不具有这些原始体内所包含的规则性的自然物体。最彻底研究如何表示任意对象的视觉外观的领域是计算机图形学。从该领域的发展中得到的教训非常明确:复杂的解析表示已经被简单的局部近似所取代,成为成本效益最高的解决方案。在渲染之前,用于模型表示的最常见的局部近似形式是多边形表面补丁,以及与显示相关的各种参数的适当插值。由于任意函数都可以通过使用足够多的简单局部近似来近似到任意精度,因此在这个表示水平上唯一重要的问题是效率。计算机图形学的经验倾向于表明,用于简单线性近似所需的近似补丁数量的增加远远超过了它们可以被操作的速度。当然,更复杂的样条曲线和体积原始体仍然可以用于模型输入或其他更高级别的推理。
与计算机图形学一样,视觉是建立在近似艺术之上的。当然,重要的是要近似适当的测量,否则一个量的近似可能会引入其导数或其他依赖于它的函数中不希望的误差。在基于模型的视觉中,我们关注的是正确地近似那些将与图像测量匹配的函数。对于基于边缘的匹配,这将包括边缘的投影位置、切线、曲率和不连续性。如果匹配的是阴影或表面属性,那么还必须近似表面曲率。我们已经开发了一个建模系统,允许将这些量建模为视点和内部模型参数的函数,以任意所需的精度使用于高效的参数求解。
尽管基于模型的视觉可以从计算机图形学中学到很多,但建模要求也存在重要的差异。在基于模型的匹配到二维图像中,模型是与导出的图像特征进行匹配,而不是用于生成密集的表面描述。例如,直接计算遮挡轮廓的位置是很重要的,在许多为计算机图形学开发的建模系统中是不可能的。由于模型在匹配过程的内循环中进行投影和操作,因此必须利用视觉领域特有的所有可能的效率来源。此外,某些数量在图形应用程序中不存在,例如与模型参数相关的导数,必须以高效的方式表示和计算。因为这些原因,必须开发一个面向视觉的建模系统,而不是采用现有的为图形学开发的系统。
已经开发了一种简单的建模语言,可用于描述用于基于模型的视觉的任意模型及其内部参数。该语言用于定义和命名三维点、边和表面补丁,以及定义旋转和平移的模型参数。每个模型点都是坐标变换树中的叶子,该树代表不同参数指定的先前旋转和平移的任意组合(见图1)。
相同的机制用于处理视点参数和内部模型参数,因此该树的根代表相机坐标系。当从该语言的描述构建内部模型时,会构建一个密集的指针网络,将每个边元素链接到其相邻的表面补丁和端点。使用缓存机制,以便只计算每个表面多边形的可见性和每个点的投影一次,与大多数图形建模系统不同。由于表面或线上的每个点可以通过连接到不同框架来独立移动,因此可以指定模型的任意灵活运动。例如,图1中连接点F和G的线可以在参数s的影响下伸展,并在参数p的影响下与另一个模型子部分一起旋转(每个平移框架指定一个平移方向,每个旋转指定一个旋转轴)。边缘根据它们是否位于平滑表面上或形成不连续性而进行标记。通过缓存每条边两侧表面补丁的表面法线记录,可以在存在大量基础多边形时非常高效地生成遮挡边界和表面不连续性的可见性和位置。图2展示了具有遮挡边界的模型的示例。稍后,我们将描述模型表示如何有效地计算与每个参数相关的图像特征的偏导数。
4 求解视点和模型参数
从3D到2D的投影是一种非线性操作。然而,幸运的是,它是一种平滑且行为良好的变换。投影前的深度旋转将投影点转换为旋转角度余弦的函数。向摄像机方向的平移会引入作为距离倒数函数的透视畸变。平行于图像平面的平移几乎完全是线性的。与内部模型参数相关的平移和旋转对模型点的影响与视点参数的效果相同,但仅应用于模型点的一个子集。所有这些变换都是平滑且行为良好的。因此,这个问题是应用牛顿法的有希望的候选者,该方法基于假设函数在局部是线性的。虽然这确实需要从未知参数的适当初始选择开始,并面临收敛到错误局部最小值的风险,但我们将在下面看到,稳定化方法可以使这种方法在实践中非常有效。
4.1 牛顿法和最小二乘法优化
略
4.2 偏导数的高效计算
实现这种求解方法中最耗费资源的方面之一是计算偏导数的雅可比矩阵。因此,我们开发了一些方法,通过预计算和共享数据结构来降低这些成本。此外,还使用了一种特殊技术来处理关于完整三维旋转的导数,以消除奇点并提高收敛速度。
如前述模型表示部分所述,所有模型点都是“框架”数据结构树中的叶节点。每个框架表示相对于其父节点的旋转或平移。因此,通过从每个模型点回溯到树的根,可以确定影响该点的变量变换集。每个框架数据结构还包含当前视图的预计算结果,所有依赖于该框架的点都可以使用这些结果来计算其相对于该框架参数的偏导数。由于通常有许多点受每个框架的影响,因此对框架结果的任何预计算都远比为每个点分别计算它们更为高效。
在一条路径上,同一个参数可能会出现在树中的多个框架中(例如,人类手指的最后两个关节不独立运动,而是依赖于一个腱收缩参数)。这种情况可以通过简单地对某个特定参数的所有偏导数求和来轻松处理。
每种类型的框架变换需要不同的预计算结果,因此这些将分别描述如下。
平移。每个可变平移框架包含一个三维向量,给出相对于该框架变量的方向导数。在所有依赖于该框架的点上,这个方向导数都是相同的,因此不需要进一步计算。
绕一个轴的旋转。每个可变旋转框架包含三维角速度向量和当前视点的旋转原点。依赖于该框架的每个点的方向导数是通过将角速度向量与从旋转原点到该点的向量取叉积来计算的。
绕三个轴的旋转。如果我们通过依次绕各个轴的三次旋转来计算任意三维旋转,很容易出现奇点,这些奇点导致三次旋转的组合未能指定独立的旋转方向。因此,我们用一个3x3的旋转矩阵来表示完整的三自由度旋转,并计算绕每个坐标轴的校正旋转与此旋转组合。这还有一个好处,即导数可以以极其高效的形式计算。例如,相对于绕x轴的增量旋转,某点的方向导数是向量(0, z, -y),其中z和y是从旋转原点到该点的向量坐标。
一旦每个模型点的方向导数被计算出来,只需将这些导数投影到图像坐标系(u, v)中。模型点(x, y, z)在摄像机坐标系中的透视投影产生图像点(u, v),如下所示:
其中,f是与摄像机镜头焦距成比例的常数。我们包含另一个常数a,指定原始图像中每个像素的宽高比,因为大多数当前的视频标准具有非正方形的宽高比。对上述函数中的每一个相对于参数p求偏导数,我们得到:
这里,x, y和z相对于p的偏导数就是之前计算的方向导数的分量。
4.3 测量曲线的垂直误差
上述方法在模型点与图像点之间存在匹配时是足够的。然而,在大多数情况下,匹配实际上发生在模型的投影轮廓和图像中的部分边缘之间。由于图像边缘端点的精确位置未知(可能由于遮挡而移动),因此必须仅最小化图像边缘点到投影模型曲线的垂直距离。
可能认为自遮挡曲面的边缘需要特殊处理,因为形成这种遮挡轮廓的实际模型边缘会随着视点的变化而移动。然而,在这种遮挡点处的表面法线正好与观察方向垂直,因此投影到图像中的轮廓的瞬时运动为零,因为表面上的邻近点取代了它。对于较大的旋转,通过补偿其他非线性的相同迭代,可以轻松处理由非线性引入的误差。
为了测量图像点到投影二维模型线的垂直距离,将投影模型线表示为以下形式是有用的:
�sin�−�cos�=�usinθ−vcosθ=d
其中,�θ 是线相对于u轴的方向,d 是线到原点的有符号垂直距离。如果我们将图像点 (�0,�0)(u0,v0) 代入此方程的左侧并计算新的 �′d′,则该点到线的有符号垂直距离为 �′−�d′−d。这个垂直误差测量的偏导数只是u和v偏导数的线性组合:
∂�∂�=sin�∂�∂�−cos�∂�∂�∂p∂d=sinθ∂p∂u−cosθ∂p∂v
在实际操作中,我们从线上的两个点 (�1,�1)(u1,v1) 和 (�2,�2)(u2,v2) 计算 sin�sinθ 和 cos�cosθ。令L为这两个点之间的线段长度:
�=(�2−�1)2+(�2−�1)2L=(u2−u1)2+(v2−v1)2
则:
cos�=�2−�1�cosθ=Lu2−u1 sin�=�2−�1�sinθ=Lv2−v1
垂直误差在图像曲线上选定的点与此点垂直投影到投影模型曲线最近段之间进行测量。在每次迭代的过程中,这种最近匹配点的确定都会更新。
4.4 确定收敛的起始位置
Worrall、Baker 和 Sullivan [34] 使用蒙特卡洛技术研究了作者早期版本算法的收敛范围。他们发现,对于旋转误差小于 90 度的情况,该算法几乎在每一种情况下都能收敛到正确的解(平移误差几乎没有影响)。迭代次数随着误差的增加而增加,最大在 90 度时平均约为 6 次迭代。结合下一节描述的稳定方法,收敛性能显著提高。
因此,确定初始起始位置的精度要求相当低。对于作为我们初始重点的运动跟踪问题,我们简单地使用前一帧的参数估计,并为每个参数添加从前两帧获得的速度估计。对于一般的识别问题,可以使用与图像匹配的属性来确定初始参数估计。对于深度旋转,每个匹配可以投票选择一个平均方向(很少有模型特征从所有视点都可见),这些方向向量可以进行平均。对于图像平面内的旋转,我们可以从估计的深度旋转投影模型,并取投影模型边缘与匹配图像边缘之间的平均图像旋转。平移估计可以通过匹配投影模型特征和图像特征的重心及重心的标准偏差来进行。有关识别问题初始估计的计算示例,请参见[21]。
如果只有大约与自由度数量相当的匹配点,则可能存在多个局部最小值。可以通过从一些额外匹配点开始(作者应用中采用的解决方案)、尝试从多个起始位置收敛或使用应用于匹配子集的解析方法(如 Dhome 等人 [4])计算候选起始位置集合来解决此问题。另一种方法是构建一个逆查找表,将特征测量映射到近似的视点参数估计。Thompson 和 Mundy [32] 对顶点使用了这种方法,Goad [7] 对广泛的任意模型特征使用了这种方法。
5 稳定解决方案
只要对解的约束明显多于未知数,前述的牛顿法通常会从广泛的起始位置稳定收敛。然而,在识别和运动跟踪问题中,通常希望从仅有的一些最可靠匹配开始,并使用这些匹配来缩小后续匹配的视点范围。即使匹配点多于自由参数,通常也会出现一些匹配是平行的或具有其他关系,导致解的不适定。这些问题在模型具有许多内部参数时会进一步加剧。
5.1 指定先验模型
所有这些问题都可以通过引入对期望解的先验约束来解决,这些约束在没有进一步数据时指定默认值。在许多情况下,默认解只是求解当前参数估计的零修正。然而,对于某些运动跟踪问题,可以通过从速度和加速度测量中外推出特定的最终参数估计,这反过来意味着在非线性收敛的后续迭代中对参数值的非零偏好。
这些先验约束中的任何一个都可以通过简单地向线性系统添加行来包含,说明我们希望为每个参数分配的值:
[��]�=[��][JI]x=[ed]
单位矩阵 I 为每个参数指定一个值,��di 指定参数 �i 的期望默认值。
这里明显的问题是没有指定满足数据约束与满足先验模型约束之间的权衡。适当的解决方案是对矩阵方程的每一行进行加权,以使右侧每个元素具有相同的标准偏差。因此,当我们最小化误差向量时,每个约束将按其期望值的标准差数进行贡献。
我们将系统的每一行归一化为单位标准差。如果图像测量以像素为单位,那么将其标准差保持为 1 是对测量图像特征位置误差的一个好的初步估计。在我们的匹配算法中,我们还考虑了匹配中的潜在模糊性,以增加标准差(即降低权重),对于表现出多个相邻替代的匹配,以便正确匹配邻近替代的模糊性转化为适当的定位不确定性。
更重要的归一化是根据每个参数的先验估计标准差对先验模型进行加权。这在运动跟踪的情况下相对简单,因为可以将每帧的加速度限制表示为标准差。然而,在从任意视点进行基于模型的识别的情况下,似乎预期值的范围是无限的。事实上,在收敛期间每个参数都是有限的,因为我们假设从视点的一些初步近似开始。因此,旋转参数的标准差最多为π/2,平移参数将限制在保持对象在图像框架内。内部模型参数的标准差将对应于其有效运动范围的较大部分。这些偏差可能比图像测量产生的偏差大,但它们在稳定不适定问题的解中仍起着重要作用。事实上,标准差可以小几倍而不会对最终解适合数据测量的程度产生不利影响,因为非线性迭代解可以将先验模型的起点重置为每次迭代的结果。
5.2 稳定化的高效计算
参数值的先验估计将通过对角矩阵 �W 进行加权,其中每个权重与参数 �i 的标准偏差 ��σi 成反比:
���=1��Wii=σi1
该矩阵用于对方程 (2) 的下部的每一行进行缩放。我们假设方程上部基于图像测量的约束已经缩放为单位标准差。
[��]�=[���][JW]x=[eWd]
我们通过求解相应的正规方程来最小化这个系统:
(����)[��]�=(����)[���](JTWT)[JW]x=(JTWT)[eWd]
它展开为:
(���+���)�=���+����(JTJ+WTW)x=JTe+WTWd
由于 �W 是一个对角矩阵,���WTW 也是一个对角矩阵,但对角线上的每个元素是标准偏差的平方的倒数。这意味着稳定化的计算成本是微不足道的,因为我们可以首先形成 ���JTJ,然后简单地在对角线上添加一些小常数,这些常数是每个参数的标准偏差的平方的倒数。如果 �d 非零,则将这些常数乘以 �d 添加到右侧。如果原系统中的行数少于参数数目,我们可以简单地添加足够的零行以形成方阵,并将常数添加到对角线上以稳定它。
5.3 强制收敛
即使在基于先验模型进行这种稳定化之后,系统仍可能由于线性近似于非线性系统而无法收敛到最小值。我们可以通过添加一个标量参数 λ 来强制收敛,该参数可以在发生发散时增加稳定化的权重。该系统的新形式为:
[JλW]x=[eλWd]
该系统最小化以下公式:
∥Jx−e∥2+λ2∥W(x−d)∥2
视觉领域的许多人会认识到这是一种使用 Tikhonov [33] 稳定泛函进行正则化的例子,该方法已应用于许多低级视觉领域(Poggio 等 [28])。在这种情况下,参数 �λ 控制近似新数据 ∥��−�∥2∥Jx−e∥2 与最小化解与其原始起始位置 �d 之间距离 ∥�(�−�)∥2∥W(x−d)∥2 的权衡。
这种强制迭代收敛参数 �λ 的使用最早由 Levenberg [17] 研究,后来由 Marquardt [24] 归结为具体的数值程序。他们意识到,随着参数 �λ 的增加,解将越来越对应于步长越来越小的纯梯度下降,并具有保证(但缓慢)的收敛性。对于减少的 �λ,问题则转向牛顿法,它在解附近具有快速的二次收敛,但在起始位置太远时可能会发散。因此,Marquardt 建议简单的解决方案是监控每个解的残差,并将 �λ 增加 10 倍直到残差减少;否则,在每次迭代时将 �λ 减少 10 倍。这并不能保证任何特定的收敛率,当然也可能收敛到局部而非全局最小值。然而,它在实践中证明是非常有效的,是非线性最小二乘问题中最广泛使用的方法之一。
Marquardt 并没有假设对加权矩阵 �W 的任何先验知识,而是从 ���JTJ 的相应列的欧几里德范数估计其每个元素。在我们的情况下,�W 的可用性使得当 ���JTJ 的某列接近零时,算法可以表现得更好。它还使得稳定化具有更可预测的行为。增加 �λ 的值将基本冻结具有最低标准偏差的参数,从而首先求解具有较高标准偏差的参数。对于我们的问题,这意味着对于困难的问题,收敛将首先通过求解平移,然后在后续迭代中求解旋转,最后求解短程内部模型参数。
6 实现结果
前述所有的物体建模和参数求解方法均已用约4000行的C代码实现。图3展示了一个非常简单的模型拟合示例。该模型是一个具有可变高度的金字塔。模型从一组特定的参数值投影出来,并随机选择了一些投影段的间隔进行匹配。改变模型参数以生成图3(b)所示的起始参数估计。在此图中,正交误差以灰色条显示在投影的模型段和匹配的图像段之间。图3(c)和图3(d)展示了上述稳定算法在前两次迭代后的输出。在大范围的初始参数值内,这种快速的收敛率通常在几次迭代内即可实现(旋转参数误差高达60度)。关于在添加稳定化和Levenberg-Marquardt方法之前在广泛误差范围内的收敛系统探索,可参见Worrall、Baker和Sullivan的研究[34]。事实上,发散的情况相对罕见,因此Levenberg-Marquardt方法很少生效;但其计算成本也较低,因此可能具有实用价值。
6.1 应用于运动跟踪
这些方法的初始应用之一是基于模型的运动跟踪问题。使用Datacube图像处理器在512 x 485像素图像上实时实现Marr-Hildreth[25]边缘检测。包含这些边缘点的图像被传送到Sun 3/260上,在该处基于局部连通性将边缘链接成列表。一个相当简单的匹配技术用于识别最接近当前3-D模型投影轮廓的图像边缘。使用最好的初始匹配执行一次视点解算,然后从新的视点估计中生成进一步的匹配。此过程最多进行5次迭代,逐渐缩小搜索潜在匹配的图像位置范围(这有助于消除任何错误的外部匹配)。对于具有直边的简单模型,所有这些步骤可以在不到1秒的时间内完成,结果是一个可以执行稳健但相当慢的实时运动跟踪系统。我们已经在视频摄像机前缓慢移动物体的情况下连续运行了数千帧。通过观察当前参数估计集上叠加的线框模型,可以实时轻松判断运动跟踪的正确性。目前我们正在探索使用并行架构来大大加快该系统的操作速度,以便在复杂物体模型的情况下达到视频速率。图4-7展示了该系统在某一帧运动跟踪中的操作情况。然而,由于模型的复杂性,该版本在Sun 3/260上每帧需要约6秒的处理时间,无法实时运行。图4展示了一个手电钻的图像,其中边缘是用简化版的Canny边缘检测器提取的。图5中,模型叠加在这些边缘上,显示了先前最佳估计的当前视点。一个简单的匹配算法用于找到接近投影模型曲线的图像边缘,并覆盖最大可能长度的边缘。这些匹配根据其长度和平均分离度进行排名,并选择最好的进行最小化。图5中用粗线显示了选择的匹配,以及标记模型和图像曲线之间误差的正交条。模型拟合一次迭代后,图6显示了新模型位置及从该位置生成的新图像匹配集。注意,手柄的旋转是一个自由参数以及视点参数。第二次收敛迭代后的最终模型拟合结果如图7所示,叠加在原始图像上。尽管由于遮挡和低级边缘检测中的误差,最终结果仅基于预测图像边缘的一小部分。然而,由于问题的过度约束性质,即可用测量值远多于未知参数,最终结果可以是可靠且准确的。
7 结论与未来方向
本文提出了将具有任意曲面和任意数量内部参数的模型与匹配的图像特征拟合的一般方法。对于稳健性和效率问题给予了相当大的关注,这些技术应能作为基于模型的视觉应用中模型拟合的实用基础。
有多个方向可以进一步改进这些方法。其一是处理具有大量可变参数的物体。由于求解线性系统的复杂性随变量数量的增加而呈O(n^3)增长,因此将具有大量参数的问题划分为较小的子集可能更为高效。对于不确定性范围大的所有参数使用同时求解方法,但剩余参数则基于局部独立优化求解。如果建模的是通用类别的物体,如Acronym系统[3]中几乎每个维度都可变的物体,这将变得尤为重要。
虽然本文扩展了视觉系统的建模和参数求解组件,使其能够处理曲面物体,但在低级别曲线分割和分组方面仍有许多研究工作需要完成。作者已经开发了一些适合初始曲线描述的多尺度曲线平滑方法[23],但在分组和索引方面仍有大量工作要做,以实现曲面物体识别的完全通用系统。通过利用诸如曲率、平滑性和高级分组等特性,应该可以在匹配的可靠性方面取得重大进展。