CVPR2021满分论文 | GeoSim: Camera Simulation

作者丨陈云@知乎

来源丨https://zhuanlan.zhihu.com/p/377570852

编辑丨3D视觉工坊

《GeoSim: Realistic Video Simulation via Geometry-Aware Composition for Self-Driving》这篇论文是关于自动驾驶中的相机仿真(Camera Simulation)和图像合成(image synthesis),三个reviewer最后都给了strong accept,已被接受为Oral。

https://arxiv.org/pdf/2101.06543.pdf

项目主页:https://tmux.top/publication/geosim

5分钟视频介绍 - 哔哩哔哩:https://www.bilibili.com/video/BV1154y137jC/

概述

相机仿真是无人车系统中一个非常重要的任务:

1.用来测试感知模块,比如构建一些在真实世界很难遇到或者很危险的场景。

2.用来生成训练数据,减少人工标注的需求。

仿真系统的主要挑战在于:

1.仿真的结果必须足够真实,不能和真实世界差距过大(Realism Gap), 否则难以用于production 。

2.方法需可扩展(scalable),不需要较多的人工操作就能自动扩展到成千上万的场景。

关于图像仿真的相关工作可以分成两大类,二者有很大的互补性:

1.图形学(Graphics)的方法:代表是CARLA Simulator, 优点在于可以3D控制,技术比较成熟。缺点在于它需要较多的人工操作,比如设计各种asset,而且生成的效果不够真实。

2.神经网络的方法:代表是Nvidia的如Pix2pix/SPADE等。这种方法属于数据驱动(data-driven), 只要数据足够多,就能够生成足够多样的结果,不需要太多的人工。但是这种方法难以进行3D控制,所以没法直接用于仿真系统。

图像合成方法可分为两大类:图形学和神经网络

所以,GeoSim结合了图形学和神经网络,取长补短。GeoSim的任务设定是:给定一个视频/图片,往里面插入新的汽车。这虽然不如360度自由视角仿真那么灵活,但是已能为自动驾驶的仿真系统提供足够大的帮助,因为自动驾驶仿真系统中最关心的就是可移动物体(dynamic objects/agents)。

GeoSim的方法分为两部分:

1.物体重建:首先利用无人车采集的数据重建出大量的3D Asset。

2.仿真:在仿真的时候,将重建的3D Asset插入到输入的视频中。

GeoSim Overview

3D物体重建

3D重建的目的是利用无人车采集的数据(多目相机图片, 激光雷达点云),重建出3D 物体。相比于利用仿真/人造数据集的方法,使用真实数据进行3D重建(3D reconstruction in-the-wild)的主要难点在于:

1.缺少3D的GroundTruth/label

2.真实世界的数据比较复杂,sparse, partial-observation, noisy

用来3D重建的数据来自无人车采集的真实世界数据

为此,GeoSim提出了一个multi-camera, multi-sensor, self-supervised 三维重建模型,如下图所示。

1.特征提取:用CNN和PointNet分别提取图片和LiDAR的特征,而后拼接成一个特征向量。

2.MeanShape+Deformation. Mean shape是一个可学习参数, 可以认为是category-specific template,初始化为一个球体,有2562个顶点,5120面,它的可学习参数就是他的顶点坐标:一个  的向量。MLP的输出deformation也是一个长为  的向量,也就是预测MeanShape每个顶点要如何变形。  。随着训练,meanshape也在不断更新,最终变成下图中所示的样子。

3.自监督学习。由于缺乏3D 的mesh groundtruth,所以我们利用间接的监督信息

·PredictShape渲染生成轮廓,这个过程要求可微分求导的, 所以需要使用DIB-R这种differntiable renderer。生成Mesh的轮廓要和mask label进行对比。这里的label是用MaskRCNN (PointRend) 生成的。

·在mesh表面采样,生成一些点,和输入的LiDAR 进行对比。因为LiDAR只能扫描到没被遮挡的部分,所以这里使用partial-chamfer loss, 也就是只取chamferloss 的前半部分。

·Mesh Regularization Loss,如LaplacianLoss,作用是使得预测的mesh不会太尖锐。

3D Mesh Reconstruction

当我们重建完了3D mesh, 我们可以利用mesh作为媒介,把图片渲染到新的视角(Target Pose Warping),注意这个新的视角和原始图片的视角不能差距太大。这样,GeoSim建立了一个包含8000辆车的Asset Bank。

Asset Bank

Simulation Pipeline

有了重建的3D asset,我们就可以利用它进行仿真。

第一步 场景生成:根据现有场景自动生成新的场景。主要是利用高清地图,在合适的位置放置新的车辆,并预测它的运动轨迹。这一步也可以人工设计,生成一些比较罕见/困难的场景。同时根据生成的物体运动轨迹,从asset bank中选择一个与它有相似视角的asset。

场景生成

第二步 渲染,遮挡与阴影:1) 将上一步选择的asset渲染到target pose,同时可以得到它的深度(depth),也就是到相机的距离。2) 将新物体的深度和背景的深度信息进行对比,判断遮挡关系(occlusion reasoning),比如下图中的新渲染的车的车头就被已有的车遮挡。这里背景的深度信息可以通过depth completion network 预测得到。

渲染与遮挡判断

此外,因为我们asset是3D的, 我们还能够利用3D引擎(如Blender)渲染shadow,如下图所示。同理,shadow也要判断遮挡关系。

用3D引擎可以生成shadow

第三步 合成。这最后一步的目的,是将渲染的前景物体和背景自然的融合在一起。因为前景物体和背景物体处于不同的光照场景,直接copy&paste 会很突兀,此外上一步渲染操作可能会带来不连续的边缘,也需要进行处理。这里参考了deepfill图像修复网络,一方面修复边缘,另一方面进行relighting, 使得物体和背景尽可能一致。具体的模型设计和训练过程可以参考论文的supplementary。

用神经网络将前景和背景自然的融合到一起

实验结果

视频效果:GeoSim可以生成超高分辨率的视频(4096x2160), 这里展示的是~720p分辨率。4K的视频可以点这个 链接(https://yun.sfo2.digitaloceanspaces.com/public/geosim/geosim-4K.mp4) 或者这个链接(https://gg-1252820389.cos.ap-hongkong.myqcloud.com/geosim-1min.mp4)查看。

不同于以往的工作,GeoSim并没有专门在视频生成的过程做特殊处理,但是因为GeoSim是3D-aware, 尽量用到了geometry的信息,所以生成的视频很容易就做到极高的temporal-consistency.

下面这个场景就比较有趣,两辆仿真生成的车和警车争行。

仿真生成的两辆车和警车争行

GeoSim还能进行multi-camera simulation。下面这个例子有四辆仿真的车,做到了multi-camera consistency。

multi-camera simulation. 总共有四辆车是仿真生成的

和不同baseline的对比。因为不是3D-aware, 前两个baseline的位置和尺寸都不对。CAD的渲染主要是纹理不够真实。

GeoSim VS Baseline

不同的渲染方法的对比, GeoSim既保有Graphics方法的Geometry信息,又保有原始图片的纹理信息。

不同渲染方法的对比

除了视觉上的对比, GeoSim还进行了human test。即给定一组图片,其中一张是GeoSim,另外一张是baseline, 由用户选择哪个看起来更真实。每一个baseline测试200-400组,结果也验证了GeoSim的显著优越性。

Simulation Pipeline中的每一个模块都是必需的。

Simulation pipeline 中每个模块的用途

利用GeoSim可以生成数据用来训练模型,可以看作数据增强(data augmentation)。

用GeoSim生成的数据做增强来训练模型

GeoSim在Argoverse的效果果。Argoverse数据集的场景、相机参数和前面的UrbanData有较大的差别。GeoSim可以generalize到这些场景中。此外,这里的asset用的还是从UrbanData中创建的,但是在argoverse中并不违和。

总结&讨论

GeoSim对image synthesis的思路是:Model if we can, predict if we need, guess if we have to. 对于可以显式建模(explictly modeling)的地方,尽量使用显式建模,比如target-pose warping, shadow rendering, occlusion reasoning。而对于需要猜/预测的地方则可以使用神经网络,比如inpainting。相比于一股脑FCN/GAN直接生成,这样可以充分的利用已有信息,更容易控制,并且具有更好的解释性,比如对于failure case, 较容易分析是哪里出现了问题。

在应用方面,除了实现自动驾驶相机仿真的realism和scalability, GeoSim的方法也能用于虚拟现实 AR/VR 和视频编辑等。尤其是虚拟现实,它的任务也是往现有的视频中加入新的物体,和GeoSim非常像。

关于激光雷达仿真,可以参考CVPR2020 Oral: LiDARsim。LiDARsim和GeoSim的思路很像,都是先三维重建asset用来执行simulation;Simulation的时候也是先physics/graphics,再neural network。

关于深度估计,可以参考KITTI上面相关的论文 ,另外推广一下ICCV2019 的depth completion工作,方法简单而有效。

Limitation & Future Work:

·目前只能仿真汽车,还有待扩充到行人,自行车等。

·GeoSim可以和object removal的工作相结合,先构建一个不包含任何物体的静态背景图片,再运行GeoSim,这样可以任意控制生成图片的物体。

·还没法做到360度自由视角,可以和free view rendering的研究相结合,这样能对背景也进行渲染。不过相比于可移动物体,背景过于复杂,又不是无人车主要关心的对象,所以可能优先级不高。

·AssetBank的每一辆车都只有有限的视角,可以用神经网络生成360度全景。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值