Rethinking Pseudo-LiDAR Representation

  该论文是商汤2020年发表在ECCV上的一篇论文。2018年的CVPR论文《Pseudo-LiDAR From Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving》使用视觉伪点云来进行单目3D目标检测,获得了大幅性能提升,并将性能提升归因为数据表达形式。商汤在该论文中提出了不一样的观点。

  1. 论文链接:https://arxiv.org/abs/2008.04582
  2. 论文代码:https://github.com/xinzhuma/patchnet

1. 论文动机

  视觉3D检测方法在当时基本可以分成两个“流派”:基于图像表征的方法和基于伪点云表征的方法。

  基于图像表征的方法中,比较出名的有Mono3D、MonoDIS、M3D-RPN等。从图像预测目标3D信息的难点在于,2D图像到3D世界的映射是一个ill-posed problem,天然少了一维深度信息。所以基于图像表征的方法大体上是通过增加人工设计的先验知识来辅助网络学习,比如目标尺寸、地平面假设、2D检测框约束。

  基于伪点云表征的方法最开始由论文《Pseudo-LiDAR From Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving》提出,后文统一将该方法简称为pseudo-LiDAR。pseudo-LiDAR极大地缩小了视觉3D和激光3D检测方法之间的差距,其方案非常简单明了,就是模仿激光3D检测的Pipeline,但激光3D检测输入的是点云数据,没有怎么办?直接用单目深度生成伪点云,然后再用现成的激光3D检测模型从伪点云中进行目标检测。从结果上看,基于伪点云表征的方法性能普遍高于基于图像表征的,虽然pseudo-LiDAR作者指出两类方法性能差距主要是数据表征方式的不同,但该观点一直缺乏直接证据的支撑,其正确性值得考究。

  为了弄清基于伪点云表征的方法为什么能取得这么大的性能提升,作者构建了一个名为PatchNet-vanilla的模型,除了输入数据表征方式不同外,其余和pseudo-LiDAR保持一直,是pseudo-LiDAR的等价实现。通过该等价模型,作者用实验证明了数据表征形式和3D检测性能没有任何关系,真正起作用的是图像坐标系到激光坐标系的坐标转换。 PointNet是一种针对point的CNN,相比标准CNN的发展还没有那么充分,如果摆脱伪点云输入格式的限制,那么就能使用更成熟的CNN结构,理论上可以获得比PointNet更好的性能,基于这个假设,作者提出了PatchNet,也确实获得了超出pseudo-LiDAR的性能表现。

2. 方法介绍

  方法分成两部分来介绍:PatchNet-vanilla和PatchNet,第一个模型主要是为了验证输入数据表征形式对性能的影响,第二个模型是PatchNet-vanilla的增强版,主要是为了达到更好的性能。

2.1 PatchNet-vanilla

  作者将pseudo-LiDAR分成四个步骤:
  Step1:深度估计 给定一张单目图像或双目图像对,使用独立的模型预测每个像素(u,v)(u,v)(u,v)对应的深度值ddd。
  Step2:2D检测 使用另一个CNN生成2D目标的区域提议。
  Step3:3D数据生成 根据Step2生成的区域提议将感兴趣区域从Step1生成的深度图中抠下来,然后利用相机内参将深度值转化为3D世界坐标(x,y,z)(x,y,z)(x,y,z)。
  Step4:3D目标检测 将Step3生成的伪点云视为激光信号,并使用PointNet预测结果。PointNet将点云视为无序点集{x1,x2,…,xn}\{x_1,x_2,\dots,x_n\}{x1​,x2​,…,xn​},并通过一个集合函数fff将点集映射到输出向量:f(x1,x2,…,xn)=γ(max⁡i=1,…,n{h(xi)})(1)f(x_1,x_2,\dots,x_n)=\gamma(\max_{i=1,\dots,n}\{h(x_i)\}) \tag{1}f(x1​,x2​,…,xn​)=γ(i=1,…,nmax​{h(xi​)})(1)其中γ\gammaγ和hhh是MLP。

  PatchNet-vanilla的前三步和pseudo-LiDAR完全一样,第四步会有所差别。如图2所示,PatchNet-vanilla将MMM个3D点重构成N×N×3N\times N \times 3N×N×3的图像块,作为PatchNet-vanilla的输入,然后可以使用一个1×11\times 11×1接收域的2D卷积层以及一个全局最大池化来实现式(1)一样效果的函数。最终性能如表1所示,可以看到PatchNet-vanilla获得了和pseudo-LiDAR几乎一样的性能,这也证明了伪点云的数据表征形式不是必要的。

2.2 PatchNet

  在PatchNet中,首先训练两个CNN分别用于预测2D框和深度图,对于每个检测到的2D目标框,从深度图中抠出对应的区域,利用相机内参将深度值转换成3D空间坐标(得到Fig.3中的cropped patches)。紧接着用一个主干CNN提取这些ROI的深层特征,然后使用mask global pooling分离出前景目标特征,最后通过一个检测头来进行回归目标的3D框(x,y,z,h,w,l,θ)(x,y,z,h,w,l,\theta)(x,y,z,h,w,l,θ)。

  mask global pooling是论文提出了一种增强版global pooling方式,利用一个二值掩模(通过卡阈值的方式从深度图中获得)只对前景目标的特征进行global pooling操作,以获得更加鲁棒的特征。

  检测头则是针对KITTI定制化设计的,简单、中等、困难样本分别对应一个检测头,因此增加了一个样本困难程度分类器。

3. 实验结果

3.1 什么才是影响检测性能的关键因素

  PatchNet效果如表2所示,其中AM3D是另一种基于伪点云的视觉3D检测方法,它通过将RGB值和伪点云融合的方式提升性能。作者将pseudo-LiDAR和AM3D的伪点云表征方式替换成图像表征方式,分别对应PatchNet-vanilla和PatchNet-AM3D,可以看到两种方法在替换数据表征方式后的性能都基本持平。说明数据表征不是影响3D检测性能的关键因素。

  为了验证输入模型的数据中哪些字段是真正起作用的,作者进行了表3中的实验。从前3行实验数据可以看出,像素对应的世界坐标值(x,y,z)(x,y,z)(x,y,z)每一维对于3D检测性能都有正面作用。但如果直接输入视觉深度的预测值(u,v,z)(u,v,z)(u,v,z),性能是远远不如直接输入世界坐标的(x,y,z)(x,y,z)(x,y,z)。(u,v,z)(u,v,z)(u,v,z)和(x,y,z)(x,y,z)(x,y,z)之间的差了一步像素坐标系到相机坐标系的坐标转换,因此作者提出:相比数据本身的表征,坐标系转换才是影响性能的关键因素

  但这个结论本人持怀疑态度,像素坐标系到相机坐标系转换只涉及相机内参,以及相机坐标系到激光坐标系的转换矩阵,我不觉得区区几个相机参数CNN都没法过拟合。虽然说KITTI每天都会对传感器进行重新标定,但理论上在传感器的安装位置和姿态没有有明显变化的条件下,标定参数数值的变化幅度也非常有限,除非采集数据过程中由于设备老化或者碰撞事故导致传感器架设发生较大变化。如果要作者的结论要成立,我觉得至少得加一个实验,证明模型无法学习(u,v,z)(u,v,z)(u,v,z)到(x,y,z)(x,y,z)(x,y,z)的映射才可以。

3.2 PatchNet的优化点

  作者提出,相比PointNet这类新兴的针对点云的3D主干,标准的2D主干发展的更成熟,能够获得更好的性能,不同主干的性能对比结果如表4所示。

  mask global pooling的消融实验结果如表5和图4所示,可以看到分离前景目标还是能够将模型的注意力集中到目标本身。

  第三点改进就比较定制化了,针对KITTI数据集简单/中等/困难设立3个检测头分别预测,不过作者后来发现,使用距离对不同目标进行分区检测能够获得更好的性能,感觉上是一种3D空间中的多尺度策略。

3.3 横向对比结果

  PatchNet和其他视觉3D检测算法的性能对比如下表所示,其中PL-FPointNet就是前文表格中的psedudo-LiDAR方法。

论文阅读:《Rethinking Pseudo-LiDAR Representation》相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. 前端小白第一次使用redux存取数据练习
  2. Java必会的基础知识(3)
  3. ASP.NET获取文件名,后缀名
  4. 钟 docker讲解
  5. 1.对程序的看法 2013.8.1
  6. 玩大数据期间碰到的一些问题总结
  7. Scrapy突破反爬虫的限制
  8. jQuery 图片裁剪插件 Jcrop
  9. python利用百度云接口实现车牌识别
  10. java开发汉字显示不全_求java转码ISO-8859-1转UTF-8汉字显示不全补救方案?
  11. Python中函数的定义和参数传递
  12. php站群系统,ThinkPhp内核逐鹿泛目录站群系统 毫秒级加载速度 丰富的内容库搭配(价值8000元)...
  13. spark hive 结合处理 把多行变成多列
  14. Ubuntu16.04+NVIDIA显卡驱动安装步骤
  15. 【聚类分析】基于matlab交通干道车流量FCM聚类分析及预测【含Matlab源码 1141期】
  16. linux的ssh漏洞,Debian GNU/Linux Rssh安全绕过漏洞
  17. 2021必收藏!Java编程技巧之单元测试用例编写流程
  18. Xshell上传文件方法
  19. gpt和mbr的区别
  20. easy_ui之搭建后台界面(一)

热门文章

  1. SpringBoot的属性注入详解
  2. POJ1759Garland题解
  3. html改变鼠标指针形状代码,改变鼠标指针形状_js改变鼠标形状与样式的方法
  4. 免费开源PHP商城系统介绍
  5. Ubuntu 20.04 + mysql 8.0.27 用户名和密码修改(非常实用)
  6. 百位明星身份证照片被曝光
  7. Mellotron:Multispeaker expressive voice synthesis by conditioning on rhythm, pitch and global style
  8. 艰难环境下,面腾讯、美团、商汤科技等七家大厂前端有感
  9. 斑马打印机linux驱动安装教程,linux-Zebra软件包的基本安装与配置
  10. 北京新版城市总体规划解读