Python批量修改YOLO数据集图片和标签名称为UUID – 幽络源教程

Python批量修改YOLO数据集图片和标签名称为UUID – 幽络源教程

问题

图片名称正常来说格式都是 图片名+”.jpg”或”png”,但是有的别人分享的数据集名称不规范,导致有时处理时,会出现一些莫名其妙的问题,比如如下图:

图片的名称出现了两个jpg

1

标签的名称出现一个.jpg

2

可能的后果

这种名称不规范的图片和文件名,在后续处理时,是可能导致一些因为名称分隔而出现的错误,比如图片与标签无法匹配,后果不堪设想。

处理方式

我这里提供一个将图片与其对应的标签文件重命名的脚本,只需要传入图片目录路径和标签目录路径即可批量完成重命名为uuid格式的名称,代码如下:

import os
import uuid


def rename_images_and_labels(images_dir, labels_dir):
    # 获取图片和标签文件列表
    image_files = sorted(os.listdir(images_dir))

    # 确保图片和标签文件名一一对应
    for image_file in image_files:
        # 确保图片有对应的标签文件
        label_file = image_file.replace('.jpg', '.txt')
        label_path = os.path.join(labels_dir, label_file)

        if os.path.exists(label_path):
            # 生成唯一的新文件名
            unique_name = str(uuid.uuid4())
            new_image_name = unique_name + '.jpg'
            new_label_name = unique_name + '.txt'

            # 获取完整路径
            old_image_path = os.path.join(images_dir, image_file)
            old_label_path = label_path
            new_image_path = os.path.join(images_dir, new_image_name)
            new_label_path = os.path.join(labels_dir, new_label_name)

            # 重命名图片和标签文件
            os.rename(old_image_path, new_image_path)
            os.rename(old_label_path, new_label_path)

            print(f"Renamed: {image_file} -> {new_image_name}, {label_file} -> {new_label_name}")


# 替换为实际的 images 和 labels 目录路径
images_directory = r"D:\A01PythonProjects3123\labelImg-master\标签文件批量处理\slope.v1i.yolov8\train\images"  # 替换为图片目录路径
labels_directory = r"D:\A01PythonProjects3123\labelImg-master\标签文件批量处理\slope.v1i.yolov8\train\labels"  # 替换为标签目录路径

# 执行重命名操作
rename_images_and_labels(images_directory, labels_directory)

如图,我将需要处理的图片和标签所在目录传入了脚本中

3

执行脚本,结果如下,可以看到图片名与其对应的标签名都改为了uuid形式的名称

4

5

结语

以上是幽络源的Python批量修改yolo数据集图片及对应标签的名称为uuid的教程,如有不懂之处可加Q群307531422询问

© 版权声明
THE END
喜欢就支持一下吧
分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    暂无评论内容