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实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语