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

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

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

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

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

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

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

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多