新文章:计算摄影

文章原文发布于网站 Vastrik.ru 并经作者许可在 3DNews 上发布。 我们提供了文章的全文,除了大量的链接 - 它们对于那些对该主题非常感兴趣并希望更深入地研究计算摄影的理论方面的人来说非常有用,但对于一般观众我们认为这种材料是多余的。  

如今,没有一款智能手机的展示不舔它的相机是完整的。 每个月我们都会听到移动相机的下一个成功:谷歌教 Pixel 在黑暗中拍摄,华为像双筒望远镜一样变焦,三星插入激光雷达,苹果制造世界上最圆的角。 如今,很少有地方创新能如此迅速地流动。

与此同时,镜子似乎在原地踏步。 索尼每年都会给大家带来新的矩阵,而制造商则懒洋洋地更新最新版本的数字,并继续在场边放松和抽烟。 我的办公桌上有一台价值 3000 美元的单反相机,但当我旅行时,我会带着我的 iPhone。 为什么?

正如经典所说,我带着这个问题上网。 他们在那里讨论一些“算法”和“神经网络”,但不知道它们到底如何影响摄影。 记者们大声宣读百万像素的数量,博主齐声观看付费拆箱,美学家们则用“对矩阵调色板的感性感知”来涂抹自己。 一切如常。

我必须坐下来,花半辈子的时间,自己把这一切弄清楚。 在这篇文章中我将告诉你我学到了什么。

#什么是计算摄影?

包括维基百科在内的所有地方,他们都给出了类似的定义:计算摄影是使用数字计算而不是光学变换的任何图像捕获和处理技术。 关于它的一切都很好,除了它没有解释任何事情。 即使自动对焦也适合它,但已经给我们带来了很多有用东西的全光就不适合了。 官方定义的模糊性似乎暗示我们不知道我们在说什么。

计算摄影的先驱、斯坦福大学教授马克·莱沃伊(Marc Levoy,现任 Google Pixel 相机负责人)给出了另一个定义——一套改进或扩展数码摄影能力的计算机可视化方法,利用它获得一张常规照片,从技术上讲,这台相机无法以传统方式拍摄。 在文章中我坚持这一点。

因此,智能手机是一切的罪魁祸首。

智能手机别无选择,只能催生一种新的摄影方式:计算摄影。

根据所有物理定律,它们的小噪音矩阵和微小的慢光圈镜头应该只会带来痛苦和折磨。 他们一直这样做,直到他们的开发人员弄清楚如何巧妙地利用他们的优势来克服他们的弱点——快速的电子快门、强大的处理器和软件。

新文章:计算摄影

计算摄影领域的大多数备受瞩目的研究都发生在 2005 年至 2015 年之间,这在科学界被认为是昨天的事情。 现在,在我们眼前、在我们的口袋里,一个前所未有的新知识和技术领域正在发展。

计算摄影不仅仅是带有神经散景的自拍。 如果没有计算摄影技术,就不可能拍摄到最近的黑洞照片。 要使用普通望远镜拍摄这样的照片,我们必须将其调整为地球的大小。 然而,通过结合球上不同点的八个射电望远镜的数据并用 Python 编写一些脚本,我们获得了世界上第一张事件视界的照片。 也适合自拍。

新文章:计算摄影

#开始:数字处理

让我们想象一下我们回到了 2007 年。 我们的母亲是无政府主义的,我们的照片是在滑板上拍摄的嘈杂的 0,6 兆像素吉普车。 大约在那时,我们第一个不可抗拒的愿望是在它们上面撒上预设,以隐藏移动矩阵的糟糕之处。 我们不要否认自己。

新文章:计算摄影

#马坦和 Instagram

随着 Instagram 的发布,每个人都开始痴迷于滤镜。 当然,作为出于研究目的对 X-Pro II、Lo-Fi 和 Valencia 进行逆向工程的人,我仍然记得它们由三个组件组成:

  • 颜色设置(色相、饱和度、亮度、对比度、色阶等)——简单的数字系数,就像摄影师自古以来使用的任何预设一样。
  • 色调映射是值的向量,每个向量都告诉我们:“色调为 128 的红色应该变成色调为 240 的红色。”
  • 叠加层是一张半透明的图片,上面有灰尘、颗粒、晕影以及其他可以放在上面的东西,以获得老电影的平庸效果。 并不总是在场。   

现代过滤器与这三者相差不远,它们只是在数学上变得更加复杂一些。 随着硬件着色器和 OpenCL 在智能手机上的出现,它们很快就针对 GPU 进行了重写,这被认为是非常酷的。 当然是2012年。 今天,任何学生都可以在 CSS 中做同样的事情,但他仍然没有机会毕业。

然而,过滤器的进步至今仍未停止。 例如,来自 Dehanser 的人非常擅长使用非线性滤波器 - 他们不使用无产阶级色调映射,而是使用更复杂的非线性变换,根据他们的说法,这开辟了更多的可能性。

你可以用非线性变换来做很多事情,但它们非常复杂,而且我们人类非常愚蠢。 一谈到科学中的非线性变换,我们更喜欢采用数值方法,到处塞满神经网络,让它们为我们写出杰作。 这里也是一样。

#自动化和“杰作”按钮的梦想

一旦每个人都习惯了滤镜,我们就开始将它们直接构建到相机中。 历史掩盖了哪家制造商是第一个,但只是为了了解那是多久以前的事了 - 在 5.0 年发布的 iOS 2011 中,已经有一个用于自动增强图像的公共 API。 只有乔布斯知道它在向公众开放之前使用了多长时间。

自动化所做的事情与我们每个人在编辑器中打开照片时所做的相同 - 它拉出了光和阴影的间隙,增加了饱和度,消除了红眼并固定了肤色。 用户甚至没有意识到新智能手机中“显着改进的相机”只是几个新着色器的优点。 距离 Google Pixel 发布和计算摄影热潮开始还有五年时间。

新文章:计算摄影

如今,“杰作”按钮的争夺战已经转移到了机器学习领域。 在玩够了色调映射后,每个人都急于训练 CNN 和 GAN 来移动滑块而不是用户。 换句话说,从输入图像中确定一组最佳参数,使该图像更接近对“好摄影”的某种主观理解。 在相同的 Pixelmator Pro 和其他编辑器中实现。 正如您可能猜到的那样,它的工作效果不是很好,而且并不总是如此。 

#堆叠是移动相机90%成功的关键

真正的计算摄影始于堆叠——将多张照片叠加在一起。 对于智能手机来说,半秒点击十几帧不是问题。 他们的相机没有缓慢的机械部件:光圈是固定的,并且不是移动的窗帘,而是电子快门。 处理器只需命令矩阵捕获野生光子需要多少微秒,然后读取结果。

从技术上讲,手机可以以视频速度拍摄照片,并以照片分辨率拍摄视频,但这一切都取决于总线和处理器的速度。 这就是为什么他们总是设置程序限制。

质押本身已经伴随我们很长时间了。 甚至祖父们也在 Photoshop 7.0 上安装了插件,将多张照片组合成引人注目的 HDR 或拼接成 18000 × 600 像素的全景图……事实上,没有人知道下一步该怎么处理它们。 可惜当时的时代是富贵而狂野的。

现在我们已经长大了,称之为“epsilon 摄影”——通过改变相机参数之一(曝光、焦距、位置)并将生成的帧拼接在一起,我们得到了无法在一帧中捕捉到的东西。 但这是理论家的术语;在实践中,另一个名字已经扎根——质押。 事实上,如今移动相机领域 90% 的创新都是基于它。

新文章:计算摄影

许多人没有想到这一点,但了解所有移动和计算摄影非常重要:现代智能手机上的相机在您打开应用程序后立即开始拍照。 这是合乎逻辑的,因为她需要以某种方式将图像传输到屏幕上。 然而,除了屏幕之外,它还将高分辨率帧保存到自己的循环缓冲区中,并在其中再存储几秒钟。

当您按下“拍照”按钮时,实际上已经拍摄完毕,相机只是从缓冲区中拍摄最后一张照片。

这就是当今任何移动相机的工作原理。 至少在所有旗舰产品中都不是来自垃圾堆。 缓冲不仅可以让您实现摄影师梦寐以求的零快门延迟,甚至可以实现负面效果——当您按下按钮时,智能手机会回顾过去,从缓冲区中卸载最后 5-10 张照片,并开始疯狂分析并粘贴它们。 不再需要等待手机点击 HDR 或夜间模式的帧 - 只需从缓冲区中取出它们,用户甚至不会知道。

新文章:计算摄影

顺便说一句,正是借助负快门时滞,Live Photo 在 iPhone 中得以实现,HTC 在 2013 年以奇怪的名字 Zoe 推出了类似的产品。

#曝光叠加 - HDR 和对抗亮度变化

新文章:计算摄影

相机传感器是否能够捕获我们眼睛可到达的整个亮度范围是一个古老的热门争论话题。 有人说不能,因为眼睛最多可以看到 25 个光圈值,而即使从顶级全画幅矩阵中,您也最多只能看到 14 个光圈值。其他人则认为这种比较是不正确的,因为大脑通过自动调整来帮助眼睛眼睛的动态范围实际上不超过 10-14 光圈。 让我们把这场辩论留给互联网上最优秀的纸上谈兵的思想家吧。

事实仍然是:当你在没有 HDR 的移动相机上在明亮的天空下拍摄朋友时,你要么得到正常的天空和朋友的黑脸,要么得到精心绘制的朋友,但天空被烧焦。

解决方案很早就被发明出来了——使用 HDR(高动态范围)来扩大亮度范围。 您需要以不同的快门速度拍摄几张照片并将它们拼接在一起。 因此,第一个是“正常”的,第二个较亮,第三个较暗。 我们从明亮的框架中取出黑暗的地方,从黑暗的框架中填充过度曝光——利润。 剩下的就是解决自动包围曝光的问题——每帧的曝光要改变多少以免过度,但技术大学的二年级学生现在可以确定图片的平均亮度。

新文章:计算摄影

在最新的 iPhone、Pixel 和 Galaxy 上,当相机内部的简单算法确定您在阳光明媚的日子拍摄具有对比度的内容时,HDR 模式通常会自动打开。 您甚至可以注意到手机如何将录制模式切换到缓冲区,以保存曝光偏移的帧 - 相机中的 fps 下降,并且图片本身变得更加丰富。 在户外拍摄时,我的 iPhone X 上的切换瞬间清晰可见。 下次也仔细看看你的智能手机。

HDR 包围曝光的缺点是在光线不足的情况下难以穿透的无奈。 即使有室内灯的光线,框架也会变得很暗,以至于计算机无法将它们对齐和缝合在一起。 为了解决光线问题,2013 年,谷歌在当时发布的 Nexus 智能手机中展示了一种不同的 HDR 方法。 他使用了时间堆叠。

#时间堆叠 - 长时间曝光模拟和延时拍摄

新文章:计算摄影

时间堆叠允许您使用一系列短曝光来创建长曝光。 先驱们是拍摄夜空中星轨的爱好者,他们发现一次打开快门两个小时很不方便。 提前计算所有设置非常困难,轻微的晃动就会毁掉整个画面。 他们决定只打开快门几分钟,但打开了很多次,然后回家并将生成的帧粘贴到 Photoshop 中。

新文章:计算摄影

事实证明,相机实际上从未以长快门速度拍摄,但我们通过将连续拍摄的几帧相加来获得模拟的效果。 长期以来,有很多为智能手机编写的应用程序都使用此技巧,但由于几乎所有标准相机都添加了该功能,因此所有这些应用程序都不需要。 如今,即使是 iPhone 也可以轻松地将实时照片的长曝光拼接在一起。

新文章:计算摄影

让我们回到谷歌的夜间 HDR。 事实证明,使用时间包围可以在黑暗中实现良好的 HDR。 该技术首次出现在 Nexus 5 中,被称为 HDR+。 其余的 Android 手机都像收到礼物一样收到了它。 该技术仍然非常受欢迎,甚至在最新 Pixel 的展示中受到称赞。

HDR+ 的工作原理非常简单:确定您在黑暗中拍摄后,相机会从缓冲区中卸载最后 8-15 张 RAW 照片,以便将它们叠加在一起。 因此,该算法会收集有关帧暗区的更多信息,以最大程度地减少噪声(由于某种原因,相机无法收集所有信息并出错的像素)。

就像如果你不知道水豚长什么样,你让五个人描述它,他们的故事会大致相同,但每个人都会提到一些独特的细节。 这样你就可以收集到比仅仅询问更多的信息。 像素也是如此。

添加从一个点拍摄的帧可以产生与上面的星星相同的假长曝光效果。 数十帧的曝光被总结,其中一帧的错误在其他帧中被最小化。 想象一下您每次需要点击数码单反相机快门多少次才能实现这一目标。

新文章:计算摄影

剩下的就是解决自动色彩校正的问题 - 在黑暗中拍摄的帧通常会变成黄色或绿色,而我们有点想要日光的丰富性。 在 HDR+ 的早期版本中,只需调整设置即可解决此问题,就像 Instagram 中的滤镜一样。 然后他们求助于神经网络。

这就是 Night Sight 的出现——Pixel 2 和 3 中的“夜间摄影”技术。在描述中,他们说:“基于 HDR+ 的机器学习技术使 Night Sight 发挥作用。” 本质上,这是色彩校正阶段的自动化。 该机器接受了“之前”和“之后”照片数据集的训练,以便从任何一组黑暗扭曲的照片中制作出一张漂亮的照片。

新文章:计算摄影

顺便说一下,该数据集是公开的。 也许苹果公司的人会接受它并最终教他们的玻璃铲在黑暗中正确拍照。

此外,夜视功能通过计算帧中物体的运动矢量来标准化长快门速度下必然出现的模糊。 因此,智能手机可以从其他框架上取下透明部件并将其粘合起来。

#运动堆叠 - 全景、超级变焦和降噪

新文章:计算摄影

全景是农村居民喜爱的娱乐活动。 历史上还没有任何案例表明香肠照片会引起除作者之外的任何人的兴趣,但它不能被忽视——对许多人来说,这就是堆叠的开始。

新文章:计算摄影

使用全景图的第一个有用方法是通过将多个帧拼接在一起来获得比相机矩阵允许的更高分辨率的照片。 长期以来,摄影师一直在使用不同的软件来拍摄所谓的超分辨率照片,即轻微偏移的照片似乎在像素之间相互补充。 通过这种方式,您可以获得至少数百千兆像素的图像,如果您需要将其打印在房屋大小的广告海报上,这非常有用。

新文章:计算摄影

另一种更有趣的方法是像素移位。 索尼和奥林巴斯等一些无反光镜相机早在 2014 年就开始支持它,但他们仍然必须手工粘合结果。 典型的大相机创新。

智能手机在这里取得成功有一个有趣的原因——当你拍照时,你的手会颤抖。 这个看似问题构成了在智能手机上实现原生超分辨率的基础。

要了解其工作原理,您需要记住任何相机的矩阵是如何构造的。 它的每个像素(光电二极管)只能记录光的强度,即传入光子的数量。 然而,像素无法测量其颜色(波长)。 为了获得 RGB 图片,我们还必须在这里添加拐杖 - 用多色玻璃片网格覆盖整个矩阵。 其最流行的实现称为拜耳滤波器,目前在大多数矩阵中使用。 看起来像下面的图片。

新文章:计算摄影

事实证明,矩阵的每个像素仅捕获 R、G 或 B 分量,因为剩余的光子被拜耳滤波器无情地反射。 它通过直接平均相邻像素的值来识别丢失的分量。

拜耳过滤器中有更多的绿色细胞 - 这是通过与人眼进行类比来完成的。 事实证明,在矩阵上的 50 万个像素中,绿色将捕获 25 万个,红色和蓝色 - 各 12,5 万个。其余部分将被平均 - 这个过程称为去拜耳化或去马赛克,这是一个非常有趣的拐杖一切都休息了。

新文章:计算摄影

事实上,每个矩阵都有自己狡猾的专利去马赛克算法,但出于本故事的目的,我们将忽略这一点。

其他类型的矩阵(例如 Foveon)在某种程度上还没有流行起来。 尽管一些制造商正在尝试使用不带拜耳滤光片的传感器来提高清晰度和动态范围。

当光线很少或物体的细节非常微小时,我们会丢失大量信息,因为拜耳滤波器公然切断了具有不需要的波长的光子。 这就是为什么他们想出了像素移动——将矩阵上下左右移动 1 个像素来捕获所有这些像素。 在这种情况下,照片并没有变大 4 倍,处理器只是使用这些数据来更准确地记录每个像素的值。 可以这么说,它不是对其邻居进行平均,而是对其自身的四个值进行平均。

新文章:计算摄影

用手机拍照时手的颤抖使这个过程成为一个自然的结果。 在最新版本的 Google Pixel 中,只要你在手机上使用变焦功能,这个东西就会被实现并打开——它被称为 Super Res Zoom(是的,我也喜欢他们无情的命名)。 中国人也将其复制到老挝语中,尽管结果稍差一些。

将稍微偏移的照片叠加在一起可以让您收集有关每个像素颜色的更多信息,这意味着在不增加矩阵百万像素物理数量的情况下减少噪音、增加清晰度和提高分辨率。 现代 Android 旗舰机会自动执行此操作,用户甚至无需考虑。

#焦点堆叠 - 任何景深并在后期制作中重新对焦

新文章:计算摄影

该方法源自微距摄影,浅景深一直是微距摄影的一个问题。 为了使整个物体清晰对焦,您必须前后移动焦点拍摄几张照片,然后将它们拼接在一起形成一张清晰的照片。 风景摄影师经常使用同样的方法,使前景和背景像腹泻一样锐利。

新文章:计算摄影

所有这一切也都转移到了智能手机上,尽管没有太多宣传。 2013年,发布了带有“重新对焦应用程序”的诺基亚Lumia 1020,2014年,发布了带有“选择性对焦”模式的三星Galaxy S5。 他们按照相同的方案工作:按下一个按钮,他们快速拍摄三张照片——一张是“正常”焦点,第二张是焦点向前移动,第三张是焦点向后移动。 该程序对齐帧并允许您选择其中一个,这在后期制作中被誉为“真正的”焦点控制。

没有进一步的处理,因为即使是这个简单的黑客攻击也足以在 Lytro 及其同行诚实地重新聚焦的盖子上再钉一颗钉子。 顺便说一下他们(过渡大师80级)。

#计算矩阵 - 光场和全光器件

正如我们上面所理解的,我们的矩阵是拄着拐杖的恐怖。 我们只是习惯了它,并试图忍受它。 从一开始,它们的结构就几乎没有变化。 我们只是改进了技术流程——缩短了像素之间的距离,对抗干扰噪声,并添加了用于相位检测自动对焦的特殊像素。 但是,如果您使用最昂贵的单反相机并尝试在室内照明下拍摄一只奔跑的猫 - 温和地说,猫会获胜。

新文章:计算摄影

长期以来,我们一直在努力发明更好的东西。 该领域的许多尝试和研究都可以通过谷歌搜索“计算传感器”或“非拜耳传感器”,甚至上面的像素移位示例也可以归因于使用计算来改进矩阵的尝试。 然而,过去二十年来最有希望的故事恰恰来自所谓的全光相机世界。

为了避免您因对即将出现的复杂单词的预期而睡着,我将向您透露一下内部人士的说法,最新的 Google Pixel 的相机只是“稍微”全光。 只有两个像素,但即便如此,即使没有第二个摄像头,它也能像其他人一样计算出帧的正确光学深度。

全光是一种尚未发射的强大武器。 这是我最近最喜欢的一个的链接。 有关全光相机的功能以及我们与它们的未来的文章,我从中借用了示例。

#

全光相机 - 即将推出

1994 年发明,2004 年收藏于斯坦福大学。 第一款消费级相机 Lytro 于 2012 年发布。 VR行业目前正在积极尝试类似的技术。

全光相机与传统相机的不同之处仅在于一个修改 - 它的矩阵覆盖有透镜网格,每个透镜覆盖几个真实像素。 像这样的东西:

新文章:计算摄影

如果正确计算从网格到矩阵的距离以及光圈的大小,最终图像将具有清晰的像素簇 - 类似于原始图像的迷你版本。

事实证明,如果你从每个簇中取出一个中心像素并仅使用它们将图像粘合在一起,那么它与使用普通相机拍摄的图像没有什么不同。 是的,我们在分辨率上损失了一些,但我们只会要求索尼在新矩阵中添加更多的百万像素。

新文章:计算摄影

乐趣才刚刚开始。 如果您从每个簇中取出另一个像素并将图片再次拼接在一起,您将再次获得一张正常的照片,就好像它是通过移动一个像素来拍摄的一样。 因此,拥有 10 × 10 像素的簇,我们将从“稍微”不同的点获得 100 个物体的图像。

新文章:计算摄影

簇大小越大意味着图像越多,但分辨率越低。 在拥有41兆像素矩阵的智能手机世界中,虽然我们可以稍微忽略分辨率,但凡事都有极限。 你必须保持平衡。

好的,我们已经组装了全光相机,那么这给我们带来了什么?

诚实地重新聚焦

所有记者在有关 Lytro 的文章中热议的功能是在后期制作中诚实地调整焦点的能力。 公平地说,我们的意思是我们不使用任何去模糊算法,而是专门使用手头的像素,按所需的顺序从簇中选择它们或对其进行平均。

全光相机的 RAW 摄影看起来很奇怪。 要从其中取出普通的锋利吉普车,您必须首先组装它。 为此,您需要从 RAW 簇之一中选择吉普车的每个像素。 根据我们如何选择它们,结果将会改变。

例如,簇距原始光束的入射点越远,该光束越失焦。 因为光学。 为了获得焦点移动的图像,我们只需要选择距原始图像所需距离的像素(更近或更远)。

新文章:计算摄影

 

将焦点转移到自己身上更加困难 - 纯粹从物理角度来看,簇中此类像素较少。 起初,开发人员甚至不想让用户能够用手对焦——相机本身在软件中决定了这一点。 用户不喜欢这样的未来,因此他们在后来的固件中添加了一个称为“创意模式”的功能,但正是因为这个原因,对其的重新关注非常有限。

来自一台相机的深度图和 3D   

全光中最简单的操作之一是获取深度图。 为此,您只需收集两个不同的帧并计算其中的对象移动了多少。 更多的偏移意味着距离相机更远。

谷歌最近收购并杀死了 Lytro,但将他们的技术用于 VR 和……Pixel 相机。 从 Pixel 2 开始,相机首次变得“略微”全光,尽管只有两个像素簇。 这使谷歌有机会不像其他人那样安装第二个摄像头,而是仅根据一张照片计算深度图。

新文章:计算摄影

新文章:计算摄影

深度图是使用移动一个子像素的两个帧构建的。 这足以计算二进制深度图并将前景与背景分开,并在现在流行的散景中模糊后者。 这种分层的结果也会被经过训练以改善深度图的神经网络所平滑和“改进”(而不是像许多人认为的那样模糊)。

新文章:计算摄影

诀窍在于我们几乎免费地在智能手机中获得了全光器件。 我们已经在这些微小的矩阵上放置了透镜,以某种方式增加光通量。 在下一代 Pixel 中,谷歌计划更进一步,用镜头覆盖四个光电二极管。

来源: 3dnews.ru

添加评论