使用Pysot和MATLAB目标跟踪画对比图,标注框

python画图点会掉,MATLAB点会涨,具体什么原因,我也不知道!!!

最近也是在画图,搞了很久。翻了很多博客,才弄好。哈哈,在很多博客留下了身影,太多人私聊问我怎么画的,就简单写个教程。

先说:MATLAB画图,不需要添加我们python写的算法!!!!!

1.Pysot画图

pysot画图,可以参考这篇。十分详细。
https://blog.csdn.net/weixin_42495721/article/details/110855071

大家看完了大神的博客,若是卡在安装宏包哪里,在调跳回来看这里。
1.补充一点大神的手动安装宏包,打开MiKTeX Console,在下面黄色的地方搜索缺少的宏包,可能要安装好几个包。

2.要是安装完之后如果报了…try的错误,把下面的文件删除重新运行就可以了。 再说一点,不需要每次重启电脑!!!

2.MATLAB画图

这里使用的工具就是OTB官方发布的Visual Tracker Benchmark v1.0码源了,下载链接如下:
http://cvlab.hanyang.ac.kr/tracker_benchmark/index.html
进入网站之后点击tracker_benchmark_v1.0.zip(229MB)这个下载。

下载之后点击打开,里面文件的部署是这样的。说明一下荧光笔的标注,是我后续添加的代码,直接下载的代码是没有这两个m文件的。

简单说一下每个文件的作用:

1.util文件:里面包含各种重要的函数。
2.trackers文件:里面包含各种你需要对比的跟踪算法;要简单了解可以trackers.txt文件 。
3.tmp文件:用来存放临时结果或者日志文件的目录。
4.rstEval文件: 包含了很多用于计算跟踪性能或者画出结果的脚本的目录; 5.results文件:存储的每个trackers的跟踪结果的mat文件和perfMat不一样,这个是相对于bounding box的跟踪框数据。
6.perfMat文件:存储最终用于画图的mat文件。
7 initOmit文件 包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释 的目录。
8.figs文件:存储的是一些实验跑出的图片,就是各种属性的准确度或者成功率图。
9.anno文件:主要存储的是数据集的bounding box。
10 main_running文件:是用来在测试集上跑跟踪代码的,跑出的结果存在results文件夹中。
11.perfPlot.m用来把测试结果画出图来,就是benchmark网上的图的效果
12.drawResultBB.m用于画每个帧上不同跟踪器的边界框的主函数。
13.hcc文件是txt文件,转化mat文件

好了,简单说完了。说来说去,大家想知道都只有一件事,python运行的跟踪结果怎么在MATLAB上画对比图。直接来干货:
1.大家打开查阅一下anno这个文件夹相信大家下载打开之后,里面的文件名首字母大小写并非一致,这时为了后续的方便处理,大家可以统一下:统一为全小写,或者全大写。注意:有些文件名中间也有大小之分,例如:FaceOcc2.txt。同时,att里面的文件夹的命名也要注意。

**2.打开results这个文件夹
如果大家不需要用官方给的那个CVPR13的文件夹就删掉吧,避免混乱。删掉之后重新创建一个文件“results_OPE_Ours”,在这个文件夹里面放各种跟踪器的原始结果(格式是.mat文件),名字大小写要和anno里面对应上,同时要加上算法的名字。 如下图

3.打开util这个文件夹configSeqs.m这个文件。这个文件是读取数据集。读取的格式如下:

struct('name','Matrix','path','D:\A_graduate_student\code\Siamese-fc\tools\OTB100\Matrix\img\','startFrame',1,'endFrame',100,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...

注意:
1.name后面的“命名“”要和anno这个文件夹的名字对应上。
2.大家可以看下面那行代码,有四个块构成了OTB100数据集所有的图像内容,不要想的放到一起,会报索引超出的错误。因为每个块的索引应该是不能超过50的。

seqs=[seqIVT,seqVTD,seqOther,seqOTB49_100];   %OTB100

3.记得"img"后面的斜杠,不然是读取不到的。

最后放一个总图:

3.同样是的utils文件夹,这次打开configTrackers.m文件。

这里要把我们测试的算法名字写入,格式如下:

4.打开genPerfMat.m这个文件:

这个改动就很少了,只需要改动一个地方。大家在文件里找到switch…这里的代码,改为如下就可以了。说白了:就是这个代码读到我们创建的结果文件。

switch evalTypecase 'OPE'rpAll=['.\results\results_OPE_Ours\'];%case {'TRE', 'OPE'}%rpAll=['.\results\results_TRE_CVPR13\'];
end

5.打开perfPlot.m文件
这个要改动地方如下:
1.找到evalTypeSet = {‘SRE’, ‘TRE’, ‘OPE’};因为我们只有一个OPE,所以改为:

evalTypeSet = 'OPE';

2.找到rankingType = ‘AUC’,因为这个只能画一种图。我们要改为:

rankingType = 'threshold';

3.因为我们只用OPE,所以找到 evalType = evalTypeSet{j};%SRE, TRE, OPE改为:

evalType = evalTypeSet;

好了,到了这样我们就可以点击运行perfPlot.m就可以出图了。

*注意:
*这里要说几个坑
1.configTrackers.m这里的算法个数,要和我们创建的results_OPE_Ours里面的算法个数一样,不然会出参数的错误。

2.每次运行完,要是报错了。一定要记得perfMat文件夹里面的overall文件夹里面的删除掉再运行。如下:

6.最后我们还需要,在图中生成标注框

就是这个文件的作用了,drawResultBB.m。这里我们改个路径就可以了:

点击运行,就可以了。结果是:

好了,到这样就结束了。

最后放一段,跟踪结果txt文件转mat文件的MATLAB代码。代码来源
https://blog.csdn.net/laizi_laizi/article/details/104622760

clear all;clc;
root = 'D:\A_graduate_student\code\pysot-toolkit-master\result\OTB100\SRDCF\';
dst = 'D:\A_graduate_student\code\tracker_benchmark_v1.0\tracker_benchmark_v1.0\SRDCF\';
if ~exist(dst, 'dir')mkdir(dst);
end
% 下面这几句是为了获取一个目录下的txt文件名列表
fileFolder = fullfile(root);
dirOutput = dir(fullfile(fileFolder, '*.txt'));
fileNames={dirOutput.name}; % 1*100 cell
numFile = length(fileNames);
for idxFile = 1:numFilepath = [root  fileNames{idxFile}];res = load(path);[seq_l, xywh] = size(res);results{1}.res = res;results{1}.type = 'rect';results{1}.len = seq_l;seq_name = fileNames{idxFile}(1:end-4);sprintf(['now trans ' seq_name ' from txt to mat'])% 将需要的结构体结果写成mat格式save([dst seq_name '_SRDCF.mat'], 'results');
end

使用Pysot和MATLAB目标跟踪画对比图,标注框相关推荐

  1. 使用Matlab对Excel数据画对比图

    1.导入Excel表格数据 2.更改工作区导入数据的名称:data1 3. >> load('data1.mat')%这是将导入的数据移到左边文件夹窗口,建立的mat文件. >> ...

  2. 【目标跟踪】一图看懂DeepSORT大流程

    目录 系列文章 简介 DeepSORT流程图 名词解释 整体流程 重点节点解释 系列文章 [目标跟踪]卡尔曼滤波器(Kalman Filter) 含源码 [目标跟踪]一图看懂DeepSORT大流程 [ ...

  3. matlab目标跟踪物流应用,目标跟踪系统的MATLAB 源程序包

    [实例简介] 目标跟踪系统的MATLAB 源程序包目标跟踪系统的MATLAB 源程序包 [实例截图] [核心代码] 目标跟踪系统的MATLAB源程序包 ├── auc.m ├── auction_2D ...

  4. kcf 跟随_基于YOLO和KCF的目标跟踪算法研究

    1. 引言 随着AI技术的不断发展,其子领域计算机视觉技术也获得了突飞猛进的进步,计算机视觉即通过机器实现"人眼"对事物的测量和判别能力.目前,计算机视觉技术主要应用于智能视频监控 ...

  5. 基于均值漂移的视频目标跟踪算法的研究

    背景介绍 计算机视觉作为一门多技术融合的学科,涉及模式识别和视频图像处理等众多领域.基于视频的目标检测与跟踪技术是计算机视觉领域中最主要的研究方向之一,它是智能监控.移动机器人视觉导航以及人机交互等应 ...

  6. 【目标跟踪】基于matlab GUI帧差法结合卡尔曼滤波行人姿态识别【含Matlab源码 1127期】

    ⛄一.基于人体特征识别和卡尔曼滤波的行人跟踪算法简介 1 基于体型和行为姿态特征的人体识别算法 从红外图像中可以得到目标与背景之间的灰度级差别,从而区分出有生命特征的运动物体,但仅从亮度特征无法区别出 ...

  7. matlab 高斯迭代代码_KLT目标跟踪学习与代码实现

    一. 前言 本篇文章链接:https://zhuanlan.zhihu.com/p/91341439 近年来研究跟踪的方法很多,各种算法几乎层出不齐,主要可将其分为两类目标跟踪算法,一类是传统的目标跟 ...

  8. python目标跟踪_商汤开源最大目标跟踪库PySOT,代码已正式上线!

    前几天 CVer推送一篇:重磅!商汤开源最大目标跟踪库PySOT:含SiamRPN++和SiamMask等算法,介绍了来自商汤科技的STVIR(SenseTime Video Intelligence ...

  9. matlab 图像分割 提取人像_几种典型的图像处理技术(分类 目标提取 目标跟踪 语义分割 实例分割)...

    目前,在处理海上无人艇的感知系统的开发.其中,比较核心的一个部分就是基于光电的目标识别(Object Detection). 任务目标 如图所示,从包含舰艇的图片中,标识舰艇的位置 本文的学习笔记,主 ...

最新文章

  1. 面试官:Redis 新版本开始引入多线程,你怎么看?
  2. 中医治疗慢性病很有效
  3. C指针原理(18)-C指针基础
  4. 前端请求接口出现的跨域问题
  5. assert()函数
  6. 如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
  7. mt5 mysql数据库_Django -- 使用MySql数据库
  8. CSS 学习路线(二)选择器
  9. maven+jetty项目在tomcat部署
  10. Android studio小问题解决
  11. 如何添加页签_【康复晓讲台】不同失能者如何选择适合自己的轮椅(二)
  12. android4.1 l36h,索尼 L36h跌破3K 升Android 4.3机型推荐(6)-搜狐数码
  13. Python下载prettyloaded的swf
  14. 在线数据库链接字符串查询
  15. 思岚S2激光雷达5-雷达数据实时保存
  16. 错误 D8016 “/ZI”和“/GL”命令行选项不兼容
  17. 润乾报表导出pdf问题
  18. 支付宝小程序、百度小程序、微信小程序、今日头条小程序技术分析
  19. luogu P3356 火星探险问题(网络流24题 拆点 + 最小费用流 + 路径输出)
  20. 麻雀算法(SSA)优化的BP神经网络预测,SSA-BP回归预测,多输入单输出模型。

热门文章

  1. Hibernate多表查询实践总结
  2. Android Studio 设置图标LOGO,APP下载到手机以后图标无变化
  3. DNS隧道-iodine使用
  4. 提升品牌曝光,小红书近期不容错过的内容趋势是什么?
  5. bgb邻居关系建立模型_大神吐槽樱花 BGB1T真实使用4个月感受揭秘,不看后悔了...
  6. 软件工具:ubuntu adb shell无法识别设备
  7. 几乎所有食物的英文翻译!值得拥有!!
  8. LINUX 不删除指定文件其余文件全部删除
  9. C++ 中虚函数的用法
  10. 优秀手机考勤软件的四个方面