ARTICLE DETAIL

资讯详情

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

垂类与多语言 OCR 数据集实战:PaddleOCR 中的车牌、银行卡、验证码与 MLT 多语言数据方案

垂类与多语言 OCR 数据集实战:PaddleOCR 中的车牌、银行卡、验证码与 MLT 多语言数据方案 垂类与多语言 OCR 数据集实战PaddleOCR 中的车牌、银行卡、验证码与 MLT 多语言数据方案【免费下载链接】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 官方整理的常用垂类与多语言 OCR 数据集覆盖中国城市车牌CCPD、银行信用卡、验证码Captcha与多语言场景文本检测识别MLT四类典型场景逐一说明数据来源、数据规模、子集划分、标注内容与下载方式并进一步结合仓库源码讲解这些数据集如何按 PaddleOCR 的标注规范接入训练流程帮助读者完成从拿到数据集到跑通检测/识别训练的完整落地。一、为什么需要垂类与多语言 OCR 数据集通用 OCR 数据集如 ICDAR 2015 等能覆盖日常印刷体与自然场景文本但在车牌、银行卡、验证码这类字符集受限、版面高度固定的垂类场景以及拉丁、阿拉伯、西里尔、天城文等多语言文字场景中通用模型的字符字典与图像分布往往不匹配识别精度会明显下降。因此需要专门的垂类/多语言数据集进行微调或从零训练。PaddleOCR 在 docs/datasets 目录下持续整理常用公开数据集本文所依据的 vertical_and_multilingual_datasets.en.md对应中文版 vertical_and_multilingual_datasets.md即属于其中专门面向垂类场景与多语言场景的篇章文档明确说明该列表持续更新中欢迎贡献数据集。四类数据集的核心定位如下数据集场景定位数据类型CCPD 中国城市车牌车牌检测 识别真实采集图片 标注银行信用卡卡面信息检测/识别真实卡面图片 Excel 标注Captcha 验证码合成验证码识别工具合成无固定下载MLT 多语言多语言检测 语种识别10 种语言真实场景图片二、中国城市车牌数据集CCPD2.1 数据来源与规模CCPDChinese City Parking Dataset是中文车牌检测与识别领域使用最广泛的公开数据集之一。据 vertical_and_multilingual_datasets.en.md 记载其包含超过 25 万张中国城市车牌图片以及对应的车牌检测框与识别文本标注。2.2 九大子集划分CCPD 的一大特点是按拍摄场景与干扰条件对图片进行了细粒度划分便于针对性地评估模型在各类退化条件下的鲁棒性子集名称场景含义CCPD-Base通用车牌图片基础子集CCPD-DB车牌区域亮度偏亮、偏暗或明暗不均CCPD-FN车牌离摄像头距离偏远或偏近CCPD-Rotate车牌带旋转水平 20°~50°竖直 -10°~10°CCPD-Tilt车牌带旋转水平 15°~45°竖直 15°~45°CCPD-Blur镜头抖动导致的车牌模糊CCPD-Weather雨天、雪天或雾天拍摄CCPD-Challenge检测识别任务中最具挑战性的图片子集CCPD-NP未安装车牌的新车图片负样本CCPD 中国城市车牌数据集示例2.3 下载方式文档提供两个官方分发渠道均可获取完整 CCPD 数据集百度云网盘提取码 hm0UGoogle Drive 网盘。2.4 在 PaddleOCR 中的典型应用车牌识别的标准技术路线是检测 识别两级流水线先用文本检测模型定位车牌区域再用文本识别模型输出车牌字符序列。PaddleOCR 对应的推理工具分别是 tools/infer_det.py 与 tools/infer_rec.py。由于 CCPD 自带车牌框与车牌文本标注可以直接组织成 PaddleOCR 的检测/识别标注格式详见本文第六节用于微调 PP-OCRv4/PP-OCRv5 系列模型或训练专用车牌模型。三、银行信用卡数据集3.1 数据来源与组成银行信用卡数据集来源于和鲸社区公开数据训练数据共分为三类招行样卡数据含卡面图片及标注数据共618 张图片单字符数据含图片及标注数据共37 张图片其他银行卡片仅包含卡面无更细致信息共50 张图片。3.2 标注内容该数据集的标注信息存储在 Excel 表格中与卡面一一对应。以文档中的 demo 图片为例其标注字段包括前 8 位卡号62257583卡片种类本行卡有效期结束07/41卡用户拼音MICHAEL银行信用卡数据集示例3.3 下载方式数据以cmb2017-2.zip压缩包形式提供可直接下载获取。3.4 在 PaddleOCR 中的典型应用银行卡信息识别是典型的结构化信息抽取场景需要从卡面中定位并识别卡号数字串、有效期MM/YY 格式与持卡人姓名拼音等字段。实践中可将卡面裁剪为单行文本区域后复用 PaddleOCR 的文本识别模型或将整卡作为检测目标训练专门的字段检测模型再配合规则或后处理完成字段归类。四、验证码数据集Captcha4.1 数据来源与合成原理验证码数据集并非真实采集而是基于captcha 合成工具包按需生成用户输入任意文本工具输出对应的验证码图片。由于验证码种类繁多、干扰样式各异合成数据是训练验证码识别模型的最高效途径——可以无限生成、批量控制字体/干扰/背景参数且无需人工标注。验证码合成数据集示例4.2 下载说明文档明确说明该数据集由程序生成没有下载地址。使用者需要自行运行合成工具按目标验证码的字符集与干扰风格生成训练集。4.3 在 PaddleOCR 中的典型应用合成验证码图片天然是单行文本图像 标签的结构与 PaddleOCR 文本识别数据格式完全兼容只需将每张验证码图片与其对应文本逐行写入标注文件即可训练。这也与 PaddleOCR 生态中合成数据 真实数据混合训练的常见实践一致可参见 docs/data_anno_synth/data_synthesis.md 中对数据合成的整体介绍。五、多语言数据集MLTMulti-lingual scene text detection and recognition5.1 数据来源与任务构成MLT 数据集来自 ICDAR 系列多语言场景文本挑战赛ICDAR RRC 平台同时包含语种识别与文本检测两个任务是评估多语言 OCR 能力的标准基准之一。5.2 数据规模检测任务训练集共10 000 张图片涵盖10 种语言每种语言 1 000 张训练图片测试集 10 000 张。识别任务训练集包含111 998 个样本。5.3 下载方式训练集规模较大官方提供分两部分下载需要在 ICDAR RRC 官网注册账号后方可下载。5.4 与 PaddleOCR 多语言能力的衔接MLT 覆盖的多语言场景与 PaddleOCR 内置的多语言识别支持高度对应。仓库中 configs/rec/multi_language 目录预置了多套语言识别配置并提供了 generate_multi_language_configs.py 脚本可一键生成指定语言的训练配置。脚本内置的语言分组见 generate_multi_language_configs.py包括语言分组覆盖语言节选latin拉丁法语、德语、西班牙语、葡萄牙语、越南语等 40 语种arabic阿拉伯阿拉伯语、波斯语、维吾尔语、乌尔都语cyrillic西里尔俄语、白俄罗斯语、保加利亚语、乌克兰语等devanagari天城文印地语、马拉地语、尼泊尔语等对应地ppocr/utils/dict 目录存放了各语言的字符字典文件如latin_dict.txt、arabic_dict.txt、cyrillic_dict.txt、devanagari_dict.txt、japan_dict.txt、korean_dict.txt等训练时通过character_dict_path与character_type配置项指定。六、把这些数据集接入 PaddleOCR标注格式与目录组织拿到上述数据集后关键在于按 PaddleOCR 要求的标注格式整理数据。以下规范摘自同目录下的 ocr_datasets.en.md中文版 ocr_datasets.md是所有自定义数据集接入的统一标准。6.1 文本检测标注格式检测标注文件为纯文本每行由图片文件名与标注信息组成两者以\t分隔。标注信息是json.dumps()编码后的列表列表内每个字典对应一个文本框图片文件名\t图片标注信息json.dumps 编码 ch4_test_images/img_61.jpg [{transcription: MASA, points: [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]关键约定points表示文本框四个点的坐标(x, y)按左上角起顺时针排列transcription表示文本框内容当其为###时表示该框为无效文本框训练时将被跳过适用于标注困难或模糊的文本使用其他数据集训练时需按上述格式自建标注文件。PaddleOCR 还提供官方格式转换脚本 ppocr/utils/gen_label.py可将 ICDAR 官方标注一键转换为 PaddleOCR 格式# 将官网下载的标注转换为 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.txt6.2 文本识别标注格式识别训练数据推荐将图片放在同一目录并用 txt 文件如rec_gt_train.txt逐行记录图片路径 标签默认以\t分隔若使用其他分隔符会导致训练报错图片文件名\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标注文件。识别数据加载分别由 ppocr/data/lmdb_dataset.pylmdb 格式与 ppocr/data/simple_dataset.py文本标注格式实现可通过配置文件中的dataset.name指定。6.3 数据存放目录PaddleOCR 训练数据的默认存放路径为PaddleOCR/train_data。若数据集已存在于磁盘其他位置可创建软链接指向该目录# linux / 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七、多语言识别训练配置的生成与使用对于 MLT 等多语言数据集可直接借助 generate_multi_language_configs.py 快速生成训练配置。该脚本以 rec_multi_language_lite_train.yml 为基座MobileNetV3 CTCHead 的轻量 CRNN 结构支持以下参数参数作用-l / --language指定语言类型如it、ru、ar、hi脚本自动归并到 latin/arabic/cyrillic/devanagari 分组并匹配字典--train修改训练集标注文件路径--val修改评估集标注文件路径--dict修改字符字典路径--data_dir修改数据集根目录例如生成意大利语训练配置cd configs/rec/multi_language python generate_multi_language_configs.py -l it脚本会自动完成四件事见 generate_multi_language_configs.py将character_dict_path指向ppocr/utils/dict/{language}_dict.txt将save_model_dir设为./output/rec_{language}_lite将训练/评估标注文件分别设为train_data/{language}_train.txt与train_data/{language}_val.txt将character_type设为对应语言并校验字典文件存在。随后即可用 tools/train.py 启动训练用 tools/infer_rec.py 进行推理验证。该机制意味着只要把 MLT 等数据按第六节的识别标注格式整理为{language}_train.txt/{language}_val.txt即可复用同一套多语言训练管线。八、小结本文基于 PaddleOCR 官方垂类与多语言数据集文档完整梳理了 CCPD 中国城市车牌、银行信用卡、Captcha 验证码与 MLT 多语言数据集四类数据资源的规模、结构、标注与获取方式并衔接仓库源码讲解了数据集接入 PaddleOCR 的标注规范、目录组织与多语言配置生成方法。四类数据分别对应车牌识别、卡面结构化信息抽取、验证码识别、多语言场景文本识别四种典型落地场景读者可据此快速选定数据、组织标注并复用 PaddleOCR 的检测/识别训练与推理管线。相关数据集列表在仓库中持续更新更多公开数据集可继续关注 docs/datasets 目录下的其他章节。【免费下载链接】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),仅供参考
返回列表