使用对象CAD

时间:2016-11-30 16:39:26

标签: opencv computer-vision robotics

我正在研究一种商业产品,我需要在单个2D图像中估计已知3D CAD(封闭的2歧管三角形网格)的6DOF姿势。一般来说,这是一个难题,但在我们的运营条件下,我们可以施加以下约束来简化问题:

  1. CAD对象是众所周知的,我们的目标并非像识别所有椅子的类别一样。
  2. 我们可以让用户将相机大致定位到特定姿势(距离物体的距离,一般方向+/- 15度等)。
  3. 如果可能的话,我们只会使用图像的边缘(如Canny)来查找和匹配从给定位置查看的对象。
  4. 这将用于人造物体(管道,阀门,连接处等)的工业环境中,没有太多纹理。
  5. 所有这些限制使我认为即使是相对陈旧且有点基本的技术也可以起作用。例如,在Sonka和al。第12.3.2节Goad的算法解释了Goad C 1986年的一篇论文“基于快速3D模型的视觉”,它可以在我们的假设下以其自上而下的“假设 - 验证”方法相对较好地工作。 我也知道工业视觉和机器人社区已经解决了这个问题及其推广很长一段时间,因此必然会有一些可用的东西。

    有人知道解决这个问题的商业上可用的实现(如OpenCV等)吗?

    更具体地说:

    • 我不是在寻找需要离线学习阶段的深度学习内容,其中包含来自我们CAD模型的数千个视点。
    • 我不是在寻找依赖深度传感器的RGB-D技术。由于CAD是无色的,颜色也无关紧要。
    • 研究时尚的“旧”技术是可以的,甚至是首选,因为我们将在低性能计算机上运行。
    • 理想情况下,使用C或C ++(可能取决于OpenCV)。
    • 可在商业上使用(在BSD,MIT,BOOST等下获得许可),而不是GPL。

    提前感谢任何人提供的任何线索。

1 个答案:

答案 0 :(得分:0)

我会尝试创建CAD模型的许多渲染图像并减去真实图像,并尽量减少差异。

要最小化搜索空间,您可以考虑首先创建前景对象的边界框,如果可行的话。