用 3 份 JSON 搭出 Label Studio 标注数据流:从原始图片到可训练导出

发布时间:2026/8/24 8:55:10
用 3 份 JSON 搭出 Label Studio 标注数据流:从原始图片到可训练导出 用 3 份 JSON 搭出 Label Studio 标注数据流从原始图片到可训练导出【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio你手上有几张餐厅小票照片想训练模型自动识别菜品和价格。Label Studio 是一个多类型数据标注工具第一步是把这批原始数据整理成标准任务格式完成标注再导出成可训练的标注数据集。底层逻辑标注数据为什么要长这样Label Studio 的核心是数据与结果分离。你导入的只是待标注内容放在任务的data字段里标注完成后结果写入annotations数组每个标注员一份。这就是为什么导入文件只有几行而导出文件会膨胀好几倍——所有标签信息都在result里。两者之间的桥梁是 Labeling Config标注配置一份 XMLImage这类对象标签object tag声明标什么并通过value$image绑定 data 字段RectangleLabels这类控制标签control tag声明怎么标。你在界面上画一个框result 里就生成一条 region标注区域同一区域的多条结果——比如同一个菜品画框 填价格——共享同一个idfrom_name和to_name回指两个标签的名字下游解析 JSON 不用猜。这里容易漏的一点是图像坐标是相对图片宽高 0–100 的百分比不是像素。标注界面左边是数据右边是标注结果。数据蓝图任务 JSON 与结果 JSON 的骨架一共三份 JSON一份标注完成后的任务骨架两份导入写法单图、多图。标注完成后的任务骨架这是导出后的最终形态先认脸{ id: 1, // 任务ID系统自动分配 data: { image: ... }, // 原始数据与导入格式一致 annotations: [ // 每位标注员一条 { id: 1001, result: [ // 区域数组每笔标注一条 { id: Dx_aB91ISN, // 同区域条目共享此ID from_name: label, // 控制标签名 to_name: image, // 对象标签名 type: rectanglelabels, value: { x: 50.8, y: 5.9, width: 12.4, height: 10.5, rectanglelabels: [汉堡] } // 坐标为百分比 } ] } ] }单图最小导入示例导入是一个数组每个元素一个任务[ { data: { image: https://example.com/receipt_001.jpg // 待标注的图片字段 } } ]多图导入示例[ { data: { image_1: https://example.com/menu.jpg, // 第一张菜单 image_2: https://example.com/table.jpg // 第二张餐桌 } } ]两种写法的区别只有一处配置里Image标签的value是绑定单个$image还是多个$image_1、$image_2data 里按同名字段准备即可。 任务驱动实战四个任务每个都是目标 → 操作 → 验证。把标注环境跑起来目标服务启动浏览器能打开标注页。操作安装pip install label-studio启动label-studio start默认端口 8080在网页注册账号创建一个项目Labeling Setup 里粘贴一份配置bbox 模板可直接参考验证浏览器打开 localhost:8080 能看到刚建的项目。导入一批小票图片目标把图片清单变成可标注的任务列表。操作按上面单图示例写一个 tasks.json图片 URL 必须能被服务访问到本地路径需先配本地文件存储项目页点 Data Import上传文件翻两页任务列表确认图片都渲染出来了验证任务列表条数 JSON 数组元素个数。建多图对比样本目标一个任务里同时标菜单 餐桌两张图。操作data 里放image_1、image_2两个字段配置里加两个Image标签value分别绑定$image_1、$image_2在餐桌图上对菜品画框价格用Number按区域填写验证界面同时显示两张图导出后该任务只有一条data但 result 覆盖两张图的区域。导出标注数据集目标拿到能直接喂给训练脚本的 JSON。操作界面点 Export选 JSON 格式或在服务所在机器执行命令行导出1换成你的项目 IDlabel-studio export 1 JSON --export-path./export/ # 1 为项目ID验证打开导出文件确认每个任务的annotations[0].result非空。场景案例餐饮识别与文档 OCR案例一餐厅小票菜品识别输入一桌菜的小票照片每张 3–8 个菜品。标注要点给每个菜品画框选标签需要价格时加Number并开启 perRegion按区域标注价格就挂在对应框上。预期输出每个菜品一组坐标 类别 价格的 region可导出为 COCO 格式直接给检测模型用。矩形框标注在小票图片上的效果。案例二文档 OCR 关键字段抽取输入拍摄或扫描的发票、合同页。标注要点用文本选区标签依次框住金额、日期、收款方标签值写成字段名方便导出后直接对应。预期输出字段名—取值成对的标注结果导入下游做微调。对文档文本做命名实体选区的效果。训练衔接把导出文件交给微调Label Studio 只负责标注微调由你自己的训练脚本完成导出文件就是数据集输入。策略按显存选微调策略显存速度适用场景全参数高慢数据量大、追求最佳效果LoRA中快资源有限、快速迭代QLoRA低最快显存极端受限时最小启动示例your_finetune.sh换成你实际的微调脚本export MODELyour-base-model # 基座模型或checkpoint路径 export DATAexport/annotations.json # 上一步导出的标注文件 sh your_finetune.sh # 脚本内配置LoRA与批大小MODEL基座模型路径DATA必须是 Label Studio 导出的 JSONLoRA 秩从小值起步效果不足再加批大小减单步 batch 时用梯度累积步数把总批大小补回来想把模型预测回灌到标注界面做半自动标注看项目内的 ML 后端文档多个框架的接法示例在 ml_tutorials 目录。 排障速查现象常见原因处理导入后 0 个任务JSON 非数组或字段名不符校验数组格式对齐配置字段名任务里图片空白URL 服务访问不到换公网地址配本地存储坐标数值偏小导出按百分比单位乘图片宽高换算像素大数据量导出 504同步导出有时限改用命令行导出分批导入延伸资源任务与结果格式规范支持的导出格式及对应标签标注界面与快捷操作参考ML 后端接入教程目录bbox 目标检测配置模板从原始图片到可训练数据集这条链路已经够用。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻