拜耳系列之多帧超分
- 坂本ユウスケ
- 2022年8月20日
- 讀畢需時 4 分鐘
什么是超分辨率
超分辨率(Super-Resolution)即是通过硬件或软件的方法提高原有图像的分辨率。其本质上,还是透过各种各样的手段,针对少分辨率的信息进行猜测或者补全,从而获得更多的信息,以实现图像更清晰的效果。
以下是一个常见的后期算法超分辨率的列表。部分信息是个人推测的,还需要更多的考证。
类型 | 支持视频和设备 | 时间 | 效果 | 评价 |
OPPO OSIE | OPPO机型特化针对在线视频优化 | 即时 | 不明显 | Pixelwork供应商解决方案,且仅针对在线视频。 |
Topaz/Adobe | 支持本地视频和PC/MAC设备 | 慢 | 好 | 行业领先的私有算法,虽然效果好,但是时间很慢,且巨吃性能,没有尝试沟通。 |
快影 | 支持本地视频和Android/iOS设备 | 快 | 略优于拉伸 明显弱于Waifux2 | 快影是利用云端进行超分算法,需要用户上传下载视频,超分为4K的视频只有4K10M码率,且无法自定义,直接造成了效果和直接拉伸好一点点的最终结果了。且上传下载视频,在用户连接相机时不方便,且有隐私疑虑。 |
Waifu2x系列 | 支持Vulcan,目前找到了Windows/Mac,应该可以部署到Android和iOS | 超级慢 | 弱于Topaz | 开源解决方案,Waifux2有各种各样的模型,其中一个兼顾时间和画质的,结果是将照片逐帧抽出,超分到8K,再压缩回4K,涂抹非常严重,有些地方根本没法看 |
MMEditing | 支持纯CPU和cuda,不一定可以部署到Android和iOS | 应该会快于Topaz | 应该会超过Topaz | 开源解决方案,有各种各样的模型,包括最强的算法Basicvsr和basicvsr++配置了一个晚上,模型和训练集都加载了结果运行报错,试了一晚上没成功,不能配置在App上 |
上表大部分都已经和拜耳序列关系没有那么大,直奔深度学习去了。作为一个0coding,连环境都配置不好的菜鸡,和上面的解决方案打交道显然已经超出了我的能力和算力太多。但这并不意味着,我们已经束手无策。
有一件事是需要事先声明的就是,经过和公司里的计算摄影的大佬沟通,大佬第一句话就跟我说透了,软件上的努力还是有限的。最好的效果可能还是不如换一颗Sensor和摄像头。所以在硬件和软件上,如果可以选择,当然还是选择硬件。
话都说到这个份上了,还是得说说硬件。我已经很久没有摸过全画幅的旗舰相机了,现在我的手上除了公司的设备,就是一个黑卡,要么就是手机。估摸着全部设备底加一起也差不多大。在自己的桌上,利用黑卡的f1.8大光圈,拍摄静物手办,看到自然的虚化效果,我叹之为神迹。
但是直到上周被同事紧急征调为摄影师,接触到了全画幅的旗舰相机。只能说硬件的升级实在是远超我的想象。人物的虚化是苹果和谷歌等大厂磨破头,又是雷达又是景深,废了九牛二虎之力也不如人家的直出。谷歌和苹果都如此,我们小厂更是难以企及。而以下的话题,又和索尼和谷歌有所关系。

在上一个系列的最后,我们提到了Google独有的HDR技术,从单曝光到环曝光到转向。而谷歌相机之所以被这么多手机摄影极客趋之若鹜,是因为其强大的软件增强能力。而本周要提到的是,谷歌称之为Super Res Zoom的超分变焦技术。
拜耳阵列如何超分
说起拜耳超分,最主要要回顾的,就是从拜耳阵列到我们可以阅览的RGB图片有一个至关重要的步骤——去马赛克化。不同与传统CCD传感器的RGB原色分色滤光片,Bayer模式中比较强调绿色分量,它将绿色定义为两种,一种是Gr,一种是Gb。而整个画面的亮度和色彩的控制主要靠绿色分量。当然本身CCD传感器和CMOS的原理和工艺都不尽相同,因而这部分只能留给未来再分析。

要从Bayer模式转化为RGB,要靠一系列的算法进行计算和推测。因为在上一部分算法和计算说的不是特别的详细,这里还是给出一些详细且可行的计算公式,让大家都可以动手算一算。
简易计算方式 1

每个组合必定包含一个R、一个B、2个G像素点(如图)
那么R1作为当前像素的R值,
B3作为当前像素的B值,
取2个G的平均值作为当前像素的G值。
透过计算就能得出R0所在像素的RGB通道值。
而至于G1的通道值,则需要G1作为左上角的另外四个像素的组合了,如此往复计算得出。
线性插值补偿算法

对于左图两种分布中,
中间像素点G的RB值的计算通过线性领域插值得到,
即R和B的值分别为G领域两个R的平均值和两个B的平均值。
可以直接通过对四个领域像素的G值取均值来得到中间像素的G值。
像素偏移 多帧超分的真相
通过上面的信息,我们知道了从Bayer转换为RGB需要差值计算。有没有什么办法能够让CMOS直出RGB而不经过计算压缩呢?这就提到了各大厂包括Google声称的Super Res Zoom的核心,像素位移多帧合成技术

超分的本质是对少分辨率的补全,而像素位移多帧合成技术是透过时间分辨率换取单张分辨率的解决方案。

在上图中,一共拍摄了4张。相较第一帧,另外三帧分别是向水平方向、垂直方向和向右下移动了一个像素的距离。
在第一帧为R的像素,在第二帧中补充了Gr的信息,在第三帧补充了Gb的信息,最后补充了B的信息。
这样的话本来一个像素只能获取一个像素的信息,摇身一变可以四个像素的信息。
从Sensor偏移到手抖偏移
从上图的索尼的像素偏移多重拍摄中,我们了解到了在点击拍摄的时候,相机会以Sensor每次偏移一个像素,连续拍摄四张RAW格式的图片。且在下方的注意事项中,索尼提示任何的相机移动都会使影像不能正确的结合。这就使得拍摄的难度以及拍摄失败的几率大幅的提高。用户被迫只能使用三脚架来完成这种高难度的操作。
这些方法依赖于相机内部的传感器和光学器件的物理移动,但是需要相机的完全稳定,这在移动设备中是不切实际的,因为它们几乎总是手持的。即使是麒麟臂,也不能保证在拍摄四张照片中不手抖。对此,谷歌决定把困难转化为优势。
当我们手持相机或用手机拍摄一连串照片时,画面之间总会有一些移动。光学图像稳定(OIS)系统可以补偿较大的相机抖动——相隔 1/30 秒的连续帧之间通常为 5-20 像素。但却无法完全消除更快,更低幅度,自然的手部震颤。当使用具有手机拍摄照片进行测试时,这种震颤的幅度仅为几个像素。
在以前的研究中已知,手的震颤是高度周期性的,频率大约在8-12Hz,且运动幅度很小但是随机的。而为了证明该方案有效性,作者用10个用户采集了86个图像序列,并用陀螺仪记录旋转运动信息。相关信息统计如下图。通过分析可以得到,手的运动在各个角度方向是均匀随机的,且在获取图像序列的过程中会缓慢地旋转拍照设备。

由于拍摄时间比较短,手的运动可能近似呈一条直线或平滑的曲线,因而偏移的亚像素值可以有足够的覆盖率来用于超分辨。给定多帧有随机像素偏移的输入图像,谷歌使用核回归的方法进行拟合,重建连续信号。重建的连续性信号可以以任何等于或高于输入帧的分辨率进行重采样。
根据下图将此方法与先前提到的后期算法超分进行对比,我们可以得出一个简单的结论,由前端和后端共同组合的方法,的确是在噪点和清晰度上远超了纯后端的超分算法。

Comments