论文阅读笔记本
LRM: Large Reconstruction Model for Single for Single Image to 3D
主要贡献是image2triplane,2024ICLR oral,似乎是没有赶上用3DGS。
技术上,确实就是使用了标准的Transformer,首先将输入单视图卷积得到feature送入grounding DINO encoder,然后decoder中得到Triplane Token反卷积得到三平面,此后是常规的NeRF类方法渲染。
训练的重点是Decoder。Decoder中嵌入了规范化的相机特征,目的是更好收敛。相机特征是20维度,4x4的外参,focal和主点坐标,归一化,然后用MLP抬到高维嵌入,然后计算scale和shift计算adaLN。
我认为对于有关相机的操作存疑。理想情况下,要求所有训练object都定义了良好的正面,比如同为车辆类,正面定义相同。而如果正面定义是完全随机的,优化可能就和固定视角初始化区别不大了。不过考虑到实际上,建模时对正面定义大致类似,结论还是可以接受的。
训练目标是非常简单的MSE+LPIPS渲染Loss。训练数据是大量三维模型和真实物体视频。可以获得多视图(用于训练)和视角的数据都可以用。
LGM: Large Multi-View Gaussian Model for High-Resolution 3D Content Creation
ECCV 2024 oral。总体上和LRM目的一致,主要还是用上了GS。但是GS非常离散,之前的三平面feature并不能用,所以很自然的直接生成某一视角下的GS feature然后类似点云特征直接fuse在一起。这就引入了多视角的要求,需要和以往的text23d方法一样使用Diffusion辅助生成多视角,而LRM可以纯单视图。
本文作为一篇3D生成,居然没有坤坤,显得不够专业。
本文参考以往方法使用了普吕克光场拼接,直接将像素和位姿作为直线表示,有利于空间关系对齐。主网络是Unet,仅深层具有Self Attention。将直线直接作为特征输入就输出稍微低resolution的GS点图。fuse过程是简单的合并在一起。。我还以为会用光场拼接操作或者有拼接网络。。
感觉本文全是Following…,Inspired by…,然后生成模型也是现成的。Mesh方法则似乎也不是重点,作为Optional。相比之下,个人认为其Follow的Splatter Image的文章看起来数学思路和贡献更加明显清晰。
32卡A100 4天,good bye。
PhysMotion: Physics-Grounded Dynamics From a Single Image
NeuMA: Neural Material Adaptor for Visual Grounding of Intrinsic Dynamics
Free-DyGS: Camera-Pose-Free Scene Reconstruction based on Gaussian Splatting for Dynamic Surgical Videos
pose-free的动态重建,和动态SLAM任务非常相像,但是本文没有强调SLAM。
重点在于利用了GRN初始化Gaussian而不是简单的投射,类似LGM的Unet特征生成网络。
可以学习的优化思路:1. 考虑到内镜不总是在移动,以及移动速度有时候很慢,expension在动得快的时候才做,计算invisible的比重触发。2. 长段序列按时间切分为多个模型。这好像是wildnerf还是哪个的做法,这样做的话不好做回环检测以及来回伸缩的场景好像不太合理。
Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction
Neurips 2024 Best Paper,其背后的故事也是比较逆天。考虑到没有200+张A100,这篇只简单看一下大致思路和可能的使用方法。
RTG-SLAM: Real-time 3D Reconstruction at Scale Using Gaussian Splatting
SIGGRAPH 2024。是GS+SLAM,注重加速。
两个主要内容,一个是二极化的场景表示,一个是tracking方面的优化。场景表示使用透明和不透明的两种GS,其中不透明的用于表示几何和渲染深度,但不是使用2DGS的平面GS,而是在渲染的时候将3DGS的覆盖区域视为同一个深度值,以免球形导致不平。思路上还是希望做表面重建,考虑到室内几何场景平面表面居多,这样处理几何可以减少构建集合所需的点数,渲染深度也更加快,会加速优化。透明的GS用于纠正深度。看正文汇报的Mapping速度是50ms左右,和EndoGLSAM通过调参达到的速度处于同一个量级。而且根据我的复现结果和论文原图放大可见其相比于Splatam虽然确实快了,但明显牺牲了渲染质量。这个二极化表示没有起到明显的加速效果,本文速度上的提升仍然是牺牲质量带来的。但是,根据文中结果,提出的表示的确带来了更好的几何,但几何上没有比过PointSLAM。
相机跟踪上,文中主要讲述的是利用可微方法进行位姿优化,然后文中轻描淡写的说使用类似Orb-SLAM进行后端优化。在EndoGSLAM的工作中有过关于使用可微优化位姿和使用现成SLAM作为后端的讨论,但本文就非常鸡贼,看似两者兼用规避问题,实则几乎还是使用现成SLAM为主。实现上,如果启用后端,每次进行可微优化,会根据图像重叠指标计算可微优化出来的位姿是否成功,如果不成功,就直接由ORB接管了,直接使用ORB出来的位姿,而如果优化出来的还可以,就将优化得到的位姿作为ORB的初始化,结果还是使用ORB。也就是说,无论如何位姿都是走的ORBSLAM,区别只是如果优化的好,就用优化结果来初始化ORB。如果设置非常小的优化论述,优化时间就会缩短,导致直接使用ORBSLAM,得到比优化更精确的结果,也就是说,优化越快,优化越好。文中给出的结果来看,如果不使用后端,ate会很差,而且复现老哥给出的结果比原文中还要差。
如果直接使用ORB,本文速度和渲染质量可以和基于Splatam改进的方法比较接近。可微渲染的作用和意义存疑。
另,在非docker直接配ORB是真麻烦,依赖库有几处需要手改include然后还需要注意版本关系,而且牵一发动全身改一个版本需要全部重新编译。在这之前还有cuda版本、torch版本和torch3d版本需要手动匹配,不过从源码编译基本解决大部分问题。
X-SLAM: Scalable Dense SLAM for Task-aware Optimization using CSFD
ToG。好数学,慢慢看。