基于Mamba和状态空间模型(SSM)的多目标跟踪算法实现

Mamba由于其出色的时序预测能力而受到广泛关注,最近也有一些工作(MambaTrack、TrackSSM)等被用在了多目标跟踪任务中,但它们都没有开源。为此,我复现了MambaTrack和TrackSSM,供大家学习参考。项目地址:https://github.com/JackWoo0831/Mamba_Trackers,如果您觉得有用,欢迎star!

十分欢迎大家提出宝贵意见(提issue或者pr),一起探索!

以下是仓库的使用说明:

Mamba (Selective State Space Model) for Multi-object tracking

✅介绍

此仓库是以下基于Mamba的多对象跟踪器的非官方实现:(这两篇论文尚未发布官方代码)

  1. MambaTrack: A Simple Baseline for Multiple Object Tracking with State Space Model ACM MM’25

  2. TrackSSM: A General Motion Predictor by State-Space Model arXiv:2409.00487

🗺️路线图

  • [] 添加论文模型:探索多目标跟踪中基于学习的运动模型arXiv:2403.10826

🏃结果和模型权重

-支持数据集:DanceTrack、MOT17和VisDrone2019

DanceTrack-val 的可视化结果:

  • 量化指标和模型权重
ModelsHOTAMOTAIDF1checkpoint
MambaTrack32.67278.39226.419Baidu Disk, code: e0mv
TrackSSM27.53672.36620.756Baidu Disk, code: 2797

正在尝试达到更好的性能

📑数据集准备

训练

为了训练基于Mamba的模型,所有数据都通过tools/gen_traj_data.py 转换为轨迹格式。

MOT17数据集,运行:

python tools/gen_traj_data.py --mot17 --save_name mot17

DanceTrack数据集,运行:

python tools/gen_traj_data.py --dancetrack --save_name dancetrack

VisDrone数据集,运行:

python tools/gen_traj_data.py --visdrone --save_name visdrone

记得根据您自己的路径修改DATA_ROOT

运行代码后,将在ssm_tracker/traj_anno_data中生成一个json文件。

推理

为了进行推理,我们首先对检测结果进行预处理。

首先,组织子文件夹“images”中的所有视频帧,然后按照以下格式进行“test”(或“val”):(与YOLO格式相同)

DanceTrack
    |
    |____images
            |_____test
                    |_____dancetrack0001
                                |______xxxx.jpg

然后运行yolox检测器:

python tools/gen_det_results.py --dataset_name dancetrack --data_root /data/datasets/DanceTrack/images/ --split val --exp_file yolox_exps/custom/yolox_x.py --model_path weights/yolox_dancetrack.pth.tar --generate_meta_data

你可以参考experiments/gen_yolox_det_results.sh

DanceTrack的预训练YOLOX-X模型可以从他们的huggingface仓库下载。检测结果见./det_results

🔍模型和指南

所有Mamba式的模特都在./ssm_tracker下面,所有卡尔曼类模型都在./kalman_tracker`下面。

1. MambaTrack:

MambaTrack的架构如下:

在这里插入图片描述

相应的配置文件是ssm_tracker/cfgs/MambaTrack.yaml

2.TrackSSM:

TrackSSM的架构如下:

在这里插入图片描述

相应的配置文件是ssm_tracker/cfgs/TrackSM.yaml

3.训练

对于训练,请先修改bash文件experiments/train_ssm_tracker.sh中相应的’true’和’false’,然后运行:

sh experiments/train_ssm_tracker.sh

4.推理

为了进行测试,请首先修改bash文件experiments/inference_ssm_tracker.sh中相应的’true’和’false’,并修改以下参数:

1.--det_path:检测结果文件路径,包含{seq_name}.txt
2.-motion_model_path:训练好的权重路径
3.--config_file:与train相同
4.--data_root:数据集的路径,遵循yolo格式

然后运行

sh experiments/train_ssm_tracker.sh
感知融合算法Mamba是一种用于处理传感器数据并整合各种传感器信息以提供更准确、全面环境认知的算法。在机器人学、自动驾驶、无人机等技术领域中,传感器可能会产生多种类型的输入,如激光雷达(LiDAR)、摄像头(视觉传感器)、惯性测量单元(IMU)等。Mamba算法的主要目标是将这些不同来源的信息融合在一起,生成一个一致、精确的环境模型。 ### Mamba算法的基本原理: 1. **数据采集**:首先从不同的传感器收集原始数据。 2. **预处理**:对每种传感器的数据进行初步处理,包括校准、滤波等步骤,去除噪声或异常值。 3. **特征提取**:从预处理后的数据中提取关键特征,这些特征可以代表物体的位置、速度、形状等。 4. **融合策略**:采用特定的数学模型或统计方法将不同传感器的数据进行匹配合并。这可能涉及加权平均、卡尔曼滤波、粒子滤波或其他高级融合算法。 5. **后处理**:对融合后的数据进行进一步分析,可能包括检测、识别、跟踪物体等任务。 6. **决策与应用**:最终结果可用于决策支持系统,比如路径规划、避障、控制等。 ### 相关问题: 1. **Mamba算法与其他感知融合算法相比有何优势?** - 独特的融合策略使其能够高效地处理复杂环境下的多源数据。 - 可能具有一系列优化技术,旨在提高精度、降低延迟或节省计算资源。 2. **如何在实际项目中实现Mamba算法?** - 需要考虑传感器特性、硬件限制以及所需的应用场景。 - 开发阶段应注重算法的模块化设计,以便于调试维护。 - 测试过程需要涵盖多种环境条件,以验证算法的鲁棒性适应性。 3. **Mamba算法在哪些应用场景中特别有用?** - 自动驾驶车辆中,通过融合各种传感器信息来增强定位准确性环境理解能力。 - 机器人探索任务中,帮助机器人构建地图、避免障碍物、进行自主导航。 - 工业自动化领域,用于设备状态监测、生产流程监控质量控制等方面。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值