点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

文章导读

计算机视觉任务中,2D卷积神经网络得益于极其出色的性能不断刷新着各大视觉任务的榜单,可谓是YYDS。随着人工智能算法的不断推进,更多的研究者将目光聚焦到了3D任务,那么在3D视觉任务中,2D卷积神经网络的神话能否延续呢?答案是肯定的!今天小编将分享一篇3D点云检测论文—Pointpillars,看看作者如何巧妙的只使用2D卷积,却实现了高效的3D目标检测。

1

3D点云检测的现状如何

最近几年点云的三维目标检测一直很火,从早期的PointNet、PointNet++,到体素网格的VoxelNet,后来大家觉得三维卷积过于耗时,又推出了Complex-yolo等模型把点云投影到二维平面,用图像的方法做目标检测,从而加速网络推理。

所以在点云上实现3D目标检测通常就是这三种做法:3D卷积、投影到前视图或者鸟瞰图(Bev)。

3D卷积的缺点是计算量较大,导致网络的推理速度较慢。投影的方式受到点云的稀疏性的限制,使得卷积无法较好的提取特征,效率低下。而后来研究热点转向了采用鸟瞰图(Bev)的方式,但存在的明显的缺点就是需要手动提取特征,不利于推广到其他的雷达上使用。

拨开那些花里胡哨的网络,有什么更靠谱的模型能够权衡速度和精度做三维目标检测呢?

2

横空杀出的PointPillars

这是一篇前两年的点云目标检测网络,为什么重温它是因为小编在学习百度Apollo 6.0时发现它被集成进去作为激光雷达的检测模型了。在这里给大家解析一下该网络模型,看看有啥特点!

Pointpillars的创新点在于:提出了一种新的编码方式,利用柱状物的方式生成伪图像。

Pointpillars由三大部分组成:

  • 利用pillars的方式将点云转化为稀疏伪图像;

  • 使用2D网络进行特征的学习;

  • 使用SSD检测头进行Bbox的回归。

如下图所示:

网络结构

Pointpillars的性能表现:具有明显的速度优势,最高也可达到105Hz,且对比仅使用点云作为输入的3D目标检测的方法有精度上的提升。

3

PointPillars的详细分析

想要学习一个网络模型,不管是图像还是点云的检测:

  • 首先需要看看它是怎么做数据处理的?

  • 然后了解它的特征提取模块是怎么搭建的?

  • 接下来了解它的检测头选用的是什么?

  • 模型搭建完毕后需要分析损失函数如何权衡?

  • 最后当然是看看实验的仿真效果如何?

数据处理环节:

Pointpillar设计了一套编码方式将激光雷达输出的三维坐标转换到网络输入的形式,操作如下:

  1. 通常从激光雷达中获取的点云表现形式一般是x,y,z和反射强度i。

  2. 将点云离散到x-y平面的均匀间隔的网格中,从而创建一组柱状集P ,具有| P | = B,z轴不需要参数进行控制。

  3. 将每个支柱中的点增加xc,yc,zc,xp和yp(其中c下标表示到支柱中所有点的算术平均值的距离,p下标表示从支柱x,y中心的偏移量)。激光雷达中的每个点就具有了九维的特征。

  4. 对每个样本的非空支柱数(P)和每个支柱中的点数(N)施加限制,来创建大小为(D,P,N)的张量张量。如柱状体中的数据太多,则进行随机采样,如数据太少,则用0进行填充。

  5. 简化版本的PointNet对张量化的点云数据进行处理和特征提取(即对每个点都运用线性层+BN层+ReLU层),来生成一个(C,P,N)的张量,再对于通道上使用最大池化操作,输出一个(C,P)的张量。

  6. 编码后特征散布回原始的支柱位置,创建大小为(C,H,W)的伪图像。

(D, P, N)--> (C, P, N) --> (C, P) --> (C, H, W)

上述的转换流程流程如图所示:

生成伪图像的过程

特征提取环节:

本文中的编码器的输出特征维度C=64,除了第1个Block中汽车的步幅S=2,行人和骑自行车的人的步幅为1,第2和第3个block中采用了相同的步幅。并对3个块进行上采样,最后将3个上采样的块进行通道拼接,可以为检测头提供6C维度的特征。

数据流在下采样和上采样的过程中并不复杂:

下采样:Block1(S,4,C),Block2(2S,6,2C),和Block3(4S,6,4C)

上采样:Up1(S,S,2C),Up2(2S,S,2C)和Up3(4S,S,2C)。

如下图所示:

特征层结构

检测头模块

论文中作者使用SSD进行3D目标检测。与SSD相似,使用了2D联合截面(IoU)将先验盒和地面的真实情况进行匹配。Bbox的高度和高程没有用于匹配,取而代之的是2D匹配,高度和高程成为附加的回归目标。

损失函数部分

检测网络的损失函数一般都是有分类和回归两部分组成,分类损失用于给出目标的类别,回归损失用于给出目标的位置,而三维目标检测相比图像的二维检测多了3个参数。

3D Box由(x,y,z,w,h,l,0)进行定义:

其中分类损失:

回归损失:

通过加权和的方式得到总的损失函数:

实验仿真结果

最后我们看一下文章给出的仿真结果:

不管从速度上还是精度上相比于几种经典模型还是有一定程度的提高,但其实我们可以发现在行人等检测仍然徘徊在50%左右,和图像的目标检测动仄80%~90%的mAP还有很大的提升空间。

这里是运行源码的一份评估报告,不过源码中将车辆和行人等分开到两份配置中训练,估计是因为大小特征不一,怕合起来影响刷榜精度吧。

4

PointPillars的优缺点在哪里?

梳理一遍这个检测网络后,我们回顾对比一下其他方法,不难发现它的优势不外乎以下几点:

  1. 提出了一种新的点云编码器,不依靠固定编码器进行学习特征,可以利用点云的所有信息。

  2. 在柱状体而非体素(voxel)上进行操作,无需手动调整垂直方向的分箱。

  3. 网络中只使用2D卷积,不使用3D卷积,计算量小运行高效。

  4. 不适用手工特征,而是让网络自动的学习特征,因此无需手动的调整点云的配置,即可推广到其他的激光雷达中使用。

该网络侧重于三维数据形式的转换编码,所以在后续几个环节仍然有不少优化的空间,比如:

  • 特征融合部分采用的FPN是否可以换成PAN

  • 检测头采用的SSD是否可以换成更新的检测器

  • 回归损失函数是否可以将角度和BBox紧耦合

通过阅读开源工程,发现它提供了一个效果展现的可视化工具,和小编以前做的联合标注工具很相似,如下图所示,针对同步后的激光雷达和摄像头数据,在可视化三维点云空间的同时,将感知的结果投影到图像的透视投影视角上以及点云的鸟瞰图视角中。

最主要的是这个工具可以用于其他的检测模型,只要在右侧的配置栏提供输入输出信息即可,强烈推荐!

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

下载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天内无条件退款

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

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

PointPillar:利用伪图像高效实现3D目标检测相关推荐

  1. 谷歌最新论文:从图像中进行3-D目标检测

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:黄浴 知乎链接:https://zhuanlan.zhihu.com/p/1 ...

  2. 3D目标检测学习笔记

    博主初学3D目标检测,此前没有相关学习背景,小白一枚-现阶段的学习重点是点云相关的3D检测. 本文是阅读文章:3D Object Detection for Autonomous Driving: A ...

  3. 一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[ECCV2022]获取ECCV2022所有自动驾驶方向论文! 目前 ...

  4. DeepFusion:基于激光雷达和相机深度融合的多模态3D目标检测

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨安全与性能研究室 来源丨 同济智能汽车研究所 点击进入->3D视觉工坊学习交流群 编者按: ...

  5. 史上最全综述:3D目标检测算法汇总!

    来源:自动驾驶之心 本文约16000字,建议阅读10+分钟 本文将演示如何通过阈值调优来提高模型的性能.本文的结构安排如下:首先,第2节中介绍了3D目标检测问题的定义.数据集和评价指标.然后,我们回顾 ...

  6. 无人驾驶领域的3D目标检测综述

    论文阅读笔记<3D Object Detection for Autonomous Driving: A Review and New Outlooks> github链接:https:/ ...

  7. 谷歌AI良心开源:一部手机就能完成3D目标检测,还是实时的那种

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:量子位@微信公众号 导读: 昨天,谷歌开源了能在移动设备上实时计算面向对象的 ...

  8. DisARM:用于3D目标检测的位移感知关联模块(CVPR2022)

    作者丨花椒壳壳@知乎 来源丨https://zhuanlan.zhihu.com/p/490441536 编辑丨3D视觉工坊 论文标题:DisARM: Displacement Aware Relat ...

  9. CVPR 2022 | 华南理工提出VISTA:双跨视角空间注意力机制实现3D目标检测SOTA,即插即用...

    来源:机器之心 本文提出了 VISTA,一种新颖的即插即用多视角融合策略,用于准确的 3D 对象检测.为了使 VISTA 能够关注特定目标而不是一般点,研究者提出限制学习的注意力权重的方差.将分类和回 ...

最新文章

  1. Centos6.8防火墙配置
  2. 移动广告平台到底哪个好?哪个能赚的米米多?
  3. c语言随机三位数,【分享代码】弥补c语言随机数不足
  4. MATLAB函数记录
  5. 宣布EAXY:在Java中简化XML
  6. 会php学java入门要多久_php8(java入门要多久)
  7. python字符串怎么表示_python中字符串的几种表达方式(用什么方式表示字符串)...
  8. 接口测试Fiddler实战
  9. linux系统命令学习系列8-文件相关操作touch,rm,mv,cat,head,tail命令
  10. 【redis 封装】
  11. More Exceptional C++起步于Exceptional C++驻足之处
  12. Python+selenium自动化 - 环境搭建
  13. JS编程练习题(javascript)
  14. iPhone5发布,杂谈
  15. tp5 怎么安装 后盾网加密解密crypt扩充扩展包?
  16. Oracle Database 11.2.0.4.0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证
  17. Linux服务器相关命令(更新中)
  18. 【历史上的今天】11 月 13 日:万维网第一个网页诞生;Lisp 语言先驱出生;当当网上线
  19. 科技云报道:从“地摊经济”看云计算,产业寡头化趋势进一步加强
  20. 斯坦福php项目怎么样,科学网—发现自己的论文居然成了斯坦福大学的课程项目 - 杨双的博文...

热门文章

  1. ASP.NET MVC + ECharts图表案例
  2. Oracle DSI(Data Server Internals) 下载说明
  3. 通用分页存储过程(转自邹建)
  4. 基于 Prometheus、InfluxDB 与 Grafana 打造监控平台
  5. 【面经】超硬核面经,已拿蚂蚁金服Offer!!
  6. 【基础巩固篇】Java中的Buffer缓冲区探究
  7. 图解YARN--大数据平台技术栈17
  8. 一堂拯救万千股民的公开课
  9. 京东员工因两年一毛钱没涨而离职,618后跳槽涨薪翻倍
  10. 有段位的管理者,都是怎么管理的?