传统用于形状表示的隐式表示有:代数表示、函数表示、水平集表示等。
如下图利用对基础图形的交并补,可以得到复杂的图形。一般logo的设计或者三维零部件建模都是利用对基础图形的布尔运算来得到目标形状。
除了代数以外,还可以用一些解析的函数来表示形状。简单的就是圆以及椭圆的函数表达式。Rhodin等人将三维人体近似为高斯密度场,利用91个高斯函数去逼近出人体轮廓。除此之外,符号距离函数也常用来表示三维形状,如图通过提取零值点可以将三维模型表面提取出来。
一些形状是无法解析表示出来的,但是可以通过设定的水平集提取出形状。例如在医学中的CT、MRI,根据组织密度以及设定的水平集,就可以重构组织的三维体积模型。
隐式神经表示(Implicit Neural Representation,INR)(有时也称为基于坐标的表示)是一种对各种信号进行参数化的新方法。传统的信号表示通常是离散的,而隐式神经表示将信号参数化为一个连续函数,将信号的域映射到该坐标上的属性的值(例如对于图像,就是将像素坐标映射到R,G,B颜色)。
当然,这些函数通常不是解析性的——即不可能“写下”将自然图像参数化为数学公式的函数。隐式神经表示通过神经网络来近似信号函数。
隐式神经表示,在表示各种复杂信号都得到了广泛应用,这里举三个应用:超分辨率、新视角合成、三维重建。
从2.3的可以看出重建的模型是比较平滑的,缺乏细节的信息,那么是什么导致了这个原因呢?接下来就来看一下隐式神经表示常用的网络结构吧!
基于ReLU的多层感知器(MLP)是隐式神经表示常用的网络结构。Hornik[1]在1989年证明,当中间隐含层的神经元数量趋于无穷多时,多层感知机可以拟合任何非线性函数。
SIREN[2]:在隐形神经表示中使用了正弦函数来替代以往的激活函数,即将多层感知器(mlp)中线性整流函数替代为周期性正弦函数。
SIREN比ReLU-MLP更好地表示信号中的细节,证明了其在表示复杂的自然信号(如图像\视频\音频\三维形状)及其导数的优势。
MLP总是倾向于学习更光滑的结果,而对高频信号的刻画差强人意。造成这种现象的原因是网络自身的频谱偏置,使其更容易学习低频部分而忽略高频部分(换句话来说就是高频信号的在目标函数特征值小,故而在每次参数更新中受到的惩罚小,收敛很慢很慢,甚至几乎学不出来。)。2020Tancik 等人[3]提出了一个新的方法FPE(傅里叶位置编码)而这篇文章则在讲要怎么克服网络的频谱偏置。它提出了一种将网络input从低维映射到高维的一种方式,让MLP在不增加容量的情况下也能够学好高频信号,具体是通过一个简单的傅立叶特征映射来传递输入点,使多层感知器(MLP)可以学习低维问题域中的高频函数。
用多层感知机网络去学习表示图像,可以看到在图像的表示上加入位置编码后图像的细节信息明显被更多的保留了下来,并且高频的细节信息得到了更快的收敛。
但是如上图所示其也存在一定的问题,低频分类不能被很好地拟合,从而会导致结果带有较多的噪声、瑕疵。
其它隐式神经表示相关改进的论文可查阅“神经表示(INRs)相关论文汇总”。
本文的大部分图片来自百度!
[1] Hornik K, Stinchcombe M, White H. Multilayer feedforward networks are universal approximators[J]. Neural networks, 1989, 2(5): 359-366.
[2] Sitzmann V, Martel J, Bergman A, et al. Implicit neural representations with periodic activation functions[J]. Advances in Neural Information Processing Systems, 2020, 33: 7462-7473.
[3] Tancik M, Srinivasan P, Mildenhall B, et al. Fourier features let networks learn high frequency functions in low dimensional domains[J]. Advances in Neural Information Processing Systems, 2020, 33: 7537-7547.