资讯动态

PaddleOCR 数据集准备完全指南:文本检测与识别数据的格式、下载与标注转换

发布时间:2026/9/10 13:02:38 来源:尧图企业网站定制
PaddleOCR 数据集准备完全指南文本检测与识别数据的格式、下载与标注转换【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCRPaddleOCR 的训练与评测高度依赖数据标注格式的正确性。本文基于 OCR datasets 官方文档系统讲解文本检测Text Detection与文本识别Text Recognition两类任务的标注文件格式、公开数据集清单、ICDAR 2015 的下载与目录组织以及官方标注转换脚本gen_label.py的用法与源码原理。读完本文你将能够把任意公开 OCR 数据集或自采数据整理为 PaddleOCR 可直接训练的标准格式并理解其背后数据加载器的解析逻辑。1. 文本检测数据集1.1 PaddleOCR 文本检测标注格式PaddleOCR 文本检测算法支持的标注文件格式为每行一条样本、两列以\t制表符分隔的文本文件Image file name Image annotation information encoded by json.dumps ch4_test_images/img_61.jpg [{transcription: MASA, points: [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]其中第一列为图像文件名相对路径或绝对路径第二列为经过json.dumps()编码的标注信息它是一个包含多个字典的列表每个字典描述一个文本框字典中的points表示文本框四个点的坐标(x, y)按左上角顶点起顺时针排列transcription表示当前文本框的文字内容。当其内容为###时表示该文本框为无效框训练时会被跳过同一张图片包含多个文本框时只需在列表中添加多个字典。从源码角度印证检测数据的解析由 ppocr/data/imaug/label_ops.py 中的DetLabelEncode完成。该算子对每行标注执行json.loads(label)解析逐一读取points与transcription并将transcription为*或###的框标记为txt_tagsTrue即ignore_tags在损失计算与评估中被忽略同时通过expand_points_num将不同点数如四边形与多边形的框补齐为相同长度便于批处理。因此如果你想在其他数据集上训练 PaddleOCR只需按照上述格式构建标注文件即可。1.2 公开检测数据集数据集图像下载PaddleOCR 格式标注下载ICDAR 2015ICDAR 官方 Robust Reading Challenge需注册后下载train_icdar2015_label.txt/test_icdar2015_label.txtPaddleOCR 官方已转换好ctw1500PaddleOCR 镜像 zip 包已包含在下载的图像 zip 中Total-TextPaddleOCR 镜像 tar 包已包含在下载的图像 zip 中说明ctw1500 与 Total-Text 的 zip 内已附带 PaddleOCR 格式的标注文件无需再单独转换。1.2.1 ICDAR 2015检测任务ICDAR 2015 数据集包含训练集 1000 张可穿戴设备拍摄与测试集 500 张可从 ICDAR 官方渠道下载需注册登录。下载时请注意Training Set Images下载内容保存为文件夹icdar_c4_train_imgsTest Set Images下载内容保存为文件夹ch4_test_images解压到工作目录假设为PaddleOCR/train_data/下再从表格中下载 PaddleOCR 格式标注文件。下载完成后PaddleOCR/train_data/应包含如下结构/PaddleOCR/train_data/icdar2015/text_localization/ └─ icdar_c4_train_imgs/ Training data of icdar dataset └─ ch4_test_images/ Testing data of icdar dataset └─ train_icdar2015_label.txt Training annotation of icdar dataset └─ test_icdar2015_label.txt Test annotation of icdar dataset1.2.2 使用 gen_label.py 转换官方标注PaddleOCR 提供了数据格式转换脚本可将 ICDAR 官方网站格式的标注转换为 PaddleOCR 格式。脚本位于 ppocr/utils/gen_label.py以训练集为例# Convert the label file downloaded from the official website to train_icdar2015_label.txt python gen_label.py --modedet --root_path/path/to/icdar_c4_train_imgs/ \ --input_path/path/to/ch4_training_localization_transcription_gt \ --output_label/path/to/train_icdar2015_label.txt参数说明来自脚本argparse定义ppocr/utils/gen_label.py--mode生成 rec 还是 det 标注取值为rec或det默认rec--root_path图像根目录仅modedet时生效--input_path待转换的输入标注rec模式为标签文件路径或输入目录det模式--output_label输出文件名默认out_label.txt。其底层实现逻辑gen_det_labelppocr/utils/gen_label.py为遍历input_dir下的每个官方 gt 文件按,拆分每行取前 8 个数值作为四个点的坐标points第 9 个字段作为transcription再以img_path \t json.dumps(label, ensure_asciiFalse)写入输出文件。这就是标注文件格式列中points与transcription字段的直接来源。2. 文本识别数据集2.1 PaddleOCR 文本识别标注格式文本识别算法支持两种数据格式lmdb格式用于训练以 LMDB 存储的数据集由 ppocr/data/lmdb_dataset.py 中的LMDBDataSet加载。该类通过load_hierarchical_lmdb_dataset递归遍历目录、以label-%09d与image-%09d为键读取标签与图像ppocr/data/lmdb_dataset.pycommon dataset普通文本格式用于训练以文本文件存储的数据集由 ppocr/data/simple_dataset.py 中的SimpleDataSet加载。如果你要使用自己的数据训练请按下述方式组织。训练集建议将训练图片放在同一文件夹中并用一个 txt 文件rec_gt_train.txt保存图片路径与标签内容如下注意默认情况下图片路径与标签以\t分隔若使用其他分隔符会导致训练报错。 Image file name Image annotation train_data/rec/train/word_001.jpg 简单可依赖 train_data/rec/train/word_002.jpg 用科技让复杂的世界更简单 ...最终训练集应具备如下文件结构|-train_data |-rec |- rec_gt_train.txt |- train |- word_001.png |- word_002.jpg |- word_003.jpg | ...测试集与训练集类似测试集也需要一个存放所有图片的文件夹test和一个rec_gt_test.txt结构如下|-train_data |-rec |-ic15_data |- rec_gt_test.txt |- test |- word_001.jpg |- word_002.jpg |- word_003.jpg | ...从源码角度看SimpleDataSet的__getitem__ppocr/data/simple_dataset.py会按delimiter默认\t可通过配置delimiter字段修改拆分每行第一列为file_name第二列为label再与data_dir拼接得到完整图像路径若文件名以http://或https://开头则直接视为远程 URL 下载且内置了每 worker 约 200 张图的 LRU 缓存与线程池预取机制ppocr/data/simple_dataset.py。此外该数据集还支持ratio_list多源采样、shuffle与随机采样控制相关配置可在 configs/rec/rec_icdar15_train.yml 中看到实际用法。2.2 公开识别数据集数据集图像下载PaddleOCR 格式标注下载en benchmarkMJ、SJ、IIIT、SVT、IC03、IC13、IC15、SVTP、CUTEDTRB 官方 LMDB 数据集LMDB 格式可直接由LMDBDataSet加载ICDAR 2015ICDAR 官方 Robust Reading Challengerec_gt_train.txt/rec_gt_test.txt多语言数据集百度网盘提取码见原文档已包含在下载的图像 zip 中2.2.1 ICDAR 2015识别任务ICDAR 2015 数据集可从官方渠道下载用于快速验证en benchmark 所需的 LMDB 格式数据集也可从上表获取随后下载 PaddleOCR 格式标注文件。PaddleOCR 同样提供转换脚本可将 ICDAR 官方网站标注转换为 PaddleOCR 支持的格式脚本位于 ppocr/utils/gen_label.py以训练集为例# Convert the label file downloaded from the official website to rec_gt_label.txt python gen_label.py --moderec --input_path{path/of/origin/label} --output_labelrec_gt_label.txt对应实现gen_rec_labelppocr/utils/gen_label.py会逐行读取原始标签去掉行尾换行与空格后按,拆分取第 1 列为图片路径、第 2 列为标签剔除标签中的引号最终以img_path \t label写入输出文件。转换后的数据格式如下图所示左侧 (a) 为原始图片右侧 (b) 为每张图片对应的 Ground Truth 文本文件。2.3 配置文件中的数据集引用示例以官方识别配置 configs/rec/rec_icdar15_train.yml 为例训练集与评估集分别通过data_dir指定图像根目录、label_file_list指定标注文件列表支持多份标注合并训练配合ratio_list控制各源采样比例Train: dataset: name: SimpleDataSet data_dir: ./train_data/ic15_data/ label_file_list: [./train_data/ic15_data/rec_gt_train.txt] ... Eval: dataset: name: SimpleDataSet data_dir: ./train_data/ic15_data label_file_list: [./train_data/ic15_data/rec_gt_test.txt]检测任务同理见 configs/det/det_mv3_db.yml训练集data_dir指向./train_data/icdar2015/text_localization/label_file_list分别指向train_icdar2015_label.txt与test_icdar2015_label.txt并在transforms中通过DetLabelEncode完成上文所述的标注解析。3. 数据存储路径PaddleOCR 训练数据的默认存储路径为PaddleOCR/train_data。如果你磁盘上已有数据集只需创建指向数据集目录的软链接即可无需移动或复制数据# linux and mac os ln -sf path/to/dataset path/to/paddle_ocr/train_data/dataset # windows mklink /d path/to/paddle_ocr/train_data/dataset path/to/dataset4. 总结与注意事项分隔符必须统一检测与识别标注文件默认均以\t分隔识别任务中若使用其他分隔符会导致训练报错无效框标记检测任务中transcription为###或*的框会被DetLabelEncode标记为 ignore训练时跳过符合 ICDAR 官方评测规则坐标顺序检测标注points必须按左上角起顺时针排列四个点坐标两种识别数据格式普通文本格式由SimpleDataSet加载LMDB 格式由LMDBDataSet加载二者在配置文件的dataset.name字段中区分官方转换脚本ppocr/utils/gen_label.py 支持--modedet/rec两种模式分别转换 ICDAR 检测官方标注与识别官方标注软链接复用数据默认数据根目录为train_data已有数据集可通过ln -sf或mklink软链接接入避免重复拷贝。按照上述格式组织好数据后即可配合 configs/det/det_mv3_db.yml 等检测配置与 configs/rec/rec_icdar15_train.yml 等识别配置直接启动训练也可以继续查阅仓库中 docs/datasets/datasets.en.md 了解其他任务表格、版面、KIE 等的数据集组织方式。【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价