点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

文章导读

本文是针对一篇激光雷达三维目标检测的综述性文章的解读分析《Deep 3D Object Detection Networks Using LiDAR Data A Review》,从激光雷达的基础介绍出发,总结三维目标检测的网络设计方法,并给出模型的评估方式,最后针对一些公开问题进行探讨分析。

目录

  • 三维检测的基础介绍

  • 三维检测的算法回顾

  • 三维检测的评估指标

  • 三维检测的问题探讨

三维检测的基础介绍

1. 激光雷达的测距和扫描原理

激光雷达的主要测距方式是基于TOF:用光速乘以激光脉冲的飞行时间。

根据激光雷达的扫描方式,可以分为三种类型:

  • 机械式雷达

  • 混合式雷达

  • 固态式雷达

机械式雷达:通过在不同垂直方向上水平旋转的激光发射器实现360°扫描,不同数量的发射器可以产生不同密度的三维图像;

混合式雷达:通过调整微型镜片的角度使单脉冲激光反射到不同的方向,具有成本低、体积小的优点;

固态式雷达包括两种:

OPA激光雷达利用了相干光的原理。采用多光源阵列,通过控制激光发射的时差,在特定方向合成主光束。然后在不同方向上改变主光束相位的方向,进行全景扫描。

Flash激光雷达成像类似于相机成像。它首先向前视图发射激光,然后接收反射信号来构建视图图像。Flash激光雷达成像速度快,但受电子器件功率限制,探测距离短。

2. 点云的输出形式

点云是一些通过LiDAR扫描而得的点的集合,包含物体表面信息的特征和环境点的空间分布。每个点包含了相对传感器中心的3D坐标向量(x,y,z),和一个激光的反射强度相关的r。如下图所示:

p点的坐标向量可以通过如下计算而来:

x = Lcos(ω)cos(φ)

y = Lcos(ω)sin(φ)

z = Lsin(ω)

3. 目标检测的网络结构

三维空间任意分布的原始点云,在网络处理之前通常采用视图投影或体素化将其特征化为规则格式。

和图像的目标检测一样,检测网络可以分为两类,如下图所示:

两阶段方法:先提出候选区域,最大限度地提高网络召回率,然后再使用细化网络提取每RoI特征向量,并预测目标分类得分以及回归到原始RoI位置的偏移量,最后通过后处理消除了重叠框。

单阶段方法:利用深度网络强大的特征学习能力,在网络的单一推理中预测对象的位置和类别。最后通过后处理消除了重叠框。

4. 三维外接框的编码方式

三维外接框表示的是目标位置、尺寸、方向属性,其编码方法主要有三种:

  • 八顶点:8个顶点的坐标(xyz),一共24个值。目标的朝向通常假定为边较长的;

  • 四顶点和两高度:为了保持边界盒顶角与底角对齐的地物的物理约束。4个定点是底面的四个点,两个高度值是底面和顶面相对地面的偏移量;根据四个角点计算四个可能的方向,并选择最近的一个作为方向向量;

  • 中心点和尺寸:7d向量表示一个3D框,中心坐标x,y,z;长宽高l,w,h;朝向角θ;

三维检测的算法回顾

点云的表征决定了三维检测网络的设计,所以根据点云的特征化方法,可以将所有的算法分为三类:

  • 基于投影的方法;

  • 基于体素的方法;

  • 基于点的方法;

1. 基于投影的方法

主要侧重在观察点云的角度上,将点云投影到2D平面中,然后再使用二维卷积网络,类似于图像平面上的目标检测。根据投影方向不同,可以分为前视投影和鸟瞰投影:

a 前视投影

二维前视图类似于圆柱形图像。每个像素都充满了几个特征通道。研究人员设计了各种统计前视特征,以充分保留点云特征,从而进一步提高目标定位和分类精度。常用的前视特性如下:

前视投影通常制作一个致密的2D图,使用现成的2D检测器。深度信息被编码在前视图中以获得不同视图之间的依赖关系。但是由于透视性,尺度变化和遮挡等问题带来的信息损失是其一大难点。

b 俯视投影

将三维点云压缩到x-y方向的平面空间,通常会对z方向的高度进行编码操作,转化为高度差,平均高度等信息,为了弥补降维的损失,也会去引入点云的密度信息,强度信息作为通道的叠加。

但是基于投影的方法比较依赖于2D检测算法,需要设计人工特征在2D投影中保持空间特征。但是由于投影的分辨率和特征通道影响计算效率,一些不可逆的信息损失在投影中依旧存在,并且限制着目标检测精度。

2. 基于体素的方法

主要是将不规则的点云数据格式化到一个纯矩阵中以适应卷积。3D空间被离散化到固定大小的体素栅格中。每个体素内部容纳非结构化点。体素的方式保留的原始点云数据的三维结构。但是稀疏的点云数据引入了大量的空体素。体素分辨率提高的同时,3D空间计算量程指数增长。

如何去解析稀疏体素目前有以下几种方法:

  • Efficient Localizing Object in Large 3D Voxel Space

  • Learnable Voxel Feature Encoding

  • Efficient Vertical Feature Processing

  • Optimizing Voxelization Process

  • Exploring Depth-Aware Features

  • Combining Image Features

比较经典的体素网络如VoxelNet结构:

虽然体素的方式能够在各个子空间中统计离散的特征点,但是此类建模中的稀疏表示和不可避免的计算限制了体素方法的实时性。

3. 基于点的方法

相比于前两种方法直接对点云数据建模减少信息的损失,比较经典的如PointNet系列,提出了一种统一的深度网络体系结构,直接使用不规则点来获取局部和全局点的特征,如下图所示:

大多数基于点的算法都是对PointNet系列的改造,从不规则点中获取3D特征。基于点的方法在三维检测任务中展现了强大的能力和潜力。

基于以上三种方法,论文中给出一张优缺点对比图:

三维检测的评估指标

检测任务中较常用的是以IoU的方式计算mAP。通过三维预测盒与三维地面真值盒的交集求出的三维IoU与阈值比较,确定检测是真阳性(TP)还是假阳性(FP)。

  • 精准度是判断为真的正例占所有判断为真的样例比重

  • 召回率是分类器中判定为真的正例占总正例的比率

单一的看精准度或者召回率都是比较片面的,可以通过P-R曲线可以用来观察模型准确度和召回率之间的平衡。

另一种评估方式是使用二维中心距离测量代替IoU,允许在3D边界框计算中解耦对象位置、大小和方向,减少在使用IoU度量时,存在TP目标不匹配的问题。

除了mAP度量之外,还测量了一组真正度量(TP度量),以量化每个TP的质量,包括盒子的位置、大小、方向、属性和速度。

TP包含了以下五个错误:

  • 平均平移误差(ATE):二维欧式中心距离;

  • 平均尺度误差(ASE):校准方向和平移后3D IoU的误差;

  • 平均方向误差(AOE):角度和GT角度之间的误差;

  • 平均速度误差(AVE):平面状态下经过L2后的速度误差;

  • 平均属性误差(AAE):1- 类别精度

公式如下:

三维检测的问题探讨

1. 点云数据的稀疏性增加特征提取的难度

可以考虑从局部点云生成目标三维形状和形状几何的推断。或者将多层次的点特征从粗到细进行融合,保持稀疏目标特征更为详细的信息。

2. 点云之间不规则性影响搜索效率

没有拓扑关系的点云在卷积提取特征时往往不能表现出好的效果。可以考虑图卷积网络来处理原始点云,引入可学习的卷积参数对拓扑图进行优化,有利于不规则图的特征学习。

3. 是否需要融合多传感器数据

不同传感器带来的特征信息确实能够对场景进行相互补充。比如使用图像颜色和纹理特征来补充点云数据的形状特征。

较流行的方案是以点云生成三维提议框,将图像的RGB矢量、分割特征或类概率直接附加到三维空间中相应的投影点上,构造丰富的逐点输入数据。

4. 是否有必要做多任务联合训练

三维环境的感知是将多个任务协同工作,每种任务带来的信息输出是可以给其他任务作为参考,所以在多个任务之间共享特征和传输信息是值得的,可以有效提高3D目标检测的效果。

5. 是否要做复杂场景下的性能验证

实验室中的算法原型开发一般只针对特定场景或者特定数据集跑出一个很好的效果,但是真实场景下,雨、雾很容易被雷达反射,同时引入噪声点。所以在实际应用中有许多额外的因素需要考虑:

  • 检测算法是否能较鲁棒的处理噪声数据;

  • 类别的增多是否需要增加锚点引起计算压力;

  • 特殊场景的小样本数据是否会有不均衡问题;

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

激光雷达三维检测包含哪些内容?相关推荐

  1. 自动驾驶中激光雷达如何检测障碍物

    自动驾驶中激光雷达如何检测障碍物 1. 介绍 1.1 激光雷达-一种三维激光传感器 1.2 激光雷达的优缺点? 1.3 基于激光雷达如何进行障碍物检测? 1.4 点云处理难点 2. 点云处理 2.1 ...

  2. 图像条纹检测 python_【连载2.1】结构光三维检测引言面向强反射表面的多传感器三维检测技术研究...

    本章大纲 2.1 引言 2.2 多传感器三维检测系统介绍 2.2.1 多传感器三维检测总体模型2.2.2 多传感器三维检测系统工作原理 2.3 坐标系统一化全局标定方法 2.3.1 全局标定方法介绍2 ...

  3. 激光雷达目标检测 (上)

    激光雷达目标检测 (上) **---- 转载自美团无人专送团队** 简介 安全性是自动驾驶中人们最关注的问题之一. 在算法层面,无人车对周围环境的准确感知是保证安全的基础,因此感知算法的精度十分重要. ...

  4. 激光雷达目标检测(下)

    基于深度学习的算法 现在在激光雷达数据目标检测中最常用的算法是基于深度学习的算法,其效果与传统学习算法相比要好很多,其中很多算法都采用了与图片目标检测相似的算法框架. 早期的激光点云上的目标检测和图片 ...

  5. 自动驾驶感知——激光雷达物体检测算法

    文章目录 1. 基于激光雷达的物体检测 1.1 物体检测的输入与输出 1.2 点云数据库 1.3 激光雷达物体检测算法 1.3.1 点视图 1.3.1.1 PointNet 1.3.1.2 Point ...

  6. 自动驾驶中的激光雷达目标检测的原理和数据特点

    转自:http://www.elecfans.com/d/892365.html (侵删) 安全性是自动驾驶中人们最关注的问题之一. 在算法层面,无人车对周围环境的准确感知是保证安全的基础,因此感知算 ...

  7. 图像条纹检测 python_【连载4.5】特征检测技术研究面向强反射表面的多传感器三维检测技术研究...

    本章大纲 4 光条纹中心提取技术研究 4.1 结构光条纹特征 4.2 常用的像素级别特征提取方法 4.2.1 灰度重心法4.2.2 极值法4.2.3 方向模板法4.2.4 阈值法4.2.5 几何中心法 ...

  8. 显示三维图片序列_SLAM结合三维检测

    11.11---11.17 ​ 在此前一周进行yolo与cube slam整合的时候,采用ros通信的方式.存在两个问题:一个是darknet检测不到目标,就不对外发布检测结果,会造成检测结果和图片序 ...

  9. panda是删除行_pandas删除包含指定内容的行

    Outline 处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给删除掉. 例如:该数据中应该都是2000年的数据,但是包含了一些2001年的数据,所以需要把2001年的数据 ...

  10. 软件功能测试报告都包含哪些内容,测试报告如何获取呢

    软件功能测试对于大家都不陌生,当一个软件程序被开发完成后这是最基本的测试,但是想要满足市场需求的话一份权威的软件测试报告是无比重要,那么软件功能测试报告都包含哪些内容呢,如何获取有效的软件功能测试报告 ...

最新文章

  1. I.MX6 U-Boot mkconfig hacking
  2. Vue开发中遇到的问题及解决方案
  3. Android重要组件之一 Service 服务讲解学习(一)
  4. System.Net.Dns.GetHostByAddress(string) 已经过时
  5. matlab功能块的作用,STEP7中功能块的使用属性说明
  6. The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from
  7. iframe 子父窗口互掉 js
  8. Dev C++详细安装教程
  9. springcloud 熔断器Hystrix的具体使用
  10. 位数(digits)的处理
  11. [运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
  12. 《精通Unreal Engine 3 卷1:3D游戏关卡设计》
  13. pow函数在php,pow函数怎么用
  14. 使el-input失焦
  15. 对大数据指标的理解、大数据常用指标都有哪些
  16. 163电子邮箱,注册登陆及使用详细揭秘
  17. webpack使用css-loader跟style-loader加载css报错
  18. openwrt怎么做ap_终于把无线AP鸡肋的系统刷成openwrt,从此山鸡变凤凰!
  19. linux下的软件包
  20. 剑网三一个服务器最多有多少人,人比怪多,剑网三缘起刚开服,升级最大的阻碍居然是玩家...

热门文章

  1. V Rising 服务器搭建
  2. 惠普打印机墨盒更换教程_惠普打印机换墨盒图解 惠普打印机怎么换墨盒
  3. 【VBA】汉字转换全拼函数
  4. c语言 项目 轮子,程序员们为什么热衷于发明轮子?
  5. word文档怎么画流程图
  6. matlab角度和弧度的互换_MATLAB弧度与角度转换 -
  7. Matlab导入excel数据
  8. 【深度理解】如何评价GAN网络的好坏?IS(inception score)和FID(Fréchet Inception Distance)
  9. python二元一次方程组用鸡兔同笼的思路来写编程_3应用二元一次方程组——鸡兔同笼教学设计...
  10. 他,用了14年,从初代豆瓣工程师到AI公司CTO,创业心一直未变