深度学习—数据标注—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两个老古董要好用的多。

相关推荐
微尘hjx1 分钟前
【数据集】数据集汇总(按比例划分训练、验证、测试)包含训练好的模型
人工智能·深度学习·大模型·标注工具·训练数据集·yolo数据集
墨北小七31 分钟前
小说大模型---全连接神经网络-大模型中真正的“守门人”
深度学习·神经网络
SLAM必须dunk1 小时前
四足强化入门3---Robot Lab重点机器人配置,训练和调参
人工智能·深度学习·机器学习·机器人
shy^-^cky1 小时前
[特殊字符] Roberts、Sobel、Prewitt 边缘检测算子全对比
深度学习·图像分割·边缘检测·sobel·roberts·边缘检测算子·prewitt
AI医影跨模态组学1 小时前
ESMO Open 中国医学科学院肿瘤医院:整合影像组学、病理组学和活检适应性免疫评分预测局部晚期直肠癌远处转移
人工智能·深度学习·机器学习·论文·医学·医学影像
jay神1 小时前
大米杂质检测数据集(YOLO格式)
人工智能·深度学习·yolo·目标检测·毕业设计
薛定e的猫咪2 小时前
【Neural Networks 2025】TDAG 论文解读:多智能体不是重点,动态任务分解才是关键
人工智能·深度学习·计算机视觉
xiaoyaohou113 小时前
011、骨干网络改进(二):MobileNet、ShuffleNet等轻量骨干的适配
网络·深度学习·机器学习
tobias.b3 小时前
李宏毅-2022-深度学习课程-2-18-深度学习基础概念下
人工智能·深度学习
jay神3 小时前
基于 YOLOv8 的PCB 缺陷检测系统
python·深度学习·yolo·目标检测·信息可视化·毕业设计