1. VisDrone数据集转YOLO格式工具解析
在计算机视觉领域,数据集格式转换是模型训练前的关键准备工作。VisDrone作为无人机视角下的目标检测数据集,其标注格式与YOLO系列算法要求的格式存在显著差异。本文将详细介绍如何通过Python工具链实现VisDrone到YOLO格式的高效转换。
VisDrone数据集采用每帧独立标注的方式,包含12个类别(如行人、车辆等),标注信息存储在txt文件中,每行表示一个目标实例,格式为:
code复制<帧序号>,<目标ID>,<bbox左上角x>,<bbox左上角y>,<bbox宽度>,<bbox高度>,<得分>,<类别>,<截断/遮挡标志>
而YOLO格式要求每个图像对应一个txt文件,每行表示一个目标,格式为:
code复制<类别索引> <中心点x比例> <中心点y比例> <宽度比例> <高度比例>
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心转换逻辑实现
2.1 类别映射策略
VisDrone的12个类别中需要过滤掉"ignored regions"和"others"等无效类别。我们建立如下映射关系:
python复制category_mapping = {
1: 0, # pedestrian -> 0
2: 1, # people -> 1
3: 2, # bicycle -> 2
4: 3, # car -> 3
5: 4, # van -> 4
6: 5, # truck -> 5
7: 6, # tricycle -> 6
8: 7, # awning-tricycle -> 7
9: 8, # bus -> 8
10: 9 # motor -> 9
}
注意:实际应用中建议将映射关系保存为JSON配置文件,方便后续调整类别
2.2 坐标归一化处理
YOLO格式要求坐标必须是相对于图像宽高的比例值(0-1之间)。转换公式为:
python复制x_center = (bbox_left + bbox_width/2) / image_width
y_center = (bbox_top + bbox_height/2) / image_height
width
