常见的RGB图像大都为低动态范围(Low Dynamic Range, LDR),亮度的取值范围在[0,255]之间。
然而人眼对亮度的感知范围要比RGB图像宽广得多,一般为[0,+∞],导致LDR图像很难反映真实场景的亮度范围,使得一些较暗或者较亮的区域的细节难以被捕捉,高动态范围(High Dynamic Range,HDR)图像应运而生,具有更广的亮度范围。
新视角合成(Novel View Synthesis,NVS)任务是在给定「一个场景的几张不同视角图像,并且相机位姿已知」的情况下,合成其他新视角的场景图像。
同比于LDR NVS,HDR NVS能更好地拟合人类视觉,捕获更多的场景细节,渲染更高质量、视觉效果更好的图片,在自动驾驶、图像编辑、数字人等方面有着十分广泛的应用。
当前主流的HDR NVS方法主要基于神经辐射场(Neural Radiance Fields, NeRF),然而,NeRF的ray tracing加volume rendering机制都十分耗时,常常需要十分密集地采集射线,然后在每一条射线上采集多个3D点,对每一个3D点过一遍MLP来计算体密度和颜色,严重拖慢了训练时间和推理速度。当前最好的NeRF算法HDR-NeRF需要耗费9小时来训练一个场景,8.2秒来渲染一张尺寸为400x400的图像。
为了解决上述问题,约翰霍普金斯大学、香港科技大学、清华大学、上海交通大学的研究人员提出了首个基于3DGS的方法HDR-GS,用于三维HDR成像;设计了一种有着双动态范围的三维高斯点云模型,同时搭配两条平行的光栅化处理管线以用于渲染HDR图像和光照强度可控的LDR图像。
论文链接:https://arxiv.org/abs/2405.15125
代码链接:https://github.com/caiyuanhao1998/HDR-GSgithub.com/caiyuanhao1998/HDR-GS
Youtube视频讲解:https://www.youtube.com/watch?v=wtU7Kcwe7ck
研究人员还重新矫正了一个HDR多视角图像数据集,计算得到的相机参数和初始化点云能够支持3DGS类算法的研究。HDR-GS算法在超过当前最好方法1.91 dB PSNR的同时仅使用6.3%的训练时间并实现了1000倍的渲染速度。
图1 HDR-GS与HDR-NeRF各项性能对比图
一大波演示如下:
对比近期出现的3D Gaussian Splatting(3DGS),虽然能在保证图像质量的同时也大幅提升了训练和渲染速度,但却很难直接应用到HDR NVS上,仍然存在三个主要问题:
1. 渲染的图片的动态范围依旧是[0,255],仍旧属于LDR;
2. 直接使用不同光照的图片来训练3DGS容易导致模型不收敛,因为3DGS的球谐函数(Spherical Harmonics,SH)无法适应光照的变化,时常会导致伪影、模糊、颜色畸变等问题;
3. 常规的3DGS无法改变渲染场景的亮度,极大限制了应用场景,尤其是在AR/VR、电影、游戏等领域,经常需要改变光照条件来反映人物的心情与环境氛围。
图2 常规3DGS对比HDR-GS
方法架构
图3 HDR-GS的整体算法流程
研究人员首先使用Structure-from-Motion(SfM 算法来重新矫正场景的相机参数并初始化高斯点云,然后将数据喂入到双动态范围(Dual Dynamic Range,DDR)的高斯点云模型来同时拟合HDR和LDR颜色,使用SH来直接拟合HDR颜色。
再使用三个独立的MLP来分别对RGB三通道做tone-mapping操作,根据用户输入的曝光时间将HDR颜色转为LDR颜色,然后将3D点的LDR和HDR颜色喂入到平行光栅化(Parallel Differentiable Rasterization, PDR)处理管线来渲染出HDR和LDR图像。
场景可以用一个DDR高斯点云模型来表示:
除了这些属性外,每一个Gi还包含一个用户输入的曝光时间Δt和一个全局共享的基于MLP的tone-mapper θ,由一个旋转矩阵Ri和一个缩放矩阵Si表示成如下形式:
其中的μi,Ri,Si,αi和θ是可学习参数,Tone-mapping操作fTM(⋅)模拟相机响应函数来将HDR颜色非线性地映射到LDR颜色:
为了训练稳定,研究人员将公式(3)从线性域转成对数域如下:
对此公式取反函数:
然后使用SH函数来拟合HDR颜色如下:
将公式(7)代入公式(6)便可得到:
每一个独立的MLP包括一层全连接、一层ReLU、一层全连接和一个Sigmoid激活函数。
将3D Gaussian的HDR颜色和LDR颜色输入到平行光栅化处理管线中,分别渲染出LDR和HDR图像,这一过程可以被概括为如下:
首先计算出第i个3D Gaussian在一个3D点x处概率值如下:
然后将3D Gaussian从三维空间中投影到2D成像平面上。在这一投影过程中,中心点的位置μi首先被从世界坐标系变换到相机坐标系,然后再投影到图像坐标系上:
三维协方差矩阵也被从世界坐标系投影到相机坐标系上:
将2D projection分割成互不重叠的titles,每一个三维高斯点云都按照其对应投影所落在的位置分配到对应的tiles上。这些3D高斯点云按照与二维探测器平面的距离进行排序。
那么,在2D projection上像素点p上的HDR颜色和LDR颜色便是混合N个与p重叠的排好序的3D点得到的,如下公式所示
阻碍3DGS类算法在三维HDR成像上发展的一大障碍,是原先HDR-NeRF搜集的多视角HDR图像数据集的仅提供normalized device cooridnate(NDC)的相机位姿。
然而NDC并不适用于3DGS,主要有两个原因:
首先,NDC描述的是投影后2D屏幕上的位置。然而,3DGS是一个显式的3D表征,需要对三维空间中的高斯点云进行变换和投影。
其次,NDC将坐标限制在[-1,1]或者[0,1]。Voxel的分辨率有限,使得3DGS很难刻画场景中的细节。另外,原先搜集好的数据中并没有提供SfM点云来给3DGS进行初始化。
为解决这一问题,研究人员使用了SfM算法来对多视角HDR数据集重新计算相机参数和初始化点云如下:
其中的Mint,Mext分别表示相机的内外参数矩阵。对LDR图像的训练监督函数如下:
类似于HDR-NeRF,也对HDR图像施加限制。需要注意的是,HDR-NeRF施加的约束是直接使用CRF矫正的GT参数,这是一个很强的先验。使用的是μ - law tone-mapping后的HDR图像。损失函数如下:
最终总的训练损失函数是两者的加权和:
需要注意,由于真实场景中并无法直接获得HDR图像,所以分别对合成场景与真实场景设置γ=0.6和γ=0
实验结果
表1 合成实验对比结果
表2 真实实验对比结果
合成实验和真实实验的定量对比结果分别如表1和表2所示,HDR-GS在性能上显著超过之前方法的同时,训练和推理也分别达到了16倍速和1000倍速。
图 4 合成场景的LDR NVS视觉对比
图 5 真实场景的LDR NVS视觉对比
图6 HDR NVS视觉对比
LDR NVS的视觉对比结果如图4和图5所示,HDR NVS的视觉对比结果如图6所示。HDR-GS能够渲染出更丰富更清晰的图像细节,更好地捕获HDR场景并能灵活地改变LDR场景的光照强度。
参考资料:
https://arxiv.org/abs/2405.15125