Invisibleart Workshop 上线

不可见 我建立了一个以invisibleart命名的线上工作室,其灵感来自于一本讲述Matte Painting的书《The Invisible Art: The Legends of Movie Matte Painting》。 因为我对Matte Painting特别感兴趣,并且这本书及其稀缺,在Amazon上价格已经卖到1600RMB,我在五月份的时候通过ebay购买了一本,希望六月份我能正常收到书籍。我主要关注的是其中的invisibleart,电影视效创作就是让你看不出来作品含有人工处理过的痕迹,就像直接用摄影机对着原始场景直接拍摄一样,要做到这一点,我们必须对我们周围的事物特别关注,尤其是细节方面,破旧的楼宇,杂乱的树木丛林,微风吹拂下的花朵,要在数字世界创造这些影像,需要我们训练自己的眼睛,辨别其中的真实细节。从宏伟的角度讲,艺术家每一件艺术品都是以真实性为根基的,从绘画,音乐中我们就可以得知,古人在创作中首先就是向大自然模仿学习,艺术品的特性越接近大自然,就越能让我们感受到艺术的真实感。基于这个理念,我建立了invisibleart.pro网站,网站的目的就是讲述最新的电影技术,包括专业论文和文章的解读,以及作品的发布,invisibleart.pro与blog.cineneural.com的区别在于前者专注于技术领域的细节,而后者主要是集中个人生活和思考的归纳总结。 invisibleart.pro采用wordpress搭建,运行在云端的Raspberry Pi上,后端的数据库使用了TiDB,之后关于技术细节的文章将全部发布到invisibleart.pro,而本博客将继续保持个人生活和思考的更新,因为网站是运行在非IDC机房,所以我也在考虑invisibleart.pro的备份站点,防止因网络原因导致invisibleart.pro无法访问。

June 3, 2022

维塔数码的技术

记录 Weta workshop Weta Digital 最近我花了一个月的时间看完了weta digital && weta workshop的两本书,其中weta digital主要是从事计算机三维图像创作,而weta workshop主要是从事电影前期概念创作,像是生物以及人物的雕刻,武器道具的设计,场景的实际概念设计,这些都是由weta workshop来完成的,随后weta digital根据workshop的概念设计来制作CG人物和生物,并且让这些CG动起来,关于workshop我比较感兴趣的是他们的特效化妆以及精细的生物雕刻技术,而weta digital我们需要学习他们的全部技术,本文主要关注的就是digital部分,我已经将关注的技术点截图粘贴到本文中,因为每一个关键的技术点在时间以及成本上的突破就会给电影后期制作带来质的飞跃,我所指的突破是指该项技术能够以低成本来实现以前未能达到的高度。 第一部分,如何制作The Hobbit: The Desolation of smaug 主要介绍制作过程中的基本流程,首先是概念图设计,接下来就是建模,贴图,材质,光照,Matte Painting,然后动画制作,为了制作逼真的CG,艺术人员通过拍摄自然界的真实照片做为参考,在CG图像里面不断添加细节,从而达到真实的效果。在我看来这些技术都是非常关键的,没有精细的雕刻,是无法完成这些艺术品的。 第二部分,主要介绍影片中龙的塑造以及表演,也是最基本的影视制作流程,其中龙的表情动画采用了动作捕捉技术,建模,动画,特效,光照,每一步的细节都非常到位。 最后就是weta digital在数字图像方面的创新技术。因为自己也准备学习Houdini,节点式的制作流程,让我对Weta技术中的Massive,CityBot,Facial Animation,Deep Compositing,Mari,Tissue特别感兴趣。 Massive: 全称为Multiple Agent Simulation System in Virtual System,用来生成大场景的生物交互,比如成千上百万的军队士兵奔跑以及相互攻击,每一个士兵都由一个AI Agent进行代理控制行为,从而使得场景看上去是真实的,没有人工伪造的痕迹。 CityBot: 顾名思义就是生成城市三维模型。 Facial Animation: 面部表情捕捉技术。 Deep Compositing: 深度合成技术,在CG渲染输出时保存像素的深度信息,然后在合成阶段,这些深度信息会被用于视觉深度上的合成,可以类似的认为是一个2.5D的合成,像体积雾,直接采用深度合成,看上去将更加真实立体。 ...

May 23, 2022

深度学习超分辨率在电影工业的应用

论文 Deep Learned Super Resolution for Feature Film Production 学习 最近我一直在学习三维建模渲染和制作,看到一篇关于Pixar在2020年发布的论文,主要内容是关于Pixar内部的工程师开发人员如何利用深度学习来提升渲染图像的分辨率,精细的渲染一帧4k图像可能会消耗很多资金成本,如果最终渲染2k分辨率的图像然后利用深度神经网络将其提升到4k,图像在细节上更加细腻和丰富,那么在渲染的成本上可以帮助公司降低很多成本。和以前的超图像超分辨率提升模型不一样,电影工业通常使用的图像都包含有光照的高动态范围,和对色彩的真实还原的数据,这就使得目前的主流超分辨率模型根本无法使用在电影领域。这也是我目前感兴趣的领域,因为将深度学习用于工业领域比起理论上更加具有实际意义。 摘要 伸缩技术通常用于创建那些成本高昂甚至无法制作的高分辨率图像。近年来,深度学习方法相比传统的方法而言在改善图像细节,提升图像清晰度方面有所改善。在这里我们讨论将深度学习的超分辨率技术用于皮克斯电影工业的动机和挑战,使用该技术可以降低渲染农场的支付成本,同时实现生成高分辨率的内容。 背景和相关工作 为了提高图像的分辨率,通常使用几种技术,如 nearest-neighbor, bilinear,以及bicubic interpolation。在电影业中,通过Nuke节点TVIScale,total variation inpainting技术已被证明在提高分辨率方面很有成效。近年来,深度卷积神经网络通过从大量数据中学习低分辨率(LR)到高分辨率(HR)的映射,展示了更高的重建质量。随着生成式对抗网络(GANs)和感知损失函数在开创性的SRGAN工作中的引入,伸缩器现在可以产生与真实相比无法分辨的细节和清晰度的图像。我们在皮克斯工作的目的是将GANs投入生产,用于图像的分辨率伸缩。 训练集 训练一个超分辨率模型需要成对的高分辨率和低分辨率帧图像。大多数先前的研究依赖于预先建立的数据集,这些数据集由代表HR(High Resolution)的高分辨率照片和通过采用下采样操作(通常是bicubic)获得的LR(Low Resolution)照片组成。然而,在我们的测试中,在bicubic降采样图像对上训练生成的预训练超级分辨率模型并不能推广到新的数据上(即没有新的细节被生成),因为现实世界的降级操作比Bicubic降采样要复杂得多。在皮克斯,我们有一个渲染器来合成图像对,有高质量的场景(有不同的着色器、几何和光照条件),还有一个经过微调的数据中心来进行大规模的渲染。 为了获得训练数据,我们使用RenderMan渲染了分辨率为1-2K的生产图像对,其中的镜头从《Coco》、《Incredibles 2》、《Toy Story 4》、《Onward》和《Soul》中随机抽取。由于一个给定的镜头中包含多个通道(如实体元素、体积和天空),在生产管道的最后步骤进行合成,我们收集所有的元素,不包括Deep Layer。我们对已知的与分辨率有关的参数进行修正,如微多边形长度和相机射线差倍率。尽管如此,我们仍然偶尔会注意到不相关的对,并将它们从训练集中排除。我们注意到,我们经常不能重新使用以前定稿的2K渲染图,因为即使在定稿后,由于生产的变化,镜头也经常发生变化。我们还从UHD版本中获得预先存在的4K渲染图,并将任何连贯的2K-4K对添加到数据集中(通常每个节目的一小部分是以4K渲染的,其余的是用TVIScale从2K放大的,因为大规模4K渲染的成本很高)。我们最终得到了一个包含3700对的数据集。 训练管线 我们在文献中观察到,最先进的超分辨率深度学习模型是使用具有对抗性训练的深度残差网络[Wang et al. 2018]。架构或损失函数的微小差异使这些模型与众不同。我们从一个开源的训练环境和网络架构开始,然后我们创建了一个PyTorch开发环境,并准备了一个台带有两个24GB NVIDIA Quadro P6000 GPU的Linux实例。 生产线特点 大多数超分辨率的工作没有考虑到高动态范围HDR图像,但这样做在电影行业是至关重要的。HDR数据通常用超过1的浮点数表示,并存储在OpenEXR这样的文件格式中。由于神经网络在处理输入数据时将其归一化为[-1, 1]或[0, 1]时表现最好,我们就应用以下范围压缩函数来适应HDR数据[Bakoetal.2019]:Ty =k*log(1+μy)/log(1+μ)。我们设置k=0.6和μ=5000,提供范围到亮度值接近300。然后,我们将压缩数据集转换成一个高性能的数据结构,即闪电内存映射数据库,比直接读取EXR图像的训练速度加快了约1/3。 我们试验了一种新的数据增强策略,即在(LR,HR)对中引入随机颜色移动,使网络对不同的光照条件更加精准。我们通过添加一个随机颜色(cr, cg, cb )∈ [-0.01, 0.01],给每个颜色通道添加变换:R’=R+cr, G’=G+cg, B’=B+cb。我们发现这提高了模型的泛化能力。 一个关键的挑战是解决生成的图像中不需要的颜色偏移。我们引入了一个额外的损失项,对下采样生成的图像和输入的LR图像之间的l1损失进行惩罚。有了这个额外的损失项,我们在训练的网络输出中没有发现任何颜色的偏移。我们进行了超参数调整实验,以最大限度地提高合成图像的清晰度,同时避免通常伴随着GANs的过度噪音伪影。我们最新训练的网络偶尔会在文本上产生边缘伪影(如片尾字幕),我们预计获得更多带有文本的训练数据将有助于消除这些伪影。纯PSNR网络(无GAN)不会产生边缘或噪音伪影,但会模糊一些高频细节,如胶片颗粒或小亮点。 我们的网络用纯PSNR损失项预训练了215k次,然后用GAN、色移损失和感知(特征)损失项训练了340k次。我们根据强度使用192x192的卷积核进行采样,最小批次为20。损失项的权重是{PSNR, colorShift, feature, GAN}={1, 5, 0.1, 0.0005}。我们的训练时间为:仅PSNR为108小时,GAN为208小时(总训练时间为316小时)。我们在GPU上正向推演从2K到4K图像的转换时间约为15秒,我们强调该模型可以在任何输入分辨率下提升分辨率(受GPU/CPU内存限制)。在开发的后期,我们开始在英伟达的DGX2超级计算机上进行训练,这使训练速度加快了5倍左右,并能同时运行多个实验。 结果 我们已经训练并部署了一个生产质量的超分辨率模型,在大多数情况下,特别是在TVIScale合成的细节不足和需要4K渲染的情况下,能够持续产生高质量、无伪影的高分辨率图像。即使在有景深、运动模糊和/或体积的场景中,质量也是一致的,因为这些现象在训练集中都有体现。Onward UHD光盘的元素用我们的模型进行了升级,并计划在Soul上进行更广泛的使用。我们的工作正在积极测试其他的使用情况,如宣传工作和主题公园的交付产品。此外,我们最新的训练模型显示,我们有希望建立一个可以在1K下渲染并提升为2K的工作管道,如果用于所有的中间渲染,这将为工作室节省50-75%的渲染场占用空间。 未来的工作 我们的超分辨率模型只支持RGB颜色通道的单帧升频,这使得我们的工作只在工作管道的末端有用。对于在中间渲染中的使用,需要对阿尔法通道进行伸缩,鉴于预先训练的判别网络通常只支持RGB,这就不是一件简单的事情。虽然我们目前的模型产生了时间上的一致性结果,但没有像[Bako等人,2017]那样吸收跨帧输入,这样做对我们来说仍有帮助。我们预计考虑到辅助特征缓冲区,如法线和反射率,将进一步提高合成图像的质量。此外,我们预计我们的训练时间和推理速度将随着网络量化和修剪而提高。最后,虽然我们到目前为止一直专注于2倍放大,但4倍放大在之前的工作中已经显示出巨大的前景,并可能有助于高分辨率的宣传片的渲染和为最近进入市场的8K电视提供内容。为此,在我们的测试中,运行2倍网络的多个通道已显示出潜力。 引用 Steve Bako, Mark Meyer, Tony DeRose, and Pradeep Sen. 2019. Offline Deep Importance Sampling for Monte Carlo Path Tracing. In Computer Graphics Forum, Vol. 38. Wiley Online Library, 527–542. ...

March 14, 2022

Renderman 历史

创新艺术 提到Renderman,那么我们也就不得不提Pixar,对,就是这家制作动画电影的工作室。与其说Renderman的历史还不如讲讲Pixar的历史,正是因为Pixar工作室的艺术家需要在数字世界里面创造真实的影像才诞生了Renderman。我们来看下这家工作室的历史背景。 通过Pixar的发展历史可以看出科学与艺术在电影创作的世界里是相辅相成的,我们来了解下Renderman到底是什么工具。就像画画一样,画家通过不断的对周围事物的观察,在大脑中记忆自己所看到的物体的色彩,光影,然后依靠自己的双手将三维世界的物体呈现在两纬的画布上,Renderman就是这样一组工具,我们告诉他三维空间中都有哪些物体,光源在哪里,摄影机的位置和观察这个空间的角度是怎么样的,将这些数据输入到Renderman中,Renderman就会生成一张类似画家画完画后的两纬图像,Rendering在中文中解释为渲染,渲染一张图片当然还是不够的,我们要让观赏这幅画的人感觉画面是用真实的摄影机拍摄的,那么我们就需要在计算机的世界中去模拟现实世界的光影和色彩,这也是Renderman需要去实现的。告诉Renderman三维空间中有哪些物体,哪些光源,摄影机的位置,这个是由计算机建模来完成的,模型建立完成之后,我们可以输出兼容Renderman程序的场景描述文件,将这一描述文件输入到Renderman中,我们也就得到了具有真实质感的照片,Renderman其实就是对一系列外部接口的规定和实现,将Rendering从建模中抽离出来进行独立的开发,那么任何三维建模程序只要能够通过这些接口与Renderman进行通讯,都可以将场景描述输送到具有Renderman接口实现的渲染器中渲染图像。 Pixar每一部电影制作都会用到Pixar工作室实现的Renderman渲染器-PhotoRealistic RenderMan,1988年pixar开发了Renderman的初版本,经过30多年的发展,Renderman不断的在被Pixar的工程师和科学家们优化和改进。最近发布的24版本中PRMan可以处理能够想象到的最复杂的3D场景,能够同时使用CPU+GPU进行渲染的XPU技术,以及经过多部电影考验的着色技术,最重要的是他支持了开源的三维建模动画程序Blender。学习Renderman就如同像站在巨人的肩膀上一样,使得我们能够更充分更扎实的去了解计算机图形学。 文档翻译计划 早期使用Pixar Renderman,用户还需要学习编程技术,现在Renderman的使用更加人性化,但是相比于市面上流行的其他渲染器而言,Renderman还是缺少许多具体的使用文档和教程,尤其是中文领域。我目前已经在着手翻译Renderman的官方文档和Pixar的具体论文,借助DeepL的帮助翻译进度还是蛮快的。

February 25, 2022

CG319x EIZO

在2020年的时候我写过一篇博客 Renderman24 Will Support Blender,在文章的最后我记录了自己打算购买商业版本的Renderman。经过一年多的时间之后,我实现了自己的想法,为自己配置了图像工作站,购买了具有商业版权的Renderman,最重要的是我也为自己购置了一套EIZO CG319x显示器。准备这些的初衷主要是因为web3.0的崛起,我设想过一个人的自由职业,因为电影行业是通过非常庞大的群体来完成创作的,要让一个人独立完成一部真人电影或者动画长片,甚至短片,那是非常耗时的,因为有很多的技术以及艺术的绊脚石在你面前,你必须一点一滴的克服才能完成影片中的每一个细节。然后我就设想能否通过机器的算法来完成人物环境的设定,在计算机的世界中生成生命和环境,在常规的电影制作中那叫做建模和动画以及场景制作,这些技术都是由技术以及美术人员来完成创作的,计算机只是如实的向观众呈现这些创作。大胆想象如果计算机能够完成这些创作过程,比如动物的蹦跑,模型的材质,抠像,人类的行走,我们不再是通过画关键帧,调试材质,手动绿幕抠像,而是通过计算机对这个现实世界的学习来主动探索这些关键帧,实现对现实世界物体材质的模拟,对画面中人物的精确抠像,那么似乎一个人创作一部精彩的电影是没有问题的。当然这只是个设想,目前技术还达不到这样科幻的地步。 现在就来讲讲CG319x-4k HDR Monitor,它由EIZO公司生产和发行,在2021奥斯卡科学与技术的颁奖典礼上,EIZO获得了科学技术奖。有很多的电影动画以及视效公司在使用EIZO的CG显示器,包括ILM(工业光魔),Pixar,MPC FILM,DNEG(Dune 2021的视效团队)。EIZO官方介绍 Academy of Motion Picture Arts and Sciences,Oscars SCIENTIFIC & TECHNICAL AWARDS 2020。对于工具我的认知是尽量购买自己能力范围内最好的,并且也要考虑工具的保值程度,在购买CG319x的时候我也综合考虑了这两方面,使用好的工具将精力投入到学习和创作中,我觉得付出再多的价钱它也是值得的,因为它会给你带来双倍的回报。通过这款显示器,我希望自己能够做到的是不断地去观察周围的自然世界,然后将其精细的展现在数字世界中,就犹如画家通过手中的画笔来展现他所看到的世界,这也是我的目标。

February 16, 2022

Intro Wolfram Physic Project

回忆 还清楚的记得在初中毕业那段时间对数学和理论物理特别感兴趣,自学了高等数学和大学基础物理学,依旧能回忆起第一次喜欢上一位女生就是因为在一起讨论自然科学压轴题的解题思路,课堂上一起辩论弹簧弹性势能的变化问题,还有因为无缘参加萧山区初中生学科竞赛,自然老师第一时间把竞赛题复印出来让我去做然后帮我评分和批改,从那之后我对探索物理和数学充满了愉悦感,进入高一后每天吃完中午饭都会去图书干翻翻科技杂志,后来第一次参加全国高中生应用物理知识竞赛,记得试卷的最后一道压轴题我用了微积分方式去解题,出考场的时候根本就没有想到自己会获得杭州赛区二等奖的成绩,毕竟自己没受过专业的解题训练,学校萧十一中还专门在学期末表彰大会上表扬了我,发了五百的奖金,那个时候的我心里特别开心,我还是特别感激我们高一时候的班主任兼化学老师姚老师,去学校报名的时候,我看到了他手上的科学分数排名单,然后他告诉我以后我就是班级的化学课代表,在每一次的考试中他都会表扬我某一道题的解题思路很清晰。还记得那个时候自己已经开始接触广义相对论原理,每个周天去学校的路上,都会在新华书店站个一到两个小时翻看和相对论有关的书籍和科普资料。 一转眼十五年过去了,现在听着巴赫的小无《恰空》,鼻子一酸忍不住会留下眼泪,对比以前学校时候的自己,现在自己每天重要的事情是努力赚钱,钻研自己喜欢的领域,十五年之后我想重新开始钻研数学,大学四年我立下自己的目标学会小提琴,毕业之后就喜欢上了计算机,开始系统学习Linux,找到了和计算机相关的工作,中途中也玩了摄影和影视。我想现在继续改变自己,有两件东西我永远不能丢掉理论物理和小提琴,现在已经30岁,我要重新拿起自己初高中那段时间喜欢的理论物理学,包括自己创业阶段也希望能和数学物理沾点边,回到最初的起点,累了就练练小提琴,不给自己留下人生的遗憾。正是从这一点出发,我就建立了这个网站,希望能够将自己的所见所闻所感所想全部记录下来。今天看了Wolfram有关他自己发现和解释宇宙终极理论的文章,所以决定花一周时间学习他的图理论,然后将自己学习到的知识和见解记录在这篇文章中,这就是我写这篇文章的动机。 旅程 Wolfram 所总结的理论就是基于简单的规则,然后给定系统初始状态,根据该规则,系统不断的递归演化自身。 规则 , 符号规则表述 {{x, y}, {x, z}} -> {{x, z}, {x, w}, {y, w}, {z, w}} 初始状态 系统演化过程 规则 符号规则表述 {{1, 2, 3}} -> {{4, 4, 2}, {4, 1, 3}} 初始状态 系统演化过程 这样我们就会去思考能否穷举所有可能的规则,而我们的宇宙正好匹配了我们这些规则中的一部分,比如我们按照相同的开始状态,却按照不同的规则去演化这个系统,我们可以得到如下的样例: 所有这些最终状态的起点都是 这里我们可以想象到弦理论,这个理论告诉我们构成这个世界的最基本形态就是琴弦,琴弦不同的振动频率,就产生了不同的形态,然后这些微小的琴弦经过不断的叠加,最后组成了我们所能看到的物质,Wolfram也是想揭示,宇宙的构成正是由简单的结构加上简单的规则经过不断自身迭代繁衍所产生的。 什么是空间 我们首先基于这条规则{{x, y, y}, {z, x, u}} → {{y, v, y}, {y, z, v}, {u, v, v}}来看下,最后会演化出怎么样的世界。 规则表述: 初始状态: 经过两百步的迭代之后,我们可以得到最终的生成如下,演变过程动画: 这里我们就会发现有些有趣的东西在里面,刚开始是一个简单的自循环结构,然后基于我们的规则开始演化,最后生成了空间中类似片状的网,随着迭代次数继续增加,这个空间中的片演化得越来越稠密,形成了我们熟知的连续可微分流形。 类比我们生活中常见的流水,当我们从稍远的地方看去时,水是一种流体,它的表面都是连续的,但是当我们不对的靠近和放大流水,我们却得到了一个离散的世界,看到了水分子,水分子又由氢原子和氧原子构成,所以我们可以空间是一种离散的组织,通过不断的叠加演化,最终让我们看上去空间好像是连续的。 最后给出上述规则500步的演化动态图: 基于同样的原理,我们能否通过一个简单的规则来演化出一个三维的空间图。 ...

August 10, 2020