我有一组轮廓(一组线段)按以下方式分组:
在哪里
- 表示一个具体对象的照片序列。
- 表示图像,具有个视角(表示前视图)。
这是的示例(后视图):
如何用给定的重建对象的 3d 结构?
有人可以指点我一些论文甚至给我一些关键字吗?我知道有很多文章都使用点云等进行操作,但是当我使用线条操作时,这些文章不起作用。
我有一组轮廓(一组线段)按以下方式分组:
在哪里
这是的示例(后视图):
如何用给定的重建对象的 3d 结构?
有人可以指点我一些论文甚至给我一些关键字吗?我知道有很多文章都使用点云等进行操作,但是当我使用线条操作时,这些文章不起作用。
其实这是一个相当难的话题。经典的多视图 3d 重建首先处理点匹配,即在每个图像上找到相同的点。给定每个图像的相机(视图)参数,可以重建原始 3d 点。(使用激光或投影仪可以照亮场景,因此可以相对轻松地进行匹配。)
该领域的圣经是Hartley 和 Zisserman 的计算机视觉中的多视图几何
书中有一节是关于三焦张量的,它是 3 个视图之间的多线性约束。它不仅包含点对应约束,还包含线对应约束。它可以很好地用于建筑改造。
所以你的轮廓应该首先匹配,也许可以在知道相机参数的情况下重建(相机校准也包含在书中)。然后你将有 3d 的轮廓,但仅此而已。对于真实表面,您必须进行密集点匹配。虽然我提到的张量看起来不错,但它用于直线,我确信现代汽车到处都是曲线。
我不知道你是如何得到这些轮廓的,但看到你发布的图像,我对该算法的鲁棒性持怀疑态度,因此重建效果会很差。
我想到的另一种方法是视觉船体或空间雕刻。还应该进行轮廓数学计算。在每个轮廓上运行该方法,您可以获得模型。
虽然 Fodor Hartley 和 Zisserman 提到的书绝对值得一读,但它更多的是为了一般理解而不是实用算法。它已经过时了,这些方法效率不高。关于您的问题 - 问题表述本身非常罕见。正如 Fodor 所提到的,从匹配特征点而不是轮廓开始要容易得多。在点的情况下,可用现代方法的绝对最佳概述是 Triggs 的论文“Bundle Adjustment - A Modern Synthesis”但是在使用捆绑调整之前,您将使用SIFT或模板匹配之类的方法匹配图像上的对应点。谷歌进行3D 重建有关一些完整方法的示例。你也可以使用开源包,有几个可用的。
如果您坚持使用轮廓,则问题会更加困难,尽管仍然(几乎)难以处理。首先,您将识别并匹配所有图像中的相应轮廓,然后编写成本函数 - 每个匹配轮廓组的重投影误差总和作为每个图像的相机位置和方向的函数。之后找到最小化这个成本函数的相机位置集。这个过程的每一步都极其困难,没有像Triggs这样好的概览。您可以搜索一些相关论文作为术语“轮廓”“轮廓匹配”“捆绑调整”“重投影误差”“3D 重建”的组合。