这其实是一个令人激动的新潮流。可以考虑维护一个awesome implicit function representation的论文列表。
后记:已经有这个仓库了:https://github.com/vsitzmann/awesome-implicit-representations
这个起源其实是在19年三篇三维生成与表示的论文
1Learning implicit fields for generative shape modeling
2Occupancy networks: Learning 3D reconstruction in function space
3DeepSDF: Learning continuous signed distance functions for shape representation
他们主要解决的原先基于显式表示的数据(比如图像的像素,三维形状的体素或者网格表示),交给神经网络进行学习,效果不好。举个例子
可以看到在训练阶段两个CNN的学习结果都是一样的。但是一旦开始在特征图(feature map,也称之为隐空间latent space)里面插值,学习显式数据表示的中间态都不是A。直观上可以认为,这个网络似乎在死记硬背A的像素,而没有理解A的形状。反观学习隐式(implicit )数据表示的CNN,成功捕捉到了形状特征。
同样的结果推广到三维表示也是这样:
在三维形状生成方面,IMGAN的生成质量确实超过了其他基于显式数据表示学习的网络。
通过这样直观的例子,我们可以看到CVPR2019中这三篇文章使用神经网络作为标量函数逼近器来逼近占用(occupation)或符号距离函数(SDF)这样的隐函数(implicit function)。
然后这股风刮到了其他三维重建领域,比如人体三维重建研究pifu和他的一系列后续应用Project Splinter。
然后刮到了nerf,还有其他neural differential render以及多视图合成新视角相关的研究。影响之深远,效果之好,甚至github还有awesome nerf这样的开源项目。
paperswithcode也专门准备了这个主题的下游研究页面:
此外围绕这个也推出很多围绕nerf讲解趋势的高质量文章。比如
现在回头讲讲这个研究:
原理其实很好理解,让神经网络拟合连续的函数会比之前显式的离散数据效果好很多(起源三论文)。既然要逼近连续函数,莫过于以正弦函数族为基函数的方法了(SIREN把sin作为激活函数以及nerf研究把sin2^nX作为输入)基函数的改变最直接的结果就是收敛速度快了很多,所以有这样的demo。
那这个效果到底有多好呢,眼见为实,耳听为虚,直接到playground玩一玩:
在这个非常难的分类任务上甚至可以将测试集的loss降到了0.010。大家可以试试用其他激活函数能不能达到这个结果。
这样的implicit function表示数据的学习研究,仅仅出现一年左右,却一跃成为了2020年各大顶会的主题。用pifu pifuhd 可微渲染 nerf SIREN等研究展现它的潜力。而这个方法可以运用到各个领域上,用到各种模态的数据的benchmark上,比如图像超分辨率:Learning Continuous Image Representation。这篇英伟达的研究把超分辨率的效果提高到了30x。