十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

PaddleOCR 数据标注工具实战指南:PPOCRLabel 与 labelImg、roLabelImg、labelme 等工具的选型与格式对接

PaddleOCR 数据标注工具实战指南:PPOCRLabel 与 labelImg、roLabelImg、labelme 等工具的选型与格式对接 PaddleOCR 数据标注工具实战指南PPOCRLabel 与 labelImg、roLabelImg、labelme 等工具的选型与格式对接【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR数据标注是 PaddleOCR 从模型推理走向业务定制的起点——无论是文本检测Det、文本识别Rec还是关键信息抽取KIE、表格结构识别都需要先构造高质量的标注数据。本文以 PaddleOCR 仓库文档 docs/data_anno_synth/data_annotation.en.md中文版见 docs/data_anno_synth/data_annotation.md整理的标注工具清单为主线逐一讲解 PPOCRLabel、labelImg、roLabelImg、labelme、VoTT 的能力边界与适用场景并深入仓库源码说明这些工具产出的标注如何转换、接入 PaddleOCR 的训练数据链路。读完本文你将能够根据自己的任务类型水平文本 / 旋转文本 / 任意四边形 / 多边形 / KIE 语义标签选择最合适的标注工具并正确生成 PaddleOCR 可直接训练使用的标签文件。1. 数据标注在 PaddleOCR 中的位置PaddleOCR 的完整落地链路通常为数据采集 → 数据标注/数据合成 → 模型训练 → 模型部署。在仓库的 docs/datasets/datasets.md 中官方将数据获取路径明确划分为两条一是直接使用整理好的公开数据集二是使用合成工具自行合成与标注自己的数据其中后者的入口正是本文讲解的标注工具清单。从 ppocr/data/simple_dataset.py 等数据加载源码可以看出训练时 PaddleOCR 并不关心标注是用哪个工具画出来的它只读取统一格式的标签文件label file每一行由图片路径和标注内容组成字段之间用分隔符默认是制表符\t隔开。因此标注工具选择的本质是如何以最低成本产出符合 PaddleOCR 标签格式的数据。2. 常用标注工具一览以下是文档整理的五款常用标注工具及其核心能力对比VoTT 收录于中文版文档工具标注类型适用 OCR 任务是否半自动PPOCRLabel矩形框、四点框、KIE 语义/关系标签、表格结构检测、识别、KIE、表格识别是PaddleOCR 模型辅助预标注labelImg水平矩形框简单场景文本检测否roLabelImg旋转矩形框倾斜文本检测否labelme四点、多边形、圆形等任意形状文本区域标注否VoTT矩形、多边形、视频标注支持导出多种标签格式检测、视频场景否下面逐一展开讲解。3. PPOCRLabelPaddleOCR 官方半自动标注工具PPOCRLabel 是文档列出的第一款工具也是与 PaddleOCR 结合最紧密的标注工具其定位是PaddleOCR 半自动标注工具。在 docs/community/community_contribution.md 中可以看到该工具由社区开发者贡献是官方认可并持续维护的标注方案。半自动的核心原理先用训练好的 PaddleOCR 检测/识别模型对图像做预标注预测出文本框位置与文字内容标注人员只需在预标注结果上做校对修正而不是从零画框、逐字敲入文字从而大幅降低人工成本。这种模型预标注 人工修正的流程在数据规模较大时效率优势尤为明显。能力范围根据 docs/index/index.en.md 的记录PPOCRLabel v2 进一步扩展了标注功能覆盖文本检测标注矩形框、四点框文本识别标注直接标注文本框内的文字内容transcription不规则文本图像标注支持弯曲、倾斜等不规则文本区域表格识别标注表格结构行列划分标注关键信息抽取KIE标注语义实体标注SER与关系抽取标注RE。其中 KIE 标注的规范在仓库的 docs/version2.x/ppstructure/blog/how_to_do_kie.md 中有详细说明值得注意的要点包括SER 阶段每个文本框需要标注类别label字段可取question键、answer值或other与待抽取关键信息无关的背景文本例如身份证场景中不关注的字段统一标为otherRE 阶段每个文本行字段需要增加id与linking字段id是同一图片内文本行的唯一标识linking是列表记录字段间的 key-value 连接关系例如出生的id为 0、1996年1月11日的id为 1则两者标注为linking: [[0, 1]]若一个 value 由多个字段构成可追加连接对如[[0, 1], [0, 2]]标注粒度以文本行为单位标注无需标注单个字符的位置信息数据量参考对相对固定的场景约50 张训练图即可达到可接受效果文本检测模型则建议先标注200~300 张。说明PPOCRLabel 的完整使用教程安装、界面操作、快捷键收录在其独立的 README 中本文聚焦于它在 PaddleOCR 数据链路中的角色与标注规范。4. labelImg水平矩形标注的轻量之选labelImg 是文档列出的第二款工具定位为矩形标注工具。它以最简洁的方式完成在图像上画水平矩形框这一核心操作适合文本方向基本水平、版面规整的场景如扫描文档、印刷体图片。在 PaddleOCR 中的典型用法是配合文本检测任务对每张图片框出文字区域再通过后处理脚本为每个框补充对应的文字内容transcription生成检测标注。labelImg 的优势在于轻量、上手快、跨平台缺点是无法表达旋转角度对倾斜文本的框选精度较差。5. roLabelImg支持旋转矩形的增强版roLabelImg 是基于 labelImg 重写的标注工具核心增强是支持旋转矩形标注。它保留了 labelImg 的全部操作习惯同时允许标注框带旋转角度适合街景、海报、门头招牌等文本方向随意的场景。旋转矩形在 PaddleOCR 检测标签中以四角坐标点数组的形式表达见下文格式说明因此 roLabelImg 输出的带角度矩形可以无损映射到 PaddleOCR 的标注格式无需额外换算。6. labelme多边形与任意形状标注labelme 是文档列出的第四款工具支持四点、多边形、圆形等多种标注形状。对于文本区域呈弯曲、弧形或任意多边形轮廓的图像例如艺术字、自然场景中的不规则文本多边形标注能够比矩形框更贴近文字真实轮廓从而提升检测模型的回归精度。labelme 标注出的每个形状会生成独立的 JSON 描述包含多边形顶点坐标与标签名通常需要配合转换脚本将 JSON 汇总、转换为 PaddleOCR 的单行标签格式——这一转换逻辑与仓库 ppocr/utils/gen_label.py 中gen_det_label的处理思路一致读取每个标注文件的坐标点数组并序列化为 JSON 写入标签行。7. VoTT视频标注与多格式导出VoTT收录于中文版文档支持矩形、多边形等图片标注并支持视频标注同时提供了方便的快捷键、友好的界面以及多种标签格式导出能力。它的差异化优势在于当训练数据来自视频流如监控画面、巡检视频时可以基于视频帧序列连续标注并利用帧间插值减少重复劳动。导出的标签可通过脚本批量转换为 PaddleOCR 标签格式后接入训练。8. 标注数据如何接入 PaddleOCR 训练链路无论使用哪款工具最终都要把标注整理成 PaddleOCR 的数据加载器能够识别的标签文件。结合 ppocr/data/simple_dataset.py 与 ppocr/utils/gen_label.py 的源码可以确认如下两个核心格式8.1 文本识别Rec标注格式识别标签的每一行格式为由gen_rec_label生成图片路径\t文字内容例如train/word_1.jpg 欢迎使用飞桨 train/word_2.jpg PaddleOCR8.2 文本检测Det标注格式检测标签的每一行格式为由gen_det_label生成ppocr/utils/gen_label.py图片路径\t[{transcription: 文字内容, points: [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]}, ...]其中points是四角坐标的二维数组支持四点框也兼容旋转矩形、多边形的关键点表达transcription为框内文字若该框无需参与识别可置为空字符串。同一行可包含多个文本框对象即同一图片的多个标注框序列化在同一个 JSON 数组中。8.3 用 gen_label.py 统一转换格式仓库提供了标签格式转换脚本 ppocr/utils/gen_label.py用法如下# 生成识别标签input_path 为待转换的原始标签文件 python ppocr/utils/gen_label.py --mode rec --input_path raw_rec.txt --output_label rec_label.txt # 生成检测标签input_dir 为存放各图片标注文件的目录 python ppocr/utils/gen_label.py --mode det --root_path ./images --input_dir ./det_labels --output_label det_label.txt8.4 在训练配置中声明标签文件生成标签后在训练配置如configs/det/、configs/rec/下的 YAML 文件中通过dataset段声明数据来源与 ppocr/data/simple_dataset.py 中的解析逻辑一一对应dataset: data_dir: ./train_images # 图片根目录 label_file_list: # 标签文件列表可配置多个实现多数据集混合训练 - ./train_data/det_label.txt ratio_list: [1.0] # 各数据集的采样比例 delimiter: \t # 标签分隔符默认制表符其中delimiter默认值为\t与gen_label.py生成的格式保持一致label_file_list支持传入多个文件并在ratio_list中指定采样比例方便叠加公开数据与自标注数据共同训练。9. 标注工作流建议综合文档与仓库实践一个可落地的标注工作流如下任务拆解明确要训练的是检测、识别还是 KIE 模型从而决定标注维度仅框、框文字、还是框文字语义类别关系工具选型水平规整文本优先 labelImg倾斜文本用 roLabelImg任意形状文本用 labelme需要模型预标注提效、或涉及 KIE/表格任务时直接用 PPOCRLabel视频数据考虑 VoTT批量产出将各工具导出的标注统一转换为 PaddleOCR 标签格式可参考gen_label.py的转换逻辑数据量控制参考仓库文档建议相对固定的场景下 KIE 约 50 张、检测约 200~300 张即可起步后续按模型效果迭代扩充。10. 小结数据标注是 PaddleOCR 定制化落地的数据引擎而本文讲解的五款工具恰好覆盖了从水平矩形、旋转矩形、任意多边形到 KIE 语义标注的完整谱系PPOCRLabel 凭借半自动预标注与 KIE/表格能力适合作为主力工具labelImg 系列适合快速起步的简单场景labelme 解决不规则文本VoTT 补充视频标注场景。标注完成后通过gen_label.py或等价脚本统一为图片路径\t标注JSON的标签格式并在训练配置的label_file_list/data_dir中声明即可无缝进入 PaddleOCR 的训练链路。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表