.vbb文件转换为.txt文件

    Caltech Pedestrian Dataset数据集的annotations就是以.vbb保存的,但是我们实际运用中一般都是保存为.txt文件或者.xml文件的格式,这就给我们带来了很大的不便性,Caltech Pedestrian Dataset数据集matlab代码下载:点击打开链接,下面的代码调用到了该链接的内容。结合Caltech Pedestrian Dataset数据集中给出的matlab代码,这里是对INRIA DataSet数据集进行操作。想必做行人检测接触过INRIA这个数据集的都知道,该数据集一个明显的缺点就是标签不够完整,训练集中有一部分行人是没有标签的,这在一定的程度上对模型训练很产生较大的影响。下面的链接对INRIA数据集进行了进一步的标签补充,可以自行下载:点击打开链接,可惜的是其标签保存形式亦为.vbb的形式。本博文主要是针对INRIA数据集的改进标签的.vbb文件转换为.txt文件。

%func: main.m
vbb2txt('InriaNewTrainingLabels.vbb','TrainingLabels.txt');
vbb2txt('InriaNewTestLabels.vbb','TestingLabels.txt');
%-------------------------------------------------------
%vbbName:需要转换的.vbb名称,txtName为转换后保存的.txt名称
%func: vbb2txt.m
%-------------------------------------------------------
function vbb2txt(vbbName,txtName)  
 
vPath = 'F:\za\Model\pedestrain\INRIAPerson';
finalPath = [vPath,vbbName]%.vbb文件的路径
outpath = 'F:\za\Model\pedestrain\INRIAPerson\annotations';%保存路径

disp(finalPath);
A = vbb( 'vbbLoad', finalPath);
c = fopen([outpath,'\',txtName],'w')

for i = 1:A.nFrame    
    iframe = A.objLists(1,i);    
    iframe_data = iframe{1,1};    
    n1length = length(iframe_data);    
    for  j = 1:n1length    
        iframe_dataj = iframe_data(j);    
        if iframe_dataj.pos(1) ~= 0  %pos  posv    
            fprintf(c,'%d %f %f %f %f\n', i, iframe_dataj.pos(1),...  
            iframe_dataj.pos(2),iframe_dataj.pos(3),iframe_dataj.pos(4));    
        end    
    end    
end

若有不当之处,望指教,谢谢!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
将KAIST行人数据集vbb格式转换为Yolov5可以识别的格式,需要经过以下步骤: 1. 下载KAIST行人数据集 首先需要从KAIST行人数据集官网下载数据集,并解压到本地。 2. 安装vbb2txt vbb2txt是一款用于将vbb格式转换txt格式的工具,可以从Github上下载。 3. 将vbb文件转换txt文件 使用vbb2txtvbb格式的标注文件转换txt格式的标注文件。 ```bash python vbb2txt.py path/to/annotations/vbb path/to/annotations/txt ``` 4. 将txt文件转换为Yolov5格式 使用以下代码将标注文件转换为Yolov5格式。 ```python import os import glob import numpy as np # 类别名称 class_names = ['person'] # 遍历所有的标注文件 for txt_file in glob.glob('annotations/set*/*.txt'): # 打开标注文件 with open(txt_file, 'r') as f: lines = f.readlines() # 遍历每一行 for line in lines: line = line.strip().split(' ') # 获取类别 class_idx = class_names.index(line[0]) # 获取中心点坐标和宽高 x, y, w, h = float(line[1]), float(line[2]), float(line[3]), float(line[4]) # 转换为Yolov5格式 x_center = x + w / 2 y_center = y + h / 2 w = w h = h # 保存到新的标注文件 save_path = os.path.join('yolo_annotations', os.path.basename(txt_file)) with open(save_path, 'a') as f: f.write(f'{class_idx} {x_center} {y_center} {w} {h}\n') ``` 5. 将数据集转换为Yolov5需要的格式 将数据集转换为Yolov5需要的格式,需要创建以下文件夹和文件: ``` data/ custom.yaml images/ train/ val/ labels/ train/ val/ ``` 其中,custom.yaml文件为Yolov5的配置文件,可以参考官方示例文件进行编写。 6. 将图片和标注文件分别放入train和val文件夹中 7. 训练模型 使用Yolov5进行训练即可。 以上就是将KAIST行人数据集vbb格式转换为Yolov5可以识别的格式的详细教程。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值