使用网络摄像头对对象进行3D表示

时间:2012-03-30 12:32:11

标签: image image-processing 3d webcam

是否可以通过使用网络摄像头捕获许多不同的角度来制作对象的3D表示?如果是,那怎么可能?图像处理是如何完成的?

我的计划是使用网络摄像头对人进行3D表示,然后从3D表示中,我将能够告诉该人的重要统计数据。

4 个答案:

答案 0 :(得分:2)

正如巴特所说(但没有作为实际答案发布),这完全有可能。

您感兴趣的研究课题通常被称为多视图立体声或类似的东西。

基本思想围绕使用两个(或更多)图像之间的点对应解决,然后尝试找到最佳匹配的相机位置。找到位置后,您可以使用立体算法将图像点反投影到3D坐标系中并形成点云。

从那时起,您可以进一步处理它以获得您正在寻找的测量结果。

如果您对这个主题完全陌生,那么您可以期待一些有趣的阅读!

Bart提出了Hartley和Zisserman的多视图几何,这本书确实非常好。

答案 1 :(得分:0)

Bart和Kigurai指出,这个过程已经在“立体声”或“多视图立体声”技术的标题下进行了研究。为了能够从一组图片中获取3D模型,您需要执行以下操作:

a)您需要知道相机的“内部”参数。这包括相机的焦距,图像的主要点以及图像中的径向失真。 b)您还需要了解每个摄像机相对于彼此的位置和方向或“世界”坐标系统。这被称为相机的“姿势”。

有一些算法可以执行(a)和(b),这些算法在Hartley和Zisserman的“多视图几何”一书中有所描述。或者,您可以使用Noah Snavely的“Bundler”http://phototour.cs.washington.edu/bundler/软件以非常强大的方式执行相同的操作。

获得相机参数后,您基本上可以知道世界中的3D点(X,Y,Z)如何映射到照片上的图像坐标(u,v)。您还知道如何将图像坐标映射到世界。您可以通过在从不同视点拍摄的照片中的一张照片上搜索每个像素的匹配来创建密集点云。这需要二维搜索。您可以通过将搜索设置为1维来简化此过程。这被称为“整顿”。你基本上拍摄两张照片并进行转换,以便它们的行对应于世界上的同一行(简化语句)。现在您只需要搜索图像行。

在Hartley和Zisserman中也可以找到一种算法。

最后,您需要根据某种衡量标准进行匹配。关于“立体匹配”的文献很多。使用的另一个词是“视差估计”。这基本上是在一张照片上搜索像素(u,v)与另一张照片上的匹配(u,v')的匹配。匹配后,它们之间的差异可用于映射回3D点。

您可以使用Yasutaka Furukawa的“CMVS”或“PMVS2”软件来执行此操作。或者如果你想自己试验,openCV是一个开源计算机视觉工具箱,可以完成许多所需的子任务。

答案 2 :(得分:-1)

这可以通过两个网络摄像头以与眼睛相同的方式完成。它被称为立体视觉。 看看这个:

http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html

获得3D数据的经济实惠的选择是Kinect相机系统。

答案 3 :(得分:-1)

也许不是你希望得到的答案,但是微软的Kinect正在做那件事,有一些开源驱动程序允许你将它连接到你的windows / linux盒子。