yolov8中visdrone转换成yolo格式

from ultralytics.yolo.utils.torch_utils import os, Path

def visdrone2yolo(dir):
    from PIL import Image
    from tqdm import tqdm

    def convert_box(size, box):
        # Convert VisDrone box to YOLO xywh box
        dw = 1. / size[0]
        dh = 1. / size[1]
        return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh

    (dir / 'labels').mkdir(parents=True, exist_ok=True)  # make labels directory
    pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
    for f in pbar:
        img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
        lines = []
        with open(f, 'r') as file:  # read annotation.txt
            for row in [x.split(',') for x in file.read().strip().splitlines()]:
                if row[4] == '0':  # VisDrone 'ignored regions' class 0
                    continue
                cls = int(row[5]) - 1
                box = convert_box(img_size, tuple(map(int, row[:4])))
                lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
                with open(str(f).replace(os.sep + 'annotations' + os.sep, os.sep + 'labels' + os.sep), 'w') as fl:
                    fl.writelines(lines)  # write label.txt


dir = Path('datasets/VisDrone/VisDrone')  # dataset文件夹下Visdrone2019文件夹路径

# Convert
for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
    visdrone2yolo(dir / d)  # convert VisDrone annotations to YOLO labels

路径:hy-tmp/yolov8-main/ultralytics/yolo/utils/torch_utils.py

然后创建一个py文件,内容如上

VisDrone是一个公开的无人机视频数据集,用于无人机任务的研究和开发。而YOLO(You Only Look Onnce)是一个目标检测算法,其可以快速而准确地在图像识别和定位多个目标。 要将VisDrone数据集换为YOLO格式,需要进行以下步骤: 1. 下载VisDrone数据集,并了解其数据结构和注释文件的格式。 2. 首先,将图片文件和标注文件分别保存在两个文件夹,以便进一步处理。 3. 遍历注释文件夹的每个标注文件,读取其的标注信息。标注文件包含了目标的类别、边界框的位置和其他额外信息。 4. 对于每个标注文件,根据其的类别和边界框信息,在对应的图片上绘制矩形边界框。 5. 计算矩形边界框的左上角和右下角坐标,并将其换为YOLO格式的边界框坐标。YOLO格式使用归一化的坐标值,范围在0到1之间。 6. 将换后的边界框坐标和目标类别保存到一个文本文件,该文件将用于训练和测试YOLO模型。 7. 重复上述步骤,直到对所有的标注文件都进行了处理。 8. 最后得到的文本文件就是YOLO格式的注释文件,其每一行表示一张图片的一个目标,包括目标的类别和归一化的边界框坐标。 通过以上步骤,我们可以将VisDrone数据集换为适用于训练和测试YOLO模型的格式换后的数据集可以用于模型的训练和目标检测任务的评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值