激光雷达与摄像头数据融合(2)——关键点关联与追踪

激光雷达与摄像头数据融合(2)——关键点关联与追踪
上一篇文章我们简要的介绍了一下两个传感器的优劣势,以及他们为什么可以优势互补为我们的应用助力,带来可靠性高的结果。
在这篇文章中,我将介绍数据融合前的关键一步——两类数据的关键点关联与追踪。

目标跟踪 Obstacle Tracking

Obstacle指目标
基本原理是在前后帧之间关联对象。
激光雷达与摄像头数据融合(2)——关键点关联与追踪

在两帧之间关联对象

跟踪前后帧中边界框的位置,可以使用重叠度(Intersection over Union, IOU)作为指标。我们还可以使用深度卷积特征来确保边界框中的对象相同-我们将此过程称为简易实时在线目标追踪( Simple Online and Realtime Tracking, SORT),如果使用卷积网络特征,则称为结合深度数据关联度量方法的简易实时在线目标追踪(Deep SORT)。【GITHUB】
SORT是基于匈牙利算法和卡尔曼滤波器实现的,更具体的介绍可以见这篇文章【Computer Vision for tracking】
其中匈牙利算法可以判断当前帧中的对象是否与前一帧中的对象相同。它将用于关联和ID属性。
卡尔曼滤波是一种可以根据当前位置预测未来位置的算法。它也可以比传感器告诉我们的结果更好地估计当前位置。它将用于具有更好的关联性。

匈牙利算法

可以根据得分将障碍物从一帧关联到另一帧。我们有很多评价得分的方法可以想到:

  • IOU:如果边界框与前一个重叠,则可能是相同的。
  • 形状评分 : 如果连续两个帧的形状或大小变化不大;分数增加。
  • 卷积代价 :我们可以在边界框上运行CNN(卷积神经网络),并将此结果与一帧前的结果进行比较。如果卷积特征相同,则意味着对象看起来相同。如果存在部分遮挡,则卷积特征将部分保持不变,并且关联将保持不变。

卡尔曼滤波器

卡尔曼滤波器用于每个边界框,因此它在匹配框之后出现。建立关联后,将调用预测和更新功能。这些函数由用于确定状态均值和协方差的公式组成的卡尔曼滤波器的数学运算实现。
我们要估计均值和协方差。平均值是边界框的坐标,协方差是我们对具有这些坐标的边界框的不确定性。
平均值(x)状态向量。它由边界框的中心坐标(cx,cy),框的大小(宽度,高度)以及这些参数(速度)的变化组成。
激光雷达与摄像头数据融合(2)——关键点关联与追踪

初始化此参数时,我们将速度设置为0。然后将由卡尔曼滤波器对其进行估算。
协方差(P) 是估计中的不确定性矩阵。我们将其设置为任意数字并对其进行调整以查看结果。数字越大意味着不确定性越大。
激光雷达与摄像头数据融合(2)——关键点关联与追踪
这就是我们需要估计的一切:状态和不确定性!卡尔曼滤波器的工作分为两个步骤:预测和更新。预测将预测未来的位置,更新将纠正它们,并通过改变不确定性来增强我们的预测方式。随着时间的流逝,卡尔曼滤波器变得越来越收敛。

特征追踪 Feature Tracking

另一种比较流行的是特征追踪(Feature Tracking).在特征跟踪中,我们直接跟踪特征,而不是跟踪边界框。与早期和晚期融合类似,我们将进行早期和晚期跟踪。

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

那么我们可以跟踪什么特征呢?这里可以是图像中定位和跟踪关键点。关键点可以是拐角,边缘,渐变或像素的特定变化。在交叉口环境中可以是蓝色车牌

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

  • 探测器 Detectors
  • 描述符 Descriptors
  • 匹配器 Matching

探测器 Detectors

检测器的想法是检测图像中的特定像素,例如角落或边缘。存在几种算法,仅举几例:

  • Harris Corner Detector — From 1988
  • Scale Invariant Feature Transform (SIFT) — From 1996
  • Speeded Up Robust Features (SURF) — From 2006
  • Features from Accelerated Segment Test (FAST) — From 2006

更多的有: BRISK, BRIEF, FREAK, KAZE, ORB, and Shi-Tomasi.
建立所有这些目标时都有着相同的目标:快速找到关键点。一些技术将对光线的变化具有鲁棒性,而在其他方向上更快,比如诸如Harris的技术专注于拐角检测。基本原理是提取局部最大值
激光雷达与摄像头数据融合(2)——关键点关联与追踪
激光雷达与摄像头数据融合(2)——关键点关联与追踪

Harris Corner Detector

描述符 Descriptors

现在,我们已经使用检测器找到关键点(拐角和边缘),我们可以使用描述符将它们与图像匹配。

为此,我们查看围绕给定关键点的一小片区域。我们可以从比较原始像素值再到使用定向梯度直方图(Histogram of Oriented Gradients, HOG)。

描述(和检测)最流行的方法是SIFT,之前已经介绍过。

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

以下是其工作原理的概述。

  1. 检测关键点
  2. 对于每个关键点,选择周围的一个区域。
    激光雷达与摄像头数据融合(2)——关键点关联与追踪
  3. 计算方向和大小并获得HOG
    激光雷达与摄像头数据融合(2)——关键点关联与追踪
    4.提供一个直方图,我们可以在帧之间进行比较。
    激光雷达与摄像头数据融合(2)——关键点关联与追踪

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

激光雷达与摄像头数据融合(2)——关键点关联与追踪

总结一下,描述符是值的向量,它描述关键点周围的图像块。其中有多种技术,从单纯比较原始像素值到更为复杂的方法(例如HOG)。

匹配器 Matching

描述符的想法是比起单纯比较两帧之间的像素值有更好的方法,那我们使用什么标准来匹配描述符呢?
两帧中有两个直方图或者向量代表我们特征。
然后可以采用损失函数来确定两个特征是否相同。我们可以使用平方差总和(SSD)来获取数字并将其阈值化。还可以使用最近的临近匹配。
最流行和最有效的技术之一是FLANN
需要注意下面这种情况。
激光雷达与摄像头数据融合(2)——关键点关联与追踪
一帧中几个描述符有着非常类似的特征,可以预见的是下一帧可能会导致错误的匹配,存在诸如SSD ratio之类的过滤技术可以帮助我们解决此问题。

总结

现在我们比较清楚的了解了传感器融合的过程。
让我们总结一下我们学到的东西:

传感器融合过程是关于融合来自不同传感器的数据。
可能存在早期或晚期融合。在早期融合中,我们要将3D点云投影到2D图像上,而在晚期融合中,我们希望在2D空间中投影2D边界框。这个想法是融合结果。

跟踪也是传感器融合过程的重要组成部分。可能有后期跟踪(目标跟踪:在此我们跟踪边界框)或早期跟踪(特征跟踪:我们跟踪像素)。
对于早期跟踪,我们使用检测器,描述符和匹配器的组合来执行帧到帧的关联。检测器用于查找关键点,描述符用于对其进行编码,匹配器用于判断帧之间是否相似。