深度学习—数据标注—label-studio

本文不再赘述anaconda虚拟环境安装,仅记录我使用label-studio遇到的具体困难和解决办法。

一、安装与运行label-studio

环境:其一:可以在电脑开始这里,搜索cmd(命令提示符)

其二:可以打开pycharm,使用终端

1.输入命令:打开你的虚拟环境(直接用base环境似乎也可以,但是不推荐,因为长此以往会使得base环境里面有很多库和文件,很乱,容易报错)

复制代码
conda activate <your_enve>

2.安装label-studio,这里建议在vpn下安装,速度更快;也可以在大学-vpn模块-寻找代理下载获得学校提供的免费vpn;也可以使用国内镜像网站;

复制代码
pip install -U label-studio

3.运行label-studio

复制代码
label-studio

4.可以看到如下代码,之后会自动打开网站label-studio:

5.接下来,按照邮箱格式编造一个账号或者直接用QQ邮箱登录即可,可以自己记住账号密码

PS:如果想要联机一起标注,在同一个wifi或热点下,主机运行label-studio ,客机不运行,使用邀请链接加入即可,进入之后在组织里面有+people.

二、使用label-studio

1.点击create,可创建项目,然后直接保存

2.打开settings - Labeling Interface - Browse Templates浏览标签模板,选择 Object Detection with Bounding Boxes,即使用方框的目标检测标签

3.删去默认的两个标签,然后把你想要使用的标签输入进去,注意这里把每个标签前面按照顺序添加上序号,换行隔开,添加,随后保存。如下图:

4.已经准备好了标签,接下来上传图片:

在上面菜单栏点击项目名称,回退到前面的页面,然后找到右上角的Import,点击就可以上传图片,注意label-studio有100张图片的上传限制,每次上传自行控制数量;注意已经创建的项目和已经上传的图片都不能删除,请小心;接下来双击某一个图片,就可以进入标注界面,如下图:

三、标注技巧以及注意事项

1.键盘上的按键1234567890以及w之类的按键,分别对应了某一个标签,可以按下它们,快速选中标签,然后开始标注。注意每标一个框都需要选择一次,已经标号的框随时可以点击选中,然后更换其标签。

2.按下Crtl+鼠标滚轮下滑,可以放大图片,右侧还有拖动工具,任何选中的工具,再次点击都会取消选中。

3.每次标完一张图片,确认无误后直接点击右下角submit。虽然你标的所有框都会自动保存,但是,只有所有图片都submit之后,最后才能全部导出数据。提交后按钮会变成update,随时可以修改。

4.Label Studio 使用 Export (位置在项目名称,最初页面右上角) 时,由于其前端 JavaScript 强制按字母排序,无法通过正常配置禁用。

以下是真正有效的解决方案: 数字前缀欺骗法

复制代码
01Fall
02Fighting
03NoHelmet
04NoVest
05Dim
06Pee
07Poo
08Slipper
09Heel
10Smoking
11BareSoil
12Well
13Edge
14Guardrail

5.最后是导出Export:

比如我导出yolo格式的数据集,最后导出的文件夹解压后情况如下:

将classes.txt文件夹中的序号部分全部删去即可

还有一个问题是,标签文件夹中的标签,全都在我们原本图片文件夹名称的前面加了如

"0c7da007-"一共9位的标签,不要慌,我们只要利用ai生成一段删去这些多余标签名,并把标签保存到原地址的代码即可:

参考提示词如下:

我现在有一些txt文件位于"C:\Users\48179\Desktop\新建文件夹\labels",里面每一个文件名称形如"0c7da007-train2_24_000006.txt",我希望把前九位字符如"0c7da007-"删去,剩余字符保存为新名称,此例即"train2_24_000006.txt",保存地址为"C:\Users\48179\Desktop\新建文件夹\labels_copy",若没有该文件夹则新建。我是python小白,请给出详尽的注释

生成代码如下:

复制代码
import os
import shutil

def rename_and_copy_files():
    # 原始文件夹路径
    source_folder = r"C:\Users\48179\Desktop\新建文件夹\labels"
    # 目标文件夹路径
    target_folder = r"C:\Users\48179\Desktop\新建文件夹\labels_copy"
    
    # 检查原始文件夹是否存在
    if not os.path.exists(source_folder):
        print(f"错误:原始文件夹不存在 - {source_folder}")
        return
    
    # 创建目标文件夹(如果不存在)
    if not os.path.exists(target_folder):
        os.makedirs(target_folder)
        print(f"已创建目标文件夹: {target_folder}")
    else:
        print(f"目标文件夹已存在: {target_folder}")
    
    # 获取原始文件夹中所有的txt文件
    txt_files = [f for f in os.listdir(source_folder) if f.endswith('.txt')]
    
    print(f"找到 {len(txt_files)} 个txt文件")
    
    # 计数器,用于统计处理成功的文件数量
    success_count = 0
    
    # 遍历每个txt文件
    for filename in txt_files:
        # 完整的原始文件路径
        old_file_path = os.path.join(source_folder, filename)
        
        # 检查文件名是否包含至少10个字符(9个要删除的字符 + 至少1个剩余字符)
        if len(filename) > 9:
            # 删除前9个字符,保留剩余部分作为新文件名
            new_filename = filename[9:]
            # 新的文件路径
            new_file_path = os.path.join(target_folder, new_filename)
            
            # 复制文件到新位置(保留原文件)
            shutil.copy2(old_file_path, new_file_path)
            print(f"已处理: {filename} -> {new_filename}")
            success_count += 1
        else:
            print(f"跳过文件(文件名太短): {filename}")
    
    print(f"\n处理完成!成功处理 {success_count} 个文件")
    print(f"原文件位置: {source_folder}")
    print(f"新文件位置: {target_folder}")

# 运行函数
if __name__ == "__main__":
    rename_and_copy_files()

到此,一次完整的yolo数据标注工作就结束了。其实也可以使用labelImg来标注,似乎也有许多很新的,中文的标注工具,比labelImg和label-studio两个老古董要好用的多。

相关推荐
亚里随笔9 小时前
ReSpec:突破RL训练瓶颈的推测解码优化系统
人工智能·深度学习·自然语言处理·大语言模型·rlhf
CoovallyAIHub10 小时前
视觉语言模型(VLM)深度解析:如何用它来处理文档?
深度学习·算法·计算机视觉
CoovallyAIHub11 小时前
估值百亿独角兽创始人硕士论文曝光!宇树科技王兴兴的“性价比”思维10年前就已注定
深度学习·算法·计算机视觉
IT古董12 小时前
【第七章:时间序列模型】2.时间序列统计模型与神经网络模型-(2)适用广泛的时间序列模型:Arima模型
人工智能·深度学习·神经网络
java1234_小锋12 小时前
PyTorch2 Python深度学习 - transform预处理转换模块
开发语言·python·深度学习·pytorch2
珺毅同学20 小时前
YOLO输出COCO指标及YOLOv12报错
python·深度学习·yolo
Rock_yzh21 小时前
AI学习日记——Transformer的架构:编码器与解码器
人工智能·深度学习·神经网络·学习·transformer
FL162386312921 小时前
智慧交通红绿灯检测数据集VOC+YOLO格式1215张3类别
深度学习·yolo·机器学习
yuluo_YX1 天前
语义模型 - 从 Transformer 到 Qwen
人工智能·深度学习·transformer