当前位置: 首页 > news >正文

【PaddleOCR】OCR文本检测与文本识别数据集整理,持续更新......

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【PaddleOCR】OCR文本检测与文本识别数据集整理,持续更新......

    • 1. 文本检测
      • 1.1 PaddleOCR 文字检测数据格式
      • 1.2 公开数据集
        • 1.2.1 ICDAR 2015
    • 2. 文本识别
      • 2.1 PaddleOCR 文字识别数据格式
        • 训练集
        • 验证集
      • 2.2 公开数据集
        • 2.1 ICDAR 2015
    • 3. 数据存放路径

  这里整理了OCR中常用的公开数据集,持续更新中,欢迎各位小伙伴贡献数据集~

1. 文本检测

1.1 PaddleOCR 文字检测数据格式

  PaddleOCR 中的文本检测算法支持的标注文件格式如下,中间用"\t"分隔:

" 图像文件名                    json.dumps编码的图像标注信息"
ch4_test_images/img_61.jpg    [{"transcription": "MASA", "points": [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]

  json.dumps编码前的图像标注信息是包含多个字典的list,字典中的 points 表示文本框的四个点的坐标(x, y),从左上角的点开始顺时针排列。
  transcription 表示当前文本框的文字,当其内容为“###”时,表示该文本框无效,在训练时会跳过。

  如果您想在我们未提供的数据集上训练,可以按照上述形式构建标注文件。

1.2 公开数据集

数据集名称图片下载地址PaddleOCR 标注下载地址
ICDAR 2015https://rrc.cvc.uab.es/?ch=4&com=downloadstrain / test
ctw1500https://paddleocr.bj.bcebos.com/dataset/ctw1500.zip图片下载地址中已包含
total texthttps://paddleocr.bj.bcebos.com/dataset/total_text.tar图片下载地址中已包含
td trhttps://paddleocr.bj.bcebos.com/dataset/TD_TR.tar图片下载地址中已包含
1.2.1 ICDAR 2015

  ICDAR 2015 数据集包含1000张训练图像和500张测试图像。ICDAR 2015 数据集可以从上表中链接下载,首次下载需注册。
  注册完成登陆后,下载下图中红色框标出的部分,其中, Training Set Images下载的内容保存在icdar_c4_train_imgs文件夹下,Test Set Images 下载的内容保存早ch4_test_images文件夹下

  将下载到的数据集解压到工作目录下,假设解压在 PaddleOCR/train_data/下。然后从上表中下载转换好的标注文件。

PaddleOCR 也提供了数据格式转换脚本,可以将官网 label 转换支持的数据格式。 数据转换工具在 ppocr/utils/gen_label.py, 这里以训练集为例:

# 将官网下载的标签文件转换为 train_icdar2015_label.txt
python gen_label.py --mode="det" --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"

解压数据集和下载标注文件后,PaddleOCR/train_data/ 有两个文件夹和两个文件,按照如下方式组织icdar2015数据集:

/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 数据集的测试标注

2. 文本识别

2.1 PaddleOCR 文字识别数据格式

PaddleOCR 中的文字识别算法支持两种数据格式:

  • lmdb 用于训练以lmdb格式存储的数据集,使用 lmdb_dataset.py 进行读取;
  • 通用数据 用于训练以文本文件存储的数据集,使用 simple_dataset.py进行读取。

下面以通用数据集为例, 介绍如何准备数据集:

训练集

建议将训练图片放入同一个文件夹,并用一个txt文件(rec_gt_train.txt)记录图片路径和标签,txt文件里的内容如下:

注意: txt文件中默认请将图片路径和图片标签用 \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| ...

除上述单张图像为一行格式之外,PaddleOCR也支持对离线增广后的数据进行训练,为了防止相同样本在同一个batch中被多次采样,我们可以将相同标签对应的图片路径写在一行中,以列表的形式给出,在训练中,PaddleOCR会随机选择列表中的一张图片进行训练。对应地,标注文件的格式如下:

["11.jpg", "12.jpg"]   简单可依赖
["21.jpg", "22.jpg", "23.jpg"]   用科技让复杂的世界更简单
3.jpg   ocr

上述示例标注文件中,"11.jpg"和"12.jpg"的标签相同,都是简单可依赖,在训练的时候,对于该行标注,会随机选择其中的一张图片进行训练。

验证集

同训练集类似,验证集也需要提供一个包含所有图片的文件夹(test)和一个rec_gt_test.txt,验证集的结构如下所示:

|-train_data|-rec|- rec_gt_test.txt|- test|- word_001.jpg|- word_002.jpg|- word_003.jpg| ...

2.2 公开数据集

数据集名称图片下载地址PaddleOCR 标注下载地址
en benchmark(MJ, SJ, IIIT, SVT, IC03, IC13, IC15, SVTP, and CUTE.)DTRBLMDB格式,可直接用lmdb_dataset.py加载
ICDAR 2015http://rrc.cvc.uab.es/?ch=4&com=downloadstrain/ test
多语言数据集百度网盘 提取码:frgi
google drive
图片下载地址中已包含
2.1 ICDAR 2015

ICDAR 2015 数据集可以在上表中链接下载,用于快速验证。也可以从上表中下载 en benchmark 所需的lmdb格式数据集。

下载完图片后从上表中下载转换好的标注文件。

PaddleOCR 也提供了数据格式转换脚本,可以将ICDAR官网 label 转换为PaddleOCR支持的数据格式。 数据转换工具在 ppocr/utils/gen_label.py, 这里以训练集为例:

# 将官网下载的标签文件转换为 rec_gt_label.txt
python gen_label.py --mode="rec" --input_path="{path/of/origin/label}" --output_label="rec_gt_label.txt"

数据样式格式如下,(a)为原始图片,(b)为每张图片对应的 Ground Truth 文本文件:

在这里插入图片描述

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/dataset>
http://www.dtcms.com/a/265562.html

相关文章:

  • 【QT】QWidget控件详解 || 常用的API
  • 蓝桥杯C++组算法知识点整理 · 考前突击(中)【小白适用】
  • Java调用百度地图天气查询服务获取当前和未来天气-以贵州省榕江县为例
  • 【字节跳动】数据挖掘面试题0006:SVM(支持向量机)详细原理
  • JVM类加载过程
  • 车载电子电气架构 --- 从车窗演进看车联网的需求、发展与选择
  • 2025年游戏鼠标推荐,游戏鼠标推荐,打CSGO(罗技、雷蛇、卓威、ROG、漫步者、赛睿、达尔优)
  • 前端-HTML-day2
  • 从生活实例看:点积、内积和矩阵乘法如何玩转机器学习
  • 物联网MQTT协议与实践:从零到精通的硬核指南
  • I/O 进程 7.2
  • Mysql锁机制与优化实践以及MVCC底层原理剖析
  • TensorFlow 安装使用教程
  • 6. 常见K线形态(楔形与旗形)
  • Laravel8中调取腾讯云文字识别OCR
  • 中文语境下的视频生成革命:百度 MuseSteamer 的“产品级落地”启示录
  • 手机内存融合是什么意思
  • Redis 的特性、工作机制与性能优化全解(含搭建实战教程)
  • 用 vLLM 在两张 RTX 3090 上部署 Qwen2.5-14B BF16全量大模型的完整过程
  • 替换springboot打好jar包中的class文件
  • Python 异步爬虫(aiohttp)高效抓取新闻数据
  • 前端开发中的 Base64 图片革命:从链接到嵌入的性能优化
  • Go爬虫实时性能监控方案
  • 利用人名语言分类案例演示RNN、LSTM和GRU的区别(基于PyTorch)
  • 【学习线路】机器学习线路概述与内容关键点说明
  • git 中删除提交历史
  • 闲庭信步使用SV搭建图像测试平台:第二十七课——图像的腐蚀
  • Windows DOS CMD 100
  • PostgreSQL-XL之 序列(Sequence)
  • 深度学习2(逻辑回归+损失函数+梯度下降)