在过去的几周里,我一直在从事一个关于 3D 对象识别的项目。我对点云处理和 PCL 很陌生,所以我尝试了基于对应分组的对象识别教程(https://pcl.readthedocs.io/projects/tutorials/en/master/correspondence_grouping.html#correspondence-分组)。我使用体素网格作为关键点、SHOT 描述符和 Hough Voting 作为对应分组方法。我正在使用自己的点云,并且我已经使用这些参数已经有一段时间了。对于我的一些点云,结果非常好。我已经上传了使用的模型(Model.pcd)和两个场景(Scene1.pcd、Scene1.png 和 Scene2.pcd、Scene2.png)以及它们对应的视觉结果(Recognition1(_View2).png 和 Recognition2(_View2)。 png)在以下 zip 文件中:https ://www.mediafire.com/file/ice0d9qrjml6xik/3D-Object-Recognition.zip/file
模型和场景点云没有颜色,为了更好地可视化,它们显示在 png 文件中的多边形网格中。
模型
场景 2
这是场景 2 的结果(场景云为绿色,找到的模型为红色)。
场景 1
虽然场景 2 的结果非常好,但应用相同参数的场景 1 会变得更糟。我现在可以更改参数,以便为第二个场景获得更精确的结果。但与此同时,第一个例子的结果会变得更糟。所以我还没有找到可以对我的所有场景进行良好对象识别的参数。我必须单独更改每个场景的参数。除此之外,当我旋转模型或更改模型位置时,结果会有所不同。所以这个工具链对我来说似乎很不稳定。
您对如何提高对象识别有任何想法吗?只是我还没有找到合适的参数吗?我可以在我的工具链中添加一些东西或改变一些东西吗?PCL 中是否有其他算法可以提供更好的结果?我的点云不是很适合这项任务吗?
干杯:)