将2D视频转换为3D视频的算法是否存在?

15

有没有将2D视频转换为3D视频的算法(用眼镜观看)?

(就像将《阿凡达》转变为IMAX 3D体验一样。) 或者至少将其转变为适合进行一些3D观看的视频,如下所示:

Alt text
(来源: 3dglassesonline.com)

或者

Alt text
(来源: 3dglassesonline.com)


可以使用法线来创建类似于3D体验的东西吗? - Rella
这个想法就像是为旧时黑白电影自动上色的方法,非常不错。 - darlinton
10个回答

15

嗯,斯坦福大学确实有一种算法将2D照片转换为3D模型。我想,对于电影来说应该更容易,因为你有多张照片而不仅仅是一张,所以通过比较相邻帧,可以提取关于深度的更多信息。

可以说,结果永远不会像从一开始就在3D中渲染/拍摄电影时那么好。


1
类似的研究可以在这里找到:http://www.mpi-inf.mpg.de/~thormae/paper/Siggraph08_orthoimage.pdf - Dirk Vollmar

4

它通常无法正常工作的原因非常简单:假设你有一个场景,墙上有一个窗户,里面显示着一个海滩,旁边是一张照片,展示了一个墙上有窗户显示海滩的场景。算法怎么区分这两者呢?你如何检测现实中的深度和仅仅是平面照片之间的区别呢?


你的例子非常完美。很容易解释为什么这永远无法完美地运行。 - Beska

4

不,3D视频需要额外的信息(深度),而2D视频中根本没有这些信息。

如果你有一个场景的2D渲染图(例如《玩具总动员》中的场景),那么制作3D电影就很容易——你只需要改变场景的观看角度并重新渲染即可。


s/2D渲染/3D场景描述/ - Joey
3
人类可以在观看二维电影时判断深度,所以信息是存在的。只是很难编写一个能够提取这种深度信息的算法。 - Niki

3
你应该了解偏振眼镜和红蓝眼镜之间的区别。红蓝眼镜的3D效果很容易实现。你只需要将两张相隔几英寸的图片重叠在一起(有点像我们的眼睛布局),就能产生3D效果。在使用Adobe Photoshop制作立体视觉图像中有关于如何操作的教程。
至于偏振眼镜的效果,这就要难一些了。如果你去电影院戴上偏振眼镜看3D电影,那么你就会看到真正的3D效果。它的原理是使用两个投影仪。一个投影仪以一种极化方式投影电影,而第二个投影仪则以另一种极化方式投影电影。这两个图像彼此重叠,所以当你戴上3D偏振眼镜时,就会呈现出3D效果。
但是,在电视或计算机显示器上实现这个效果并不容易。你的电视或显示器必须同时投射两个图像。由于现在3D技术越来越流行,市场上出现了一些可以直接显示3D效果而不需要投射两个图像的3D电视和显示器。以下是它们的工作原理:
一般的电脑屏幕或电视以60 Hz的频率刷新。这意味着每秒钟刷新60次,您看到的图像正在被刷新。因为这速度非常快,人眼看不到闪烁。3D电视和显示器以120 Hz刷新。偏振图像以每秒120次的速度交替出现,但由于有两个,它看起来是每秒60次,这就产生了3D效果。
希望这能帮助您了解一点。
回答您的问题,是的,您可以创建3D视频,但需要3D显示器和3D电视才能观看。

这是回答一个不同的问题 - 3D电影是如何制作的。而提问的问题是如何训练计算机通过解释人类用来估计深度的相同类型的视觉线索,将现有的2D电影转换为3D。 - tpkaplan

3

不完全是这样。算法应该如何理解场景内容并从中推断深度信息呢?请记住,3D视频需要深度信息。否则就无法知道两个帧部分要偏移多少。

您可以尝试将各种深度分配给各种程度的失焦,但我怀疑是否会产生可用的结果。


3
没有特定的算法,但是可以做到。这非常困难。现在有人正在解决这个问题。涉及的算法非常具有挑战性,它们不总是正确地工作,任何完整的解决方案都需要大量的处理能力。任何解决方案起初都将是离线的(而不是实时的)。
3D感知与立体光学并没有那么紧密地联系在一起。如果您认为您需要两只眼睛才能看到3D效果,那就试着戴上眼罩四处走动吧,你会发现你仍然可以看到3D效果。目前有一些程序,包括一些商业软件包,可以从一组2D图片创建3D模型而无需立体相机。一些在线运行的程序可以在看到更多内容时构建更详细的模型。
仅仅想想就可以想到一些特别是电影方面的问题。例如,我可以想象使用错误深度渲染的马特。使用像Apple Motion这样的软件制作的视频可能会出现奇怪的伪影。

2

2
也许会有一种算法来模拟立体视图,但它不可能完全相同。原因很简单,在2D视频中不仅缺少深度信息(这对于获得立体视频是不够的),而且缺少从另一个视角可见的隐藏表面。每个人都可以认为深度信息可以从可用信息中推断出来,这是正确的。但是,由于缺少信息,无法精确地获得良好的立体效果。此外,我听说过一个系统,它可以从指向同一目标的8(八!)摄像头中提取准确的3D模型。它非常准确,可以正确地模拟衣物的移动。但是,这是通过处理8(八!)个2D视频完成的。如何只使用一个2D视频实现相同的结果呢?想要达到所需的结果,关键在于信息的可用性,在这种情况下(依我之见),信息不足。尽管如此,尝试从2D视频模拟立体效果是可能的,但需要进行艰苦的工作和长时间的处理,并且结果质量低于原始的立体视频。我想提醒大家,3D视图是由我们的大脑生成的。眼睛只能捕捉2D图像,我们的大脑通过处理两个图像可以生成所看到物体的深度视图。

2
在今年的CES展会上,Toshiba展示了cell-TV显示屏,并声称它能够将2D电视信号转换为3D。我不知道它是否能产生良好的效果或者他们使用了什么算法,但如果他们是真的,那么应该有一种算法可以实现这一点。
但不幸的是,我不知道这该如何实现。

2

现有算法可以从2D图像中提取3D形状,例如这里这里。您可以从每个视频帧中提取形状,甚至使用多个帧来通过检测其运动来更好地理解形状。

然而,很可能结果远远达不到3D电影内容的标准质量。


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