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

2023-11-01

使用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 evalType
    case '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:numFile
    path = [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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Pysot和MATLAB目标跟踪画对比图,标注框 的相关文章

随机推荐

  • Android Activity调用Dialog后的返回值方法

    这个例子只是简单的返回一个String 而在实际需要时 可能需要在DIalog或非Activity 如ListView中的Adapter 中做复杂的操作后 返回值至主Activity 例如本人最近在做一个ListView中的Adapter包
  • 软件工程知识体系

    三个知识体系 知识体系 设计知识体系 开发知识体系 业务知识体系 业务知识体系 是指需要导入管理信息系统的客户所从事行业的业务知识 软件实现的过程是从理解客户业务和相关知识开始的 理解和掌握客户业务知识是理解客户需求和优化客户业务的基础 个
  • 使用vue+echarts绘制图表

    五步绘制echarts图表 目录 五步绘制echarts图表 第一步 main js中添加如下代码 第二步 template中添加如下代码 第三步 methods中写一个绘制折线图的函数 第四步 mounted中调用函数 第五步 css中添
  • python爬取表情包

    效果图 源代码 说明就在注释里 import os import requests from bs4 import BeautifulSoup if not os path exists images os mkdir images hea
  • linux 堆探索

    堆的虚拟地址是连续的 是brk来分配 brk是一个指针指向堆顶的指针 并且是可以复用的 但是只有在堆顶空闲128k时 才收缩 也就是说 为了减少page fault 可重用 开销小的特点 但是会内存碎片 但是分配内存 gt 128k时 就是
  • 【无机纳米材料科研制图——3ds Max 0102】3dmax界面及常用功能说明

    上一篇中 我们以一个核壳纳米粒子的创建 直奔主题 先入为主 开始了3dmax的技术分享 此篇 我们开始从大局上对3dmax的界面和功能区进行一个说明 一 界面分布 界面常用的主要功能区是下图中的五个 当然还有动画视频方面的控制区 暂不介绍
  • Matplotlib 可视化50图:散点图(1)

    导读 本系列将持续更新50个matplotlib可视化示例 主要参考Selva Prabhakaran 在MachineLearning Plus上发布的博文 Python可视化50图 定义 关联图是查看两个事物之间关系的图像 它能够展示出
  • 智能图片降噪-Topaz Photo AI

    今天给各位小伙伴们测试了一款可以使视频智能无损放大的软件 Topaz Photo AI 小编在很早之前也有了解过Topaz系列的软件 都是通过人工智能处理的 对小白新手们很适用 由于使用人工智能方面的软件或程序对硬件要求都比较高 因此不方便
  • 再谈 QtDesigner 可视化连接信号 槽

    在VS20xx Qtx xx 开发模式下 打开ui文件 所用的英文QT Designer工具 没有转到槽函数的功能 不如QtCreator自带的QtDesigner功能齐全 只能Editor已有的信号槽 而在QtCreator中右击某个控件
  • JSP中page指令的import命令具有什么功能呢?

    转自 JSP中page指令的import命令具有什么功能呢 jsp简介 JSP全称是Java Server Pages 是一种动态网页技术 JSP其实就是在html中插入了java代码和JSP标签之后形成的文件 文件名以 jsp结尾 其实J
  • 腾讯会议录屏后,忘记转码或转码不成功的补救方法(含详细图例转码示范)。

    一 问题 腾讯会议录屏后文件只能由腾讯会议识别 其他设备打不开 所以需要用腾讯会议转为MP4格式 通过利用历史会议中操作进行手动转码或者是创建一个新的会议模拟还原设备文件 例如无论是哪一个腾讯会议 只需要将其录屏文件 替换为自己想要转换的文
  • Tomcat源码解析(一)下载源码与导入eclipse

    自从写web程序以来 web程序是如何在Tomcat中运行的一直困惑着我 不知道底层的运行机制是无法真正理解web的 所以就开始研究Tomcat源码 Tomcat是一个轻量级的Java服务器 再结合 How Tomcat works 和网上
  • Python实战项目:为人脸照片添加口罩

    前言 好想玩点不一样的 感觉平常的已经不能吸引大家了 想了又想 我今天给大家分享如何给人像添加口罩吧 毕竟最近疫情那么 严重 也只能玩玩这个了 大家千万别乱跑啊 效果展示 数据集展示 数据集来源 使用了开源数据集FaceMask Celeb
  • webpack打包原理

    作者 好奇男孩 链接 https www jianshu com p 37ff752d0f97 来源 简书 1 webpack核心概念 entry 一个可执行模块或库的入口文件 chunk 多个文件组成的一个代码块 例如把一个可执行模块和它
  • 为什么要做期货反向跟单之风控

    反向跟单来自于28定律 138证券市场本身是一个残酷的市场5098 从散户交易者4957的角度上能够看到大多数的交易者都是亏损的 虽然网上统计数据表明82 的交易者都是亏损的 但是具体实际数据应该远高于82 的亏损数量 向跟单思维模式利用的
  • 微服务中什么是熔断?什么是服务降级?

    开始做微服务项目 先回顾回顾基础概念 原文 https www cnblogs com lingboweifu p 11808307 html 服务熔断的作用类似于我们家用的保险丝 当某服务出现不可用或响应超时的情况时 为了防止整个系统出现
  • 天池热身赛-布匹瑕疵目标检测

    1 检测代码 代码源自datawhale官方提供baseline https github com datawhalechina team learning cv tree master DefectDetection baseline使用
  • QEMU模块模型

    QEMU模块模型 define module init function type static void attribute constructor do qemu init function void register module i
  • 用python代码实现输入基金代码爬取季度报告并获取季报特定模块内容制作动态词云图

    本文涉及爬虫 pdf文件转txt文件 提取指定内容和生成词云图四个部分 文章目录 前言 一 引入库 二 爬取网页上的基金季报 三 pdf转txt文件 四 提取指定内容 五 删除页眉页脚 六 制作词云图 总结 前言 本文将介绍如何爬取网站上的
  • 使用Pysot和MATLAB目标跟踪画对比图,标注框

    使用Pysot和MATLAB目标跟踪画对比图 标注框 python画图点会掉 MATLAB点会涨 具体什么原因 我也不知道 最近也是在画图 搞了很久 翻了很多博客 才弄好 哈哈 在很多博客留下了身影 太多人私聊问我怎么画的 就简单写个教程