webgl投影矩阵 demo_基于多传感器数据融合的目标跟踪Demo

bdd6dfd784eca38eb3c36794677b64b1.png

由于整个工程较大,第一次托管在Github上的代码逻辑比较混乱,多种语言掺杂也不利于整合。因此,重新整理了一下逻辑,在Gitee上使用Cpp重构了此项目,python仅用于原始数据的解析,Gitee项目地址:AndyYang/setSail2由于整个工程较大,第一次托管在Github上的代码逻辑比较混乱,多种语言掺杂也不利于整合。因此,重新整理了一下逻辑,在Gitee上使用Cpp重构了此项目,python仅用于原始数据的解析,Gitee项目地址:

https://gitee.com/andyangj/set-sail2.git​gitee.com

最新进展:

目前雷达Detections点和3D-Box真值向雷达坐标系的映射已经结束,结果如下所示,接下来开始做聚类。

知乎视频​www.zhihu.com

一、目标

完成一个基于多传器数据融合的目标跟踪Demo,也是为了将来论文中能够用到其中的部分数据,将其中的思路和部分提取到的数据内容开源,也能给一些想做多传感器数据融合的研究人员一些启发。

尽管我已经尽量的使整个项目流程简单,但是对于研究目标跟踪来说,牵涉到的内容太多。因此,非常期待有想加入本项目的学习、研究人员加入我们的Github仓库,一起交流。我相信完成这个项目之后对参与的每个人也是一种非常大的提升,之后我会在仓库的项目说明文件README.md写出每个参与人员的贡献。当然,需要参与者至少有一定的编码能力,至少熟悉Python和Cpp中的一种,Julia做为中间的结果测试和数据可视化,可不做要求。

二、代码相关内容

2.1 代码仓库

代码使用Git进行版本管理,更新在Github:

AndyYangjd/data_fuse_demo​github.com

其中,main分支主要发布主要的版本,dev分支来同步最新的代码,其余分支为开发人员各自的分支。

如果本代码对你有帮助,请不要忘记Star一下,Thank-U。

2.2 进度

目前整个小项目还在更新之中,感兴趣的请持续关注,计划在未来的二三个月内完成。

写这篇文章的时候还在目标检测阶段。

2.3 语言

  • Python3(3.8版本):主要完成数据的解析和提取
  • Cpp(支持C++11):项目的最终主要工程代码,会大量依赖Eigen3中的矩阵相关操作
  • Julia(1.5.1):主要对中间的计算过程进行测试验证,最后完成数据的可视化

三、数据集

采用nuScenes数据集,总共包含1000个场景,1个激光雷达、5个毫米波雷达和6个单目相机的数据,详细介绍请参考nuScenes主页:https://www.nuscenes.org/。

为了简单说明原理,本项目具体使用的融合数据内容如下:

  • 数据集位置:nuScene中第1个场景中的数据,总共持续20s,采样频率是2Hz,即0.5s采样一次。
  • 传感器通道:Front-Camera 和 Front-Radar,即前置相机和前置毫米波雷达

四、融合思路

1、目标检测

因为是异质传感器数据的融合,因此只能在Object层融合,即目标级融合。想要做融合,首先就在各个传感器的数据上提取出各自的目标物,然后进行融合。

不幸的是,nuScenes数据集中提供的都是原始数据,即相机提供每帧的图片,雷达提供pcd文件。将提供的二进制pcd文件转换为asci形式的pcd文件后可以看到里面每个点的相关信息,如图1所示。使用点云库PCL中的pcl_viewer工具可视化后,可以看到是一个平面点云,如图2所示。

068ca007a504b2c700378302945c91c9.png
图1 雷达二进制形式的pcd文件

9d07cb4f1f03e32225006e80f45f0ee3.png
雷达点云的2D显示

仅目标检测提取每年就有很多论文在发表,如果想做跟踪,需要上游有目标物的信息,但是遗憾的是个人做研究只能把所有的流程都走一遍。

同样为了简单期间,本项目图像的目标物检测使用YOLO5,毫米波雷达的目标检测原理暂不公开,有想了解的将来可以去看代码。

关于雷达检测:已经开发一个看nuScenes雷达原始数据的可视化工具,每个点后面有一个尾巴表示点相对大地的绝对速度,未来还会继续增加其它功能,用手机录了一个这样的视频如下:

知乎视频​www.zhihu.com

2、目标融合

目标融合的主要任务是空间和目标对齐。

空间对齐:将两个传感器检测到的目标进行融合,主要涉及到FOV重叠区域的目标融合,还是每个传感器FOV之外目标物的真实性概率判断。

时间对齐:虽然相机和毫米波雷达的时间戳并不是完全一致,但是nuScenes已经将同一个采样点相机和雷达的两个时间戳标定的非常接近,因此时间对齐这块的误差可以忽略不计。

3、目标滤波

滤波算法和关联算法是目标跟踪的核心算法。

目标滤波只要是做针对当前时刻,对当前目标物的下一时刻的位置进行预测。常见的Kalman, EKF, UKF和PF等,本项目后续会选择一种或几种进行验证,本专栏之前写过这些算法的代码实例文章。

4、目标关联

目标关联主要是将不同时刻的目标物给串成不同的航迹,也可以理解为进行航迹管理。目前常用的算法有KNN, PDA, JPDA等算法,本专栏之前写过这些算法的代码实例文章。本项目计划验证KNN和JPDA算法,并对航迹的管理进行一定的测试。


从前面的整个开发流程可以看到,做多传感器的目标跟踪涉及到很多的算法,其中的某一个小环节都可以做很多的研究论文。对于高校学生来说,获取数据是非常难的一件事,因此在nuScenes数据集上做研究测试是一件比较幸运的事。不幸的是,为了最终的结果,中间的每一步都需要自己做。

因此,如果你是做跟本文相关的研究的,有Python或Cpp基本,有想加入进来的,那么不要犹豫,加入我们的Github吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值