多目标跟踪 MDP Tracking 代码配置与运行

本文介绍在Windows环境下配置及运行MDPTracking多目标跟踪算法的过程,包括解决依赖库配置、宏定义冲突及svmtrain函数冲突等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究多目标跟踪算法,虽然理论知识和相关概念还没能全部熟悉,但是还是来记录一下最近配置运行的MDP Tracking算法。开始是在MOT Challenge比赛(2D比赛,其数据地址:https://motchallenge.net/data/2D_MOT_2015/)上发现的这个算法,后来在GitHub上看到了开源的代码,说明也比较仔细。在windows上运行测试。


MDP Tracking算法的主页:http://cvgl.stanford.edu/projects/MDP_tracking/

代码地址:https://github.com/yuxng/MDP_Tracking


1、按照说明下载代码,并下载 2D MOT数据并解压;global.m文件中配置数据的路径,运行;

 

2、compile.m文件中配置opencv的路径和库目录;

compile.m文件中:

include = ' -Id:\opencv2.4.10\opencv\build\include\ -Id:\opencv2.4.10\opencv\build\include\opencv\ -Id:\opencv2.4.10\opencv\build\include\opencv2';
lib = ' D:\opencv2.4.10\opencv\build\x64\vc12\lib\*d.lib'

运行编译配置opencv环境,这里可能会因为这句话报错:eval(['mex lk.cpp -O' include lib]); 提示mex文件错误,是由于lk.cpp文件中宏定义方面问题。

 

3、修改lk.cpp文件;

将lk.cpp中开头部分以下地方注释:

//  #ifdef _CHAR16T
//  #define CHAR16_T
//  #endif

修改后compile.m编译通过。

 

4、运行代码。

运行MOT_cross_validation.m与MOT_test.m分别进行验证和测试。这里会出现svmtrain函数的问题,报错如下:



原因是代码中的svmtrain函数主要使用的是libsvm文件夹下的svmtrain.mexa64文件,但是MATLAB自带了svmtrain函数,在MATLAB中自带函数的优先级高于mex文件,因此没有使用此函数提高的svmtrain函数。


如上,svmtrain函数优先使用了MATLAB自带的函数。一般情况下不推荐自己的函数命名与MATLAB自带函数同名,因此,应该修改重新编译。

 

5、重新编译svmtrain.c。

1)在./MDP_Tracking-master/3rd_party/libsvm-3.20/matlab/文件夹中找到svmtrain.c文件,打开,将其中所有svmtrain修改成svmtrain1,并修改函数名为svmtrain1.c。
2)打开同一文件夹下的make.m文件,将其中所有svmtrain替换成svmtrain1,编译,获得新的mex文件(我在windows中运行,因此获得svmtrain1.mexw64文件)
3)替换MDP_Tracking代码中所有的svmtrain成svmtrain1,完成。

在此运行,通过,成功看到结果:


评论 78
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值