news 2026/4/13 3:27:31

ICDAR2015格式怎么准备?OCR训练数据集保姆级教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ICDAR2015格式怎么准备?OCR训练数据集保姆级教程

ICDAR2015格式怎么准备?OCR训练数据集保姆级教程

在使用OCR文字检测模型进行微调训练时,数据集的格式规范至关重要。尤其是当你使用像cv_resnet18_ocr-detection OCR文字检测模型 构建by科哥这类基于标准框架构建的模型时,输入数据必须严格遵循ICDAR2015格式,否则训练过程会直接报错或效果极差。

本文将手把手带你从零开始准备符合ICDAR2015标准的OCR训练数据集,涵盖目录结构、标注文件编写、列表生成、常见问题排查等全流程,确保你一次就能成功启动训练任务。


1. 什么是ICDAR2015数据格式?

ICDAR(International Conference on Document Analysis and Recognition)是文档分析与识别领域的顶级会议,其发布的公开竞赛数据集已成为OCR领域的重要基准之一。其中ICDAR2015特别关注自然场景下的文字检测任务,因此被广泛用于训练和评估通用OCR检测模型。

该格式的核心特点是:

  • 图像为真实拍摄的自然场景图(如街景、广告牌、产品包装等)
  • 标注以四边形框(quadrilateral)形式标注文本区域
  • 每个文本框包含坐标 + 文本内容
  • 支持多语言、倾斜、模糊文本

正因为这种灵活性和实用性,很多工业级OCR模型都采用ICDAR2015作为默认训练格式。


2. 数据集整体目录结构设计

要让模型正确读取你的自定义数据,必须严格按照以下目录结构组织文件:

custom_data/ ├── train_list.txt # 训练集图像与标签对应关系 ├── train_images/ # 存放所有训练图片 │ ├── 1.jpg │ └── 2.jpg ├── train_gts/ # 存放每个训练图片对应的标注文件 │ ├── 1.txt │ └── 2.txt ├── test_list.txt # 测试集图像与标签对应关系 ├── test_images/ # 存放测试图片 │ └── 3.jpg └── test_gts/ # 存放测试图片的标注文件 └── 3.txt

注意:这个结构是硬性要求,不能随意更改路径名称或层级。如果你用的是cv_resnet18_ocr-detection镜像中的“训练微调”功能,系统会自动在这个结构下查找数据。


3. 如何制作训练图片和标注文件

3.1 准备原始图片

你可以通过以下方式获取训练图片:

  • 手机拍摄实际场景中的文字(如商品标签、说明书、海报)
  • 截取网页或PDF中的图文区域
  • 使用合成工具生成带背景的文字图像(如TextRecognitionDataGenerator)

建议:

  • 图片清晰度高,避免严重模糊或压缩失真
  • 包含不同字体、颜色、大小、方向的文字
  • 单张图片中可有多个文本块
  • 支持JPG、PNG、BMP格式

3.2 编写标注文件(.txt)

每张图片对应一个同名的.txt标注文件,放在train_gts/test_gts/目录下。

标注格式说明

每一行代表一个文本框,格式如下:

x1,y1,x2,y2,x3,y3,x4,y4,文本内容
  • (x1,y1):左上角点
  • (x2,y2):右上角点
  • (x3,y3):右下角点
  • (x4,y4):左下角点
  • 最后是该框内的实际文本内容
示例标注文件1.txt
100,50,200,50,200,80,100,80,欢迎光临小店 300,120,450,110,455,140,305,130,全场八折优惠

这表示图片中有两个文本区域,分别用四边形坐标框出,并附上了识别结果。

特殊情况处理
  • 如果文本不可识别(比如遮挡、模糊),可以用###代替文本内容:

    150,200,250,200,250,230,150,230,###
  • 多行文本?每行单独写一行即可

  • 中文、英文混合?直接写原文,无需转码


4. 生成训练/测试列表文件

模型需要知道哪些图片参与训练、哪些用于验证,这就靠train_list.txttest_list.txt来指定。

列表文件格式

每行一条记录,格式为:

相对路径_to_image 相对_path_to_gt_file
示例train_list.txt
train_images/1.jpg train_gts/1.txt train_images/2.jpg train_gts/2.txt
示例test_list.txt
test_images/3.jpg test_gts/3.txt

注意:路径是相对于custom_data/根目录的,不要加/root/或其他绝对路径前缀。


5. 实战演示:一步步创建你的第一个ICDAR2015数据集

我们来模拟一个真实的小型数据集创建流程。

第一步:新建项目目录

mkdir -p custom_data/{train_images,train_gts,test_images,test_gts}

第二步:放入图片

假设你有两张训练图shop_sign_1.jpgproduct_label_2.jpg,一张测试图receipt_3.jpg

cp shop_sign_1.jpg custom_data/train_images/1.jpg cp product_label_2.jpg custom_data/train_images/2.jpg cp receipt_3.jpg custom_data/test_images/3.jpg

第三步:创建标注文件

编辑custom_data/train_gts/1.txt

50,60,300,60,300,90,50,90,华联超市 120,150,280,150,280,180,120,180,新鲜水果特价

编辑custom_data/train_gts/2.txt

80,40,400,40,400,70,80,70,有机苹果 产地山东 100,100,350,100,350,130,100,130,净重:1kg 价格:¥18.8

编辑custom_data/test_gts/3.txt

200,100,400,100,400,130,200,130,消费金额:¥256.00 300,150,500,150,500,180,300,180,实付:¥238.00

第四步:生成列表文件

echo "train_images/1.jpg train_gts/1.txt" > custom_data/train_list.txt echo "train_images/2.jpg train_gts/2.txt" >> custom_data/train_list.txt echo "test_images/3.jpg test_gts/3.txt" > custom_data/test_list.txt

完成!你现在拥有了一个合法的ICDAR2015格式数据集。


6. 在WebUI中配置并启动训练

打开你的cv_resnet18_ocr-detectionWebUI界面,进入【训练微调】Tab页。

填写参数:

参数
训练数据目录/root/custom_data(注意路径要正确挂载)
Batch Size8 (根据GPU显存调整)
训练轮数5
学习率0.007

点击“开始训练”,后台会自动执行以下操作:

  1. 解析train_list.txt加载训练图像
  2. 读取每个.txt标注文件生成边界框
  3. 构建数据增强管道(旋转、缩放、色彩扰动等)
  4. 启动ResNet18骨干网络进行端到端训练
  5. 每轮结束后在test_list.txt上做验证

训练完成后,模型权重将保存在workdirs/目录下,可用于后续推理或导出ONNX。


7. 常见错误及解决方案

❌ 错误1:训练失败提示“找不到标注文件”

原因:路径不匹配或文件名不一致

解决方法

  • 确保train_list.txt中的路径拼写完全正确
  • 图片和.txt文件名字必须一致(不含扩展名)
  • 不要用中文命名文件

❌ 错误2:训练中途崩溃,提示“invalid coordinate”

原因:坐标格式错误,比如少了一个数字或用了空格分隔

正确写法

100,120,200,120,200,150,100,150,示例文字

错误写法

100 120 200 120 ... (用空格) 100,120,,200,... (漏掉数值)

❌ 错误3:检测结果全是乱框

可能原因

  • 标注质量差(坐标画偏了)
  • 文本内容写错了
  • 图像分辨率太低

建议

  • 使用专业标注工具(如LabelImg、PPOCRLabel)辅助标注
  • 先小规模试训(2~3张图),确认流程无误再扩大数据量

8. 提升训练效果的实用技巧

即使格式正确,也不代表一定能训练出好模型。以下是几个提升效果的关键建议:

技巧1:保持数据多样性

  • 包含横排、竖排、倾斜文字
  • 覆盖不同背景(纯色、纹理、复杂图案)
  • 涉及多种字体风格(黑体、楷体、手写体)

技巧2:合理设置学习率

  • 数据量 < 100张:学习率设为0.001~0.003,防止过拟合
  • 数据量 > 500张:可用0.007~0.01加速收敛

技巧3:善用预训练权重

本模型基于ImageNet预训练的ResNet18初始化,因此即使只有几十张标注图,也能快速适应新场景。

技巧4:定期验证效果

每训练完一轮,手动上传几张新图片测试检测效果,观察是否出现漏检或误检趋势。


9. 总结

通过本文,你应该已经掌握了如何从零开始准备一个符合ICDAR2015标准的OCR训练数据集。回顾一下关键步骤:

  1. 搭建标准目录结构train_images,train_gts,train_list.txt等缺一不可
  2. 准确标注文本框:四点坐标+文本内容,逗号分隔,禁止空格
  3. 生成列表文件:明确指出图片与标注的对应关系
  4. 在WebUI中配置路径:确保模型能正确读取数据
  5. 调试训练过程:关注日志输出,及时修正错误

只要数据格式正确、标注质量过关,即使是少量样本也能让cv_resnet18_ocr-detection模型快速适应你的业务场景,实现精准的文字检测。

下一步,你可以尝试将训练好的模型导出为ONNX格式,在移动端或边缘设备上部署,真正实现闭环落地。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 13:11:39

三维重建新手指南:用COLMAP Python脚本轻松玩转自动化建模

三维重建新手指南&#xff1a;用COLMAP Python脚本轻松玩转自动化建模 【免费下载链接】colmap COLMAP - Structure-from-Motion and Multi-View Stereo 项目地址: https://gitcode.com/GitHub_Trending/co/colmap 还在为手动处理几百张图像而头疼吗&#xff1f;想不想让…

作者头像 李华
网站建设 2026/4/11 23:33:10

鸿蒙字体管理终极指南:跨设备适配与性能优化

鸿蒙字体管理终极指南&#xff1a;跨设备适配与性能优化 【免费下载链接】harmonyos-tutorial HarmonyOS Tutorial. 《跟老卫学HarmonyOS开发》 项目地址: https://gitcode.com/GitHub_Trending/ha/harmonyos-tutorial 鸿蒙字体管理直接影响应用的用户体验与界面美观度。…

作者头像 李华
网站建设 2026/4/11 13:04:37

如何快速掌握snipit:SNP分析的完整指南

如何快速掌握snipit&#xff1a;SNP分析的完整指南 【免费下载链接】snipit snipit: summarise snps relative to your reference sequence 项目地址: https://gitcode.com/gh_mirrors/sn/snipit 在基因组学研究中&#xff0c;单核苷酸多态性&#xff08;SNP&#xff09…

作者头像 李华
网站建设 2026/4/7 17:23:45

AI把技能“平权”了,懒人却还在担心失业?

忙到晚上11点&#xff0c;人有点不舒服&#xff0c;状态也不好&#xff0c;但定下的目标就得完成。今天没干太多&#xff0c;就捣鼓了几个小功能&#xff0c;但想聊的反而是评论区里那些关于“AI取代人”的争论。“现在这个社会&#xff0c;只有好吃懒做、眼高手低、不愿意向下…

作者头像 李华
网站建设 2026/4/10 23:58:29

深度解密Chatbox架构:从设计哲学到实现实践的5个核心洞察

深度解密Chatbox架构&#xff1a;从设计哲学到实现实践的5个核心洞察 【免费下载链接】chatbox Chatbox是一款开源的AI桌面客户端&#xff0c;它提供简单易用的界面&#xff0c;助用户高效与AI交互。可以有效提升工作效率&#xff0c;同时确保数据安全。源项目地址&#xff1a;…

作者头像 李华