2D转3D

news/2024/11/28 20:42:01/

(本文部分内容摘选自http://www.cnblogs.com/ImageVision/archive/2012/03/26/2418602.html,http://www.guokr.com/article/145897/

第一,我们先看看所谓的3D和2D最大的区别是什么呢?没错,就是图片的深度!所以所有的工作就是恢复或创造这个深度。这个怎么自然恢复深度绝对是一个很难很难的问题,目前最靠谱的方法可能就是人工标定了。


第二,我们来看看怎么表现这个深度,目前我们知道3D影片格式有类似红蓝,绿蓝之类的(这里就不细细讨论了),还有所谓的偏振左右啊 上下什么的格式。这些网上都有具体的资料,大家回去自己慢慢看。


一  国内外研究现状

三维立体电视,最好的方式是用两台摄像机按照一定角度,同时拍摄当前的场景,然后将这两个同一时刻拍摄的图像整合叠加,就会形成一个肉眼看起来有点错位模糊的图像,我们称这两张图像分别为左图像和右图像。如果配上特制眼镜或者电视屏本身就有相应设计,我们就可以看到立体电视图像了。但是,实际中往往用两台并按一定角度拍摄,有很多困难。因此,实际中多是只有一个图像,想办法来生成另一个对应的图像。


国内关于这方面的文献很少,而且也是很不精确的解法。比如,假设绝大部分的场景图像,都是图像上半部分是远景,下半部分是近景,然后按照从上到下,逐步给图像一个向左或向右的递增位移,但是并不是所有场景都符合这样的情况。另外,还有根据心里和生理因素,给图像加入随即偏移因子的方法,同样也精度不理想。


二 立体图像生成方法

1 图像分割

目前,用一张图像生成另一张图像,比较精确的方法是,用图像分割的方法,把图像中的各个区域取出来,然后再根据图像的深度,对每个部分进行相应位移,这样的图像效果就合情合理了。

图像分割也有很多方法,作者采用的是基于粗糙集理论的原理,效果图如下(左图为纹理图,右图为加了深度分割后得到的图像):

          

          


2 深度图

分割后的图像,并不能直接用来做左图像或右图像。我们还需要根据图像类型,对它每个分割的块赋予一个深度值。一般的,我们可以通过对图像做主直线检测,来判断图像的深度方式。比如第一排图可以检测出一条横线(中间那条路),那么判断它是属于上面远景,下方为近景的类型。这个完全由直线方向来定,如果无法判断时,就默认图像属于上方远景,下方近景类型。


3 分割块的位移

位移公式:


Xc是中间视点的水平坐标,Z是当前像素的深度,f是焦距,tx是瞳孔间距。


4 立体图像生成


调查发现,大约70%的人属于右眼灵敏,20%的属于左眼灵敏,10%的人左右眼都差不多。因此,我们可以将原始图像当做右图像,我们通过分割和深度来生成左图像。


将图3与图4融合之后,就可以生成对应的立体图:


对于电影而言,应用:《泰坦尼克号是怎么从2D转成3D的?》




虽然并不是人人都喜欢3D电影,很多人认为传统电影转换为3D电影的效果,却经常粗制滥造令人失望。詹姆斯·卡梅隆也是这么认为的,但是他决心打破这个偏见,花费了1800万美元将原本已是登峰造极的泰坦尼克号制作成3D电影,于原版播出15年之后再度回归银屏。


简单来说,2D-3D转换技术需要将2D影像的各部分嵌入3D的计算机图形(CG)空间中。要制作出比较协调的自然3D影像,需要数百名工作人员手工进行的大规模调整工作。即便工作量巨大,但一方面可避免购置价格高昂的3D器材,另一方面又可对经典老片进行修补和加工,免去了容颜老去的演员们风采不再、后起小生风韵不足的尴尬,所以2D-3D转换技术获得大批3D电影导演的青睐。即使是直接3D拍摄的电影,也不可避免要用到2D-3D转换技术,比如《阿凡达》。


卡梅隆曾经说过:“在3D转换技术中,最难实现的一点是怎样将其‘以对的方式’来进行转换。”导演需要对每一个场景要营造出怎样的立体视觉效果做出决断,需要确定观众与不同场景物体的“亲密接触”程度,这些对观众的3D观影体验有着至关重要的影响。比如说,怪兽和子弹需要从屏幕里呼啸而出,让观众全身后缩哇呀大叫。而属于背景的场景,则需要“嵌”进屏幕里去,这就需要依靠3D图形学的渲染技术来制造出透视感和距离感。几乎对于影片中的每一帧每一幅图片都要增加这种“前凸后翘”的效果,但是不同场景下所采用的技术又大相径庭,甚至只是拍摄的角度变化了一点,就会带来转换技术上的全盘变动。

而其中主要关注的问题有下面三点:

1. 利用视差形成景深

制作3D效果时,关键一步是要做出景深。其基本技术原理是人眼观察物体时所形成的视差(parallax)。简单来说,视差就是从有一定距离的两个点上观察同一个目标所产生的方向差异。从目标看两个点之间的夹角,叫做这两个点的视差,两点之间的距离称作基线。只要知道视差角度和基线长度,就可以计算出目标和观测者之间的距离。人类正是通过这种方式,感知到观察物体的深度信息。同时,自然界中也有些动物会利用运动视差,依靠自身移动来获得不同的观点。比如,鸽子的两眼视场没有重叠,因此没有立体视觉,但是它们上下摆动头部以获得深度。该方式如图所示,随着观测点从一测移至另一侧,远方物体的移动比近处物体缓慢。


这两种视差处理方式都可以在3D电影拍摄或者转换的技术加以借鉴。


然而,仅仅明确这一点还不够,实际上的3D电影拍摄可不仅仅是摆出来两台立体摄像机就足够了。


首先,导演必须对场景布局做到足够的“胸有成竹”,明确在电影放映的时候,哪些物体“呼之欲出”,那些场景要“推之千里”,以此来确定摄像机的光轴方式、距离差和角度差。可以想象,拍摄团队中必定有这样的剧务,拍摄期间手持一沓草稿纸,画出比上图复杂更多的计算图,以时刻校准两台摄像机的拍摄位置。


在将2D电影转为3D电影,由于原拍摄过程中可能存在剪辑和角度切换,所以首先需要对于每一帧的画面都恢复原拍摄视角,继而确定3D虚拟立体摄像机的位置,一部90分钟左右的电影长达十万多帧图像,计算量和工作量都十分繁复。

其次,转换过程中,要考虑针对于到正负视差的不同处理技术。



正视差是指,两眼视线相交于屏幕后方,即所形成的3D效果时“嵌”到屏幕里的。此时可以简单地认为,两视线基本平行,利用人类两眼的平均瞳距为6.4厘米,则在3D屏幕上,左右两幅图像应该会有约为6.4厘米的位移差。不过,研究表明,多数人脑并不擅长将两幅差异超过2.5%的图像融合为一体,所以对于屏幕宽度小于2.5米的屏幕而言,如果不对两幅图像的位移差加以限制,则很可能无法实现立体成像的效果。所以,根据屏幕宽度的不同,要对正视差的图像进行不同方式处理。


负视差是指,两眼观察时所形成的视线会在屏幕前相交。也就是,感受到的这个物体应该是跑出屏幕靠近观众的。人脑对这种图像的处理限制,要甚于正视差。如果负视差的出现次数过多,深度频率切换过快,一定会引起观影者的不适应。同时,真正好的3D转换效果,必定要考虑到影厅不同位置拥有相同观影体验,无论前排还是后排,都会有同样的负视差效果。


其实,如果直接拍摄一部3D电影,场景可以被事先安排,拍摄角度的变化,视察的变换就不会有频繁的切换,同一画面中的场景遵守相同的深度规则,符合人眼观察物体和人脑处理观察所得的方式。然而,将一部电影转换为3D就完全不一样了,很可能在同一场景中为了实现不同物品的深度效果,会带来冲突的信息。如果这种冲突处理不当,就会引起观影者的极大不适应,为影片效果大打折扣。


2. 为电影画面增加深度信息


在3D电影制作之前,导演需要拥有一个“深度预算”,即为负视差和正视差的范围。控制在深度视差范围内将确保眼疲劳控制到最低限度,这关乎在某时观看2-3小时的电影而非几分钟的节目人眼的舒适度。该范围要求日益严格。例如,英国天空电视台最近对大部分素材规定了2%正视差和1%负视差(以帧宽度的百分比来计量它)的深度预算,短期冲击效应分别不超过4%和2.5%。


一旦导演确定下来理想的深度预算,就可以来设计场景中的深度信息了。


首先,需要将每幅图想转化为一个深度图,如上图所示,黑白色表示景深范围,白色最近黑色最远。最本原也是最粗略的判断方法是,明亮的更近,深色的更远。这是一些可以将2D图片自动转换为假3D场景惯用的手段。


幸运的是,实拍出的电影,凭借于常识,大概可以推断出场景中物体之间的位置关系。所以,对整体场景复原建模之后,再确定每幅画面的拍摄角度,就可以对深度信息了然于胸了。然而,一幅一幅手工增加深度信息,仍是一个很大的工作量。这就是为什么泰坦尼克号3D版本需要450个人员夜以继日地工作才行。


其实,目前的3D制作软件都具有非常出色的目标追踪功能,一旦场景和模型确定之后,绑定摄像机视角,就基本不会出现物体深度信息混乱的情况。然而卡梅隆却不愿意享受这样的便利,他十分苛刻地要求工作人员逐帧检查每幅图像转换效果,有人抱怨称这个过程是“十分让人心烦意乱的,就像是用指甲剪修剪草坪”。


一旦每幅图像的深度值都被确定了,那么就可以对每幅图像制作出立体成像。有些视频软件也具有简单的2D到3D转换效果,比如说QQ影音。然而该类软件只是从颜色上加以处理,然后对每幅画面做一个位移差,完全是忽视了场景中物体的立体结构,无法考虑不同视角带来的角度变化。


复杂的转换需要重建物体的网格模型,增加立体信息,包括曲面的曲率信息和深度信息等等。由此得到画面上的复合深度映射,也就是说每个像素点上代表的都是不同物体的深度值的叠加。以确保物体进出视线时,是循序渐进的。确保物体旋转的过程中,具有平滑的过度。这些,都需要符合人类的日常视觉体验。所以,卡梅隆导演要求工作人员在完成双视图之后,必须反复检查每一帧的立体成像效果,精益求精。


3. 3D的真实效果

在正常的视觉过程中,我们主观判断一个物体的特征时所搜索到深度信息的方式,将加剧2D转3D的难度。比如说,我们在看3D电影的时候,所感知的并不一定是导演所营造的3D效果,人脑具有玄妙复杂的信息处理能力。


在高质量的3D电影转换过程中,必定会考虑大脑的处理信息方式,作为辅助技巧增强影片质量。然而难度在于,人脑对于深度细节的处理又有着非常微妙的变化方式。比如说,如果两个物体仅仅是遮挡关系,那么立刻就可以判断出,被遮挡的物体应该是远离观察者的。


然而,如果观察类似于下图的这样一个景象,我们会在脑海中构建一个透视图,借助于常识经验,物体会随着距离的远离而变小变模糊,所以观察者判断更大更清晰的物体离自己更近。



对比于人类处理深度信息的这些方式,并且灵活运用这些方式的组合。如果仅仅用视差来转换3D深度信息,简直是弱爆了。即便是增加了处理深度信息的算法,也无法灵活地随机应变组合运用,甚至在同一场景中对于不同物体会带来冲突的处理方式。这就是为什么3D转换目前还不能用自动的方式来进行,人脑视觉处理信息太复杂了,我们捉摸不透它的规律,还需要迎合它的处理机制。这正是最大的难点。


4. 泰坦尼克号3D版的转换经验

卡梅隆称,之前诸多3D转换电影的效果不尽如人意,主要原因还是因为其投入的时间和精力不足,太过于追求抢占市场先机,无法全身心投入,确保影片转换质量。同时,他也强调说,在此之前拍摄《阿凡达》的经验将有助于泰坦尼克3D版本的转换,这是其他的电影人所没有的切身体会。

不过,阿凡达中使用的2D-3D转换技术又与真人电影有所不同,因为原本就存储了物体的三维模型,所以其转换过程只需要在计算机渲染的时候,多增加一个视点信息就足够了。

点击打开链接 视频: 《泰坦尼克号》3D幕后大解密


在泰坦尼克3D版本的转换中,卡梅隆与著名制片人威廉·谢拉克(William Sherak)的团队强强联手。带领着300名艺术家的团队逐帧去绘制出每幅画面的轮廓线,建立起每个物体的三维网格模型,继而增加视点信息,得到其深度映射图。这项工作不但需要很充分的经验,还需要特别设计的软件来完成,为了泰坦尼克号,全球3D影像巨头In-Three公司专门就制作出了辅助该步骤完成的软件。


卡梅隆导演在之前接受IBC采访时称:“至少目前,不要妄想3D转换有什么自动的过程。这纯粹是一个高度主观并且重复性的机械性的人工劳动。必须这么一帧一帧地抓住各幅画面中的深度信息。”


所以,这部电影的转换用了超过两年的时间,一年用来做前期的准备工作,一年用来转换。卡梅隆称,他心甘情愿花费这样的人力物力财力来转变这个电影,并不仅仅是希望搭载3D电影的风潮,更重要的是希望能够将泰坦尼克号带回到更大的屏幕上去,为观众们带来更加震撼的视觉体验。






http://www.ppmy.cn/news/249764.html

相关文章

3D照片旋转

前言 第一次写不知道写些啥,大学四年(PS:计算机专业),本人菜鸟是真的菜。 一、3D照片旋转 1、首先创建一个新的文件夹,再在里面创建一个新的文件来保存照片,然后我是参照该博主的https://blo…

3D到2D的转换方式

import SimpleITK as sitk import numpy as np import cv2 import os import glob import tqdmdef nifti2png(path):for file in tqdm.tqdm(glob.glob(os.path.join(path, "*"))): # *表示通配符,即path下面的所有文件都遍历一遍image sitk.ReadImage(f…

3D地图app

3D三维地图APP 发布时间:2018-07-19 版权: 3D地图依据高程数据等对地表进行渲染,实现地表的起伏,模拟出真实的三维场景,让你有如身临其境般的感觉。 (注:Bigemap 3D地图是一个三维地图浏览功能…

3D视觉之线激光3D相机

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 作者丨飞鸢逐浪知乎 来源丨https://zhuanlan.zhihu.com/p/486516636 编辑丨3D视觉工坊 1 3D 视觉 常见的三维视觉技术,包含双目、ToF、激光三角、结构光等,如下图: 1&#…

2D及3D转换

转换 —— transform 目录 2D转换 移动 —— translate 旋转 —— rotate 缩放 —— scale 2D转换综合写法 设置转换中心点 3D转换 3D移动 —— translate3d 2D转换 —— rotate3d 透视 —— perspective 3D呈现 —— transform-style 练习 使盒子居中 旋转出内…

3D与2D

十二月二十三 1.文本效果 1.1文本阴影 1.2盒子阴影 box-shadow 1.3为元素添加阴影 1.4卡片效果 1.5文本溢出 css3文本溢出属性指定向客户如何显示溢出内容 2.2d转换 .1.css转换允许移动旋转缩放和倾斜元素 translate从当前位置移动元素 rotate根据定的角度顺时针或者你是在旋转…

不要为3d而3d

和以前的几个朋友聊天,也有做game的。 发现大家对3D技术都非常热衷,但是这种热衷显得刻意的 为3d而3d,就有点舍本逐末。 1 游戏最重要的是策划,需要具体的满足人心底的某种需求, 2 3d需要 好显卡的支持&#x…

2D旋转与3D转换

文章目录 一、2D转换1.移动: translate2.旋转: rotate3.缩放: scale4.2D 转换综合写法以及顺序问题5.动画(animation)5.1.定义动画5.2.使用动画5.3.动画常见属性5.4.动画简写方式 二、3D转换1.3D位移:translate3d(x, y, z)2.3D旋转…