ChatSim是第一个实现了language-controled photorealistic multi-view consistent driving scene simulation的系统。ChatSim有如下几个特点:首先,ChatSim可以实现通过自然语言进行细致的场景编辑,无需进行繁琐复杂的代码实现,用户只需要根据需求输入包含各种定制化信息的自然语言就能够直接输出相应的结果;其次,对于背景的渲染,ChatSim使用了提出的McNeRF进行多摄像机的场景重建,实现了广泛视角下高度一致真实的场景渲染;对于前景物体的渲染,ChatSim还使用了所提出的McLight对场景的光照信息进行提取,并将场景光照应用于待加入场景数字资产上,对前景的物体也实现了photorealistic的渲染。
· Multi-Agent Collaboration Framework
ChatSim使用了如图所示的多智能体协同工作流进行仿真数据的生成。如下图所示的每个agent都能够完成特定的某些任务并最终得到输出。首先,用户的指令会被交给Project manager,该agent会对该指令进行理解和拆分,得到相应的可被执行的具体指令,并交给对应的后续technical agent进行处理。对于前景物体的渲染流程由左侧所示,首先由3D assets management agent根据用户的添加需求挑选出合适的数字资产并会编辑数字资产相应的信息,挑选得到的数字资产会被再交给Vehicle motion agent根据放置的需求为该物体生成相应的位置与motion即轨迹,最终数字资产和对应的轨迹会被交给foreground rendering agent进行前景渲染,得到前景物体和对应阴影的渲染效果。对于背景场景的渲染流程由右侧所示,首先会先根据用户的需求交给view adjustment agent进行视角调整生成最终背景渲染需要的外参,外参会被交给background rendering agent进行背景场景的渲染,背景渲染的结果最后由vehicle deleting agent对需要删除的车辆部分进行inpainting,即图像修复,以达到删除的目的。最终前景背景的渲染结果会组合起来形成提供给用户的输出。
· Agent Design Sample
如下图所示是单个Agent的内部设计,此处以view adjustment agent为例。每个agent都由其对应的LLM部分和功能部分组成。LLM部分会由prompt定义其需要进行的任务,并依据接收到的自然语言指令得到相应的关键信息,生成具体的参数字典。而功能部分则会通过LLM部分输出的参数字典进行执行,调用相应的function模块,并将输出的结果交给工作流中其他agent进行后续处理。如左图所示,是一个agent的LLM部分输入的prompt,会先进行任务的大致定义,描述任务需求,再对任务进行细致的解释,随后定义最终需要返回的格式,在使用过程中所有agent都返回为json字典,最终提供一些few-shot examples供LLM学习。所有agent的prompt都按照类似的格式进行组织。
· Background Rendering
对于背景的渲染,chatsim中使用了在文中提出的mcnerf进行,mcnerf的全程是multi-camera nerf,也就是对于多摄像机情况下设计的神经渲染。相较于常规的神经渲染,mcnerf主要考虑了以下两点改进:首先,作者在工程实践中发现自动驾驶数据集中对于多个摄像机相对位姿的标定是不够准确的,尤其对于渲染重建任务而言精确的位姿非常重要,作者采用了经典的sfm方式对于现有的位姿进行了矫正以得到更加准确的位姿标定,这一步虽然比较工程化,但在实验部分可以看出能够显著地提升最终的渲染效果。其次,作者发现多个摄像机由于曝光时间不一致,导致在照片重叠区域中存在一定的色差,为了考虑曝光带来的色差影响,文中将曝光时间编码在了nerf的渲染过程中,实现了在重叠处更加一致的渲染效果。
· Foreground Lighting Estimation
对于前景物体的渲染,作者会先进行光照估计得到环境的光照信息并应用在提供的数字资产上。光照估计部分,文中使用了自己提出的McLight。McLight能够仅依据输入的照片,估算出场景中的环境光照贴图,从而能够让前景中的数字资产应用到更加贴合场景的光照实现photorealistic的渲染。McLight同样为多摄像机输入的情况设计,在latent code层面融合了多个相机的信息从而实现对环境光照的更加全面的感知。同时,McLight能够借助McNeRF,生成上半球面范围内具体位置处的环境物体光照,进一步提高了光照的准确程度和渲染的真实性。
· Foreground Lighting Estimation Details
天空光照估计的实际过程分为两步。首先第一步,是训练一个网络进行LDR到HDR的恢复。大多数情况下的图片输入都是LDR的,即图片像素的范围有所限制,通常为0-255,准确的环境光照贴图需要的是HDR信息,因此需要网络进行LDR到HDR的转换。LDR图片先编码得到sky vector,peak direction vector和peak intensity vector,再由这些信息组合得到最终的输出。第二部则由多视角的输入得到最终的HDR贴图,不同相机的图片同样编码得到三种向量,再通过不同方式聚合得到唯一的向量,经由预训练好的LDR到HDR网络得到最终的输出。
· Foreground Rendering Process
如图展示了文中使用环境贴图渲染最终前景物体的流程,使用渲染软件blender进行。总体而言,会将得到的环境贴图作为光照信息输入,并由blender内部支持的相关操作生成对应的阴影。渲染得到的物体和阴影会被用于最终与背景渲染的结果进行组合。