作者 | 3D视觉之心 编辑 | 自动驾驶之心
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
渲染加速有进展后,存储成本“卡脖子”
NeRF通过在三维点处定义密度和辐射率,以隐式方式无缝捕捉三维场景的连续信号。利用三维坐标的基于频率的位置嵌入,NeRF展示了比传统显式三维表示更优越的新视点合成质量。但是其复杂的多层感知器(MLP)查询过程却降低了渲染速度。
为了提升NeRF的渲染速度,最近的方法趋向于混合表示,结合显式体素化特征编码和隐式神经网络:在不降低质量的情况下承诺更快的渲染速度。这些方法包括各种数据结构:
密集网格
八叉树
稀疏体素网格和哈希表
其中Instant-NGP[2]是最具代表的一种:通过引入多分辨率可学习的哈希嵌入。然而,随着渲染质量和速度的提高,其离散特性使其容易受到Nyquist采样定理的限制,通常需要指数级增加的内存来捕捉细节,存储成为新的约束。例如,随着大规模NeRF的出现,其参数的总存储量限制了其可访问性和部署。在考虑到众多三维场景时,存储挑战变得更加紧迫。
所以,在保持高保真度和渲染速度的同时,是否可以降低现代NeRF与混合表示的存储成本?
常见的思路是遵循“深度压缩”概念,通过剪枝和量化技术压缩显式特征编码部分。例如,VQRF[3]率先修剪冗余体素网格,并采用矢量量化进行参数减少。BiRF[4]更进一步,采用1位二值化压缩特征嵌入。

上海交通大学和莫纳什大学联合推出CNC压缩框架,核心原则是减少体素特征编码的信息不确定性(熵)。通过利用高效的熵编码器如算术编码,旨在实现存储成本最小化与保持渲染质量和速度之间的平衡:
CNC是第一个提出对INGP多分辨率哈希特征嵌入进行上下文建模的,以在保持保真度和速度的同时有效减少存储空间。
CNC设计了定制的上下文模型,这些模型不仅有效地构建了多层次的依赖关系,还构建了跨维度的依赖关系。同时利用哈希碰撞和占用网格作为强有力的先验知识,以提供更准确的上下文。
广泛的实验表明,CNC框架在Synthetic-NeRF和Tanks and Temples数据集上相比基线INGP分别实现了超过100倍和70倍的体积缩减,同时提高了保真度。与最先进的NeRF压缩算法BiRF相比,我们的方法在存储空间上减少了超过80% 。
(大拇指往上滑,点击最上方的卡片关注我,整个操作只会花你 1.328 秒,然后带走未来、所有、免费的干货,万一有内容对您有帮助呢~)
具体方法
CNC是基于Instant-NGP(INGP),如图1右侧所示,INGP的主要存储来自显式哈希特征嵌入。为了最大限度地减少整体模型大小,引入了一个名为上下文基NeRF压缩(CNC)的新框架,该框架各种模块如图2所示。
与上下文模型的压缩Embeddings
为了简化,省略了θ中的分辨率级别的表示,并假设特征维度为1,即θθ。框架的基本原则是减少θ的信息不确定性。受BiRF[4]的二值化概念启发,将每个值θ建模为符合伯努利分布,即θ。这使得每个θ具有基于熵的可微分位消耗估计器,其概率为θ:

一种直接估计 的方法是使用出现频率 ,其中 表示计数,这样对于 ,可以令 。然而,我们发现这种方法对所有嵌入的准确性不高。关键发现是,三维空间中的空间上下文可以提高 估计的精度。例如,如果一个点在三维空间中是空的,我们应该花费更少的位来存储 中的相应特征。这促在估计 时在空间域引入上下文模型。具体来说,提出了两种类型的上下文模型:层级上下文模型和维度上下文模型。
层级上下文模型
层级上下文模型的主要目标是在不同层次的θ之间建立上下文依赖关系,期望更准确的概率预测能带来存储空间的减少。需要考虑以下关键问题:
上下文依赖关系应遵循因果过程。也就是说,只能利用已经解码的θ作为上下文来预测那些尚未解码的θ。
上下文模型本身也会消耗存储空间。这个限制防止采用任意大的上下文模型,尽管更多的参数可能会提高它们的预测能力。
上下文依赖关系的顺序至关重要。如果首先解码更有信息量的部分,它们可以为其他部分提供更多的上下文,但代价是消耗更多的位来存储它们自己。
考虑到这些因素,CNC设计了从粗到细的层级上下文模型,如图2(上)蓝色虚线框所示。以图2中的示例顶点及其在当前层次的关联特征θ为例,按照从粗到细的原则,的上下文依赖于前层相应位置的插值特征,其中是一个预设常数。还将当前层次的出现频率作为上下文建模的辅助指导。所有的上下文信息随后被连接并输入一个名为Context Fuser 的小型两层MLP中,以估计顶点处的概率。
如果前几层的数量少于,将设置为(即使用所有可用的前几层作为上下文)。对于层次,我们仅利用其出现频率来估计位消耗。
哈希融合与占用网格
为了缓解可训练嵌入在较高分辨率下的广泛存储问题,采用了空间哈希索引。然而,这在构建上下文模型时引入了哈希碰撞问题。可以通过占用网格的辅助来实现更准确的预测。占用网格在CNC中起到了关键作用,它将整个三维场景划分为网格单元,并以二进制格式记录占用情况。通常,只有物体表面的单元被占用,而其余部分为空,从而导致稀疏性。这种固有的稀疏性使得占用网格成为显著增强我们上下文建模的空间先验。

图3说明了提出的哈希融合解决方案的细节,以解决哈希碰撞问题。特别地,假设特征向量θ对应个顶点,表示为 (例如,图3中)。这意味着对于每个θ,将估计多个概率。定义顶点的影响区域(AOE)为围绕的体素网格和被占用单元之间的交集,用以加权概率预测,从而有效地确定顶点的重要性。例如,图3中的顶点的AOE为0,则它是无效的,不应参与的计算。的最终加权概率表达为:

其中,权重( w_k^i )根据顶点的AOE进行归一化
这不仅提高了训练效率,还改进了上下文的准确性。此外,如果所有相关顶点都是无效的,那么相应的θ_i也是无效的,可以直接丢弃以节省存储空间。
维度上下文模型
考虑到BiRF引入了混合的二维-三维特征嵌入以提高重建质量,除了在不同层次建模上下文依赖关系外,还强调了跨维度关系的重要性。维度上下文模型的主要思想是利用三平面特征和体素特征之间的内在关系。二维三平面特征嵌入无法提供足够的上下文信息来预测三维体素特征嵌入,可能是由于缺少一个维度。所以从三维上下文估计二维平面嵌入的概率。
如图2(左下)橙色虚线框所示:
首先使用空间哈希函数重建整个三维体素。
然后,沿三个不同的轴投影这个三维体素,并记录每个轴方向上+1的频率,以获得二维投影体素特征(PVF)。在投影过程中,利用了占用网格提供的有效三维空间的先验知识。
如果顶点的AOE为0,则它将从投影计算中省略。PVF将作为额外的“前一级”上下文来估计每个二维θ的概率。值得注意的是,PVF可以从三个不同的二维平面获得,即xy、xz和yz平面。CNC们只利用对应于最大分辨率的三维特征嵌入来生成PVF,因为它们包含最丰富的信息。
训练损失
通过建立上下文模型,可以计算熵损失 ,它被定义为所有有效特征向量θ的位数之和。整体损失函数变为:

其中, 是图像重建的均方误差(MSE)损失, 是平衡这两个项的权重因子, 是嵌入中的θ的数量,包括有效和无效的。
解码和渲染过程
在测试过程中:
首先使用层级上下文模型从浅层到深层解码三维嵌入
然后利用最后一层三维嵌入生成二维嵌入的维度上下文
最后,在维度上下文的辅助下,二维嵌入按从粗到细的顺序进行解码。
编码/解码过程大约需要1秒钟。值得注意的是,一旦嵌入解码完成,所有的渲染过程与INGP相同,不需要额外的时间。
实验欣赏






总结一下
CNC是一种基于上下文的NeRF压缩框架,其中上下文模型被精心设计以消除二值化嵌入的冗余。哈希碰撞和占用网格也被充分利用以进一步提高预测的准确性。在两个基准数据集上的实验结果表明:CNC可以显著压缩基于Instant-NGP的多分辨率NeRF并达到最先进的性能。
局限性:训练时间的延长,导致比没有上下文模型的训练时间长约1.3倍。可以通过以下方式缓解:
降低保真度上限
调整上下文模型
改进代码以并行执行上下文模型和渲染MLP
参考
[1] How Far Can We Compress Instant-NGP-Based NeRF?
[2] Instant neural graphics primitives with a multiresolution hash encoding
[3] Compressing volumetric radiance fields to 1 mb
[4] Binary radiance fields
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵