前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >激光雷达和摄像头融合在无人驾驶中的应用

激光雷达和摄像头融合在无人驾驶中的应用

作者头像
McGL
发布2020-09-02 13:12:52
1.5K0
发布2020-09-02 13:12:52
举报
文章被收录于专栏:PyVisionPyVision

由于精度和可靠性的优势,激光雷达+摄像头方案在机器人和无人驾驶汽车中已经成为趋势。如何高效的融合不同的传感器数据在实际应用中至关重要。本文图文并茂的讲解了整个融合过程。

作者:Jeremy Cohen 编译:McGL

传感器融合是无人驾驶汽车的关键技术之一。 如果我们看一下无人驾驶汽车的四个主要元素,我们可以把传感器融合归类为感知(perception)及定位(localization)世界的一部分。 原因很简单: 这两个元素都使用多个传感器来发挥作用。

例如,感知就是使用摄像头、激光雷达(LiDAR)和雷达(RADAR)来高精度地探测障碍物的类别、位置和速度。另一方面,定位融合了 GPS、 激光雷达和摄像头数据,以厘米级的精度获取准确的位置。 今天,我想把重点放在感知过程上,特别是激光雷达和摄像头的融合。


激光雷达和摄像头融合

摄像头: 一种2D 传感器

摄像头是一种众所周知的传感器,用于输出边框,车道线位置,交通灯和标志状态,以及很多其它事情。关于传统摄像头,要记住的关键是它是一种2D传感器。 虽然有一些限制,但是使用摄像头图像并运行机器学习和深度学习算法来得到我们想要的结果是可能的。

计算机视觉在无人驾驶汽车中的应用

激光雷达:一种3D 传感器

激光雷达(LiDAR)代表光探测和测距(Light Detection And Ranging)。它是一种3D 传感器,输出一组点云,每个都有一个(x,y,z)坐标。在3D数据上可以运行很多应用 —— 包括机器学习模型和神经网络。下面是一个输出示例。

激光雷达障碍物检测

如何融合3D和2D数据?

那么我们如何融合不在同一维度空间中的数据呢? 在传感器融合中,我们有两种可能的过程:

  • 早期融合——融合原始数据
  • 后期融合——融合结果

早期融合是对原始数据的融合。例如,我们可以将激光雷达点云(3D)投影到2D 图像上。然后我们检查点云是否属于二维包围盒。 以下是早期融合的样子:

早期激光雷达——摄像头融合

另一方面,后期融合是在独立检测之后对结果进行融合。例如,我们可以将摄像头中的2D边框投影为3D边框,然后将这些边框与激光雷达探测过程中获得的边框进行融合。

后期激光雷达——摄像头融合

注记—— 3D IOU匹配是通过3D空间上的交并(intersection over union)过程来实现的。为了更容易理解,我在2D摄像头图像上进行了展示; 但这是一个3D场景中的3D融合过程。

我们现在知道了两种激光雷达传感器和摄像头之间数据融合的方法。但是还有一件事情我们需要解决: 障碍物关联和跟踪。

障碍物跟踪

在文章"计算机视觉跟踪"中,我详细介绍了使用匈牙利算法(Hungarian algorithm)和卡尔曼滤波器(Kalman filters)来关联帧之间的目标的技术。这就是它的样子。

在这里,我们跟踪边框的位置并使用 IOU 作为一个度量。我们还可以使用深度卷积特征来确保边框中的目标是相同的—— 我们称这个过程为 SORT,如果使用卷积特征,则叫Deep SORT。 虽然这个过程在我们的例子中工作得很好,但是我想讨论另一种可能的方法: 特性跟踪。


特征跟踪

在特征跟踪中,我们直接跟踪特征而不是跟踪边框。类似于早期和晚期融合,我们会有早期和晚期跟踪。

  • 早期跟踪是关于跟踪图像中的特征。
  • 后期跟踪是关于跟踪检测到的边框。

下面是它的样子:

两帧之间的特征跟踪

特征跟踪是如何工作的 这里的想法是定位和跟踪图像中的关键点。关键点可以是角、边、渐变或像素的特定改变。 在下面的图像中,我们可以清楚地看到一条直线、一个角和一个椭圆。所有这些都是通过测量邻近的暗像素和亮像素之间的对比度来实现的。

线 / 角 / 椭圆关键点

寻找边缘和角

为了检测和跟踪关键点,我们用了三个步骤:

  • 检测器(Detectors)
  • 描述符(Descriptors )
  • 配对(Matching)

检测器(Detectors) 检测器的思想是检测图像中的特定像素,如角或边。存在几种算法,举几个例子吧:

  • 哈里斯(Harris)角检测器 —— 1988年
  • 尺度不变特征变换(SIFT) —— 1996年
  • 加速稳健特征(SURF) —— 2006年
  • 加速分段试验(FAST) —— 2006年

如果你需要更多的话,还有一些: BRISK, BRIEF, FREAK, KAZE, ORB, 和 Shi-Tomasi。

所有这些都是基于同一个目标构建的: 快速找到关键点。 有些技术对光线的变化很敏感,有些更快,而像 Harris 这样的技术专注于角检测。 输出结果如下——

图像

Harris 角检测

总结: 关键点(有时也叫兴趣点或显著点)检测器是一种算法,它根据函数(如我们在 Harris 检测器中看到的“角程度(cornerness)”度量)的局部最大值从图像中选择点。

描述符(Descriptors ) 现在我们已经使用检测器找到了关键点(角和边) ,我们可以使用描述符来与匹配图像。 为此,我们查看给定关键点周围的块(patches)。我们可以从比较原始像素值转变为使用方向梯度直方图(HOG)。 最流行的描述(和检测)方法是 SIFT,前面已经介绍过了。

尺度不变特征变换是 HOG 系列的一部分。

下面是它是如何工作的概述。

  1. 检测关键点。
  2. 对于每个关键点,选择一个周围的块。

3. 计算方向和大小,得到一个 HOG。

4. 这给出了一个直方图,我们可以在帧之间进行比较。

结果 这是检测器 / 描述符的结果——我们有关键点和方向。

应用Descriptor

总而言之,描述符是一个向量值,它描述了一个关键点周围的图像块。有各种各样的技术,从比较原始像素值到更复杂的方法,如 HOGs。

配对(Matchers)

因此,描述符的思想是一种比帧之间比较单个像素值更好的方法。 我们使用什么度量来匹配描述符? 我们有两个直方图,或者说是代表我们特征的向量。 现在的想法是使用损失函数来确定这些向量是相似的还是不同的。我们可以使用平方差异之和(Sum of the Squared Differences/SSD)得到一个数字并设置阈值。对于一组检测器和描述符来说,有点误差更好。 我们也可以用最近邻匹配器( nearest neighbor matcher),甚至暴力匹配。 其中最流行和有效的技术之一是所谓的 FLANN。 需要注意什么 这里有一个我们需要注意的例子:

这些描述符在特征方面非常接近,而且来自帧 t-1的描述符可能导致不正确的匹配。过滤技术如SSD比例可以帮助我们解决这个问题。

总结

你现在看完了一个激光雷达和摄像头传感器融合过程的全面概述。 让我们总结一下学到了啥:

  • 传感器融合过程是指融合来自不同传感器的数据,这里是一个激光雷达和一个摄像头。

融合可以是早期融合或后期融合——在早期融合中,我们将3D 点云投影到2D 图像;而在后期融合中,我们投影一个2D边框到3D空间。这个想法是为了融合数据。

  • 跟踪也是传感器融合过程的一个重要部分——可以是后期跟踪,也就是跟踪边框; 也可以是早期跟踪,即跟踪像素。

对于早期跟踪,我们使用检测器、描述符和匹配器的组合来执行帧到帧的关联。检测器用于寻找关键点,描述符用于对关键点进行编码,匹配器用于判断帧之间是否相似。

讲完,就是这样!摄像头和激光雷达的传感器融合和跟踪需要这些步骤!实现起来并不容易,而且还有很多细节我没有提到,比如“如何投射点云到图像? ” 或者“如何确保匹配真的有效? ” 这些传感器都是伟大的,并将成为自动技术革命的一部分!

原文:https://heartbeat.fritz.ai/lidar-camera-fusion-in-self-driving-cars-18d080874c71

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:Jeremy Cohen 编译:McGL
  • 激光雷达和摄像头融合
  • 障碍物跟踪
  • 特征跟踪
  • 总结
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档