字节跳动利用单张图片做三维重建:将NeRF、MPI结合,提出MINE

机器之心专栏
字节跳动视觉技术团队
来自字节跳动视觉技术团队的研究者将NeRF和MultiplaneImage(MPI)结合 , 提出了一种新的三维空间表达方式MINE 。 该方法通过对单张图片做三维重建 , 实现新视角合成和深度估算 。
字节跳动视觉技术团队结合NeRF和MultiplaneImage(MPI) , 提出了一种新的三维空间表达方式MINE 。 MINE通过对单张图片做三维重建 , 实现新视角合成和深度估算 。 通过引入隐式神经场(NeRF) , 研究者将MultiplaneImages(MPI)扩展成连续的深度平面 。 给定单个图片作为输入 , MINE能在相机视锥中的任意深度 , 预测出一个四通道的图像 , 四通道包括RGB颜色和空间密度 。 这种任意深度的四通道预测 , 实际上是对输入图片的视锥的三维重建 , 以及对被遮挡内容的填充(inpainting) 。 我们可以利用被重建和填充的视锥方便地渲染出新视角下的RGB图片和深度图 , 并且渲染过程是可导的 。
字节跳动利用单张图片做三维重建:将NeRF、MPI结合,提出MINE
文章图片
论文地址:https://arxiv.org/pdf/2103.14910.pdf项目地址:https://github.com/vincentfung13/MINE在RealEstate10K , KITTI和FlowersLightFields数据集上的实验表明 , MINE在新视角合成的性能上大幅超越了当前最前沿的方法 。 同时 , 在iBims-1和NYU-v2的实验表明 , 团队在没有使用真值深度做监督训练的情况下 , 获得了和前沿方法接近的深度估计性能 。
该研究的训练代码与pretrainmodel已经开源 。
字节跳动利用单张图片做三维重建:将NeRF、MPI结合,提出MINE
文章图片
相关工作
近年来 , 在新视角合成这个领域里 , 最火爆的方法无疑是ECCV2020的NeRF[5] 。 与传统的一些手工设计的显式三维表达(LightFields , LDI , MPI等)不同 , NeRF把整个三维空间的几何信息与texture信息全部用一个MLP的权重来表达 , 输入任意一个空间坐标以及观察角度 , MLP会预测一个RGB值和volumedensity 。 目标图片的渲染通过raytracing和volumerendering的方式来完成 。 尽管NeRF的效果非常惊艳 , 但它的缺点也非常明显:
一个模型只能表达一个场景 , 且优化一个场景耗时久;per-pixel渲染较为低效;泛化能力较差 , 一个场景需要较多的照片才能训练好 。 字节跳动利用单张图片做三维重建:将NeRF、MPI结合,提出MINE
文章图片
另外一个与该研究较相关的是MPI(MultiplaneImage)[1,2,3] 。 MPI包含了多个平面的RGB-alpha图片 , 其中每个平面表达场景在某个深度中的内容 , 它的主要缺点在于深度是固定及离散的 , 这个缺点限制了它对三维空间的表达能力 。 [1,2,3]都能方便地泛化到不同的场景 , 然而MPI各个平面的深度是固定且离散的 , 这个缺点严重限制了它的效果 。
字节跳动利用单张图片做三维重建:将NeRF、MPI结合,提出MINE
文章图片
方法综述
该团队采用一个encoder-decoder的结构来生成三维表达:
Encoder是一个全卷积网络 , 输入为单个RGB图片 , 输出为featuremaps;Decoder也是一个全卷积网络 , 输入为encoder输出的featuremap , 以及任意深度值(repeat+concat) , 输出该深度下的RGB-sigma图片;最终的三维表达由多个平面组成 , 也就是说在一次完整的forward中 , encoder需要inference一次 , 而decoder需要inferenceN次获得个N平面 。 字节跳动利用单张图片做三维重建:将NeRF、MPI结合,提出MINE
文章图片
获得三维表达后 , 不再需要任何的网络inference , 渲染任意target相机pose下的视角只需要两步:
利用homographywrapping建立像素点间的correspondence 。 可以想象 , 从target相机射出一条光线 , 这条光线与target图片的一个像素点相交 , 然后 , 研究者延长这条射线 , 让它与source相机视锥的各个平面相交 。 相交点的RGB-sigma值可以通过bilinearsampling获得;利用volumerendering将光线上的点渲染到目标图片像素点上 , 获得该像素点的RGB值与深度 。Scale校正