问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OmniRe:全方位城市场景重建技术解析

创作时间:
作者:
@小白创作中心

OmniRe:全方位城市场景重建技术解析

引用
CSDN
1.
https://blog.csdn.net/weixin_42973508/article/details/145802587

OmniRe 是一篇关于城市场景重建的论文,提出了一种新的神经场景图表示方法,通过显式区分和单独建模场景中的动态物体,实现了更高质量的场景重建。本文将详细介绍OmniRe的主要贡献、技术细节、代码实现和训练过程。

OmniRe的主要贡献

  1. 场景内物体分类重建:OmniRe通过对场景内的物体进行细致分类,通过单独的优化提高重建效果。这对于动态场景重建是一条正确的道路,因为在动态场景尤其是自动驾驶的场景中,很多动态物体或者静态背景都是一闪而过,提高次数但是不区分类别对于最后的效果没有正向收益。而且通过这种方法可以积累动态或者静态资产,有利于资源重复利用,对于可编辑场景仿真有较大收益。

  2. 神经场景图表示:OmniRe使用神经场景图对所有的动态物体进行了显式区分表示,为每个障碍物单独建模并选择合适的表示方式,然后结合背景以及天空节点进行重建。

  3. 物体重建方法

  • 车辆:使用静态高斯重建,并使用刚体变换表示随时间的运动,而且对于所有的刚体节点,优化他们每一帧的位姿。
  • 人体:使用SMPL模型进行重建,通过人体关节和姿态进行建模,相当于在训练过程中增加了更多的优化参数。但是没有考虑光影变化,没有引入shadow的模型。
  1. 代码实现:这是一篇全面的工作,仓库中集成了几篇非常优秀的工作的手动实现,包括DeformableGS,PVG等,兼容性和扩展性都比较强。渲染器采用了gsplat库,没有用原版的diff-gaussian-rasterization库,gsplat对于很多GS方向的新工作支持和更新都是比较快的,很多开源方案都会给gsplat提PR,这个对于特性对比试验是很有好处的。

技术细节

数据集初始化

OmniRe支持多个数据集的读取,包括Waymo, NuScenes, ArgoVerse, PandaSet, KITTI, NuPlan。以NuScenes为例,整体读取流程如下图:

训练过程

  1. 场景初始化:计算场景原点和半径
  2. 损失函数初始化:包括深度损失、天空损失、图像指标评测(SSIM,PSNR,LPIPS)
  3. 高斯模型初始化:每个节点相当于一个单独的GaussianModel,内部实现为GaussianSplating的表现形式,颜色通过球谐函数表示
  4. 优化器初始化:Adam优化器,混合精度训练,学习率变化函数
  5. 训练前处理:zero grad设置,step设置
  6. 训练函数
  • 根据时间计算帧数
  • 相机位姿优化
  • gaussian生成
  • 高斯渲染:gsplat执行渲染,生成rgb,depth,opacity图像
  • affine transformation:对每一帧的颜色进行修正
  • 可见性更新
  • 变分辨率训练
  1. 损失计算
  • L1,SSIM的loss计算
  • sky节点的二维交叉熵损失
  • depth的loss计算
  • 不透明度熵损失正则化
  • 逆深度平滑正则化
  • 动态区域范围的L1Loss
  • 各类节点的正则化
  1. 后处理:致密化和剪枝操作

实现细节和问题

  1. affine transformation部分存在问题:可以参考官方仓库的一个issue
  2. 可视化方案:由于不是原版3DGS代码修改的,所以无法导出SIBR Viewer所需要的文件
  3. 代码问题:存在同一个数据重复两次效果差异较大的问题,暂时没找到bug点
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号