fudan-zvg / 4d-gaussian-splatting

[ICLR 2024] Real-time Photorealistic Dynamic Scene Representation and Rendering with 4D Gaussian Splatting
MIT License
573 stars 40 forks source link

请教作者大神们一个问题 #10

Open yuedajiong opened 8 months ago

yuedajiong commented 8 months ago

按照你们论文的算法:

  1. 比如拟合一个运动的人的时候:假设比如第1个时刻点,右手在头顶,假设有一个高斯点表示了右手食指;第n个时刻点,右手挥舞到腹部了,这个时候,右手食指,还是同一个高斯点,通过xyz经过n-1步移动过去,来表示的吗? 也就是说:不同时刻,高斯点数目一样吗?高斯点和场景/对象之间有“一定程度”的关联关系吗?(也可能是是其他地方的一个点来表示右手食指了)

  2. 类似上面,假设一个烟火场景,第1时刻点,可能只有1个火花(简单假设就1个高斯点来表示了),和第n时刻点,可能有10000个火花,这两个不同的时刻,高斯点数目一样吗? 通过把高斯点缩小或者透明化/反透明化,等模型中几个属性(xyz, s+r, c, o, t)的控制来实现吗?(这个场景,我想表达的,没有类似人体那种半刚体的连续变化。)(我们设想一种比较极端的场景:要表达一团动态的烟火,足够长的时间,如果点数不变,最终是不是高斯点几乎弥散在整个范围内,只是透明图/颜色变化,实现火焰跳动闪烁。)

我的理解,是高斯点数没有变化,不知道理解的对不对。

  1. 从原始3DGS的表示:到你们的表示原生纯4D表示 xyz,s,r_3d,sh_3d,o --> xyz,t,s,r_4d,sh_4d,o,也就是说,不同时刻t,t之间的差异,真正扩展时作用在是r和sh上的。

  2. 你们的论文很牛逼的,学到了不少知识。 不同的4D表示,对不同的对象/场景,合适程度不一样。 作者愿意分享一下,比如这几类对象/场景,用什么方式比较好吗? a) 刚体 (比如纯机械) b) 运动的半刚体(有骨架有非刚体的皮肉) (比如人体) c) 飘动的毛发 d) 游戏中特殊处理的粒子等: 烟花,水波

谢谢

Alexander0Yang commented 8 months ago

我不是大神,但愿意尝试回答下你的问题。

高斯点和场景/对象之间有一定程度的绑定关系吗?

因为高斯点外观在不同时刻相对稳定。高斯点和场景/对象之间有一定程度的绑定关系,但只是局部的。

假设比如第1个时刻点,右手在头顶,假设有一个高斯点表示了右手食指;第n个时刻点,右手挥舞到腹部了,这个时候,右手食指,还是同一个高斯点,通过xyz经过n-1步移动过去,来表示的吗?

如果场景运动较为复杂,通常同一个场景对象会由不同的高斯表示。但同一个高斯一般不会表示不同的场景对象。

不同时刻,高斯点数目一样吗?

这取决于如何定义某个时刻4D高斯点的数目。理论上每个4D高斯在时间上的影响范围是无限大的,因此在这种意义下可以说不同时刻高斯点的数目是一样的。但同一个4D高斯在不同时刻的影响强度存在峰值,远离峰值则强度会衰减——其峰值和衰减趋势能够可微地学习——因此对于某一时刻强度在一定阈值之上亦即实际对渲染有贡献的高斯数目是未必相同的。

最终是不是高斯点几乎弥散在整个范围内,只是透明图/颜色变化,实现火焰跳动闪烁。

这种情况比较像我们文中提出的基线:xyz和t独立的4D高斯分布。但即使是这种情况高斯的密度也并非均匀弥散在整个时空范围内的——这意味着学到了错误的几何从而难以泛化到新视图——而是集中在场景流形上。这一基线相较于最终提出的方案缺点并不在于存在上述现象从而无法泛化,而在于无法很好地捕获动态细节。

yuedajiong commented 8 months ago

@Alexander0Yang

大神,我感觉4D的表示,其实还是一个开放性问题,可能现在所有的表示方法都各有缺陷。 GS 4D更是如此。

如果我们仔细想上面第四点中abcd(包含但不限于,比如再考虑上复杂光照,材质,物体互作,分辨率等),那么运动立体的表示就更复杂。

对于有形的物体,比如人,可以认为高斯点和对象本身有一定程度的绑定关系,而无形的火焰这种就不适合有绑定关系。 想象一团围绕一团火焰来构造其动态立体表示,当火很明亮相机2D看到的几乎全红的时候可能很少GS points就可以表示的很像,而当火焰快熄灭的时候可能独立的火星就数十数百万个,每个独立的产生、上浮、消失。

也就是说,不同运动性质的物体,不同的时间点,高斯点数是不是一样,可能都是个问题。 所以,我认为,相比于NeRF含4D-NeRF,这种离散化了的GS在4D的时候,其实从形式上,多了一些挑战需要解决。

https://github.com/graphdeco-inria/gaussian-splatting/issues/586#issuecomment-1874838272

水平有限,不是做CG方向的,可能理解的不对。

xiao10ma commented 1 month ago

@yuedajiong

假设比如第1个时刻点,右手在头顶,假设有一个高斯点表示了右手食指;第n个时刻点,右手挥舞到腹部了,这个时候,右手食指,还是同一个高斯点,通过xyz经过n-1步移动过去,来表示的吗?

根据论文和代码,高斯的xyz是保持不变的。如果我没理解错的话:在时刻1,头顶部的右手是由头顶部的高斯表示(此时那块高斯的时间t处于峰值);而在第n时刻,是由腹部的高斯来表示的(同样,那块地方的高斯的时间t处于峰值)