Instant-NGP稿子

Instant-NGP是英伟达2022年发表的一篇论文,全称是使用哈希编码的多分辨率的即时神经图形原语

那这篇文章呢

这篇文章提出了一种对输入做哈希encoding的方式,来让很小的网络也能学到很高的质量。

这个图片是文中的一个图片,表现了可以在训练很短的时间内就将图像表现得很清晰

那么这些输入的特征怎么去得到得呢?就是用到了一个多分辨率哈希编码,我们可以结合下面的参数来看

这个L表示具有多少分辨率等级,图中只画出了两个等级,就是L=0和L=1,那么具体到实际中的是16个等级,然后每一个等级的时候其实对应一个哈希表,具体有多少项就是用T表示(可以理解为哈希表的表长这里是214到220),然后每一项特征的维度是多少使用F表示,这里就是F=2

下面的Nmin和Nmax在代码里也是固定值;这两个表示最小分辨率和最大分辨力
这两个值就确定了在这个分辨率下,我要将这图片分为多少个网格

然后我们再来看他是如何得到哈希特征的,首先这个点我们可以计算他在哪些方格当中,那他落在这两个之中就对应了不同的等级

在L=1这个登记下我们去计算他的哈希特征。首先我们会将这四个顶点进行一个哈希映射,得到一个哈希索引就是0 2 3 6,然后我们再去对应的哈希表中去找相应的哈希特征,然后我们再用双线性插值的方法得到这个点的哈希特征

对于每一个等级下都会得到一个F=2的哈希特征,最终通过多分辨率哈希编码以后最终得到的就是16*2的哈希特征,此外还有一个辅助特征进行一个拼接,最后再送入到这个比较小的哈希网络中

2^14对于比较小的level的话,网格的数量小于T,那就不会发生哈希冲突
但是在比较精细的level下,比如这个最大分辨率,那么网格的总数可能会大于table length,那有可能发生哈希冲突,索引到相同的value值,发生哈希碰撞,但是作者没有在代码层面设计处理这个哈希碰撞,因为在神经网络的训练中,可以让神经网络来处理这个哈希碰撞。
靠梯度来进行哈希表参数的优化。
如果两个点索引到同一个位置发生了冲突,因为n3上的立方上的场景中的值是没有意义的,物体表面n2是有意义的,因此在n^2点位上的梯度是有价值的,在空的点位上的值是没有价值的,这样表面上点的梯度就会站指导地位,把冲突解决掉

也就是表面上的点会更强烈的促进网络的更新
在这里插入图片描述

比如说 这里的2的14和2的19,他的迭代时间差的不是特别的大,但是性能的话会好一些,但如果更新到21的话,意味着这个table会很长,那这个值得更改就会比较漫长,那么时间就会久一些,性能也会提升一些

这里面两种是两个数据集

另一个是F得实验
在这里插入图片描述

这个表对比了他们得实验以及另外三种实验,这八个是数据集得实验结果
这里面金色得话就是金牌得意思

主要是这里的训练速度上是远远好于其他方式得
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/pjm616/article/details/131301367