如何从一组图像中重建3D结构?


24

我有一组以以下方式分组的轮廓(线段集):

小号一世={一世0一世π4一世2π4一世7π4}

哪里

  • 表示一个具体物体的照片序列。 小号一世
  • 表示一张图像,具有 j t h的视角( j = 0表示正视图)。 一世ĴĴŤHĴ=0

下面是示例(后视图): 一世π

在此处输入图片说明

如何在给定的重建对象的3d结构?小号一世

有人可以给我指出一些论文,甚至给我一些关键词吗?我知道有很多文章都是用点云计算的,依此类推,但是当我用线操作时,这些文章就不起作用了。

Answers:


20

实际上,这是一个很难的话题。经典的多视图3d重建首先要处理点匹配,即在每个图像上找到相同的点。给定每个图像的相机(视图)参数,可以重建原始3d点。(使用激光或投影仪可以照亮场景,因此可以相对容易地进行匹配。)

该领域的圣经是Hartley和Zisserman撰写的《计算机视觉中的多视图几何》

书中有关于三焦点张量的部分,这是3个视图之间的多线性约束。它不仅包含点,还包含线对应约束。它可以很好地用于建筑物重建。

因此,您的轮廓应该首先匹配,并且可以在知道相机参数的情况下进行重构(本书中也涵盖了相机校准)。然后,您将在3d中拥有轮廓,仅此而已。对于真实表面,必须进行密集点匹配。尽管我提到的张量看起来不错,但它用于直线,而且我确信现代汽车到处都有曲线。

我不知道您是如何得到这些轮廓的,但是看到您发布的图像时,我对该算法的鲁棒性持怀疑态度,因此重建效果很差。

我想到的另一种方法是视觉船体或空间雕刻。轮廓算术也应完成。在每个轮廓上运行该方法即可获得模型。


π/4

1
我看不到如何通过投影获得轮廓不清晰的3d点。有3d建模技术可以处理在样条线之间拉伸的NURBS曲面,但是您必须为此提供特征样条线。(也许3d艺术家可以在这种情况下定义特征这个词,但我却不能。)同样,我认为从轮廓形状(与视觉船体相同)可以为您构建一个粗糙的模型。之后,您可以根据图像对其进行优化。但是没有标准的方法。
巴林特·福多

2

尽管Fodor Hartley和Zisserman提到了这本书,但绝对值得一读,它更具有一般性理解,而不是实用算法。这已经过时了,这些方法效率不高。关于您的问题-问题表述本身很少见。正如Fodor所提到的,从匹配特征点开始,而不是从轮廓开始要容易得多。对于点,关于可用现代方法的绝对最佳概述是Triggs撰写的论文“束调整-现代综合”,但是在使用束调整之前,您将使用SIFT或模板匹配之类的图像来匹配相应的点。Google 3D重建有关一些完整方法的示例。您也可以使用开源软件包,有几种可用的软件包。

如果您坚持使用轮廓,尽管仍然(几乎)难以解决,但这个问题要困难得多。首先,您将在所有图像中识别并匹配相应的轮廓,然后编写成本函数-每个匹配轮廓组的重投影误差之和作为每个图像的相机位置和方向的函数。之后,找到最小化此成本函数的一组摄像机位置。此过程的每个步骤都非常困难,没有像Triggs这样的概述。您可以在Google上搜索一些相关文章,将其作为术语“轮廓”,“轮廓匹配”,“束调整”,“投影误差”,“ 3D重建”的组合。


虽然处理类似SIFT的功能显然要容易得多,但存在一个问题,即我领域的SIFT经常会在光滑的汽车表面上捕获阴影/反射,因此使用SIFT时,我会获得大量噪声特征,这些噪声特征并不依赖于实际汽车形状,因此我的准确性下降。
om-nom-nom

如果您知道自己在开车,则可以尝试基于模型的方法。参数化通用汽车模型,并尝试使用所有图像像素使其适合图片。根据相机参数和汽车型号参数编写成本函数,并将其最小化。它可能起作用(或可能不起作用)-您似乎遇到了非常困难的问题。
mirror2image 2011年

不幸的是,我不明白您的建议。请提供一些示例(可能是外部文章,相关工作或类似内容)。
om-nom-nom

我的意思是主动形状模型en.wikipedia.org/wiki/Active_shape_model或类似的东西
mirror2image 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.