作者丨陈云@知乎

来源丨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天内无条件退款

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

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

CVPR2021满分论文 | GeoSim: Camera Simulation相关推荐

  1. CVPR2021论文集锦 | CVPR2021最新论文 | CVPR2021审稿结果 | CVPR2021录取结果

    持续更新Github: https://github.com/Sophia-11/Awesome-CVPR-Paper 2021持续论文集锦百度云请在[计算机视觉联盟]后台回复  CVPR2021 往 ...

  2. 【论文】ICLR 2020 九篇满分论文!!!

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要11分钟 跟随小博主,每天进步一丢丢 来自:深度学习技术前沿 从反传的自动微分机制,到不平行语料的翻译模型,ICLR 2020 这 9 篇满分论 ...

  3. CVPR2021最佳论文:当GAN遇到3D场景,无需监督就学会“动态抠图”、360度展示对象...

    月石一 发自 凹非寺 量子位 报道 | 公众号 QbitAI GAN又又又有新玩法了! 人脸?NO,NO,NO~ 这回,开发者利用「3D+GAN」生成了汽车大片,还是能360度展示.随手换背景那种. ...

  4. ICLR 2020 九篇满分论文!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 从反传的自动微分机制,到不平行语料的翻译模型,ICLR 2020 这 9 篇满分论 ...

  5. ICLR2020放榜 34篇满分论文! 48篇orals,108篇spotlights,531篇poster

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 ICLR,全称为International Conference on Learnin ...

  6. 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法

    2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...

  7. ICLR2020满分论文 | 为什么梯度裁剪能加速模型训练?

    一只小狐狸带你解锁 炼丹术&NLP 秘籍 作者:苏剑林(来自追一科技,人称"苏神") 前言 需要许多时间步计算的循环神经网络,如LSTM.GRU,往往存在梯度爆炸的问题.其 ...

  8. 一种镜像生成式机器翻译模型:MGNMT | ICLR 2020满分论文解读

    MGNMT:镜像生成式NMT (ICLR 2020满分论文) 机构:南京大学,字节跳动 点此获取"论文链接" 一.摘要 常规的神经机器翻译(NMT)需要大量平行语料,这对于很多语种 ...

  9. CVPR 2020满分论文 | FineGym:面向细粒度动作分析的层级化高质量数据集

    机器之心发布 作者:邵典等 本文介绍了一个大规模.高质量.层级化标注的细粒度人体动作数据集「FineGym」,研究者来自香港中文大学,目前这项研究已被 CVPR 2020 接收为 oral 论文. 论 ...

最新文章

  1. httpTomcat
  2. 工作中不能学的6种人
  3. 基于 python3+nginx 的 Jupyter Notebook 服务端 ssl 访问
  4. 课后作业-阅读任务-阅读提问-3
  5. 你好,C++(18) 到底要不要买这个西瓜?4.1.6 操作符之间的优先顺序
  6. 一起谈.NET技术,浅析购物车的实现
  7. 闪屏页面(Splash)开发
  8. 安装cifs 访问windows的共享文件
  9. 库表操作 - 存储引擎
  10. 树莓派raspberrypi系统安装docker以及编译nginx和php镜像
  11. (转)Extjs4 展示图片与图片的更新
  12. 189邮箱smpt服务器,189邮箱登录(常用邮箱客户端设置指南)
  13. 13.计蒜客ACM题库.A1147 结果填空:礼物盒
  14. python 解压zip rar 7z文件
  15. ic 主动均衡_分享几种锂电池均衡电路的工作原理
  16. Neyman-Pearson 奈曼-皮尔逊决策分析
  17. MBTI职业性格测试完整版(静态题库)
  18. 2000国家大地坐标系
  19. 解决小米miui系统调用系统裁剪图片功能崩溃失败的问题
  20. 我在前锋培训的日子第二天

热门文章

  1. 计蒜客 神奇的二叉树 ( 已知先序和中序遍历构建二叉树 )
  2. Flux -- Redux -- Redux React 基础实例教程
  3. 高级特性(4)- 数据库编程
  4. shiro源码分析(四)具体的Realm
  5. 某程序员吐槽:女朋友老板给她包了1314元开工红包,正常吗?网友:这是绿包!...
  6. 今天说的是必须要熟练掌握的归并排序
  7. 出现这四种情况,才是考虑分库分表的时候!
  8. 【性能优化】面试官:Java中的对象和数组都是在堆上分配的吗?
  9. 太强了!阿里技术团队重磅开放 《Java 开发手册》(附下载地址)!
  10. Java 未死,依然很牛逼!