本文的视频讲解目标跟踪_OTB数据集和VOT数据集评估图的绘制

一、准备工作

在GitHub上面下载下载一个SiamFC的代码,自己配置好深度学习环境,然后运行获得测试结果。

准备好pycharm跑出来的.txt结果文件

二、利用Python代码进行转换

转换代码如下:

import os
import scipy.io as scio
import numpy as np# 1 首先,将jogging.1.txt,jogging.2.txt,Skating2.1.txt,Skating2.2.txt修改成
#         jogging-1.txt,jogging-2.txt,Skating2-1.txt,Skating2-2.txt
# 2 打开tiger1.txt文件,并删除前5行行数据,只留下349行数据file = 'D:\\000MyFiles\Tracking\\txt_to_mat-OTB--master\\ThisWork'  #3 修改.txt文件的地址
savefile = 'D:\\000MyFiles\Tracking\\txt_to_mat-OTB--master\\ThisWorkmat\\'  # 4 修改.mat文件的存放地址if not os.path.exists(savefile):os.mkdir(savefile)pathlist = os.listdir(file)
# print(pathlist)for i in range(len(pathlist)):path = os.path.join(file, pathlist[i])for j in range(len(pathlist[i])):if pathlist[i][j] == '.':save = pathlist[i][:j]print(save)breaksavepath = savefile + save + '_ThisWork.mat'  ##5 修改 .mat文件转换后的算法名f = open(path)data = f.readlines()result = []for j in range(len(data)):x = data[j].split(',')x[3] = float(x[3][:-1])x[0] = float(x[0])x[1] = float(x[1])x[2] = float(x[2])result.append(x)res = {}res['res'] = resultres['type'] = 'rect'Mat = {'res': res['res'], 'type': 'rect', 'len': len(res['res']), 'annoBegin': 1, 'startFrame': 1}M = np.array([Mat])Mat2 = {'__header__': 'b', '__version__': 1.0, '__globals__': [], 'results': M}scio.savemat(savepath, Mat2)# print(data)

三、转换结果

转换后的结果如图所示:

四、.mat文件转换为.txt格式

参考博文目标跟踪——OTB平台的Python版tracker使用
这个用得比较少,有时候需要的话,也可以用上。
将.mat文件转换成.txt文件,代码如下:

import scipy.io as scio
import pandas as pd
import numpy as np
import os
import h5py
import hdf5storage# ------------------------------
# 1. .mat文件转换成.txt文件
# ------------------------------
# 注意:下面的代码根据不同类型的.mat有所不同  可输出.mat中的keys查看
path_matfile = "E:\\0_OTB_benchmark\\SiamRPN\\SiamRPN_OTB100"
outpath = "E:\\0_OTB_benchmark\\SiamRPN\\SiamRPN_OTB100_txt"
all_matfile_list = os.listdir(path_matfile)each_matfile_path = [os.path.join(path_matfile, matfile) for matfile in all_matfile_list]
videos_name_txt = [video_name.replace('_SIAMRPN', '').replace('.mat', '').capitalize() + '.txt' for video_name in all_matfile_list]for i, matfile_path in enumerate(each_matfile_path):# data = scio.loadmat(matfile_path)  # 有些类型的mat文件不能读取data = hdf5storage.loadmat(matfile_path)  # 兼容mat文件类型较多# 下面两行有些.mat不同track_result = data['results']  # 有些tracker的键值为'result'track_result = track_result[0][0][0][0][0]  # 有些为track_result[0][0][0][1]print(videos_name_txt[i])np.savetxt(os.path.join(outpath, videos_name_txt[i]), track_result, delimiter=',', fmt='%d')# -----------------------
# 2. 文件重命名
# -----------------------
# 有些trackers在OTB100或OTB50中生成的是小写字母开头的跟踪结果,需要把首字母转化成大写字母,以匹配otb100.json或otb50.json(因为我下载的.json文件视频的首字母都是大写的)
# 代码依实际情况变化
src_path = "E:\\0_OTB_benchmark\\Pysot\\pysot-toolkit\\result\\Results_OTB100\\DaSiamRPN"
dst_path = "E:\\0_OTB_benchmark\\Pysot\\pysot-toolkit\\result\\Results_OTB100\\DaSiamRPN_upper"
all_filename = os.listdir(src_path)all_filename_path_old = [os.path.join(src_path, filename) for filename in all_filename if '.txt' in filename]
all_filename_path_new = [os.path.join(dst_path, filename.capitalize()) for filename in all_filename]  # .capitalize()将字符串首字母变为大写for (old_file, new_file) in zip(all_filename_path_old, all_filename_path_new):os.renames(old_file, new_file)  # 好像把原来的文件夹覆盖掉了,先拷贝一份,以防万一# 从OTB100中转移OTB50数据
src_otb100_path = "E:\\0_OTB_benchmark\\Pysot\\pysot-toolkit\\result\\Results_OTB100"
dst_otb50_path = "E:\\0_OTB_benchmark\\Pysot\\pysot-toolkit\\result\\Results_OTB50"template_tracker = os.path.join(dst_otb50_path, 'Initial_Method')
template_videos = os.listdir(template_tracker)all_trackername = os.listdir(src_otb100_path)
src_trackers = [os.path.join(src_otb100_path, src_tracker) for src_tracker in all_trackername]for tracker_file in all_trackername:if tracker_file not in os.listdir(dst_otb50_path):os.mkdir(os.path.join(dst_otb50_path, tracker_file))print(template_videos)
print(all_trackername)for i, tracker in enumerate(src_trackers):each_tracker_videos = os.listdir(tracker)for video in template_videos:shutil.copyfile(os.path.join(tracker, video), os.path.join(dst_otb50_path, all_trackername[i], video))

目标跟踪评估绘图(1):Windows10环境将pycharm跑出来的OTB100数据集的.txt结果文件,转换成.mat文件相关推荐

  1. 目标跟踪评估绘图(3):ubuntu18.04在MATLAB2016b下的vot-toolkit配置,绘制VOT数据集的EAO评估图,与其他算法进行比较

    本文的视频讲解目标跟踪_OTB数据集和VOT数据集评估图的绘制 博主电脑配置: CPU:酷睿i9-9900kf, 显卡:RTX2070S, gcc版本:7.5.0, 以下实验在MATLAB2016b平 ...

  2. 目标跟踪CLE绘图 OTB数据跟踪绘图 mat文件txt文件 相互转换

    跟踪  OTB数据集 绘图 文章主要3个内容 1.txt文件数据-->转换 mat文件 (在matlab上画图) 2.mat文件-->txt文件 画CLE图 3.CLE画图代码  跟踪目标 ...

  3. 音频转换器评估:将音乐文件转换成MP3格式的最佳工具

    音频转换器是一种非常有用的工具,可以将音乐文件转换为不同的格式,例如MP3.有许多音频转换器可供选择,但是要选择最佳的工具需要考虑多个因素,例如易用性.音质.速度.功能等.在本文中,我们将对一些最佳的 ...

  4. 最新目标跟踪评估指标汇总

    前段时间接触了一些目标跟踪的场景,本文主要汇总目标跟踪的常用评估指标,主要包括下面几类: 容易理解的概念:FP.FN.TP.id switch.ML.MT 更加综合的概念:MOTA.IDF1.MOTP ...

  5. 【Python】comtypes模块Windows环境下使用批量转换成PDF文件

    最近在微信看到一篇文章介绍说批量将ppt文件转化为pdf文件,自己尝试了一下,后面想能否自己封装一个类,既能将ppt转换为pdf,而且能够将word转换为pdf,或者其他类型转化为pdf.花了半天时间 ...

  6. 如何利用python将NWPU VHR-10目标检测遥感数据集的格式转换成VOC目标检测数据集的格式

    VOC目标检测数据集的格式 其中图片存放在JPEGImages文件夹中,标注是xml文件,存储在Annotations文件中 关于train集和val集的txt划分存放在ImageSets文件夹下面的 ...

  7. 应用YOLOV4 - DeepSort 实现目标跟踪

    转载自 https://cloud.tencent.com/developer/article/1706259 本文分享利用yolov4+deepsort实现目标跟踪,主要是讲解如何使用,具体原理可以 ...

  8. 无人机目标跟踪与运动控制

    软件平台 Ubuntu 18.04(非虚拟机) ROS Melodic 仿真环境 Gazebo 硬件平台(可选) Parrot Bebop 2 无人机 若无硬件,纯仿真环境也可 预备知识 了解 ROS ...

  9. 目标跟踪——OTB平台的Python版tracker使用

    注意:由于OTB不像VOT那样有Python代码接口,所以我是用Pysot测试平台实现OTB评测功能. 方法:先安装Pysot在系统上,Windows和Linux(Ubuntu发行版)都可以,我是用W ...

最新文章

  1. 综合计算机考试题库,2017年职称计算机考试综合试题模拟题库5
  2. CSS盒子模型之CSS3可伸缩框属性(Flexible Box)
  3. 【BZOJ】1067: [SCOI2007]降雨量(rmq+变态题)
  4. Leetcode-最佳买卖股票机含冷冻期
  5. boost::sloan_ordering用法的测试程序
  6. 飞秋下载2010正式版_飞秋下载
  7. Mariadb升级到mysql_mariadb的版本升级方法
  8. android studio建数据库表,在android studio中创建表
  9. APK安装过程及原理详解
  10. 「Web全栈工程师的自我修养」读后感
  11. Dosbox安装Windows 95图文教学
  12. 百度网盘链接怎么同步更新、百度网盘链接同步、百度网盘分享同步更新、百度网盘怎么同步更新、百度网盘资源同步更新、百度网盘分享文件同步更新、百度网盘好友分享同步更新、百度网盘共享文件同步更新...
  13. 蚂蚁金服红蓝军技术攻防演练究竟有多“狠”
  14. appium元素坐标定位TouchAction
  15. 基于STM32F407使用ADC采集电压实验
  16. Zookeeper 简介
  17. python 小说人物分析_Python文章相关性分析---金庸武侠小说分析
  18. 制作 OS X El Capitan 启动盘
  19. 解题思考F. 解方程(二分法解方程)
  20. iOS架构设计-关东升-专题视频课程

热门文章

  1. 》古文诗词:庄子·杂篇·天下
  2. Ubuntu卸载python3.6
  3. 数据结构__图书管理系统(C语言)
  4. java-php-python-ssm-蔚蓝在线学习平台2021计算机毕业设计
  5. python 界面一
  6. Css3+jquery 实现loading加载动画
  7. 如何在CSDN发布博客
  8. 配置Maven从Nexus下载构件
  9. 开会了,领导让发表意见
  10. 字符串中各种字符计算