label-studio-converter

label-studio-converter

多格式标注数据转换工具 Label Studio Converter

Label Studio Converter是一款开源的标注数据转换工具,可将Label Studio的标注结果转换为JSON、CSV、CoNLL 2003、COCO、Pascal VOC XML等多种机器学习格式。此外,它还支持将YOLO格式的预标注数据导入Label Studio。通过命令行和Python API接口,Label Studio Converter简化了数据格式转换流程,有效连接了数据标注和模型训练环节。

数据导入Github开源项目Label Studio数据标注格式转换机器学习

警告

该存储库已归档并合并到Label Studio SDK中: https://github.com/HumanSignal/label-studio-sdk/tree/master/src/label_studio_sdk/converter

Label Studio 转换器

网站文档Twitter加入Slack社区 <img src="https://yellow-cdn.veclightyear.com/835a84d5/a6aeaadc-0cd7-416b-a035-fc03c5ebd20d.png" width="18px"/>

目录

简介

Label Studio格式转换器帮助您将标签编码为您喜欢的机器学习库的格式。

示例

JSON

从命令行运行:

pip install -U label-studio-converter python label-studio-converter export -i exported_tasks.json -c examples/sentiment_analysis/config.xml -o output_dir -f CSV

从Python运行:

from label_studio_converter import Converter c = Converter('examples/sentiment_analysis/config.xml') c.convert_to_json('examples/sentiment_analysis/completions/', 'tmp/output.json')

获取输出文件:tmp/output.json

[ { "reviewText": "好的外壳,极高的性价比。", "sentiment": "正面" }, { "reviewText": "真是浪费时间和金钱!", "sentiment": "负面" }, { "reviewText": "鹅颈需要稍微调整一下", "sentiment": "中性" } ]

用例:任何任务

CSV

从命令行运行:

python label_studio_converter/cli.py --input examples/sentiment_analysis/completions/ --config examples/sentiment_analysis/config.xml --output output_dir --format CSV --csv-separator $'\t'

从Python运行:

from label_studio_converter import Converter c = Converter('examples/sentiment_analysis/config.xml') c.convert_to_csv('examples/sentiment_analysis/completions/', 'output_dir', sep='\t', header=True)

获取输出文件 tmp/output.tsv

reviewText sentiment 好的外壳,极高的性价比。 正面 真是浪费时间和金钱! 负面 鹅颈需要稍微调整一下 中性

用例:任何任务

CoNLL 2003

从命令行运行:

python label_studio_converter/cli.py --input examples/named_entity/completions/ --config examples/named_entity/config.xml --output tmp/output.conll --format CONLL2003

从Python运行:

from label_studio_converter import Converter c = Converter('examples/named_entity/config.xml') c.convert_to_conll2003('examples/named_entity/completions/', 'tmp/output.conll')

获取输出文件 tmp/output.conll

-DOCSTART- -X- O 整周 -X- _ O 巴伊亚 -X- _ B-Location 可可 -X- _ O 产区 -X- _ O 都在 -X- _ O 下雨, -X- _ O ...

用例:文本标注

COCO

从命令行运行:

python label_studio_converter/cli.py --input examples/image_bbox/completions/ --config examples/image_bbox/config.xml --output tmp/output.json --format COCO --image-dir tmp/images

从Python运行:

from label_studio_converter import Converter c = Converter('examples/image_bbox/config.xml') c.convert_to_coco('examples/image_bbox/completions/', 'tmp/output.conll', output_image_dir='tmp/images')

输出图像可以在 tmp/images 中找到

获取输出文件 tmp/output.json

{ "images": [ { "width": 800, "height": 501, "id": 0, "file_name": "tmp/images/62a623a0d3cef27a51d3689865e7b08a" } ], "categories": [ { "id": 0, "name": "行星" }, { "id": 1, "name": "登月者" } ], "annotations": [ { "id": 0, "image_id": 0, "category_id": 0, "segmentation": [], "bbox": [ 299, 6, 377, 260 ], "ignore": 0, "iscrowd": 0, "area": 98020 }, { "id": 1, "image_id": 0, "category_id": 1, "segmentation": [], "bbox": [ 288, 300, 132, 90 ], "ignore": 0, "iscrowd": 0, "area": 11880 } ], "info": { "year": 2019, "version": "1.0", "contributor": "Label Studio" } }

用例:图像目标检测

Pascal VOC XML

从命令行运行:

python label_studio_converter/cli.py --input examples/image_bbox/completions/ --config examples/image_bbox/config.xml --output tmp/voc-annotations --format VOC --image-dir tmp/images

从Python运行:

from label_studio_converter import Converter c = Converter('examples/image_bbox/config.xml') c.convert_to_voc('examples/image_bbox/completions/', 'tmp/output.conll', output_image_dir='tmp/images')

输出图像可以在 tmp/images 中找到

相应的标注可以在 tmp/voc-annotations/*.xml 中找到:

<?xml version="1.0" encoding="utf-8"?> <annotation> <folder>tmp/images</folder> <filename>62a623a0d3cef27a51d3689865e7b08a</filename> <source> <database>我的数据库</database> <annotation>COCO2017</annotation> <image>flickr</image> <flickrid>NULL</flickrid> </source> <owner> <flickrid>NULL</flickrid> <name>Label Studio</name> </owner> <size> <width>800</width> <height>501</height> <depth>3</depth> </size> <segmented>0</segmented> <object> <name>行星</name> <pose>未指定</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>299</xmin> <ymin>6</ymin> <xmax>676</xmax> <ymax>266</ymax> </bndbox> </object> <object> <name>登月者</name> <pose>未指定</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>288</xmin> <ymin>300</ymin> <xmax>420</xmax> <ymax>390</ymax> </bndbox> </object> </annotation>

用例:图像目标检测


YOLO到Label Studio转换器

YOLO目录结构

首先检查YOLO文件夹的结构,请注意根目录是 /yolo/datasets/one

/yolo/datasets/one
  images
   - 1.jpg
   - 2.jpg
   - ...
  labels
   - 1.txt
   - 2.txt

  classes.txt

classes.txt示例

飞机
汽车

使用方法

label-studio-converter import yolo -i /yolo/datasets/one -o ls-tasks.json --image-root-url "/data/local-files/?d=one/images"

其中 ?d= 后的URL路径是相对于您在 LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT 中设置的路径。

本地存储注意事项

  • 对于Label Studio的运行,设置 LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets (不是 /yolo/datasets/one,而是 /yolo/datasets) 非常重要。
  • 在项目设置中添加新的本地存储,并将绝对本地路径设置为 /yolo/datasets/one/images(Windows系统为 c:\yolo\datasets\one\images)。

云存储注意事项

  • 使用 --image-root-url 为任务URL创建正确的前缀,例如 --image-root-url s3://my-bucket/yolo/datasets/one
  • 在项目设置中添加新的云存储,并设置相应的存储桶和前缀。

帮助命令

label-studio-converter import yolo -h

用法: label-studio-converter import yolo [-h] -i INPUT [-o OUTPUT]
                                          [--to-name TO_NAME]
                                          [--from-name FROM_NAME]
                                          [--out-type OUT_TYPE]
                                          [--image-root-url IMAGE_ROOT_URL]
                                          [--image-ext IMAGE_EXT]

可选参数:
  -h, --help            显示此帮助信息并退出
  -i INPUT, --input INPUT
                        YOLO目录,其中包含images、labels、notes.json
  -o OUTPUT, --output OUTPUT
                        输出Label Studio JSON任务的文件
  --to-name TO_NAME     来自Label Studio标注配置的对象名称
  --from-name FROM_NAME
                        来自Label Studio标注配置的控制标签名称
  --out-type OUT_TYPE   标注类型 - "annotations"或"predictions"
  --image-root-url IMAGE_ROOT_URL
                        图像将要托管的根URL路径,例如:
                        http://example.com/images 或 s3://my-bucket
  --image-ext IMAGE_EXT
                        要搜索的图像扩展名:.jpg, .png

教程:使用本地存储将YOLO预标注图像导入Label Studio

本教程将指导您如何将含有YOLO标注的文件夹导入Label Studio以进行进一步标注。 我们将介绍如何设置环境、将YOLO标注转换为Label Studio格式,以及将它们导入您的项目。

前提条件

  • 本地安装Label Studio
  • YOLO标注的图像和相应的.txt标签文件位于/yolo/datasets/one目录中
  • 安装label-studio-converter(可通过pip install label-studio-converter安装)

步骤1:设置环境并运行Label Studio

在启动Label Studio之前,设置以下环境变量以启用本地存储文件服务:

Unix系统:

export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets
label-studio

Windows系统:

set LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
set LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=C:\\yolo\\datasets
label-studio

/yolo/datasets替换为您实际的YOLO数据集目录路径。

步骤2:设置本地存储

  1. 创建一个新项目。
  2. 进入项目设置并选择云存储
  3. 点击添加源存储并从存储类型选项中选择本地文件
  4. 绝对本地路径设置为/yolo/datasets/one/images或Windows上的c:\yolo\datasets\one\images
  5. 点击添加存储

有关本地存储的更多详细信息,请查看文档

步骤3:验证图像访问

在导入从YOLO转换的标注之前,验证您是否可以通过Label Studio访问本地存储中的图像。打开新的浏览器标签并输入以下URL:

http://localhost:8080/data/local-files/?d=one/images/<your_image>.jpg

one/images/<your_image>.jpg替换为您的一张图像的路径。图像应该在浏览器的新标签页中显示。 如果无法打开图像,则本地存储配置不正确。最可能的原因是在本地存储设置中指定的路径LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT有误。

注意:?d=后的URL路径应相对于LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets, 这意味着实际路径将是/yolo/datasets/one/images/<your_image>.jpg,并且这个图像应该存在于您的硬盘上。

步骤4:转换YOLO标注

使用label-studio-converter将YOLO标注转换为Label Studio可理解的格式:

label-studio-converter import yolo -i /yolo/datasets/one -o output.json --image-root-url "/data/local-files/?d=one/images"

步骤5:导入转换后的标注

现在将output.json文件导入Label Studio:

  1. 进入您的Label Studio项目。
  2. 从数据管理器中,点击导入
  3. 选择output.json文件并导入。

步骤6:验证标注

导入后,您应该能在Label Studio中看到带有预标注边界框的图像。验证标注是否正确,并进行必要的调整。

故障排除

如果遇到路径或图像访问问题,请确保:

  • LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT设置正确。
  • 转换命令中的--image-root-url与相对路径匹配:
`本地存储设置中的绝对本地路径` - `LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT` = `--image_root_url的路径`

例如:

/yolo/datasets/one/images - /yolo/datasets/ = one/images
  • Label Studio中的本地存储设置正确,绝对本地路径指向您的图像(/yolo/datasets/one/images
  • 有关更多详细信息,请参阅导入预标注数据设置云存储的文档。

贡献

我们非常欢迎您帮助创建其他模型的转换器。请随时创建拉取请求。

许可证

本软件根据Apache 2.0许可证授权 © Heartex。2020

编辑推荐精选

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

下拉加载更多