当前位置: 首页 > news >正文

目标检测系列(五)已标注数据集(yolo格式)导入labelstudio继续标注

目录

1、labelstudio安装

2、yolo(txt)转json

3、COCO转yolo(仅针对coco格式标注信息)

4、设置环境变量并启动labelstudio

5、进入label studio创建工程并设置任务标签

6、安装http-server并启动文件映射服务

7、进入label studio导入json文件即可


1、labelstudio安装

labelStudio简介:Label Studio ‌是一个开源的数据标注工具,由 Human Signal (原 Heartex )推出,主要用于机器学习和数据科学领域,帮助用户对各种类型的数据进行标注和注释,以生成高质量的训练数据。它支持文本、图像、音频、视频等多种数据类型的标注,适用于自然语言处理、图像识别、语音识别等多种应用场景‌。

安装方法:

pip install label-studio
启动命令(先不着急启动,后面步骤会有):

label-studio start --data-dir /data/label-studio

2、yolo(txt)转json

第一步,先将标注信息(yolo格式的txt)转为json。

txt格式如下:

txt转为json代码如下:

修改其中的图片来源地址(images_path)、标注信息来源地址(labels_path)、网址服务地址(root_path)和标签字典(label_dict)。

代码生成的json格式如下:

3、COCO转yolo(仅针对coco格式标注信息)

如果原始标注数据是coco格式则先转为yolo格式再进入第一步。

coco格式如下:

coco转为yolo代码如下:

修改其中的标注信息地址(coco_json_path)和yolo文件输出地址(output_dir)。

4、设置环境变量并启动labelstudio

先用脚本设置环境变量:

export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true

export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/data/label-studio。

然后启动labelstudio

nohup /root/anaconda3/envs/label-studio/bin/python3.1 /root/anaconda3/envs/label-studio/bin/label-studio start --data-dir /data/label-studio &

如果实在不知道怎么配置pycharm,也可以直接用终端命令来生成:

先用cd命令进入ui文件所在的路径下,然后执行命令:pyuic5 -o demo.py demo.ui

5、进入label studio创建工程并设置任务标签

选择标注任务类型并根据第一步生成json时代码中的标注类别(label_dict)来设计labels。

例如,代码中的类别label_dict如下::

则labelstudio的任务类型选择为目标检测,然后逐一add labels

6、安装http-server并启动文件映射服务

先安装http-server:

apt install npm

npm install http-server -g

然后编辑启动脚本,启动的sh脚本如下:

修改其中的网址列表存储文件(OUTPUT_FILE)和服务端口号(PORT)。

启动服务来映射图片地址(一定要用http-server加上--cors来启动)

nohup sh serve_local_files.sh /data/label-studio/media/upload/1/ *.png &

注意配置图片所在文件夹地址。

7、进入label studio导入json文件即可

流程如下:

然后可以看到项目下的图片及标注框:

完整代码见仓库:https://github.com/Trisyp/labelstudio_data_transfer

http://www.dtcms.com/a/264366.html

相关文章:

  • 浏览器工作原理32 [#]同源策略:为什么XMLHttpRequst不能跨域请求资源
  • Android11 添加自定义物理按键事件监听回调
  • Nginx重定向协议冲突解决方案:The plain HTTP request was sent to HTTPS port
  • uniapp选择相册
  • CAD文件处理控件Aspose.CAD教程:使用 Python 将绘图转换为 Photoshop
  • 【基础】Golang 执行命令shell命令 + Start和Run方法详解
  • ES6数组的`flat()`和`flatMap()`函数用法
  • 黑马python(二十三)
  • vue2 el-select下拉选择框 点击其他位置或者弹窗关闭下拉框/点击取消时,下拉框变成之前的值
  • 2025年跨端云真机测试平台深度测评:XR与折叠屏时代的兼容性之战
  • 《量化开发》系列 第 1 篇:金融知识基础入门指南(附 GitHub 学习项目)
  • 什么是 BigKey?
  • 定时器的设计
  • 电源芯片之DCDC初探索ING
  • 用lines_gauss的width属性提取缺陷
  • 视频内存太大怎么压缩变小一点?视频压缩的常用方法
  • 复现nanoGPT——train.py(详细版拆解)
  • k8s将service的IP对应的不同端口分配到不同的pod上
  • 【普通人学AI】玩转 Prompt 提示词工程 (一)
  • 使用 icinga2 写入 TDengine
  • 翻译《The Old New Thing》- 解除路径的 MAX_PATH 限制仅适用于路径本身
  • 通过http调用来访问neo4j时报错,curl -X POST 执行指令报错
  • C# 程序:查看 PageUp 热键消息映射表
  • torch.nn
  • Vue 安装使用教程
  • [Python] -基础篇8-Python中的注释与代码风格PEP8指南
  • muduo
  • SQL学习笔记6
  • OpenCV篇——项目(一)OCR识别读取银行卡号码
  • 在 Docker 容器中使用内网穿透