4.4.2 仅基于边缘支持表面匹配的注意事项


基于边缘支持的表面匹配(除上述要点外)

模型法线 如果模型法线不向内,请将 create_surface_model 的参数 "model_invert_normals" 设置为 "true" ,以反转模型法线。由于场景法线是根据二维映射计算得出的,因此无论如何场景法线都应该朝内。

得分 如果只返回低分,请检查以下潜在原因:
  • 检查三维边缘是否以合适的方式计算。可以通过带有参数 "sampled_3d_edges"get_surface_matching_result 来获取三维边缘。如果由于底层噪声而无法充分计算三维边缘,也可以使用 edges_object_model_3d 确定三维边缘,并使用适当的方法进行过滤。然后,可以将三维边缘设置为 find_surface_model 中的一个通用参数,即以 "3d_edges" 作为通用参数,以过滤后的边缘作为其值。
  • 使用 get_surface_matching_result 提取匹配结果,并检查 "score_surface""score_3d_edges""score_2d_edges" 的值。
    • 如果 "score_3d_edges" 值很低,请在调用 find_surface_model 时增加参数 "pose_ref_scoring_dist_rel" / "pose_ref_scoring_dist_abs" 的值。这可能是由于场景中对象的三维边缘有轻微变形,或者点云在靠近三维边缘的地方有轻微噪声。
    • 如果 "score_2d_edges" 非常低,请检查设置的相机参数和相机姿态是否正确。为此,请将模型投射到二维强度图像中。如果场景中的对象有轻微变形,请增加 find_surface_model_image 的参数 "max_deformation" 值。