PaddleOCR 中文数据集完全指南:六大常用数据集详解与训练数据准备实战 📅 发布时间:2026/9/11 20:19:41 👁 浏览次数: 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/PaddleOCR本篇技术指南以 PaddleOCR 官方整理的中文数据集清单为核心系统讲解 ICDAR2019-LSVT、RCTW-17、中文街景/文档文字识别、ICDAR2019-ArT、电子印章六大常用数据集的内容构成与获取方式并结合仓库源码深入拆解检测、识别任务的标注格式、数据转换脚本与训练配置帮助读者在真实项目中完成从拿到数据到跑通训练的完整链路。1. 数据集三条获取路径总览在 PaddleOCR 的实践中训练数据通常来自三条路径使用开源数据集直接使用社区整理好的公开中文数据集这是最省时省力的方式本文第 2 节将逐一介绍数据合成使用合成工具基于语料库自动生成海量带标注样本可参考仓库中的数据合成工具人工标注对自有业务数据票据、证件、菜单等进行标注可参考仓库中的数据标注工具。实际工程中三条路径往往组合使用先以开源合成数据预训练模型再用业务标注数据微调以达到最优效果。2. 六大常用中文数据集详解以下数据集是 PaddleOCR 整理维护的常用中文 OCR 数据集覆盖街景、文档、弯曲文本、印章等典型场景社区持续更新中。2.1 ICDAR2019-LSVT街景文字检测数据来源百度 AI Studio 数据集社区数据简介共约45 万张中文街景图像包含两大部分5 万张全标注数据2 万测试 3 万训练标注内容为文本坐标 文本内容40 万张弱标注数据仅标注文本内容无坐标可用于训练基于 CTC 的文本识别模型说明其中 test 数据集的 label 目前没有开源如需评估结果可去 ICDAR 官方竞赛官网提交结果。全标注与弱标注数据的形态对比如下图所示(a) 全标注数据文本坐标 文本内容(b) 弱标注数据仅文本内容从使用场景看LSVT 全标注数据适合文本检测模型如 DB、EAST 系列的训练与评测弱标注数据则非常适合作为文本识别模型的训练语料40 万张的规模足以支撑识别模型的充分训练。2.2 ICDAR2017-RCTW-17野外中文场景文字数据简介共包含12,000 张图像大部分图片通过手机摄像头在野外采集部分为屏幕截图。图片覆盖街景、海报、菜单、室内场景以及手机应用程序截图等多种真实场景数据特点图像来源设备、拍摄角度、光照条件差异大场景复杂度高适合验证检测模型的泛化能力数据来源RCTW 官方数据集网站。2.3 中文街景文字识别LSVT 行识别任务数据简介即 ICDAR2019-LSVT 的行识别任务共包括29 万张图片其中 21 万张作为训练集带标注8 万张作为测试集无标注数据形态数据采自中国街景并由街景图片中的文字行区域例如店铺标牌、地标等截取而成。所有图像都经过预处理将文字区域利用仿射变换等比映射为一张高为 48 像素的图片典型样本(a) 标注魅派集成吊顶(b) 标注母婴用品连锁该数据集与 LSVT 全标注数据互补行识别任务聚焦文字行级别的识别输入为已经裁剪好的文字行图片可直接用于训练识别模型由于图片高度统一为 48 像素也便于与识别模型的输入尺寸设计对齐例如 PP-OCRv4 识别模型默认训练尺寸为[3, 48, 320]。2.4 中文文档文字识别大规模合成数据集数据简介共约364 万张图片按照 99:1 划分成训练集和验证集生成方式数据利用中文语料库新闻 文言文通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成字符集合包含汉字、英文字母、数字和标点共5990 个字符样本规格每个样本固定 10 个字符字符随机截取自语料库中的句子图片分辨率统一为280x32典型样本该数据集是典型的程序合成数据说明合成路线在中文 OCR 中完全可行——这正是第 1 节提到的数据合成路径的价值所在只要语料与渲染参数控制得当可以低成本获得千万级训练样本。2.5 ICDAR2019-ArT任意形状文本数据简介共包含10,166 张图像训练集 5603 图测试集 4563 图构成来源由 Total-Text、SCUT-CTW1500、Baidu Curved Scene TextICDAR2019-LSVT 部分弯曲数据三部分组成文本形态包含水平、多方向和弯曲等多种形状的文本是训练任意形状文本检测算法如 DRRG、FCE、SAST 等的核心数据2.6 电子印章数据集数据简介共包含10,000 张图像训练集 8000 图测试集 2000 图数据特点数据集由程序合成并不涉及隐私安全主要用于印章弯曲文本的训练与检测贡献者由开发者 jingsongliujing 贡献。该数据集对政务、金融等大量处理印章类文档的垂直场景非常有价值且合成方式规避了真实印章数据的隐私合规问题。3. 标注与合成工具链3.1 数据标注工具PPOCRLabelPaddleOCR 官方的半自动标注工具先用已有模型对图片进行预标注人工仅需修正错误框与文字可大幅提升标注效率labelImg经典的矩形框标注工具界面简洁、上手快roLabelImg基于 labelImg 重写的标注工具支持旋转矩形标注适合倾斜文本场景labelme支持四点、多边形、圆形等多种标注形式适合弯曲文本与不规则区域的标注Vott微软开源的标注工具支持矩形、多边形等图片标注也支持视频标注快捷键友好、界面美观并可导出多种标签格式。3.2 数据合成工具当开源数据不足或需要定向生成某类样本如特定字体、特定版面时可使用以下主流合成工具详见仓库中的数据合成工具Style-TextPaddleOCR 社区维护的风格化文本合成工具可从少量风格样本迁移文字风格text_renderer新旧两个版本基于真机渲染管线合成文本图像适合中文等多语种SynthText 及其中文版本在自然场景图像上自动合成文字生成图 文本实例训练对TextRecognitionDataGenerator轻量级文字图像生成器可灵活控制字体、背景与干扰SynthText3D / UnrealText基于 3D 引擎与场景渲染生成带透视、光照变化的逼真文本SynthTIGERClova AI 开源的合成数据生成框架支持组件化流水线。合成数据可按照第 4、5 节介绍的格式直接生成对应的标注文件无缝接入 PaddleOCR 训练流程。4. 文本检测数据格式与数据集准备4.1 检测标注格式PaddleOCR 的文本检测算法支持如下标注文件格式图像文件名与标注信息之间用\t分隔 图像文件名 json.dumps编码的图像标注信息 ch4_test_images/img_61.jpg [{transcription: MASA, points: [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]其中json.dumps编码前的标注信息是包含多个字典的 listpoints表示文本框四个点的坐标 (x, y)从左上角的点开始顺时针排列transcription表示当前文本框的文字当其内容为###时表示该文本框无效训练时会自动跳过。如果要在 PaddleOCR 未提供的数据集上训练可以严格按照上述形式构建标注文件。4.2 官方转换脚本 gen_label.pyPaddleOCR 提供了数据格式转换脚本可将官网原始 label 转换为上述支持格式工具位于ppocr/utils/gen_label.py。以 ICDAR 2015 检测训练集为例# 将官网下载的标签文件转换为 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从源码看gen_label.pygen_det_label会遍历input_dir下的每个标签文件解析每行的 8 个坐标点与文本内容组装成{transcription: ..., points: [...]}字典列表最后用json.dumps(label, ensure_asciiFalse)写入输出文件——这与第 4.1 节的格式定义完全对应。4.3 数据集目录组织解压数据集并下载标注文件后建议按如下方式组织目录/PaddleOCR/train_data/icdar2015/text_localization/ └─ icdar_c4_train_imgs/ icdar 2015 数据集的训练数据 └─ ch4_test_images/ icdar 2015 数据集的测试数据 └─ train_icdar2015_label.txt icdar 2015 数据集的训练标注 └─ test_icdar2015_label.txt icdar 2015 数据集的测试标注5. 文本识别数据格式与数据集准备5.1 两种支持的数据格式PaddleOCR 的文本识别算法支持两种数据格式lmdb 格式用于训练以 lmdb 存储的数据集由 lmdb_dataset.py 读取。从源码看LMDBDataSet.load_hierarchical_lmdb_datasetppocr/data/lmdb_dataset.py会递归遍历data_dir下的所有子目录将每个不含子目录的 lmdb 环境作为一路数据集注册读取其num-samples统计样本数dataset_traversal则汇总各 lmdb 子库的样本量并建立(子库编号, 子库内序号)的索引表实现多 lmdb 库的层次化加载通用数据格式用于训练以文本文件存储的数据集由 simple_dataset.py 读取即一张图片 一行\t分隔的标注。5.2 通用格式训练集准备建议将训练图片放入同一文件夹并用一个 txt 文件如rec_gt_train.txt记录图片路径和标签注意txt 文件中默认请将图片路径和图片标签用\t分割如用其他方式分割将造成训练报错。这一约定在源码中也有体现SimpleDataSet构造时会读取dataset_config.get(delimiter, \t)simple_dataset.py默认分隔符即制表符。 图像文件名 图像标注信息 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 | ...5.3 多图同标签离线增广格式除上述单张图像一行的格式外PaddleOCR 还支持对离线增广后的数据进行训练。为防止相同样本在同一个 batch 中被多次采样可将相同标签对应的图片路径写在一行中以列表形式给出训练时 PaddleOCR 会随机选择列表中的一张图片。对应标注格式如下[11.jpg, 12.jpg] 简单可依赖 [21.jpg, 22.jpg, 23.jpg] 用科技让复杂的世界更简单 3.jpg ocr上述示例中11.jpg 和 12.jpg 的标签相同都是简单可依赖训练时对该行标注会随机选择其中一张图片。该逻辑对应源码中的_try_parse_filename_listsimple_dataset.py当文件名以[开头时用json.loads解析为列表并random.choice随机取一张。5.4 验证集准备验证集与训练集类似需要一个包含所有图片的文件夹test和一个rec_gt_test.txt|-train_data |-rec |- rec_gt_test.txt |- test |- word_001.jpg |- word_002.jpg |- word_003.jpg | ...5.5 识别标签转换脚本识别任务同样可以使用gen_label.py转换官方标签对应源码中的gen_rec_labelgen_label.py其将原始 label 每行的img_path,label按逗号切分后重组为img_path \t label的制表符分隔格式# 将官网下载的标签文件转换为 rec_gt_label.txt python gen_label.py --moderec --input_path{path/of/origin/label} --output_labelrec_gt_label.txt6. 从数据集到训练配置源码级解读准备好数据集后需要在训练配置中声明数据路径与读取方式。以 configs/rec/PP-OCRv4/PP-OCRv4_mobile_rec.yml 为例其 Train/Eval 段中与数据相关的核心配置为Train: dataset: name: MultiScaleDataSet ds_width: false data_dir: ./train_data/ ext_op_transform_idx: 1 label_file_list: - ./train_data/train_list.txt transforms: - DecodeImage: img_mode: BGR channel_first: false - RecConAug: prob: 0.5 ext_data_num: 2 image_shape: [48, 320, 3] max_text_length: *max_text_length - RecAug: - MultiLabelEncode: gtc_encode: NRTRLabelEncode - KeepKeys: keep_keys: - image - label_ctc - label_gtc - length - valid_ratio loader: shuffle: true batch_size_per_card: *bs drop_last: true num_workers: 8 Eval: dataset: name: SimpleDataSet data_dir: ./train_data label_file_list: - ./train_data/val_list.txt结合 simple_dataset.py 的源码理解这些字段的关键点name: SimpleDataSet / MultiScaleDataSetMultiScaleDataSet继承自SimpleDataSetsimple_dataset.py在读取样本后按MultiScaleSampler给定的宽高尺度动态 resize支持多尺度训练data_dir图片根目录读取样本时通过os.path.join(self.data_dir, file_name)拼接完整图片路径simple_dataset.py因此标注文件中记录的是相对data_dir的路径label_file_list标注文件列表支持传入多个文件以混合多路数据源SimpleDataSet会为每路标注文件分配ratio_list中的采样比例实现多数据源按比例采样simple_dataset.pydelimiter标注文件分隔符默认\t对应第 5.2 节的格式约定URL 图片支持从源码看SimpleDataSet还支持标注文件首列为http:///https://URL 的远程图片配合 worker 进程内的 LRU 缓存与线程池预取simple_dataset.py可直接用网络图片训练节省本地存储。此外仓库根目录下还维护了一份更全面的数据集资料页 docs/datasets/ocr_datasets.md整理了 ICDAR 2015、CTW1500、Total-Text、TD-TR 等检测数据集与 DTRB、ICDAR 2015、多语言识别数据集并提供了 PaddleOCR 转换后的标注文件下载方式可与本文的中文数据集清单互补使用。7. 数据存放路径与软链接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/dataset参考文献ICDAR 2019-LSVT Challengearticle{sun2019icdar, title{ICDAR 2019 Competition on Large-scale Street View Text with Partial Labeling--RRC-LSVT}, author{Sun, Yipeng and Ni, Zihan and Chng, Chee-Kheng and Liu, Yuliang and Luo, Canjie and Ng, Chun Chet and Han, Junyu and Ding, Errui and Liu, Jingtuo and Karatzas, Dimosthenis and others}, journal{arXiv preprint arXiv:1909.07741}, year{2019} }ICDAR 2019-ArT Challengearticle{chng2019icdar2019, title{ICDAR2019 Robust Reading Challenge on Arbitrary-Shaped Text (RRC-ArT)}, author{Chng, Chee-Kheng and Liu, Yuliang and Sun, Yipeng and Ng, Chun Chet and Luo, Canjie and Ni, Zihan and Fang, ChuanMing and Zhang, Shuaitao and Han, Junyu and Ding, Errui and others}, journal{arXiv preprint arXiv:1909.07145}, year{2019} }【免费下载链接】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),仅供参考