点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
由于精度和可靠性的优势,激光雷达+摄像头方案在机器人和无人驾驶汽车中已经成为趋势。如何高效的融合不同的传感器数据在实际应用中至关重要。本文图文并茂的讲解了整个融合过程。
作者: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边框,然后将这些边框与激光雷达探测过程中获得的边框进行融合。
我们现在知道了两种激光雷达传感器和摄像头之间数据融合的方法。但是还有一件事情我们需要解决: 障碍物关联和跟踪。
障碍物跟踪在文章"计算机视觉跟踪"中,我详细介绍了使用匈牙利算法(Hungarian algorithm)和卡尔曼滤波器(Kalman filters)来关联帧之间的目标的技术。这就是它的样子。
在这里,我们跟踪边框的位置并使用 IOU 作为一个度量。我们还可以使用深度卷积特征来确保边框中的目标是相同的—— 我们称这个过程为 SORT,如果使用卷积特征,则叫Deep SORT。 虽然这个过程在我们的例子中工作得很好,但是我想讨论另一种可能的方法: 特性跟踪。
特征跟踪在特征跟踪中,我们直接跟踪特征而不是跟踪边框。类似于早期和晚期融合,我们会有早期和晚期跟踪。
-
早期跟踪是关于跟踪图像中的特征。
-
后期跟踪是关于跟踪检测到的边框。
下面是它的样子:
特征跟踪是如何工作的 这里的想法是定位和跟踪图像中的关键点。关键点可以是角、边、渐变或像素的特定改变。 在下面的图像中,我们可以清楚地看到一条直线、一个角和一个椭圆。所有这些都是通过测量邻近的暗像素和亮像素之间的对比度来实现的。
为了检测和跟踪关键点,我们用了三个步骤:
-
检测器(Detectors)
-
描述符(Descriptors )
-
配对(Matching)
检测器(Detectors) 检测器的思想是检测图像中的特定像素,如角或边。存在几种算法,举几个例子吧:
-
哈里斯(Harris)角检测器 —— 1988年
-
尺度不变特征变换(SIFT) —— 1996年
-
加速稳健特征(SURF) —— 2006年
-
加速分段试验(FAST) —— 2006年
所有这些都是基于同一个目标构建的: 快速找到关键点。 有些技术对光线的变化很敏感,有些更快,而像 Harris 这样的技术专注于角检测。 输出结果如下——
描述符(Descriptors ) 现在我们已经使用检测器找到了关键点(角和边) ,我们可以使用描述符来与匹配图像。 为此,我们查看给定关键点周围的块(patches)。我们可以从比较原始像素值转变为使用方向梯度直方图(HOG)。 最流行的描述(和检测)方法是 SIFT,前面已经介绍过了。
尺度不变特征变换是 HOG 系列的一部分。下面是它是如何工作的概述。
-
检测关键点。
-
对于每个关键点,选择一个周围的块。
3. 计算方向和大小,得到一个 HOG。
4. 这给出了一个直方图,我们可以在帧之间进行比较。
结果 这是检测器 / 描述符的结果——我们有关键点和方向。
配对(Matchers)
因此,描述符的思想是一种比帧之间比较单个像素值更好的方法。 我们使用什么度量来匹配描述符? 我们有两个直方图,或者说是代表我们特征的向量。 现在的想法是使用损失函数来确定这些向量是相似的还是不同的。我们可以使用平方差异之和(Sum of the Squared Differences/SSD)得到一个数字并设置阈值。对于一组检测器和描述符来说,有点误差更好。 我们也可以用最近邻匹配器( nearest neighbor matcher),甚至暴力匹配。 其中最流行和有效的技术之一是所谓的 FLANN。 需要注意什么 这里有一个我们需要注意的例子:
这些描述符在特征方面非常接近,而且来自帧 t-1的描述符可能导致不正确的匹配。过滤技术如SSD比例可以帮助我们解决这个问题。
总结你现在看完了一个激光雷达和摄像头传感器融合过程的全面概述。 让我们总结一下学到了啥:
-
传感器融合过程是指融合来自不同传感器的数据,这里是一个激光雷达和一个摄像头。
-
跟踪也是传感器融合过程的一个重要部分——可以是后期跟踪,也就是跟踪边框; 也可以是早期跟踪,即跟踪像素。
讲完,就是这样!摄像头和激光雷达的传感器融合和跟踪需要这些步骤!实现起来并不容易,而且还有很多细节我没有提到,比如“如何投射点云到图像? ” 或者“如何确保匹配真的有效? ” 这些传感器都是伟大的,并将成为自动技术革命的一部分!
本文仅做学术分享,如有侵权,请联系删文。
下载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视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~