目录

  • 概述
  • 细节
    • 证明基于伪点云的3D目标检测算法效果好的原因并不是伪点云这种数据表示
    • 基于深度图的图像表示的算法PatchNet
    • 证明基于伪点云的3D目标检测算法效果好的原因是从图像到点云坐标系转换的过程

概述

本文是基于图像的3D目标检测算法。
贡献:

  • 作者认为基于伪点云的3D目标检测算法效果好的原因并不是伪点云这种数据表示本身,而是坐标系的转换。
  • 对于深度图,作者采用图像表示而不是伪点云的表示,之后采用2D CNN处理,成为了新的SOTA

ps:伪点云(【3D目标检测】Monocular 3D Object Detection with Pseudo-LiDAR Point Cloud)

细节

证明基于伪点云的3D目标检测算法效果好的原因并不是伪点云这种数据表示

作者构建了一个基于伪点云表示的目标检测器和一个基于图像表示的目标检测器,两者除了深度图的表示不同其余部分都相同。

实验中的深度图表示成伪点云的方法:

  • 使用一个CNN对输入图像做深度估计得到深度图
  • 使用另一个CNN进行目标检测得到ROI
  • 在深度图中裁剪ROI对应的部分
  • 基于相机成像原理的逆过程将像素坐标和深度图转换成3D坐标,并将3D坐标使用伪点云进行表示
  • 使用PointNet类的方法进行检测(也就是转换成高维特征,在使用max pool得到全局特征,基于这个特征进行检测)

实验中深度图表示成图像的方法(PatchNet-vanilla):

  • 使用一个CNN对输入图像做深度估计得到深度图
  • 使用另一个CNN进行目标检测得到ROI
  • 在深度图中裁剪ROI对应的部分
  • 基于相机成像原理的逆过程将像素坐标和深度图转换成3D坐标,并将3D坐标使用图像进行表示
  • 使用CNN的方法(效果与上面类似,使用1∗11*111卷积得到高维特征图,然后使用全局maxPooling得到全局特征,基于这个特征进行检测)

可以发现,前三步是一模一样,第四步中只有深度图表示不一样,第五步思想一样,也就是说两个实验的设置中几乎只有深度图表示这一项不一样。
左图就是伪点云的表示,每个点对应3个特征,总共有M个点;右图是图像的表示,总共有N∗N=MN*N=MNN=M个像素,每个像素对应3个通道,完全一样的数据,就是表示或者理解不同而已。

下面是实验的结果:一二行是同样的结构两次训练的结果(为了消除实验设置的影响),可以发现两个实验的结果几乎是相同的,那么通过实验也就证明了作者的观点,算法的效果和深度图的表示没有关系。

基于深度图的图像表示的算法PatchNet

基于上面的发现,作者就有了新的想法,既然效果一样,那就可以用基于深度图的图像表示来做了。
因为基于图像的表示可以采用成熟的2D CNN做,并且是端到端的,而且生成的图像是稠密的(因为点云的稠密的或者说是对原图上所有的点进行了深度估计得到的),而基于伪点云的表示只能采用基于点云的方法做,后者一方面没那么成熟,另一方面伪点云与真实点云也存在不同(点密度、局部不对齐、长尾问题,详情见【3D目标检测】Monocular 3D Object Detection with Pseudo-LiDAR Point Cloud)。

算法流程:

  • 使用一个CNN对输入图像做深度估计得到深度图
  • 使用另一个CNN进行目标检测得到ROI
  • 在深度图中裁剪ROI对应的部分
  • 基于相机成像原理的逆过程将像素坐标和深度图转换成3D坐标,并将3D坐标使用图像进行表示
  • 使用一个特征提取网络提取ROI的特征,并使用掩码全局池化(mask global pooling )以及前景掩码(foreground mask)进行特征过滤(实现类似于硬注意力机制的过程)
  • 用检测头进行相关参数的回归

骨干网络:作者采用了ResNet-18+SE模块

掩码全局池化(mask global pooling ):就是对特征提取网络中得到的特征做了一个mask,后面的全局最大池化只对前景做,能够使得特征更具有鲁棒性
mask生成:主要参考了【3D目标检测】Accurate Monocular Object Detection via Color-Embedded 3D Reconstruction for AD中前景分割的部分,关键就是在深度图中设置门限值,作者在每个patch的平均深度的基础上添加一个偏移作为门限值,小于这个门限的就是前景,否则就是背景。
检测头:检测头是专门为KITTI数据集设计的,三个分支对应三个难度,每个分支预测7个参数。为了避免无效计算,设置了一个小模块用来预测难度,然后使用对应难度的分支。
损失函数:参考了 【3D目标检测】Frustum PointNets for 3D Object Detection from RGB-D Data 的损失函数,分别计算中心点、尺寸和航向角的损失,并且额外使用角点的损失。

证明基于伪点云的3D目标检测算法效果好的原因是从图像到点云坐标系转换的过程

因为上面的实验证明了基于伪点云表示的方法和一个基于图像表示的方法是等价的,因此作者对图像表示方法中的中间图像进行了消融实验,证明了从图像到点云坐标系转换的过程的重要性。(我感觉最多就只能证明这个过程的重要性,要说它是决定性因素,实验未免太少了吧。)

实验做法就是深度图的图像表示中有3个patch,选中其中的一部分,效果不好,说明需要完整的3D数据;将得到的点云坐标系下的3D坐标(X,Y)(X,Y)(X,Y)转换成原始图像坐标系下的2D坐标(x,y)(x,y)(x,y),效果差了,说明深度图代表的深度信息应该在点云坐标系下使用3D坐标表示而不是原始图像坐标系下的2D坐标表示。

本文提到的坐标系转换不一定是真正的本质原因,但是给这种提升数据做3D目标检测的算法开拓了新的思路。

【3D目标检测】Rethinking Pseudo-LiDAR Representation相关推荐

  1. ECCV 2020论文大盘点-3D目标检测篇

    随着自动驾驶的火热,3D目标检测在计算机视觉领域持续升温,学术和工业界都有众多研究学者,这其中基于点云数据的3D目标检测是主流,近年来基于单目RGB数据的也越来越多了.本部分总计 21 篇,1篇spo ...

  2. 3D目标检测(CVPR2020:Lidar)

    3D目标检测(CVPR2020:Lidar) LiDAR-Based Online 3D Video Object Detection With Graph-Based Message Passing ...

  3. 【lidar】基于YOLO的3D目标检测(激光雷达点云)课程设计

    基于YOLO的3D目标检测(激光雷达点云)课程设计 代码+数据集下载地址:下载地址

  4. 3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR20

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Brief paper地址:https://arxiv.org/pdf/2004.01389.pdf ...

  5. 【3D目标检测】PDV(Point Density-Aware Voxels for LiDAR 3D Object Detection)

    目录 概述 细节 点密度问题 网络结构 3D体素特征提取网络 体素点质心定位 密度感知的RoI Grid Pooling 密度置信度预测 loss 概述 首先,本文是基于点云,并且将点云处理成体素的3 ...

  6. 最新!3D目标检测论文汇总(多模态融合)

    作者丨柒柒@知乎 来源丨https://zhuanlan.zhihu.com/p/447555827 编辑丨3D视觉工坊 这篇文章主要是梳理一下近期3D Detection的进展,分类列举出一些我认为 ...

  7. 点云 3D 目标检测 - PointPillars(CVPR 2019)

    点云 3D 目标检测 - PointPillars(CVPR 2019) 摘要 1. 导言 1.1 相关工作 1.1.1 使用CNNs进行目标检测 1.1.2 激光雷达点云中的目标检测 1.2 贡献 ...

  8. 【3D目标检测】学习过的论文整理

    目录 概述 整理结果 综述 3D视觉原理 学位论文 单目图像的3D目标检测方法研究 基于图像的 基于2D特征做的 SMOKE MonoDLE MonoPixel DD3D 基于3D特征做的 OFT-N ...

  9. 3D目标检测论文阅读摘要

    3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...

  10. 3D目标检测深度学习方法数据预处理综述

    作者 | 蒋天元 来源 | 3D视觉工坊(ID: QYong_2014) 这一篇的内容主要要讲一点在深度学习的3D目标检测网络中,我们都采用了哪些数据预处理的方法,主要讲两个方面的知识,第一个是rep ...

最新文章

  1. 第十五章 深入分析iBatis框架之系统架构与映射原理(待续)
  2. qt调用mysql加密接口_Qt实现客户端/服务器端登录验证|数据传输使用md5加密 | 学步园...
  3. VMware Fusion配置CentOS系统
  4. url采集工具_大数据关键技术浅谈之大数据采集
  5. LeetCode MySQL 178. 分数排名(dense_rank连续排名)
  6. c语言程序停止正常工作,C语言 由于出现问题,程序停止正常工作。如果帮我解决这个问题即可获得悬赏...
  7. python 定时器_按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟
  8. 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
  9. -webkit-filter是神马?
  10. 数据科学入门与实战:玩转pandas之一
  11. pip安装第三方库报错Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))
  12. VMware安装esxi6.7
  13. 让win10系统不进行自动更新的方法
  14. 腾讯会议 .wemta 文件如何转码成 mp4 文件
  15. 计算机二级Python第二弹课后题来袭!冲冲冲!!!
  16. html图书借阅代码,最全的图书馆首页代码
  17. 触摸液晶屏技术原理及分类
  18. 基于网络爬虫的大学生就业数据分析与预测模型研究
  19. 三星手机直连电脑Samsung Flow
  20. 汉语言文学如何利用计算机思维,对多媒体辅助汉语言文学教学的思考

热门文章

  1. UVa 1586 Molar mass(模拟)
  2. 网络安全与网站安全及计算机安全:如何下载到Windows各版本的Nmap网络扫描神器
  3. 桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker服务)
  4. Pyinstaller的Spec文件用法
  5. html字体换成白色,css怎么把字体颜色改为白色
  6. Win10重装系统/迁移系统,教你如何简单快速删除原系统文件
  7. python RGB与LCH互转 算法
  8. python在煤矿的用途-息烽高校邦数据科学通识课【Python爬虫】答案
  9. 科技爱好者周刊(第 118 期):高考志愿怎么填
  10. AirDrop不工作?使用这 15 个技巧快速修复它