PaddleOCR 常用中文数据集全解析:六大公开数据集详解与训练接入指南
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/PaddleOCRPaddleOCR 提供了丰富的中文 OCR 开源数据集资源覆盖街景文本检测、文字行识别、弯曲文本、电子印章等典型场景。本文以 docs/datasets/datasets.md 整理的数据集清单为骨架逐一解析 ICDAR2019-LSVT、ICDAR2017-RCTW-17、中文街景文字识别、中文文档文字识别、ICDAR2019-ArT、电子印章数据集等六个常用中文数据集的构成、规模与适用任务并结合仓库的数据格式约定、标签转换脚本与训练配置给出从数据获取到训练接入的完整实操路径。本文所涉及的数据集均为开源或官方竞赛数据集除直接使用公开数据外读者也可参考 数据合成工具 自行合成数据或使用 数据标注工具 标注自有数据从而构建定制化的训练语料。一、为什么要重视中文 OCR 数据集中文 OCR 与英文 OCR 的显著差异在于中文常用字符集规模庞大常用汉字数千个字形结构复杂且街景、文档、印章等场景差异极大。仅靠单一数据集很难覆盖真实业务中的全部情况。因此PaddleOCR 在docs/datasets/目录下持续维护了一份常用中文数据集清单并配套提供了 OCR 数据格式规范含文本检测、文本识别的标注格式与公开数据集下载地址。同时仓库还梳理了两条数据补充路径数据合成当开源数据不足或需要大规模扩充时可借助 Style-Text、text_renderer新旧两个版本、SynthText、TextRecognitionDataGenerator、SynthText3D、UnrealText、SynthTIGER 等合成工具详见 数据合成工具。数据标注当需要针对自有业务场景标注数据时可使用 PaddleOCR 的半自动标注工具 PPOCRLabel以及 labelImg矩形标注、roLabelImg旋转矩形标注、labelme四点/多边形/圆形标注、VoTT支持视频标注与多格式导出等工具详见 数据标注工具。数据集、合成工具与标注工具三者结合构成了 PaddleOCR 完整的数据准备生态。二、六大常用中文数据集详解2.1 ICDAR2019-LSVT大规模街景文本检测与识别ICDAR2019-LSVTLarge-scale Street View Text是专为中文街景文本设计的国际竞赛数据集是评测真实场景中文文本检测与识别能力的标杆数据。数据规模共约 45 万张中文街景图像。标注构成包含 5 万张全标注数据2 万测试 3 万训练标注了文本坐标与文本内容以及 40 万张弱标注数据仅标注文本内容不含坐标。数据特点图像采自真实街景包含店铺招牌、路牌、地标等多种自然场景文本文字密度高、背景复杂、存在多种字体与遮挡情况。下图展示了 LSVT 的全标注数据示例文本坐标 文本内容获取渠道可通过 AI Studio 数据集详情页ID177210获取弱标注数据的用途通常是以图搜文式的弱监督训练或预训练。使用提示LSVT 的 test 数据集 label 目前未开源如需评估结果需前往 ICDAR 竞赛官网对应赛道提交评测。从用途上看LSVT 的全标注部分适合作为中文文本检测Det与识别Rec的联合训练数据弱标注部分适合文本识别Rec或弱监督预训练。该数据集是 PP-OCRv2 系列检测配置 等中文模型训练中常见的数据来源之一。2.2 ICDAR2017-RCTW-17真实场景中文文本竞赛数据RCTW-17Reading Chinese Text in the Wild是 2017 年 ICDAR 举办的野外中文文本阅读竞赛数据集强调真实世界中的多形态中文文本。数据规模共 12,000 张图像。数据构成大部分图像由手机摄像头在户外采集部分为截图场景覆盖街景、海报、菜单、室内场景以及手机 App 截图等。数据特点文本排列方向多样水平、倾斜、竖排等中英文混排常见背景干扰大。获取渠道可通过 RCTW 竞赛官网的数据集页面rctw.vlrlab.net获取图片与标注。RCTW-17 适合用于验证检测模型在真实复杂场景下的鲁棒性其截图 实拍混合的构成对检测器的泛化能力提出了更高要求。2.3 中文街景文字识别数据集该数据集源自 ICDAR2019-LSVT 的行识别任务AI Studio 街景文字识别竞赛专注于文字行级识别。数据规模共 29 万张图片其中 21 万张作为训练集带标注8 万张作为测试集无标注。数据来源从街景图片中的文字行区域例如店铺标牌、地标等截取而成。预处理方式所有图像均经过预处理利用仿射变换将文字区域等比映射为高度 48 像素的图片非常适合直接输入识别模型。获取渠道可通过 AI Studio 数据集页面ID8429获取。由于图像已经统一为 48 像素高的文字行该数据集非常适合直接用于训练 文本识别模型如 CRNN、SVTR 等的中文识别分支可省去检测环节专注验证识别精度。2.4 中文文档文字识别数据集该数据集由 GitHub 开源项目 YCG09/chinese_ocr 生成是面向文档场景的合成中文识别数据。数据规模共约 364 万张图片按 99:1 划分训练集与验证集。生成方式利用中文语料库新闻 文言文通过字体、大小、灰度、模糊、透视、拉伸等变换随机生成多样性极高。字符覆盖包含汉字、英文字母、数字和标点共 5,990 个字符字符集合文件为 char_std_5990.txt。样本格式每个样本固定 10 个字符字符随机截取自语料库中的句子图片分辨率统一为 280x32。获取渠道官方提供网盘下载压缩包口令信息见原文档。该数据集的优势在于字符覆盖全面、样本量大且自带标准格式适合作为中文识别模型的通用预训练语料其固定 10 字符与 280x32 的规格也便于快速验证识别管线的正确性。2.5 ICDAR2019-ArT任意形状文本检测ArTArbitrary-Shaped Text是 ICDAR 2019 鲁棒阅读挑战赛的任意形状文本赛道覆盖水平、多方向与弯曲文本三大形态。数据规模共 10,166 张图像其中训练集 5,603 张测试集 4,563 张。数据构成由 Total-Text、SCUT-CTW1500、Baidu Curved Scene TextICDAR2019-LSVT 部分弯曲数据三部分组成文本形态涵盖水平、多方向和弯曲等多种形状。数据特点相比 ICDAR2015 仅包含水平/四边形文本ArT 的弯曲文本对检测算法的多边形回归能力提出了更高要求。获取渠道可通过 AI Studio 数据集详情页ID177206或官方下载渠道获取。ArT 是评测 DB、SAST、FCE 等任意形状文本检测算法如 det_r50_vd_sast_totaltext.yml、det_r50_vd_dcn_fce_ctw.yml的重要基准适合在四边形文本检测训练之后作为弯曲文本专项训练/微调数据。2.6 电子印章数据集电子印章数据集是面向印章弯曲文本检测与识别任务的专用合成数据集由开发者 jingsongliujing 贡献。数据规模共 10,000 张图像训练集 8,000 张测试集 2,000 张。生成方式数据集由程序合成不涉及隐私安全主要面向印章场景中常见的圆形/弧形弯曲文本。数据特点印章文本沿圆形轨道排列属于典型的曲线文本分布与街景、文档文本的形态差异明显。获取渠道可通过 AI Studio 数据集详情页ID154271获取。印章识别是票据、合同等文档智能化的常见需求。该数据集可与 文本检测配置 中的弯曲文本检测模型配合专门训练印章圆形文字的检测与识别能力。三、把数据集接入 PaddleOCR 训练拿到上述数据集后还需要按照 PaddleOCR 的数据格式约定进行组织。仓库在 docs/datasets/ocr_datasets.md 中给出了检测与识别两种任务的标注格式规范其核心规则如下。3.1 文本检测数据格式PaddleOCR 文本检测算法支持的标注文件为图片路径 标注信息的文本文件中间用\t分隔 图像文件名 json.dumps 编码的图像标注信息 ch4_test_images/img_61.jpg [{transcription: MASA, points: [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]其中points表示文本框四个点的坐标 (x, y)从左上角开始顺时针排列transcription表示当前文本框的文字内容当transcription内容为###时表示该文本框无效训练时会被跳过用于标记难以辨认或不需要学习的文本区域。这一规则在训练配置中由DetLabelEncode变换加载例如 configs/det/det_mv3_db.yml 的 Train 段即通过SimpleDataSet读取上述格式的label_file_list配合DetLabelEncode解析polys与ignore_tags。3.2 文本识别数据格式识别任务支持两种数据格式LMDB 格式以 lmdb 数据库存储图片与标签由 ppocr/data/lmdb_dataset.py 中的LMDBDataSet读取适合大规模识别基准如英文 benchmark 的 MJ/SJ 等。通用文本格式以 txt 文件记录图片路径 标签由 ppocr/data/simple_dataset.py 中的SimpleDataSet读取。以通用格式为例训练集标注文件内容如下图片路径与标签必须用\t分隔否则训练会报错 图像文件名 图像标注信息 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 | ...验证集同样需要一个rec_gt_test.txt与对应的 test 图片目录。多图同标签离线增广格式为防止相同样本在同一个 batch 中被多次采样PaddleOCR 还支持将同一标签对应的多张图片路径以列表形式写在一行训练时随机选取其中一张[11.jpg, 12.jpg] 简单可依赖 [21.jpg, 22.jpg, 23.jpg] 用科技让复杂的世界更简单 3.jpg ocr这一机制在 ppocr/data/simple_dataset.py 的_try_parse_filename_list方法中实现当路径以[开头时通过json.loads解析为列表并random.choice随机选图。3.3 官方标注转换脚本ICDAR 官网提供的标注格式与 PaddleOCR 格式不同仓库在 ppocr/utils/gen_label.py 中提供了转换脚本支持det检测与rec识别两种模式# 检测模式将官网 label 目录下的文件转换为 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 # 识别模式将官网 label 文件转换为 rec_gt_label.txt python gen_label.py --moderec --input_path{path/of/origin/label} --output_labelrec_gt_label.txt从源码看检测模式gen_det_label会遍历input_dir下的每个 label 文件把官网格式的x1,y1,x2,y2,...坐标点解析为四点坐标列表并组装为{transcription: ..., points: [...]}的 JSON 结构后写入输出文件识别模式gen_rec_label则把官网 label 中的图片,标签转换为图片\t标签形式并去除引号。3.4 数据目录组织与训练配置PaddleOCR 训练数据的默认存放路径是PaddleOCR/train_data。若磁盘上已有数据集可直接创建软链接到数据集目录# Linux / macOS 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组织好数据后在训练配置中声明数据路径即可。以检测配置 configs/det/det_mv3_db.yml 为例其 Train/Eval 段通过data_dir与label_file_list指定数据集ratio_list控制每个标注文件实际采样的比例值为 1.0 表示全量使用Train: dataset: name: SimpleDataSet data_dir: ./train_data/icdar2015/text_localization/ label_file_list: - ./train_data/icdar2015/text_localization/train_icdar2015_label.txt ratio_list: [1.0] transforms: - DecodeImage: # 加载图像 img_mode: BGR channel_first: False - DetLabelEncode: # 解析检测标注 - IaaAugment: # 图像增强翻转、仿射、缩放 - EastRandomCropData: # 随机裁剪 - MakeBorderMap: # 生成 DB 阈值图 - MakeShrinkMap: # 生成收缩图 ...ratio_list的采样逻辑在 ppocr/data/simple_dataset.py 的get_image_info_list/_generate_index_map中实现当模式为 train 或比例小于 1.0 时会按random.sample从标注文件中抽取对应比例的样本便于对多个数据集做加权混合训练。四、数据不足时的两条补充路径4.1 数据合成当开源数据集无法覆盖特定字体、版式或场景时可参考 数据合成工具 中整理的工具清单按需选用Style-TextPaddleOCR 团队维护的风格化文本合成工具可在保持语义的同时迁移字体风格text_renderer新旧两个版本基于文本渲染的合成工具支持字体、背景、噪声等参数控制SynthText / SynthText_Chinese_version经典的自然场景文本合成工具SynthText 中文版针对汉字场景做了适配TextRecognitionDataGenerator轻量的识别数据生成器可快速产出大量文字行图像SynthText3D / UnrealText基于 3D 场景渲染的文本合成方案可生成带透视与遮挡的逼真文本SynthTIGER支持多种版式与语言的大规模合成工具。4.2 数据标注针对自有业务数据数据标注工具 列出了常用标注方案PPOCRLabelPaddleOCR 官方半自动标注工具可基于已有模型预标注后人工修正显著提升标注效率labelImg经典的矩形框标注工具roLabelImg在 labelImg 基础上支持旋转矩形标注适合倾斜文本labelme支持四点、多边形、圆形等多种标注形状适合弯曲文本与任意形状检测VoTT微软出品的标注工具支持矩形/多边形图片标注与视频标注可导出多种标签格式。五、参考文献本文涉及的竞赛数据集原始论文如下供进一步研究参考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} }六、选择建议小结数据集规模任务定位典型应用ICDAR2019-LSVT45 万图5 万全标注 40 万弱标注街景文本检测 识别中文街景 OCR 预训练、弱监督ICDAR2017-RCTW-1712,000 图真实场景中文检测复杂场景鲁棒性验证中文街景文字识别29 万图21 万训练文字行识别识别模型中文分支训练中文文档文字识别约 364 万图合成文档识别识别模型通用预训练ICDAR2019-ArT10,166 图任意形状/弯曲文本检测弯曲文本算法评测电子印章数据集10,000 图8,000 训练印章弯曲文本检测票据/合同文档智能化在训练中文 OCR 模型时建议以街景类数据LSVT、RCTW-17与文档类数据中文文档文字识别混合构建训练集按需叠加电子印章等垂直场景数据并结合合成工具扩充长尾字体与版式。数据准备完成后即可参照 检测、识别 下的配置文件启动训练。【免费下载链接】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),仅供参考