关注“FightingCV”公众号
回复“AI”即可获得超100G人工智能的教程
图像表示是信号处理和计算机视觉中的一项基础任务。传统的图像表示方法,包括网格图形、小波变换和离散余弦变换,已被广泛应用于从图像压缩到视觉任务分析的各个领域。然而,当处理大规模数据集并追求高效的存储解决方案时,这些方法会遇到重大障碍。
隐式神经表示(INRs)的出现标志着图像表示技术的一个重大范式转变。通常,INRs使用紧凑的神经网络来推导从输入坐标到对应输出值的隐式连续映射。这使得INRs能够更有效地捕获和保留图像细节,从而为包括图像压缩、去模糊和超分辨率在内的各种应用提供相当大的益处。然而,大多数最先进的INR方法都依赖于大型高维多层感知器(MLP)网络来准确表示高分辨率图像。这种依赖性导致训练时间延长、GPU内存需求增加以及解码速度变慢。虽然最近的创新引入了多分辨率特征网格与紧凑MLP相结合的方法来加速训练和推理,但它们仍然需要足够的GPU内存来支持其快速训练和推理,这在资源有限的情况下难以满足。因此,这些挑战极大地阻碍了INRs在现实场景中的实际部署。
鉴于这些挑战,我们的研究旨在开发一种先进的图像表示技术,以实现高效的训练、友好的GPU内存使用以及快速的解码。为实现这一目标,我们借鉴了最近为3D场景重建而开发的高斯展开(Gaussian Splatting, GS)。通过利用显式的3D高斯表示和可微分的基于瓦片的栅格化,3D GS不仅具有高质量视觉效果和竞争力的训练时间,还实现了实时渲染能力。
然而,直接将3D GS用于高效的单图像表示并非易事。首先,考虑到现有的3D GS方法依赖于不同的相机变换矩阵来从不同角度渲染图像,将其直接应用于单图像的一种简单方法是固定相机变换矩阵以从单一视角渲染图像。然而,不幸的是,每个3D高斯通常包含59个可学习参数,而表示单个图像则需要数千个3D高斯。这种简单的方法会大幅增加存储和通信需求。单个图像的存储占用量从几十千字节激增到几十兆字节,这使得在低内存设备上渲染变得困难。其次,3D GS中的栅格化算法是为α混合近似设计的,需要基于从相机参数获得的深度信息对高斯进行预排序。这对单图像来说是一个挑战,因为自然单张图像中通常不知道详细的相机参数,而非自然图像(包括屏幕截图和AI生成的内容)也不是由相机捕捉的。没有准确的深度信息,高斯排序可能会受到影响,从而降低最终的拟合性能。此外,当前的栅格化过程在累积不透明度超过给定阈值后就会跳过剩余的高斯分布,这导致高斯数据利用不足,因此需要更多高斯分布以实现高质量渲染。
为了解决这些问题,我们提出了一种新的图像表示和压缩范式,即使用二维高斯泼溅(Splatting)的GaussianImage。首先,我们采用二维高斯分布而非三维,以实现紧凑且富有表现力的表示。每个二维高斯分布由四个属性(共九个参数)定义:位置、各向异性协方差、颜色系数和不透明度。这种修改使得在等效高斯点的情况下,二维高斯分布相对于三维高斯分布实现了6.5倍的压缩,从而显著降低了高斯表示的存储需求。
随后,我们提出了一种独特的栅格化算法,该算法用累积求和过程取代了基于深度的高斯排序和α混合。这种新方法直接从覆盖当前像素的所有高斯分布的加权和中计算每个像素的颜色,这不仅充分利用了所有覆盖当前像素的高斯点的信息以提高拟合性能,还避免了累积透明度的繁琐计算,从而加速了训练和推理速度。更重要的是,这种求和机制允许我们将颜色系数和不透明度合并为一组加权颜色系数,将参数数量减少到8个,并进一步将压缩比提高到7.375倍。
最后,我们将二维高斯表示转化为实用的图像编解码器。我们将图像压缩视为高斯属性压缩任务,并采用两步压缩策略:属性量化感知微调(quantization-aware fine-tuning)和编码。通过对位置、协方差参数和加权颜色系数应用16位浮点量化、6位整数量化和残差向量量化(RVQ),我们能够以较低的比特率实现高质量的图像压缩,同时保持图像中的细节和边缘信息。
通过分别对位置、协方差参数和加权颜色系数应用16位浮点量化、6位整数量化和残差向量量化(RVQ),我们成功开发了首个基于二维高斯溅射的图像编解码器。作为初步的概念验证,我们可选地使用部分位返回编码来进一步提升编解码器的压缩性能。
下面一起来阅读一下这项工作~
1. 论文信息
标题:GaussianImage: 1000 FPS Image Representation and Compression by 2D Gaussian Splatting
作者:Xinjie Zhang, Xingtong Ge, Tongda Xu, Dailan He, Yan Wang, Hongwei Qin, Guo Lu, Jing Geng, Jun Zhang
机构:香港科技大学、北京理工大学、SenseTime Research、清华大学AIR、香港中文大学、上海交通大学
原文链接:https://arxiv.org/abs/2403.08551
代码链接:https://github.com/Xinjie-Q/GaussianImage
官方主页:https://xingtongge.github.io/GaussianImage-page/
2. 摘要
隐式神经表示(INRs)最近在图像表示和压缩方面取得了巨大成功,在假设有足够的GPU资源的情况下,它们能够提供高质量的视觉效果和10-1000 FPS的快速渲染速度。然而,这一要求往往阻碍了它们在内存有限的低端设备上的使用。为此,我们提出了一种基于二维高斯溅射(Gaussian Splatting)的图像表示和压缩的新范式,命名为GaussianImage。我们首先引入二维高斯来表示图像,其中每个高斯具有包括位置、协方差和颜色在内的8个参数。随后,我们提出了一种基于累加求和的新型渲染算法。值得注意的是,我们的方法在最小化GPU内存使用(低至3倍)和拟合时间(快至5倍)的同时,不仅在表示性能上与INRs(如WIRE、I-NGP)相媲美,而且在不考虑参数大小的情况下,提供了1500-2000 FPS的更快渲染速度。此外,我们还结合了现有的矢量量化技术来构建图像编解码器。实验结果表明,我们的编解码器在率失真性能上与基于压缩的INRs(如COIN和COIN++)相当,同时实现了大约2000 FPS的解码速度。此外,初步的概念验证显示,在使用部分位返回编码时,我们的编解码器在性能上超越了COIN和COIN++。代码可访问https://github.com/Xinjie-Q/GaussianImage获取。
3. 效果展示
Kodak和DIV2K数据集上不同解码时间的图像表示(左)和压缩(右)结果。每个点的半径表示参数大小(左)或每像素位数(右)。无论参数大小或bpp如何,我们的方法都具有最快的解码速度。
总体而言,我们的贡献有三个方面:
• 我们提出了一种基于二维高斯溅射的图像表示与压缩的开创性范式。通过紧凑的二维高斯表示和新颖的基于累积混合的光栅化方法,我们的方法实现了高表示性能,具有较短的训练时间、极小的GPU内存开销,以及惊人的2000 FPS渲染速度。
• 我们开发了一个低复杂度的神经图像编解码器,采用向量量化。此外,我们还可选地使用部分位返回编码技术来降低比特率。
• 实验结果表明,与现有的隐式神经网络(INR)方法相比,我们的方法在保持相似视觉质量的同时,实现了显著的训练和推理加速,并且减少了GPU内存的使用。当用作高效的图像编解码器时,我们的方法提供了与COIN和COIN++相当的竞争性压缩性能。全面的消融实验和分析证明了每个提出组件的有效性。
5. 基本原理是啥?
图2描述了我们的GaussianImage的整体处理流程。我们的方法首先在图像平面上形成二维高斯分布,这一过程主要计算二维协方差矩阵Σ。之后,我们采用累积混合机制来计算每个像素的值。我们详细介绍如何在图像上构建二维高斯分布,包括如何计算每个高斯分布的均值和协方差矩阵。为了将三维高斯溅射(GS)的栅格化过程适应于二维图像表示的独特特性,并减少二维高斯所需的参数,我们提出了一种新的栅格化方法。这种方法将基于累积混合的策略,以更高效的方式将二维高斯映射到图像像素上。我们将介绍一个两步压缩流水线,用于将我们的GaussianImage转换为神经图像编解码器。这个流水线将包括量化过程(如浮点量化和整数量化)以及可选的位返回编码技术,以进一步降低比特率。最后,我们将说明在图像表示和压缩任务上的训练过程。这包括如何设置训练数据集、优化目标函数以及评估模型性能的指标。通过训练,我们的模型将能够学习到如何有效地表示和压缩图像数据。
在图像过拟合之后,我们提出了一种基于GaussianImage的图像压缩流程。如图3所示,我们的标准压缩流程包括两个步骤:图像过拟合和属性量化感知微调。为了达到最佳的压缩性能,部分位返回编码是一种可选的策略。在此,我们以基于乔列斯基分解(Cholesky factorization)的GaussianImage为例,阐述我们的压缩过程。
表1展示了在相同训练步骤下,各种方法在Kodak和DIV2K数据集上的表示性能。尽管基于多层感知机(MLP)的隐式神经表示(INR)方法(如SIREN、WIRE)利用较少的参数来拟合图像,但它们存在训练时间长和渲染速度极慢的问题。最近基于特征网格的INR方法(如I-NGP、NeuRBF)加速了训练和推理过程,但与基于高斯球(GS)的方法相比,它们需要更多的GPU内存。由于原始的三维GS使用三维高斯函数作为表示单元,它面临着参数数量庞大的挑战,这减缓了训练速度并限制了推理速度。通过选择二维高斯函数作为表示单元,我们的方法在训练时间、渲染速度和GPU内存使用方面表现出显著优势,同时在大幅减少存储参数数量的同时保持了相当的拟合质量。
编码性能。图4展示了不同编解码器在Kodak和DIV2K数据集上的率失真(Rate-Distortion, RD)曲线。值得注意的是,我们的方法在峰值信噪比(PSNR)方面与COIN和COIN++的压缩性能相当。借助部分位回编码技术,我们的编解码器性能超过了COIN和COIN++。此外,在采用多尺度结构相似性(MS-SSIM)衡量时,我们的方法大幅超越了COIN。图5对我们的方法、JPEG和COIN进行了定性比较,结果显示我们的方法更有效地恢复了图像细节,并在消耗更低比特率的情况下提供了更优的重构质量。
计算复杂度。表2报告了多个图像编解码器在DIV2K数据集上的计算复杂度,其中基于学习的编解码器在NVIDIA V100 GPU上运行,而传统编解码器则在单核模式下、基础频率为3.50GHz的Intel Core(TM) i9-10920X处理器上运行。令人印象深刻的是,我们的编解码器的解码速度达到了约2000帧每秒(FPS),超过了JPEG等传统编解码器,同时在较低比特率下提供了增强的压缩性能。这标志着神经图像编解码器领域的一大进步。
在本文中,我们引入了GaussianImage,这是一种创新的图像表示范式,它利用二维高斯溅射(Splatting)技术。这种方法与常用的隐式神经网络显著不同,为图像提供了一种离散且明确的表示方式。与三维高斯溅射相比,采用二维高斯核为图像表示带来了两大显著优势。首先,计算密集型的alpha混合被简化为一种高效且排列不变的累积求和混合。其次,每个高斯所需的参数数量从59个大幅减少到仅8个,极大地降低了复杂度。因此,GaussianImage成为了一种高效且紧凑的图像编码技术。实验结果表明,这种明确的表示策略显著提高了训练和推理效率。此外,在对参数进行矢量量化后,与采用隐式神经表示的方法相比,GaussianImage在率失真性能上也具有竞争力。这些发现为非端到端图像压缩和表示策略提供了进一步探索的有前途的方向。
对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~
往期回顾
基础知识
最新论文解析
NeurIPS2022 Spotlight | TANGO:一种基于光照分解实现逼真稳健的文本驱动3D风格化
ECCV2022 Oral | 微软提出UNICORN,统一文本生成与边框预测任务
NeurIPS 2022 | VideoMAE:南大&腾讯联合提出第一个视频版MAE框架,遮盖率达到90%
NeurIPS 2022 | 清华大学提出OrdinalCLIP,基于序数提示学习的语言引导有序回归
SlowFast Network:用于计算机视觉视频理解的双模CNN
WACV2022 | 一张图片只值五句话吗?UAB提出图像-文本匹配语义的新视角!
CVPR2022 | Attention机制是为了找最相关的item?中科大团队反其道而行之!
ECCV2022 Oral | SeqTR:一个简单而通用的 Visual Grounding网络
如何训练用于图像检索的Vision Transformer?Facebook研究员解决了这个问题!
ICLR22 Workshop | 用两个模型解决一个任务,意大利学者提出维基百科上的高效检索模型
See Finer, See More!腾讯&上交提出IVT,越看越精细,进行精细全面的跨模态对比!
MM2022|兼具低级和高级表征,百度提出利用显式高级语义增强视频文本检索
MM2022 | 用StyleGAN进行数据增强,真的太好用了
ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者
ECCV2022|只能11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT
CVPR2022|比VinVL快一万倍!人大提出交互协同的双流视觉语言预训练模型COTS,又快又好!
CVPR2022 Oral|通过多尺度token聚合分流自注意力,代码已开源
CVPR Oral | 谷歌&斯坦福(李飞飞组)提出TIRG,用组合的文本和图像来进行图像检索