卓尔高考网

无人驾驶(三)行人跟踪算法

篇首语:本文由小编为大家整理,主要介绍了无人驾驶(三)行人跟踪算法相关的知识,希望对你有一定的参考价值。

参考技术A 姓名:王梦妮

学号:20021210873

学院:电子工程学院

【嵌牛导读】本文主要介绍了无人驾驶中所需的行人跟踪算法

【嵌牛鼻子】无人驾驶 环境感知 计算机视觉 卡尔曼滤波 粒子滤波 均值漂移

【嵌牛提问】无人驾驶中所用到的行人跟踪算法有哪些

【嵌牛正文】

行人跟踪一直是视觉领域的一个难点,实际应用环境复杂、遮挡以及行人姿态变化等外界因素都影响着行人跟踪算法的研究。行人跟踪算法模型主要分为生成模型和判别模型。

(一)生成式模型

生成式模型是一种通过在线学习行人目标特征,建立行人跟踪模型,然后使用模型来搜索误差最小的目标区域,从而完成对行人的跟踪。这种算法在构建模型只考虑了行人本身的特征,忽略了背景信息,没有做到有效利用图像中的全部信息。其中比较经典的算法主要有卡尔曼滤波,粒子滤波,mean-shift等。

(1)卡尔曼滤波算法

卡尔曼滤波算法是一种通过对行人构建状态方程和观测方程为基础,计算最小均方误差来实现跟踪的最优线性递归滤波算法,通过递归行人的运动状态来预测行人轨迹的变化。

首先设定初始参数,读取视频序列。然后进行背景估计,产生初始化背景图像。然后依次读取视频序列,利用Kahnan滤波算法,根据上一帧估计的背景和当前帧数据得到当前帧的前景目标。然后对前景目标进行连通计算,检测出运动目标的轨迹。经典的卡尔曼滤波算法.只能对线性运动的行人实现跟踪,之后学者改进了卡尔曼滤波算法,能够实现对非线性运动的行人进行跟踪,计算量小,能实现实时跟踪,但是跟踪效果不理想。

(2)粒子滤波

    粒子滤波的核心就是贝叶斯推理和重要性采样。粒子滤波可用于非线性非高斯模型,这是由于贝叶斯推理采用蒙特卡洛法,以某个时间点事件出现的频率表示其概率。通过一组粒子对整个模型的后验概率分布进行近似的表示,通过这个表示来估计整个非线性非高斯系统的状态。重要性采用就是通过粒子的置信度来赋予不同的权重,置信度高的粒子,赋予较大的权重,通过权重的分布形式表示相似程度。

(3)均值漂移(mean-shift)

    Mean-shift算法属于核密度估计法。不必知道先验概率,密度函数值由采样点的特征空间计算。通过计算当前帧目标区域的像素特征值概率来描述目标模型,并对候选区域进行统一描述,使用相似的函数表示目标模型与候选模板之间的相似度,然后选择在具有相似函数值最大的候选模型中,您将获得关于目标模型的均值漂移向量,该向量表示目标从当前位置移动到下一个位置的向量。通过连续迭代地计算均值偏移矢量,行人跟踪算法将最终收敛到行人的实际位置,从而实现行人跟踪。

(二) 判别式模型

判别模型与生成模型不同,行人跟踪被视为二分类问题。提取图像中的行人和背景信息,并用于训练分类器。通过分类将行人从图像背景中分离出来,以获取行人的当前位置。以行人区域为正样本,背景区域为负样本,通过机器学习算法对正样本和负样本进行训练,训练后的分类器用于在下一帧中找到相似度最高的区域,以完成行人轨迹更新。判别式模型不像生成式模型仅仅利用了行人的信息,还利用了背景信息,因此判别式模型的跟踪效果普遍优于生成式模型。

(1)基于相关滤波的跟踪算法

      核相关滤波(KCF)算法是基于相关滤波的经典跟踪算法,具有优良的跟踪效果和跟踪速度。这是由于其采用了循环移位的方式来进行样本生产,用生成的样本来训练分类器,通过高斯核函数来计算当前帧行人与下一帧中所有候选目标之间的相似概率图,找到相似概率图最大的那个候选目标,就得到了行人的新位置。KCF算法为了提高跟踪精度,使用HOG特征对行人进行描述,同时结合了离散傅里叶变换来降低计算量。

(2)基于深度学习的跟踪算法

    近年来,深度学习在图像和语音方面取得了较大的成果,因此有许多科研人员将深度学习与行人跟踪相结合,取得了比传统跟踪算法更好的性能。DLT就是一个基于深度学习的行人跟踪算法,利用深度模型自动编码器通过离线训练的方式,在大规模行人数据集上得到一个行人模型,然后在线对行人进行跟踪来微调模型。首先通过粒子滤波获取候选行人目标,然后利用自动编码器进行预测,最终得到行人的预测位置即最大输出值的候选行人目标位置。2015年提出的MDNet算法采用了分域训练的方式。对于每个类别,一个单独的全连接层用于分类,并且全连接层前面的所有层都是共享,用于特征提取。2017年提出的HCFT算法使用深度学习对大量标定数据进行训练,得到强有力的特征表达模型,结合基于相关滤波的跟踪算法,用于解决在线进行跟踪过程中行人样本少、网络训练不充分的问题。此外,通过深度学习提取特征,利用数据关联的方法来实现跟踪的算法,其中最为著名的就JPDAF与MHT这两种方法。

无人车时代:用深度学习辅助行人检测

原文:The Era of Autonomous Cars: Focus on Pedestrian Detection with Deep Learning

 

作者:Thomas Beucher

 

翻译:幻维天

 

审校:Kaljb

 

 

 

我们目前已经搞出来了许多具有潜在妨害性的科技,自动驾驶车辆就是其中之一,而且现在还特别火¯_(ツ)_/¯

 

许多了不起的东西都来自于这样的革新:燃油经济、减少上路车辆、降低事故与死亡率、减少压力、减少停车占地,对环境也有益。

 

政府已经在考虑这些了。美国国家公路交通安全管理局提供了一份正式的自动驾驶汽车分类。欧洲方面也开始修改《维也纳道路交通公约》和《日内瓦道路交通公约》,以便适应这种新技术。所以还是要坚强地接受这种事情,快上车吧!

 

即便研究者们已经研究了这个课题好多年,但还是靠谷歌或特斯拉的投资才使得自动驾驶汽车发展到当今水平。

 

 

所以,这究竟是怎么一回事呢?从更技术性的角度来看,自动驾驶面临着不同领域的诸多挑战,尤其是计算机视觉。这需要对象检测、图像分类、环境重构、动作预测、追踪、现场理解和其他各种方面的技术发展。

 

最常被提及的就是行人检测了,那么我们就技术性探讨一下这个方面。

 

 

 

要接受没有司机的汽车,我们必须要确保这些汽车不会成为对我们的威胁,也不会碾到我们。其实行人检测就是典型的对象检测的子问题。

 

行人检测领域中最流行且能达到最佳表现的方式,就是使用拥有多种变体的积分通道特征检测器(Integral Channel Feature detector,ICF)(来自对象检测快速特征金字塔和积分通道特征)和使用卷积神经网络训练过的模型(深入观察行人和使用深度学习语义任务辅助的行人检测)。

 

研究论文给出了不俗的表现,但撇开这个不谈,人类在这方面依然吊打最先进的AI检测器。 检测器会犯两种错误:“误报”(检测到了不存在的东西)和“漏报”(存在的东西没被检测到)

 

 

检测器常见错误:

 

把背景中的树叶或者红绿灯当成了行人

同一个人被检测到了两次

没有检测到(因为距离远而显得)较小的人

没有检测到骑自行车的人

 

 

用于训练检测算法的数据集当中,自行车骑行者的代表性不足和行人的侧面形象可以解释,为什么在大多数时候被障碍物部分遮挡的行人和自行车骑行者没能被正确检测到。

 

看一下这个数据集,我们可以看到,画面中看起来较小的人一般饱和度较高而且很模糊,这也许就解释了较弱的检测度。但当对这一因素进行研究后(我们距离解决行人检测问题还有多远?),没有发现低检测程度和低对比度之间的相关性。模糊的情况也是这样。这样看来,问题就在于这些“小人“的像素数量太少了。

 

 

像素数量过低就容易产生误会

 

 

 

其他方式,比如这个用于实时行人识别的时间延迟神经网络算法就使用了一个实时的算法,可以检测并追踪可能包含行人的图像区域。之后它会使用一个基于行人腿部典型行动模式的分类算法。这些方式会假定腿部的可见性,因此只对步行的人有效! 基于形状的技术会分析对象的形状,比如人体形态学上的躯干、头部与四肢,这种技术可以识别运动或静止的行人,但行人的表现千差万别,有时会令这种方式显得不那么准确。

 

像基于形状的行人检测这样的方式会使用人形的形态特征和垂直对称性。结合了立体技术的改进和后续帧之间时间相关性的运用,这种方式对于行人与其他物体(诸如摩托车,树木和交通灯)的区分效果似乎十分强大。

 

 

 

有好多东西一直在运作,以保证我们能在这个无人驾驶汽车的世界中存活下来!虽然已经取得了非凡的成就,但要让无人能驾驶汽车完全进入生活,我们还有很多要做。但是与AI的其他领域一样,自主机器和计算机视觉也在不断改进,我感觉我们离成功不远了!马上就可以不用驾照了呢。

以上是关于无人驾驶(三)行人跟踪算法的主要内容,如果未能解决你的问题,请参考以下文章

您可能还会对下面的文章感兴趣: