您是否曾遇到过物体因为极小的损坏(例如物体上的小钻孔)而失去对称性的情况?
您基于表面的 3D 匹配是否因此而无法找到正确的方向?
不必担心!
自 HALCON 20.05 开始,我们引入了参数“train_self_similar_poses”,能帮助您更好地生成自相似、姿态近乎对称的物体的表面模型。
让我们来看看这一参数的出色表现:
如果没有这个参数,所有的物体都会被找到,但却无法保证方向的正确性。启用此参数后,所有方向均可得到校正。
其用法很简单,您只需在 create_surface_model() 中将参数“train_self_similar_poses”设置为“true”,并在 find_surface_model() 中与“use_self_similar_poses”一起使用。如果您对自动计算出的相似姿态不满意,还可以通过 set_surface_model_param(SurfaceModelID,“self_similar_poses”,SelfSimilarPoses)设置自己的相似姿态。您还可以使用支持此功能的其他算子,例如 fine_surface_model_pose()、refine_surface_model_pose_image()、find_surface_model_image()。
更多参数用法,请参考我们的标准示例 find_surface_model_self_similar_poses.hdev!
基于视图的分数
使用基于表面的匹配时,只有一小部分 3D 对象模型可见,这会导致分数较低,从而给MinScore 的设置带来困难。
在 HALCON 19.11 中,我们引入了参数“train_view_based”,该参数能通过基于表面的匹配和细化来训练基于视图的分数计算。在计算基于视图的分数时,使用的是匹配点与来自某个视点的最大潜在可见模型点数的比率,而不是匹配点与总点数的比率。
在基于视图的分数未激活的情况下,匹配分数很低,因为不可见的模型点数也会被算入最终匹配分数。启用基于视图的分数后,分数会更高,真实度也更高。为了使用基于视图的分数计算,在创建基于表面的模型时,需要将“train_view_based”设置为“true”,并在 find_surface_model() 中将“use_view_based”设置为“true”。如果在创建模型时禁用了“train_view_based”,则默认值为“false”,否则为“true”。
关于此参数的更多用法,请参考标准示例 find_surface_model_view_based_score.hdev! |