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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映