Matte Painting 电影里的魔术师

摘要 这是一篇2020年的文章,当时记录了文章的标题之后,内容就没有提笔写了,现在趁着放假的时间对Matte Painting来做一个详细的描述,Matte Painting是一个神奇的领域,在这个领域里我们创造自己脑海里面的奇幻世界。 本文主要介绍Matte Painting的历史以及Matte Painting的技术。 历史 维基百科Matte Painting 遮景绘画是对风景,布景,以及远景的绘画表现,通常可以使得电影创作者可以在电影中创造出在拍摄地点不存在的环境,将绘画的图像与实拍镜头结合起来,根据艺术家和技术人员的技能水平,在最好的情况下,整个效果是无缝的,镜头不存在穿帮,如果不使用遮景绘画则整个拍摄过程将是非常昂贵的,甚至是无法拍摄完成的。 根据电影画面的需求,为了拍摄导演脑海中的画面,Matte Painter需要移除原场景中无关的物体,绘画出符合电影创作需求的画面,上图中,为了添加原拍摄画面背景中天空和房屋的细节,通过遮罩Mask(黑色部分)将不需要的场景遮挡住,然后通过绘画将细节缝合到实拍的场景中,从而达到最终的影片效果。 第一个在电影中使用遮景绘画的是早期美国电影导演Norman Dawn,他通过玻璃上作画来创造实拍无法完成的场景。 在玻璃上绘画是一件苦差事,摄影机三脚架固定在离被拍摄场景的固定距离处,距离根据取景的构图来确定,离摄影机不远的地方放置一块玻璃板,相机镜头,胶片,和灯光的组合要产生足够的景深,以保持近景画和背景景观能够完美的聚焦。为了创造绘画本身,Matte Painter通过相机取景器观察并指导助手,助手在玻璃上标出真实景物和绘画区域的融合点,然后艺术家用铅笔在玻璃上画出场景,不断的通过取景器检查绘画和背景元素的结合情况,所需的图像被直接画在玻璃上,通常是用油画颜料,使用与背景景物完美融合的色调。在绘制图画时,艺术家必须判断在一天要拍摄的场景中,光和影是如何变化的。并且在绘画完成之前,摄影机和玻璃,其中的任何一个有移动,就会产生绘画元素和背景偏离。于是,Norman Dawn发明了另外一项技术original negative matte painting,原始底片遮景绘画。 这里只涉及到在拍摄现场只曝光画面中的实景部分,留下一部分未曝光的画面,以便在后面添加绘画元素。与玻璃绘画技法类似,这次不是在玻璃上绘画,而是在玻璃的适当区域画上不透明的黑色以产生遮罩Matte,防止摄影机在拍摄时这些区域被曝光,Matte的边缘是精心设计的,以便它们遵循场景中的自然边界。 拍摄完成的负片会被保存起来,然后在艺术家工作室会有另外一台摄影机充当投影机将拍摄画面的其中一帧影片画面投射到绘景师的画板上,由于之前添加了黑色的遮罩,Matte Painter 会将有画面的部分在画板上涂黑,绘景师可以以此为基础开始在未曝光的遮罩区域进行绘画创作,这样的好处是Matte Painter不再需要现场绘景,在拍摄完成之后再进行绘景工作,为Matte Painter提供了便利。在艺术家完成创作之后,当绘画与原始底片上的实景拍摄能够完美契合时,原始负片就会被装入摄影机,进行二次曝光拍摄,原来的黑色未曝光区域就会被画板上的画替代,真实场景的拍摄画面因为已经被黑色的画板区域阻挡不会再被曝光。通过遮挡的二次曝光也就有了一个完整的场景底片,最后冲洗完成,整个绘制场景和真实场景也就完美结合在一起了。同时这种绘制方式也存在着缺陷,因为需要对底片进行两次曝光,存在着毁坏原始底片的风险。 在1920年中期,Bi-pack contact matte printing是在原负面绘景的基础上做出的改进,首先是实景拍摄,这个时候不需要在使用玻璃画板了,然后取拍摄底片中的一帧做为投射画面将其投射到艺术家工作室的玻璃画板上,Matte Painter在玻璃上开始绘画,完成后的绘画玻璃板放在白色幕布和摄影机之间,用灯打亮白色幕布,摄影机内部装有两卷胶片,一卷是未曝光的新胶片,一卷是原始拍摄的底片,现在重新拍摄工作室内的Matte场景,由于玻璃画板处于暗处,欠曝光,所以最后最后对原始底片进行拷贝时,新胶片上的底片会除去绘景部分,这也就形成了原负片绘景中的黑色区域,最后再对上面一部得到的新拷贝底片进行二次曝光,这时原来的白色幕布换成黑色,打亮绘景玻璃板,熄灭黑色幕布的背景灯,这样就得到了最终绘景和实际拍摄的合成底片。 后来背投绘景技术也开始流行起来,它已经非常接近现代数字绘景技术,一台摄影机进行场景投射,一台摄影机用于拍摄最终的画面。将原始拍摄的场景底片洗印出来,然后装入投射摄影机,将实景画面投射到幕布上,然后在投射摄影机的另一方向上放置一台用于最终拍摄的摄影机,在贴近幕布拍摄摄影机的一侧放入绘画玻璃板,然后绘景师在玻璃板上作画,最后使用摄影机重新拍摄,最终就合成了绘景之后的画面。这一种技法比Bi-pack contact matte printing技法而言,没有再对原始底片进行二次处理,避免了底片损坏从而不得不重新拍摄场景的高昂代价。 当摄影机产生运动时,由于绘景师绘制的图像是基于2D的,运动的画面会带来透视的错误,为了产生正确的透视,绘景师会采用实体模型的方式来进行实景拍摄, Peter Ellenshaw - Matte Painter movie 数字世界 现在我们将进入数字世界,在数字的世界里我们的工具库是丰富多彩的,通过数字合成程序,我们可以立即查看合成画面的效果,创建遮罩,将大量的实景照片应用于场景绘制中,创建真实场景的光影和3D模型,种种的技巧使得传统的绘景技术被Digital Matte Painting 数字绘景所取代。 关于Digital Matte Painting的技法,有兴趣想要学习DMP的爱好者,我推荐五门课程用于学习和研究: Concept Art for Production CGMA Matte Painting Master Class 3D Matte Painting Tutorial ...

January 25, 2022

Pure Mathematics With Machine Learning

博客分享 DeepMind 发表了一篇论文,将机器学习应用于纯数学领域,帮助数学家在纯数学领域中发现新的理论,论文主要从以下两个领域入手。 Knot拓扑学中最基本的三维结构,了解knot的三维结构特征,让我们能够更好的在量子场论,非欧几里得几何学,量子力学,代数学,几何学之间架起桥梁,研究数学各个分支之间的关系。 排列组合,32415 代表着将第一个元素移动到第三个位置,第二个元素移动到第二个位置,第三个元素移动到第四个位置,以此类推。 文章从两个数学领域介绍了ML是如何辅助数学家完成理论的猜测到证明这一过程。 论文解读 机器学习方法与研究纯数学的方法相结合能够更好的发现新理论,我们从最简单的欧拉公式开始,在三维空间中的一个多面体,满足如下表达式,Face + Vertices - Edges = 2,语意上可以理解为,多面体的面数 + 顶点数 - 边数 = 2,设X(z) ∈ Z2 × R2,X(z)表示多面体的顶点数和边数,Y(z) ∈ Z 是多面体的面数,那么就可以构成一个方程,X(z)(-1,1,0,0) = Y(z),f(X(z)) = X(z)(-1,1,0,0),这个方程代表着三维空间中两纬多面体,面数,边数,顶点数之间的关系,当纬度扩展到高纬时是否还支持类似的表达式,三纬空间的上述表达式猜想我们可以通过传统的数据驱动去猜测表达式的构成,在高纬的情况下,问题将变得非常复杂。无法通过传统的方式去获得可靠的结论。 上图中的工作流可以理解为: 数学家猜想X(z)和Y(z)之间存在某种对应关系f(x)=y 生成数据,选取特定分布分布状态的数据z,得到X(z),Y(z) 根据输入X(z),输出Y(z),训练模型,得到近似的猜想函数f 根据特征工程理解f对于X(z)变量中的敏感度 数学家根据机器学习得到的f,进一步选择和优化自己猜想中的完整f函数,从而完成从猜想到理论的证明 该工作流从两方面来指导数学家的直觉工作: 通过机器学习来确认数学猜想中已经存在的结构模式关系。 通过特征技术帮助数学家理解这些结构模式。 以下通过两个数学领域的发现来描述机器学习在纯数学领域的贡献。 拓扑学 目前低纬度的拓扑学研究是一个活跃的在数学上具有影响力的领域,knot是三维空间中简单的闭合曲线,对这些闭合曲线进行分类,我们需要通过其他领域的知识来了解knot中的属性,其中一个属性是任意两个knot,如果他们存在代数或者几何上的不变量,那么他们两者就可以归为同一个类。在这里我们主要关注两个,几何不变量和代数不变量,可以参看下图了解这两大不变量。 通过机器学习模型,我们可以发现几何不变量与代数不变量之间的关系,再通过归因分析,找到Y(z)对于X(z)中的哪些因子比较敏感。 最后通过引入natural slope,slope(K) = Re(λ/μ),meridional translation 代表 μ,the longitudinal translation 代表λ。 得出理论: 存在一个常熟c,对于任意的双曲knot K,存在不等式,|2σ(K)−slope(K)|≤cvol(K)inj(K)−3。 表示理论 组合不变性猜想指出一对排列组合的KL多项式应该可以从其未标记的Bruhat区间中计算出来。 通过监督学习,模型可以从Bruhat区间中计算KL多项式,然后通过一系列的推理,数学家得出如下理论: 每一个Bruhat区间都有一个沿着其极值反射的典型超立方体分解,从中可以直接计算出KL多项式。 结论 抛开上述两个专业领域的数学知识,将机器学习应用于纯数学领域,为数学家提供直觉与灵感,给我们在机器智能的探索上开辟了一条道路。虽然ML只是做了一层铺垫,但是这样可以扩宽数学家的视野。对于在量化领域中使用机器学习,我也是持有同样的观点,那就是ML只是一个中间层,他帮助我们去理解和统计数据,至于从一组数据中得出一个结论,需要靠我们自身的直觉去完成,ML可以辅助我们来激发我们的直觉,所以要做量化交易,我们背后需要学习的是数学物理学理论,在数据的支撑下,通过ML来验证自己的理论猜想,从而开发出能从市场中赢利的交易模型。 ...

December 6, 2021 · alexchen

加密货币预测 1

比赛 预测高波动率的数字货币市场价格是困难的,G-Research在kaggle.com上发起了一个关于利用机器学习预测数字加密货币收益率的比赛项目,我准备加入该比赛,后期关于比赛的参考资料和模型建立都会更新在该博客板块中。 G-Research Crypto Forecasting

November 26, 2021

HFT Defi

链接 去中心化金融高频交易

October 27, 2021

Volcano高性能引擎

简介 volcano是一个用于高性能工作负载场景下基于kubernets的容器批量引擎。 应用场景: 机器学习以及深度学习 生物以及基因计算 大数据应用 概念 Queue 容纳一组podgroup的队列 apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: distcc spec: weight: 1 reclaimable: false capability: cpu: 50 字段: weight -> 该queue在集群资源划分中所占有的比例,该queue占用的资源比例为: (weight / total-weight) * total-resource,资源软约束。 capability -> queue内所有podgroup使用资源之和的上限,资源硬约束。 reclaimable -> 当该queue在资源使用超过该queue限制时,是否允许其他queue回收该queue使用的超额资源。 使用场景 Total Cluster CPUS = 4cores --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test1 spec: weight: 1 --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test2 spec: weight: 3 # 创建p1 p2 podgroup分别属于test1,test2,分别向p1 p2中投入job1 job2,资源申请分别为1C和3C,两个job均能正常工作 --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test1 spec: weight: 1 # 首先创建test1 queue,创建podgroup p1,在p1中创建job1 job2,资源分配分别为1C和3C,job均能正常工作。 --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test2 spec: weight: 3 # 创建test2 queue, 在该queue中创建podgroup p2,在p2中创建job3资源申请为3C,由于test2 queue weight=3,从而job2将被驱逐,test1 3C资源将归还给test2。 --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test1 spec: capability: cpu: 2 # 创建test1 queue,容量设置为2,也就是资源上限使用为2C,创建p1 podgroup,在p1中创建job1 job2资源申请分别为1C和3C,那么job1正常运行,job2处于pending状态 --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test1 spec: weight: 1 reclaimable: false --- apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: test2 spec: weight: 1 # 创建 test1 queue,reclaimable为False,也就是该queue不归还多占用的资源,分别在test1 test2 queue 中创建p1 p2,在p1中创建job1,资源申请为3C,由于权重比例为1:1,此时 test1 多占用1C,在p2中创建job2,资源申请为2C,此时由于test1不归还多占用的资源,job2将处于pending状态。 PodGroup podgroup是一组强关联pod的集合,用于批处理工作负载场景。 ...

June 2, 2021

iRobot i7+

在高中的时候我就在<新科学>杂志上看到了有关iRobot扫地机器人的新闻,当时特别的好奇居然还有扫地的圆盘机器人,现在为了能够同爱人住在同一个舒适的环境中,我们购买了一套iRobot i7扫地机器人,总体使用感觉就是一个字"棒",这样我们就能够解放我们的双手,做更多有意义的事情,比如看更多的书,早上可以迟一点起床,晚上回家可以预定机器人帮我们提前打扫下卧室卫生。

March 29, 2021

Nassim Nicholas Taleb 不确定性四部曲

2021 送给自己的话 风险共担 理性思考 热爱随机波动性 己所不欲 勿施于人 2021 新的开端 最近自己花了三个月的时间,阅读了Nassim Nicholas Taleb的不确定性四部曲系列书籍。 总体概括看完之后的感想就是,恰到好处的使我自己从内心深出找到了如何通过对随机性的判断,来增强自己的反脆弱性,改正了我之前对投资这一概念的误解,因为身边很多的同事都希望财务自由,那么问题就出在你要如何去对待这个自由,通过短期的不断炒股,炒数字货币,如果从非对称性风险上来讲,你最终的结果肯定是100%亏在里面的。 这篇博客之后,我需要在下一篇博客中,把这四本书中的重点理念和句子记录下来。 投资最重要的一点就是: 少说话,把自己置身于风险中,提高自己的认知,能够分辨出哪些是随机噪音哪些是有益的波动,停止讨论和风险相关的内容,自己独立思考判断。 2021我也希望通过不断的学习扩展认知从而实现小目标的财务自由。 接下来我会去学习三本书的内容: 分形几何与动力系统讲义 混沌与分形 - 科学的新疆界 Advances in financial machine learning 分形和混沌理论主要是去理解整个金融系统因为某种不可预知的小动作,最后导致整个金融体系的瘫痪。这里面最典型的就是蝴蝶拍一拍翅膀就会导致飓风的慢慢形成。再比如现在的全球COVID-19大流行,美国和全世界其他国家一直在不断的向市场增发货币,对于金融体系来说这一举动可能会加速未来货币的贬值速度。 最后一本书主要就是通过机器学习去分析和预测金融市场。 今天就这样 - 晚安!

January 3, 2021

AlphaFold2 Solve Protein Folding Problem

引用文章链接 参考文献 AlphaFold: Machine learning for protein structure prediction Improved protein structure prediction using predicted interresidue orientations Improved protein structure prediction using potentials from deep learning AlphaFold 1 AlphaFold 2

December 3, 2020

DeepL机器自动翻译文章

考虑工作时的效率,以及自己在英语方面的技能不是非常扎实,调研了使用DeepL完成官网以及日常博客的翻译工作。 免费版的DeepL有很多限制,在国内购买付费版本的DeepL Pro时,DeepL官网为支持中国🇨🇳地区,解决方案是使用虚拟VISA服务,可以去这里了解具体办理过程。 特性 官网称是全世界最好的机器翻译,可能是使用自己研发的神经网络,提高了翻译的准确率。 翻译完整的文档。 API功能和CAT翻译集成 入门版本价格: $6.99/月 入门版功能: 无限量文本翻译 数据安全 翻译完整文档 <= 5/月 正式非正式语气词 术语表,不限条目 备注 使用易购卡完成支付。

November 30, 2020