7

基于激光雷达点云数据的目标跟踪算法

 3 years ago
source link: https://mp.weixin.qq.com/s/-sJURbreWSbrPJ8UcybaxA
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

基于激光雷达点云数据的目标跟踪算法

3D视觉工坊 1 week ago

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

640?wx_fmt=jpeg

文章导读

本文介绍激光点云的目标跟踪算法,跟踪算法主要分为生成式和判别式两类,传统的滤波跟踪大多属于生成式,而近几年深度学习做跟踪基本归为判别式跟踪方法。本文从传统的卡尔曼滤波原理说起,然后分析工程中点云目标跟踪可能遇到的问题。

1

有哪些目标跟踪算法?

目标跟踪就是在连续的数据序列中,建立所需要跟踪目标的位置关系,得到目标完整的运动轨迹。通常是给定上一帧的目标位置特征,在下一帧中对该目标的位置以及边界框的尺寸大小进行预测。目标跟踪的常用算法有很多,从传统的滤波算法到深度学习的网络预测,可以分为两大类:
  • 生成式模型:建立目标模型或者提取目标特征,利用外观表征在后续帧中进行相似性搜索,最小化跟踪目标和候选目标之间的误差进行定位。
  • 判别式模型:通过对比目标模型和背景信息的差异,将目标模型提取出来,从而得到当前帧中的目标位置。
传统的跟踪算法大多属于生成式模型,而深度学习的算法大多属于判别式模型,几种经典的算法如下:基于均值漂移的跟踪:均值漂移是基于概率密度分布,使目标的搜索一直沿着概率梯度上升的方向,迭代收敛到概率分布的峰值上。基于卡尔曼滤波的跟踪:通过检测或者其他方式得到目标的观测位置,并根据运动方程从上一时刻的位置信息预测当前时刻的位置信息,将观测结果和预测结果进行加权平均得到最终的目标位置信息。基于粒子滤波的跟踪:对目标基于粒子分布进行建模,定义一种相似度度量来确定与目标之间的匹配程度。然后按照高斯分布撒粒子,统计其相似度来确定目标可能的位置信息。基于核相关滤波的跟踪:通过设计一个滤波模板,利用该模板与目标候选区域做相关运算,最大输出响应的位置即为当前帧的位置信息。基于深度学习的跟踪:利用卷积神经网络将目标从背景中提取出来,利用其对目标强大的特征抽象能力以及对目标运动过程的拟合能力实现跟踪任务。均值漂移和卡尔曼滤波算法实现简单,但是参数调节麻烦,鲁棒性一般;相关滤波类算法跟踪速度较快,深度学习类方法精度较高,但是对硬件资源有一定要求。根据不同的需要选择最适合的滤波算法是工程中的关键。下面介绍几种常见的滤波算法:

2

卡尔曼滤波

卡尔曼滤波根据系统状态方程,通过系统输出作为观测方程来修正估计值,实现系统状态的最优估计。其中涉及两个方程:状态方程和观测方程状态方程是根据上一时刻的状态和控制变量以及过程噪声来估计当前时刻的状态,如下式:640?wx_fmt=pngqk是满足高斯分布的过程噪声,期望是0,方差是Qk。观测方程是由当前时刻的估计值和测量噪声得到当前时刻的观测值。如下式:640?wx_fmt=pngrk是满足高斯分布的测量噪声,期望是0,方差是Rk。卡尔曼滤波可以分为两个部分:预测阶段根据上一时刻的后验估计值来估计当前时刻的状态,得到当前时刻的先验估计值;校正阶段使用当前时刻的测量值来更新预测阶段估计值,得到当前时刻的后验估计值。其中先验估计是根据系统过程原理或者经验得到的估计值,实际应用中可以通过传感器数据去预测下一时刻的数据。后验估计是结合之前的先验状态估计值,再加权测量值得到一个理论上最接近真实值的结果。卡尔曼滤波仅适用于线性系统,并且系统的过程噪声和测量噪声均为高斯白噪声。然后现实场景中一般系统状态变量的差分方程都是非线性的。

3

扩展卡尔曼滤波

扩展卡尔曼滤波可以将非线性系统在其参考点上做泰勒级数展开,取其一阶线性部分作为该非线性模型的逼近,从而得到非线性系统在当前时刻的线性化描述。所以它的状态方程和观测方程如下:状态方程:640?wx_fmt=png观测方程:640?wx_fmt=png当我们将非线性系统线性化后,扩展卡尔曼滤波后面的原理和推导流程就和卡尔曼滤波一样了。
640?wx_fmt=png
扩展卡尔曼滤波利用线性化来近似非线性函数,但是如果在近似点非线性程度越高、概率分布本身越不确定,得到的近似结果就会越差,通俗点说就是泰勒展开式中被忽略的高阶项带来的误差有可能是滤波发散。

4

无迹卡尔曼滤波

无迹卡尔曼滤波通过无损变换来近似一个高斯分布,通过使用加权统计线性回归过程来实现随机线性化。它通过含有均值和协方差的确定的Sigma点来近似概率分布,通过系统的非线性模型生成更多的Sigma 点,经过选择合适的权值估计均值和协方差,避免了求解雅克比矩阵。相比EKF,它没有丢弃高阶项所有具有更高的估计精度,满足了具有各种特殊要求的非线性滤波和控制方面的应用。所以无迹卡尔曼滤波是对非线性系统的概率密度分布进行逼近,而不是对非线性系统函数进行逼近。但是无迹卡尔曼滤波采用抽样近似的方法,计算量较大;相比于扩展卡尔曼滤波,只有在方差很大的情况下效果才明显。

5

点云的滤波跟踪

由于运动的场景比较复杂并且障碍物形状经常发生变化,如何跟踪一个不断变化的目标是跟踪任务的一大挑战。基于点云的目标跟踪存在的难点如下:物体遮挡:不管是图像数据还是点云数据都会存在物体被遮挡的问题,如下图所示,右下方的车辆被遮挡后导致点云数据被截断,进而特征分布发生了变化。检测输出的外接框形状会出现变化导致跟踪拿不到稳定的观测值。
640?wx_fmt=png
物体形变:由于激光点云近密远疏的采样特性,同一个物体在不同的位置反射回来的点云特征会出现很大的变化,而物体表征模型的变化会造成检测和跟踪难以适应,如下图所示:一辆车从后方开到前方时,外观表征的不同。
640?wx_fmt=jpeg
背景干扰:如果运动目标比较靠近场景中的静态障碍物,采用传统聚类算法得到的检测目标很可能外观表征会被放大,出现如下图所示的问题,红路灯处路边的骑车人和灌木点集靠的太近被聚类在一起,当骑车人运动时又被分开,造成跟踪目标的表征出现变化。
640?wx_fmt=png
其实在实际应用中会出现很多特殊场景导致动态障碍物的点云分布产生变化,严重影响跟踪效果。追根溯源点云目标跟踪的好坏和两点有关:
  1. 目标检测的稳定性;
  2. 选择稳定的观测值做数据关联;
根据点云检测的结果有很多目标属性可以作为观测值,比如目标的中心点,重心点,长宽高,横纵向速度等等。选择不同位置的点对跟踪的稳定性是有影响的,车辆尾部中心坐标一般就优于3D框的中心点。而且对于低速小车,KF/EKF的效果已然能够满足功能需求。
640?wx_fmt=png
本文仅做学术分享,如有侵权,请联系删文。下载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视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

640?wx_fmt=png▲长按加微信群或投稿

640?wx_fmt=jpeg

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款640?wx_fmt=jpeg 圈里有高质量教程资料、可答疑解惑、助你高效解决问题觉得有用,麻烦给个赞和在看~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK