Label Studio OCR 发票标注3 个控件搭出 BIO 预标注流水线一次跑通【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studioOCR 发票标注这条链路上OCR 模型跑完并不能直接喂给 NER 训练token 边界不稳、转写有错字BIO 序列根本没有原料。这篇带你把 Label Studio 社区模板「OCR Invoices Pre-NER BIO Format」拆开看3 个控件、1 个 image 字段OCR 转写校对一次跑通导出的结果能直接转成发票 NER 数据准备的预标注语料。任务数据只需要一个 image 字段导入前先看数据形态每条任务的 data 里只有一个键image值是图片 URL 或 base64没有别的必填项。批量导入支持 JSON/CSV 上传、API 以及 S3、GCS、Azure Blob、本地目录等存储后端具体方式见 tasks.md 和 storage.md。还有一个容易忽略的设计模板里标签控件的注释写明它用来接收你 OCR 模型产出的 rectanglelabels 结果from_namelabel。也就是说如果你手上已有 OCR 预检测框可以把框作为预标注灌进控件标注员从画框降级成改错。3 个控件一个显示票据、一个画框、一个转写校对完整配置在 config.yml贴进 Labeling Setup 的 Custom template 编辑器即可View !-- The image to annotate -- Image nameimage value$image zoomControltrue/ !-- Bounding-box control that will receive the rectanglelabels results coming from your OCR model (from_name label) -- RectangleLabels namelabel toNameimage choicesingle !-- You only emit the generic O class, but feel free to add more labels -- Label valueO background#FFA500/ /RectangleLabels !-- Per-region transcription box (from_name transcription). Because perRegiontrue, one TextArea is linked to each rectangle. -- TextArea nametranscription toNameimage perRegiontrue editabletrue rows1 requiredtrue placeholderType or correct OCR text…/ /View三个控件的分工Image票据展示与缩放大白话把发票铺在标注区让你能放大看小字号。参数类型默认值本文取值一句话说明valuestring—$image从任务的 image 字段取图zoomControlboolean—true显示缩放控件有一个坐标细节必须先知道导出的矩形坐标存的是相对原图宽高 0–100 的百分比不是像素原图像素尺寸另存在original_width/original_height里要像素就自己换算。这对混用不同分辨率发票很友好。RectangleLabels一框一标签大白话画框控件每个框身上带一个标签。完整参数见 rectanglelabels.md。参数类型默认值本文取值一句话说明namestring—label控件名对应结果里的 from_nametoNamestring—image绑定的图片控件choicesingle / multiplesinglesingle每个框只选一个标签maxUsagesnumber—未设置单标签每任务最多用几次opacityfloat0.6未设置矩形填充透明度strokeWidthnumber1未设置边框粗细canRotatebooleantrue未设置是否显示旋转控制这里只定义了O一个标签橙色 #FFA500就是 BIO 约定里实体外的标记所有框出的 token 先统一进 O 状态。TextArea每框一个输入框大白话perRegiontrue就是给每个矩形框配一个专属输入框——框一个 token 出一个输入框切换选中的框输入框里的文本跟着切换。参数对照见 textarea.md参数类型默认值本文取值一句话说明namestring—transcription控件名对应结果里的 from_nametoNamestring—image绑定的图片控件perRegionboolean—true按区域绑定每框一个输入框editablebooleanfalsetrue提交后仍可改文本rowsnumber11输入框行数单行可用 Enter 提交requiredbooleanfalsetrue强制每个区域都要填转写placeholderstring—Type or correct OCR text…输入提示文案displayModetag / region-listtag未设置tag 是贴边输入框region-list 收进 Regions 面板标注流程一框一字段标注员的操作固定四步在图片上框住一个 token比如发票号、金额。为什么标签控件只有 O 一个标签框出来自动就是 O不用做选择。看该框绑定的输入框核对并修正 OCR 转写。为什么perRegion 是一对一绑定不用猜哪个字段对应哪个框。按 Enter 提交继续下一个 token。为什么rows1的单行输入框 Enter 直接提交省掉点 Add。全部框完提交任务。为什么requiredtrue保证每个框都有转写漏填的框混不进语料。导出的 JSON 里每个框是一对记录导出后每个框对应两条 id 相同的记录{ id: 312, result: [ { id: region-1, type: rectanglelabels, from_name: label, to_name: image, original_width: 1920, original_height: 1280, image_rotation: 0, value: { x: 3.1, y: 8.2, width: 20, height: 16, rectanglelabels: [O], rotation: 0 } }, { id: region-1, type: textarea, from_name: transcription, to_name: image, value: { text: [Invoice No. 1024] } } ] }前一条给坐标0–100 百分比和标签[O]from_name是label后一条给转写文本from_name是transcription。original_width/original_height记录原图像素尺寸供换算像素坐标。把导出结果聚合成 BIO token 序列按 region id 分组两条记录合成一个「坐标 文本 O」token。为什么id 是连接框和文本的唯一键。按 y 再按 x 排序 token得到阅读顺序序列。为什么发票字段基本按从上到下、从左到右排布。全部 token 保持 O得到预标注序列。为什么第一阶段不带实体观点B/I 判断留给下一环节。下一站NER Tagging for Invoices (BIO Format) 模板仓库里配套着 ner-tagging-invoices-bio-format 模板它用granularityword的 Text 控件接收校对后的文本按词打 B-NIF、B-FORN、B-DATA、B-VALOR、B-NUMFAT含对应 I- 标签和 O。一个管「token 与转写清理」一个管「B/I 实体打点」串起来就是发票 NER 数据准备的完整链路。避坑清单与常见疑问为什么所有 token 先标 OBIO 里的 O 表示实体外。这个模板只负责把 token 序列对齐边界对、转写对、统一为 O第一阶段不引入任何实体判断真正的 B/I 标注交给 NER 模板做。标签集能不能直接扩可以配置注释里就写了 feel free to add more labels。在 RectangleLabels 里加 Label 行即可例如 B-Vendor、B-Total若想先画框、后定类型把choice换成 multiple。没有 OCR 预检测框也能用吗能。全部框手动画输入框照样校对转写流程不变只是慢一些。⚠️ 坐标是 0–100 百分比不是像素要像素请乘original_width/original_height。⚠️ 把rows改成多行后 Enter 不再提交得点 Add 或 ShiftEnter。⚠️ 别关掉requiredtrue否则空转写的框会悄悄混进语料。下一步把配置贴进新项目先拿 2~3 张发票图试跑。原因先感受框与输入框的绑定手感。接入真实 OCR 输出让预检测框进label控件。原因校对比从零画框快得多。导出、聚合成 token 序列交给 NER 模板。原因到这里整条预标注管线才算闭环。【免费下载链接】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),仅供参考