● MARS: An Instance-aware, Modular and Realistic Simulator for Autonomous Driving(基于神经辐射场的自动驾驶仿真器)
● https://github.com/OPEN-AIR-SUN/mars
● https://arxiv.org/pdf/2307.15058.pdf
● https://mp.weixin.qq.com/s/6Ion_DZGJwzs8JOoWMMbPw
1. 摘要
- 逼真的传感器仿真解决剩余corner case
- 3个工作
- 1.实例意识。作者的仿真器用独立的网络分别仿真前台实例和后台环境,以便可以分别控制实例的静态(例如大小和外观)和动态(例如轨迹)属性
- 2.模块化。作者的仿真器允许在不同的现代NeRF相关主干、采样策略、输入模式等之间灵活切换。希望这种模块化设计能促进给予NeRF的自动驾驶方针的学术进步和工业部署
- 3.现实。作者的仿真器设置了新的最先进的照片现实主义的结果给出了最佳的模块选择。
2. Nerf最新进展
2.1. Nerf:将场景表达为3D空间的场
-
(https://arxiv.org/pdf/2003.08934.pdf)
-
基本思想:3维空间,3D点都向外发射,并且具有一定的体积,可以阻挡其他方向的射线传播
-
将位置和观察角度 ( x , y , z , θ , ϕ ) (x,y,z,\theta,\phi) (x,y,z,θ,ϕ)转化为 ( R , G , B , δ ) (R,G,B,\delta) (R,G,B,δ),RGB和反射率
-
渲染出每个点的Color(RGB)+Density(阻挡能力),用渲染的颜色和原图颜色做loss
-
Blend weights:通过前面所有不透明度的积分得到当前点的积分
-
体渲染:将所有点从近到远排列到一块,利用Blend weights和积分得到当前点的渲染颜色
-
真实实现Nerf不用积分,计算量大
-
Nerf缺点:
- 训练慢:需要2~3天,渲染图要几十秒
- 渲染结果几何比较差
- 基于静态场景的假设,不适用动态场景(本文主要解决的问题)
2.2. 续改进论文:
-
instant ngp:https://nvlabs.github.io/instant-ngp/ https://github.com/NVlabs/instant-ngp
- 主要思想:不需要复杂的网络建模,只需要体素网格;大部分区域空洞,引入哈希表存储信息
- 达到分割级的训练和实时渲染
-
TenoRF:https://github.com/apchenstu/TensoRF
- 主要思想:场景稀疏,所以用张量分解方法分解体素(4维),分解低质的tensors,每个compoment可以看作一个vector-matrix
-
SDF:Signed Distance Field
- 解决Nerf几何不准的问题:计算空间点到最近表面的距离,在表面内SDF<0,表面外面SDF>0
- 解决Nerf几何不准的问题:计算空间点到最近表面的距离,在表面内SDF<0,表面外面SDF>0
-
NeuS:https://arxiv.org/pdf/2106.10689.pdf
- 主要思想:Nerf和SDF不能天然结合起来
2. 主要内容
本文主要解决“基于静态场景的假设,不适用动态场景”的问题
2.1. 之前的工作
- Deformation-based NeRFs
- 主要思想:显示建模帧与帧之间点的位移变化
- 原始论文:
- 在人体比较复杂的场景,上图方法其实效果并不好
- Vid2Avatar:https://github.com/MoyGcc/vid2avatar(数字人领域)
- Modeling Implicit 4D Volume
- 主要思想:隐式建模4D空间(加上time的4维空间),通过将一个点投影到6个平面上完成
- Fridovich:https://openaccess.thecvf.com/content/CVPR2023/papers/Fridovich-Keil_K-Planes_Explicit_Radiance_Fields_in_Space_Time_and_Appearance_CVPR_2023_paper.pdf
- 主要思想:任意两个维度可以组成一个平面,这样就可以重建整个空间
- 主要思想:任意两个维度可以组成一个平面,这样就可以重建整个空间
2.2. 本文内容:
- 之前工作在刚体运动的场景比较复杂了,因为通过刚体运动就可以建立
2.3. 其他内容
- 4D标注:
- object pose不准,会导致渲染的时候出现汽车跳动的问题
- 原因:现有的3D目标检测标注不准
- 1.单目标注的不具有尺度度量(真实世界尺度)
- 2.不用来做重建,不考虑帧间的一致性
- 原因:现有的3D目标检测标注不准
- 通过mask(车)做仿真
- object pose不准,会导致渲染的时候出现汽车跳动的问题
- 行人和车辆的交换:现在还没考虑分刚体的行人仿真
- 没有考虑shadow和weather的变化
- 物理仿真(物理方程)
- KITTI 10G显存就行了
- 在waymo数据上做的:标注框不是很准,但是直行还行,转弯不行
- nuscenes数据集:camera pose /object pose都不是很准,试验很多次效果不好