基于表面的匹配可用于各种不同的使用情况。这些不同的使用情况取决于要查找的对象,因为某些对象需要考虑边缘信息。我们将这些情况区分为以下几种
表 1.1 概述了基于表面匹配的不同操作模式、一些使用案例和考虑的数据。一般来说,您需要区分三维场景和其中要找到的三维模型。
| 数据 | 示例 | 使用案例 | ||
| (标准)基于表面的匹配 | 表面 | | 大而圆的形状,在所有三个维度上延伸 | |
| 表面 + 3D 边缘 | | 三维信息较少的形状,即扁平对象、盒子、包含三维信息的对象,尤其是在边缘和速度方面,或者二维边缘没有附加值。 | ||
| 基于边缘支持的表面匹配 | 表面 + 2D 边缘 | | |
三维信息较少的形状,即三维信息特别是边缘信息较少的平面对象。然而,三维数据在靠近边缘处会产生噪声。 |
| 表面 + 3D 边缘 + 2D 边缘 | | |
三维信息较少的形状,即扁平对象、盒子或包含三维信息的对象,尤其是在边缘和精度方面。 | |
| 基于表面的可变形匹配 | 表面 | | 可以出现变形形状的对象。 | |
表 1.1: 基于表面的匹配操作模式及其相应的使用案例汇总。
如果您需要定位在所有三维空间都有延伸的大型圆形对象,即场景中代表该对象实例的三维点并不都位于一个平面内,则应采用仅使用表面信息的标准曲面匹配方法。图 1.2 展示了一些示例对象。
然而,仅使用表面信息进行基于表面的标准匹配不应适用于三维信息较少的对象,如平面对象。从正上方看,一个盒子在场景中就像一个平面对象。因此,如果仅使用表面信息进行基于表面的匹配,则会有很高的概率在背景中找到盒子(只要背景是平面的)。这是由于表面信息只包含三维点坐标及其采样距离和法线方向等特征。因此,在背景中找到的盒子的分值将与正确找到的盒子的分值相似(见 图 1.3 )。在这种情况下,应采用基于边缘支持的表面匹配方法(见 图 1.4 )。
基于边缘支持的表面匹配最适用于 图 1.4 所示的对象。以下几组信息可用于基于边缘支持的表面匹配:
标准基于表面的匹配和基于边缘支持的表面匹配共享相同算子集,而基于可变形表面的匹配只有特定的算子集。在接下来的章节中,本技术说明将重点介绍基于表面的非变形模型匹配。有关基于可变形表面的匹配的详细信息,请参阅相应的算子参考,特别是 find_deformable_surface_model 和 create_deformable_surface_model,或 HDevelop 示例程序 find_deformable_surface_model.hdev。