使用网络摄像头制作物体的三维表示

3

使用网络摄像头捕捉物体的多个不同角度,能否制作出一个三维模型呢?如果可以,它是如何实现的,图像处理又是怎么做的呢?

我的计划是使用网络摄像头制作一个人的三维模型,然后从三维模型中获取这个人的身体数据。


3
是的,这完全是可行的,但在此解释所有细节就有点过头了。如果你真的感兴趣,书籍《Multiple View Geometry》将是一本很好的阅读材料。 - Bart
4个回答

2
如Bart所说(但没有发布实际答案),这是完全可能的。
您感兴趣的研究主题通常被称为多视角立体或类似的名称。
基本思想是使用两个(或更多)图像之间的点对应关系,然后尝试找到最佳匹配的摄像机位置。当找到位置时,您可以使用立体算法将图像点反投影到三维坐标系统中并形成点云。
从那个点云中,您可以进一步处理它以获得您正在寻找的测量值。
如果您完全不了解该主题,则有一些迷人的读物等着您!
Bart提出了Hartley和Zisserman的《多视几何》,这是一本非常好的书。

0
如Bart和Kigurai所指出的那样,这个过程已经在“立体”或“多视图立体技术”的标题下进行了研究。要从一组图片中获得3D模型,您需要执行以下操作:
a)您需要知道相机的“内部”参数。这包括相机的焦距,图像的主点以及考虑图像中的径向畸变。 b)您还需要知道每个相机相对于彼此或“世界”坐标系的位置和方向。这被称为相机的“姿态”。
有算法可以执行(a)和(b),这些算法在Hartley和Zisserman的“多视图几何”书中有描述。或者,您也可以使用Noah Snavely的“Bundler”软件来以非常强大的方式完成同样的事情。http://phototour.cs.washington.edu/bundler/

一旦您获得了相机参数,您基本上就知道世界中的三维点(X,Y,Z)如何映射到照片上的图像坐标(u,v)。您还知道如何将图像坐标映射到世界上。通过在从不同视角拍摄的照片中搜索每个像素在一个照片上的匹配项,可以创建密集的点云。这需要进行二维搜索。您可以通过使搜索变为一维来简化此过程。这称为“校正”。您基本上需要取两张照片并将它们转换,以便它们的行对应于世界上的同一条线(简化语句)。现在,您只需要沿着图像行进行搜索。

这方面的算法也可以在Hartley和Zisserman中找到。

最后,您需要根据某些度量进行匹配。有很多关于“立体匹配”的文献。另一个使用的词是“视差估计”。这基本上是在一张照片上搜索像素(u,v)与另一张照片上的其匹配项(u,v')的匹配项。一旦您找到匹配项,它们之间的差异可以用于映射回三维点。

你可以使用古川泰隆的“CMVS”或“PMVS2”软件来完成这个任务。或者如果你想自己尝试,openCV是一个开源计算机视觉工具箱,可以完成许多所需的子任务。

-1

嗨,谢谢您的回复。我的计划是使用网络摄像头制作一个人的3D模型,然后通过这个3D模型,我将能够获取到这个人的生命数据。这可行吗? - joanna
你说的“vital statistics”是什么意思? - Herr von Wurst
正如所述,只要从不同的位置捕获多个图像,就可以使用一台相机完成。 - Hannes Ovrén

-1
也许这不是你想要的答案,但微软的Kinect正在做这件事情,有一些开源驱动程序可以让你将其连接到你的Windows/Linux系统。

你好,感谢回复。我的计划是使用网络摄像头制作一个人的3D模型,然后从这个3D模型中获取该人的生命体征数据。这是否可行? - joanna
1
Kinect并非以立体视觉的方式工作,而是使用结构光模式来获取距离数据。 - Hannes Ovrén

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接