ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Label Studio OCR 发票模板实战:搭建 BIO 预标注流水线的完整指南

Label Studio OCR 发票模板实战:搭建 BIO 预标注流水线的完整指南 Label Studio OCR 发票模板实战搭建 BIO 预标注流水线的完整指南【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio发票上的字段怎么从一张图片里变成 NER 模型能吃的 token 序列答案就在 Label Studio OCR 发票模板「OCR Invoices Pre-NER BIO Format」RectangleLabels 框 tokenperRegion 的 TextArea 逐框校对转写所有 token 以 O 状态交出进入下一阶段的实体标注。BIO 预标注管线全景从发票图片到 token 序列四步数据流每一步都有明确的责任方OCR 阶段OCR 模型负责对发票图片做文本检测加识别得到一组带坐标的 token作为预标注。Pre-NER 阶段标注平台 人工负责Label Studio 里每个 token 是图上一个矩形初始统一标O人工只干两件事——核对框位置、校对转写文本。导出标注平台负责Export 输出每个矩形「坐标 文本 O」的记录是标准标注结果 JSON。NER 阶段下游 NER 负责token 按阅读顺序排成序列打B-/I-标签训练发票字段抽取模型。说白了模型管找得到、认得出人管校得准BIO 约定管喂得动训练。最小可运行配置与 RectangleLabels 参数对照下面这段配置做一件事展示发票图片用带 O 标签的矩形框住每个 OCR token再给每个矩形绑定一个转写校对框。新建项目后把它粘进 Labeling Setup选 Custom template即可运行与仓库中的 label_studio/annotation_templates/community-contributions/ocr-invoices-pre-ner-bio-format/config.yml 完全一致——外层 YAML 只是模板展示用的包装你粘贴的是里面的 XML。View !-- 待标注发票图片数据取任务 $image 字段 -- Image nameimage value$image zoomControltrue/ !-- 框选控件接收 OCR 模型的 rectanglelabels 预检测 -- RectangleLabels namelabel toNameimage choicesingle !-- 默认只输出 O 类可自行增加 B-/I- 标签 -- Label valueO background#FFA500/ /RectangleLabels !-- 逐矩形转写框每个框对应一个输入框用于校对 OCR 文本 -- TextArea nametranscription toNameimage perRegiontrue editabletrue rows1 requiredtrue placeholderType or correct OCR text…/ /View参数类型本文取值为什么这么取valuestring$image任务 data 只需一个 image 字段URL、本地路径都认zoomControlbooleantrue发票字号小放大才能看清金额、日期再校namestringlabel与 OCR 预标注的 from_name 对齐预检测才会自动落框choicesingle / multiplesingle一个 token 只对应一个标签O 阶段不需要多选Label valuestringOBIO 的 Outside所有 token 以实体外状态进入 NER 阶段perRegionbooleantrue每个矩形绑定一个转写框逐框校对的根基editablebooleantrue提交后仍可改文本校错不用删框重来rowsnumber1单行框直接按 Enter 提交校对节奏最快requiredbooleantrue每个框强制填写防止漏 tokenplaceholderstringType or correct OCR text…提示校对而非输入降低标注者理解成本三个控件的toName全部指向image矩形和转写因此绑定到同一个区域——这是整条数据链能对上号的唯一约定。选RectangleLabels而不是无标签的Rectangle因为预标注结果必须携带O标签下游脚本才认得出这是 Pre-NER 阶段的 token。同理转写用TextArea而不是LabelsOCR 文本是自由文本不是枚举选项。只有一个O标签是刻意设计它把识别和分类拆成两个阶段每阶段只管一件事错误好定位。如果你想一步到位直接标实体后面踩坑部分会讲怎么加标签。如果上游 OCR 已经有检测结果把它按标注结果结构塞进任务的predictions打开页面时矩形就自动落好了人工只做校对——这正是 Pre-NER 省人力的地方。perRegion 转写校对的标注操作与数据导出标注者实际操作序列任务导入很简单每个任务的data只要一个字段{ data: { image: invoices/0001.png } }标注者在界面里按这个顺序走在 token 上画矩形发票号、日期、金额各一个框框自动带上 O 标签。交互细节小字号发票先用 zoomControl 放大到区域再画不然框会漂。点选矩形下方转写框自动关联到该区域核对 OCR 文本修正0/O、1/l这类典型误识。按 Enter 提交这个框的转写不用点 Add——这就是rows1的福利一行一按手速拉满。继续下一个 token全部校完按 CtrlEnterMac 是 CmdEnter提交整条标注。导出 JSON 结构导出的每条 result 长这样{ id: 8f3a1c2e-4b6d-4f0a-9c1e-7d2b5a8e3f10, result: [ { id: region-1, type: rectanglelabels, from_name: label, to_name: image, original_width: 1200, original_height: 900, image_rotation: 0, value: { x: 8.32, y: 12.41, width: 23.5, height: 4.2, rectanglelabels: [O], rotation: 0 } }, { id: region-1, type: textarea, from_name: transcription, to_name: image, value: { text: [Invoice No. 1024] } } ] }同一个idregion-1的两条记录对应同一个矩形一条给坐标和标签一条给转写文本这个 id 就是聚合成 token 列表的钥匙。x/y/width/height是相对原图的 0–100 百分比不是像素值original_width和original_height提供换算系数不同分辨率的发票导出后都能统一解析。衔接下游训练按 id 聚合并按坐标排阅读序就得到一串「文本 坐标 O」的 token 序列这正是 BIO 序列标注的输入——同目录的 ner-tagging-invoices-bio-format 模板就是为这一步准备的。踩坑与扩展坐标不是像素导出里 x/y 是 0–100 百分比直接当像素喂模型全框偏乘original_width/original_height换算回去。预标注不显示上游 OCR 输出的from_name与label对不上、或结构不是 rectanglelabels矩形就不会自动落把字段名对齐控件名即可。图片加载不出来value$image读的是任务 data 里的image字段导入时字段名写成别的页面直接空白改字段名或改$变量二选一。想一步标出实体给 RectangleLabels 直接加标签如Label valueB-Vendor background#4CAF50/省掉二次标注想保留先框后分类就维持现状。三个控件、一套 O 约定、一条能直接喂 NER 的 token 序列。现在把配置贴进项目、导入第一批发票图转写校对管线今天就跑起来。【免费下载链接】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),仅供参考
返回列表