OTB数据集批量设置代码——设置configSeq.m并复制groundtruth文件

2024-01-18 05:40

本文主要是介绍OTB数据集批量设置代码——设置configSeq.m并复制groundtruth文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

(1)configSeq.m代码自动编写

OTB数据集Benchmark中的数据集设置十分繁琐,OTB2015中有100个视频序列,如果手动添加每个视频序列的属性效率极低,因此本文通过Matlab代码实现自动获取数据集每个视频序列的属性,按照configSeq中的结构体样式编写属性代码并存入txt文件中,随后将代码复制进configSeq中即可。

(2)自动将原数据集中的groundtruth文件复制进anno文件夹中并重命名

由于Benchmark在测试算法之后要根据groundtruth文件计算跟踪精度等指标,需要将数据集中的gd文件复制进Benchmark中的anno文件夹,如果手动操作会变得十分繁琐,本代码可以实现自动获取原数据集文件夹中的groundtruth文件并复制进Benchmark中的anno文件夹,并重命名为Benchmark的格式。

%此代码实现的功能为:
%读取数据集文件下的所有子文件夹名称,并以configSeqs.m中的格式创建结构体
%并将groundtruth文件存入anno文件夹
OTB100 = 'Basketball Biker Bird1 Bird2 BlurBody BlurCar1 BlurCar2 BlurCar3 BlurCar4 BlurFace BlurOwl Board Bolt Bolt2 Box Boy Car1 Car2 Car24 Car4 CarDark CarScale ClifBar Coke Couple Coupon Crossing Crowds Dancer Dancer2 David David2 David3 Deer Diving Dog Dog1 Doll DragonBaby Dudek FaceOcc1 FaceOcc2 Fish FleetFace Football Football1 Freeman1 Freeman3 Freeman4 Girl Girl2 Gym Human2 Human3 Human4 Human5 Human6 Human7 Human8 Human9 Ironman Jogging Jump Jumping KiteSurf Lemming Liquor Man Matrix Mhyang MotorRolling MountainBike Panda RedTeam Rubik Shaking Singer1 Singer2 Skater Skater2 Skating1 Skating2 Skiing Soccer Subway Surfer Suv Sylvester Tiger1 Tiger2 Toy Trans Trellis Twinnings Vase Walking Walking2 Woman';
OTB100 = strsplit(OTB100);
base_path = 'E:\single_object_tracking\Benchmark\';
files = dir(base_path);%数据集文件夹的路径%% 处理configSeq
fid=fopen('configSeq.txt','wt');
for i = 1:numel(files)temp_name = files(i).name;if ~ismember(temp_name,OTB100) %如果文件夹的名字不存在于OTB数据集中,则执行下一循环continueendtemp_path = [base_path temp_name '\' 'img\'];temp_files = dir([temp_path '*.jpg']);endFrame = numel(temp_files);temp_1 = ['struct(''name'',' '''' temp_name '''' ',' '''path'','];%字符串中有单引号用两个单引号表示temp_res = [temp_1 '''' temp_path '''' ',' '''startFrame'',' '1,' '''endFrame'',' num2str(endFrame) ',' '''nz'',' '4,' '''ext'',' '''jpg'',' '''init_rect'', ' '[0,0,0,0]),' '...'];fprintf(fid,'%s\n',temp_res);%写入文本文件disp(['write down:' temp_name])end
disp('configSeq done')%% 处理groundtruth文件
for i = 1:numel(files)temp_name = files(i).name;if ~ismember(temp_name,OTB100) %如果文件夹的名字不存在于OTB数据集中,则执行下一循环continueendtxt_name = ['./anno/' temp_name '.txt'];if exist(txt_name,'file') %如果原本存在groundtruth文件则执行下一个循环disp(['exsting txt file : ' temp_name])continueendgd_file = [base_path temp_name '/' 'groundtruth_rect.txt'];%数据集中的gd文件copyfile(gd_file,'./anno');%移动到anno文件夹path = pwd;%保存当前目录cd('./anno')eval(['!rename' 32 'groundtruth_rect.txt' 32 [temp_name '.txt']]); %使用系统命令更改文件名,32为ASCII空格cd(path)%返回目录disp(['move done: ' temp_name])
end

这篇关于OTB数据集批量设置代码——设置configSeq.m并复制groundtruth文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618189

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模