2D到3D视频转换(也称为2D到立体3D转换立体转换)是将2D(“平面”)胶片转换为3D形式的过程,几乎在所有情况下都是立体声,因此它是创建图像的过程。每个眼睛来自一个2D图像。

概述[ 编辑]

2D到3D转换将双目视差深度提示添加到大脑感知的数字图像,因此,如果正确完成,与2D视频相比,在观看立体视频的同时极大地改善了沉浸效果。然而,为了获得成功,转换应该以足够的准确性和正确性进行:原始2D图像的质量不应该恶化,并且引入的视差提示不应该与大脑用于深度感知的其他提示相矛盾。如果正确彻底地完成,转换产生的质量与“原生”立体视频质量相似的立体视频,以立体声拍摄并在后期制作中进行精确调整和对齐。[1]

可以宽松地定义两种立体声转换方法:用于电影和高质量3DTV的高质量半自动转换,以及用于廉价3DTVVOD和类似应用的低质量自动转换。

重新渲染计算机动画电影[ 编辑]

如果原始数据仍然可用,则通过添加第二虚拟相机,可以在立体3D中重新渲染利用3D模型制作的计算机动画 2D电影。这在技术上不是转换; 因此,这种重新渲染的胶片具有与最初在立体3D中制作的胶片相同的质量。这种技术的例子包括重新发行玩具总动员玩具总动员2。重新审视这两部电影的原始计算机数据需要四个月,以及另外六个月的时间来添加3D。[2]然而,由于成本,所需时间,缺乏熟练资源或缺少计算机数据,并非所有CGI影片都会重新渲染以进行3D重新发布。

重要性和适用性[ 编辑]

随着3D中发行的电影的增加,2D到3D转换变得更加普遍。大多数非CGI立体3D大片完全或至少部分地从2D镜头转换。甚至“ 阿凡达”也包含几个以二维拍摄的场景,并在后期制作中转换为立体声。[3]以2D而不是立体声拍摄的原因是金融,技术和艺术:[1][4]

  • 立体后期制作工作流程要复杂得多,而且不像2D工作流程那样完善,需要更多的工作和渲染。
  • 专业的立体钻机比传统的单筒式摄像机昂贵且笨重。有些镜头,特别是动作场景,只能用相对较小的2D相机拍摄。
  • 立体相机可以在立体图像程序代写https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail中引入各种不匹配(例如垂直视差,倾斜,色移,反射和不同位置的眩光),无论如何都应该在后期制作中修复,因为它们会破坏3D效果。该校正有时可能具有与立体声转换相当的复杂性。
  • 立体相机可以背叛拍摄过程中使用的实际效果。例如,“指环王”电影三部曲中的一些场景是使用强制视角拍摄的,以允许两个演员看起来是不同的物理尺寸。以立体声拍摄的同一场景将揭示演员距离相机的距离不同。
  • 就其本质而言,立体相机限制了相机与拍摄对象的距离,并且仍然提供可接受的立体声分离。例如,拍摄建筑物侧面的场景的最简单方法可能是使用变焦镜头在相邻建筑物的街对面使用相机装备。然而,虽然变焦镜头将提供可接受的图像质量,但立体声分离在这样的距离上几乎为零。

即使在立体拍摄的情况下,也经常需要转换。除了上面提到的难以拍摄的场景之外,还存在立体视图中的不匹配太大而无法调整的情况,并且执行2D到立体声转换更简单,将其中一个视图视为原始2D源。

一般问题[ 编辑]

不考虑特定算法,所有转换工作流程都应解决以下任务:[4][5]

  1. “深度预算”的分配 - 定义允许的视差或深度的范围,什么深度值对应于屏幕位置(所谓的“会聚点”位置),屏幕外效果的允许距离范围和背后 - 屏幕背景对象。如果立体对中的对象在两只眼睛的位置完全相同,则它将出现在屏幕表面上,并且它将处于零视差。屏幕前方的物体被称为负视差,并且屏幕后面的背景图像处于正视差。左眼图像和右眼图像的对象位置存在相应的负或正偏移。
  2. 根据场景类型和动作控制舒适的视差 - 过多的视差或相互冲突的深度线索可能会导致眼睛疲劳和恶心的影响
  3. 填充未覆盖区域 - 左视图或右视图图像显示来自不同角度的场景,并且原始2D图像中由前景覆盖的对象或整个对象的部分应在立体对中可见。有时背景表面是已知的或可以估计的,因此它们应该用于填充未覆盖的区域。否则,未知区域必须由艺术家填写或修复,因为无法进行精确重建。

高质量的转换方法还应该解决许多典型问题,包括:

  • 半透明物体
  • 思考
  • 模糊半透明对象边框 - 例如头发,毛发,前景离焦对象,薄对象
  • 胶片颗粒(真实的或人造的)和类似的噪音效果
  • 场景快速不稳定
  • 小颗粒 - 雨,雪,爆炸等。

质量半自动转换[ 编辑]

基于深度的转换[ 编辑]

大多数半自动立体声转换方法使用深度图和基于深度图像的渲染。[4][5]

该想法是为每个帧或一系列同质帧创建称为“ 深度图 ” 的单独辅助图片,以指示场景中存在的对象的深度。深度图是具有与原始2D图像相同尺寸的单独灰度图像,具有各种灰度阴影以指示帧的每个部分的深度。虽然深度映射可以在视频中产生相当强大的3D对象幻觉,但它本身不支持半透明对象或区域,也不允许明确使用遮挡,因此这些和其他类似问题应通过单独处理方法。

 

深度图的一个例子

 

从单视图或多视图深度图或轮廓生成和重建3D形状[6]

基于深度的转换方法的主要步骤是:

  1. 深度预算分配 - 场景中的总深度以及屏幕平面的位置。
  2. 图像分割,遮罩或遮罩的创建,通常通过rotoscoping。应隔离每个重要的表面。详细程度取决于所需的转换质量和预算。
  3. 深度图创建。应为每个孤立的表面分配深度图。单独的深度图应该组成场景深度图。这是一个迭代过程,需要调整对象,形状,深度以及立体声中间结果的可视化。深度微浮雕,3D形状被添加到最重要的表面,以防止立体图像看起来像刚刚设置在不同深度的平面图像的组合时的“纸板”效果。
  4. 基于2D +深度的立体声生成以及任何补充信息,例如干净的板,恢复的背景,透明度地图等。当过程完成时,将创建左右图像。通常将原始2D图像视为中心图像,从而生成两个立体视图。然而,一些方法提出将原始图像用作一只眼睛的图像并且仅生成另一只眼睛的图像以最小化转换成本。[4]在立体声生成期间,原始图像的像素根据深度图,最大选择视差和屏幕表面位置向左或向右移位。
  5. 重建和绘画未被立体声发生器填充的任何未覆盖区域。

立体声可以以任何格式呈现以供预览,包括立体照片

耗时的步骤是图像分割/旋转扫描,深度图创建和未覆盖区域填充。后者对于最高质量的转换尤为重要。

有各种自动化技术用于深度图创建和背景重建。例如,自动深度估计可用于生成特定帧和镜头的初始深度图。[7]

从事这种工作的人可能被称为深度艺术家。[8]

多层次[ 编辑]

深度映射,多层次的发展通过引入几层灰度深度掩模来实现有限的半透明度,从而解决深度映射的局限性。与简单技术类似,[9]多层次涉及将深度图应用于平面图像的多个“切片”,从而更好地近似深度和突出。每帧单独处理的层数越多,3D幻觉的质量就越高。

其他方法[ 编辑]

3D重建和重新投影可以用于立体声转换。它涉及场景3D模型创建,原始图像表面的提取作为3D对象的纹理,最后,从两个虚拟相机渲染3D场景以获取立体视频。对于具有静态刚性物体的场景,例如具有建筑物的内部镜头,内部镜头,但是具有非刚体和柔和模糊边缘的问题,该方法足够好。[3]

另一种方法是设置左右虚拟摄像机,既偏离原始摄像机,又分割偏移差异,然后绘制出孤立对象和字符的遮挡边缘。基本上清洁电镀几个背景,中间地面和前景元素。

双眼视差也可以从简单的几何形状导出。[10]

自动转换[ 编辑]

动作深度[ 编辑]

可以使用不同类型的运动自动估计深度。在相机运动的情况下,可以计算整个场景的深度图。此外,可以检测物体运动,并且可以为运动区域分配比背景更小的深度值。遮挡提供有关移动表面的相对位置的信息。[11][12]

焦点深度[ 编辑]

这种类型的方法也称为“离焦深度”和“模糊深度”。[11][13]关于“离焦深度”(DFD)方法,深度信息是基于所考虑对象的模糊量来估计的,而“从焦点深度”(DFF)方法倾向于比较深度信息的锐度。对不同焦距拍摄的一系列图像进行对象,以找出它与相机的距离。DFD仅需要两个或三个不同的焦点才能正常工作,而DFF至少需要10到15个图像,但比前一个方法更准确。

如果在处理过的图像中检测到天空,则还可以考虑到除了朦胧之外的更远的物体由于厚的空气层而应该更加去饱和并且更蓝。[13]

透视深度[ 编辑]

该方法的想法是基于这样的事实:平行线,例如铁轨和路边,似乎与距离会聚,最终到达地平线上的消失点。找到这个消失点给出了整个图像的最远点。[11][13]

线条汇聚越多,它们看起来就越远。因此,对于深度图,两个相邻消失线之间的区域可以用梯度平面近似。

2D到3D视频转换 三维重建的更多相关文章

  1. opengl中场景变换|2D与3D互转换(转)

    opengl中场景变换|2D与3D互转换 我们生活在一个三维的世界——如果要观察一个物体,我们可以: 1.从不同的位置去观察它.(视图变换) 2.移动或者旋转它,当然了,如果它只是计算机里面的物体,我 ...

  2. css3的2D和3D的转换

    一:2D转换: 通过 CSS3  transform转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. 2D移动:translate().使用translate()函数,你可以把元素从原来的位置移 ...

  3. 开源|如何使用CNN将视频从2D到3D进行自动转换(附源代码)

    http://www.sohu.com/a/128924237_642762 全球人工智能 文章来源:GitHub 作者:Eric Junyuan Xie 它是如何运行的? 在运行代码之前,请先根据官 ...

  4. 单图像三维重建、2D到3D风格迁移和3D DeepDream

    作者:Longway Date:2020-04-25 来源:单图像三维重建.2D到3D风格迁移和3D DeepDream 项目网址:http://hiroharu-kato.com/projects_ ...

  5. 论文翻译——Rapid 2D-to-3D conversion——快速2D到3D转换

    https://blog.csdn.net/qq_33445835/article/details/80143598  目前想做一个关于2D转3D的项目,由于国内资料比较少而且大部分都是基于国外的研究 ...

  6. Rapid 2D-to-3D conversion——快速2D到3D转换

    https://blog.csdn.net/qq_33445835/article/details/80143598  目前想做一个关于2D转3D的项目,由于国内资料比较少而且大部分都是基于国外的研究 ...

  7. CSS笔记(十二)CSS3之2D和3D转换

    参考:http://www.w3school.com.cn/css3/css3_2dtransform.asp 2D Transform 方法 函数 描述 matrix(n,n,n,n,n,n) 定义 ...

  8. css3动画2D、3D转换

    css3动画的2D.3D转换代码: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  9. CSS3 2D、3D转换

    2D转换方法:transform().rotate().scale().skew().matrix() 3D转换方法:rotateX().rotateY() 1.示例代码 <!DOCTYPE h ...

随机推荐

  1. 用PHP写PHP7扩展,超级简单对吧!

    [图片打不开,请用代理] 介绍: PHP扩展是编译库,它允许在您的PHP代码中使用特定的功能(主要是使用C编写的php扩展). 例如,您需要使用PHP使用SQLite3,您可以实现自己的方法和功能来连 ...

  2. WCF与Web API在应用上的选择

    在最近发布的Visual  Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作为ASP.NET MVC  4的一部分,ASP.NET Web ...

  3. OpenWrt 中查看 Flash RAM CPU 信息

    OpenWrt 中查看 Flash RAM CPU 信息 来源  https://blog.csdn.net/mcusun2000/article/details/51130434 硬件: QCA95 ...

  4. 从汇编语言写到c语言

    好了,言归正传,裸机程序没有操作系统的支持,想要用c语言,就只能先使用汇编语言手动配置c语言需要的环境,听起来很高大上,其实需要做的很简单:指定堆栈指针的值就好. 那么完成这个简单的事情之前,先要明白 ...

  5. tp5隐藏入口文件(基于nginx)

    location / {             try_files $uri $uri/ /index.php?$query_string; #这项配置解决访问根目录以外路径报404的错误      ...

  6. OSI7层模型和网络排错、网络安全

    1.OSI7层模型和网络排错 7层模型和网络排错 序号 层 网络排错举例 措施 1 物理层故障 查看链接状态发送和接收数据包 2 数据链路层故障 MAC冲突ADSL欠费网速没法协商一致计算机连接到错误 ...

  7. Linux命令——taskset

    参考:Linux taskset Command Tutorial for Beginners (with Examples) 简介 taskset命令用于设置进程(或 线程)的处理器亲和性(Proc ...

  8. Debug与Release版本的区别

    Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当 ...

  9. SpringCloud学习心得—1.3—Eureka与REST API

      SpringCloud学习心得—1.3—Eureka与REST API Eureka的REST API接口 API的基本访问 Eureka REST APIEureka 作为注册中心,其本质是存储 ...

  10. raw镜像与qcw2镜像互相转换

    qcow2是最小使用,raw是置零使用 . raw格式是原始镜像,会直接当作一个块设备给虚拟机来使用,至于文件里面的空洞,则是由宿主机的文件系统来管理的,linux下的文件系统可以很好的支持空洞的特性 ...