恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Label Studio 发票 OCR 预标注实战:3 步从发票图片到 BIO 格式 NER 训练数据
首页
资讯中心
/
Label Studio 发票 OCR 预标注实战:3 步从发票图片到 BIO 格式 NER 训练数据
Label Studio 发票 OCR 预标注实战:3 步从发票图片到 BIO 格式 NER 训练数据
发布时间:2026/9/13 11:26:48
Label Studio 发票 OCR 预标注实战3 步从发票图片到 BIO 格式 NER 训练数据【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studioOCR 识别出来的发票文本经常出错人工逐条核对又慢又容易漏。怎么把这一堆文字变成能喂给 NER 模型的训练数据Label Studio 社区贡献模板 OCR Invoices Pre-NER BIO Format 就是为这种 OCR 发票标注场景准备的整套流程 3 步就能跑通。下面带你从贴配置一路做到导出数据。先定位这套发票 OCR 预标注模板在流水线里的位置整条发票 NER 数据管线分三个阶段OCR 出 token跑一遍文本检测/识别模型得到发票上每个词条的坐标和识别文本人工框选校对也就是本模板干的事。每个 token 在图片上是一个矩形框标注者核对框里的转写文本是否准确所有 token 初始统一标记为OOutside实体外部BIO 实体标注在校对好的 token 序列上打 B-/I- 标签生成训练语料。Pre-NER 的名字就来自这里它不直接产出实体标签只负责把 token 边界和转写内容整理干净。仓库里的 ner-tagging-invoices-bio-format/config.yml 模板负责第三阶段两者前后衔接。三步跑起来建项目、贴配置、开始标注1. 建项目并粘贴标注配置在 Label Studio 新建项目进入 Labeling Setup 选 Custom template把「拆开看这份配置」一节的完整 XML 粘进去保存。2. 导入任务data 里只需要一个 image 键任务数据非常简单每个任务给一个图片地址就行详见 tasks.md{ data: { image: invoices/001.png } }支持 JSON 文件批量导入也支持 API 上传和 S3、GCS、Azure Blob、本地目录等存储后端。3. 标注框选 token → 校对文本 → Enter 提交标注者重复执行这个循环在图片上框出一个 token发票号、金额、日期都算矩形自动带上O标签选中该矩形后输入框里出现对应 OCR 文本核对并修正按 Enter 提交继续框下一个。required保证每个框不会漏填。拆开看这份配置每个控件解决什么问题模板的完整配置如下来自仓库 config.ymlView !-- 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…/ /ViewImage负责展示发票图片发票图上的字段字号小标注者经常要放大看。value$image从任务数据取图片HTTP(S) 链接、本地路径、base64 都可以zoomControltrue打开缩放控件。另外注意按 image.md 的说明标注结果以原始图片尺寸的 0–100 百分比存储而不是像素值不同分辨率的发票图导出的坐标都可直接比较。RectangleLabels框出 token 并统一打上 O 标签这个控件把「矩形框 标签」合成一步。choicesingle限定每个矩形只选一个标签模板默认只放了一个Label valueO正好对应 BIO 约定里的实体外部状态——所有 token 先以O身份进入下一环节。配置里的注释也提醒你可以按需加更多标签。TextAreaperRegion 实现逐框转写校对三个参数配合完成校对动作perRegiontrue让每个矩形框绑定一个输入框选中哪个框、看的就是哪段文本requiredtrue防止漏填rows1是单行布局此时直接按 Enter 就能提交文本不用点 Add 按钮详见 textarea.md。如果你更习惯集中批量检查也可以改用displayModeregion-list把所有输入框挪到 Regions 面板里。参数速查只列本模板实际用到的参数控件模板取值为什么这么填nameImage / RectangleLabels / TextAreaimage/label/transcription三个控件的唯一名字导出结果里靠 toName/from_name 对号入座valueImage$image从任务 data 的 image 键取图导入时字段不用改名zoomControlImagetrue发票小字号多放大校对更准确toNameRectangleLabels / TextAreaimage都挂到图片控件上框和文本才能落到同一张图choiceRectangleLabelssingle一个 token 只归一个类别避免结果里出现互相矛盾的标签perRegionTextAreatrue逐区域转写的核心一个矩形绑定一个输入框editableTextAreatrue允许标注者改已显示的 OCR 文本不只是照抄rowsTextArea1单行输入Enter 直接提交省一次点击requiredTextAreatrue每个框强制填文本漏填的框无法进入导出结果placeholderTextAreaType or correct OCR text…提示标注者这里既可以输入也可以纠错更多参数细节可查 rectanglelabels.md 与 textarea.md。导出结果长什么样rectanglelabels 与 textarea 成对出现标注完成后导出每个矩形区域会产出两条记录靠同一个区域id成对出现结构来自 rectanglelabels.md 的结果格式说明{ 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] } }, { id: region-1, type: textarea, from_name: transcription, to_name: image, value: { text: [Invoice No. 1024] } } ] }第一条给出坐标与标签x、y是矩形左上角位置width、height是宽高全部是 0–100 的百分比original_width、original_height记录原始像素尺寸需要换算回像素时相乘即可。第二条给出这个框的转写文本。按区域 id 聚合后你就拿到「坐标 文本 标签(O)」的 token 列表。接到 NER 训练从预标注到 BIO 语料把导出的 token 按发票上的阅读顺序先上后下、先左后右排成序列就是 NER 模型的输入。接着在序列上打 B-/I-/O 标签——比如供应商名称首词 B-Vendor、其余 I-Vendor——即得到标准 BIO 格式训练语料仓库里 ner-tagging-invoices-bio-format 模板正是为此阶段设计的它就在 token 序列上打 B-NIF、I-VALOR 这类标签。token 上保留的坐标信息还有额外用途训练「文本 版面」多模态抽取模型时位置可以作为第二路特征帮模型在相似文本里区分不同字段。想更进一步把 O 标签扩成实体标签配置注释里明确说你可以加标签。如果团队对发票字段已经心中有数不妨在 Pre-NER 阶段就直接分类把 RectangleLabels 改成这样RectangleLabels namelabel toNameimage choicesingle Label valueO background#FFA500/ Label valueB-Vendor background#4CAF50/ Label valueB-InvoiceNo background#2196F3/ Label valueB-Amount background#F44336/ Label valueB-Date background#9C27B0/ /RectangleLabels这样导出时每个 token 就自带实体类型省掉一轮「先全 O、再回来分类」的转换环节。这套模板做的事情不大一个图片控件、一个框选控件、一个逐区域输入框但把「OCR 结果人工验证」这件脏活变得有章法导出的 token 列表又恰好是 BIO 序列标注要的输入形态。建议你先拿 10 张发票图把建项目、导入、标注、导出全流程完整跑一遍导出 JSON 对着区域 id 检查一遍配对关系确认无误后再上量后续接 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),仅供参考