PaddleOCR:文本检测/识别模型训练、模型推理实操

cover_image

AI空间 | 商务合作,点击此处:一键直达🚀

🌟基于 PaddlePaddle的超棒多语言OCR工具包
(实用的超轻量级OCR系统,支持80多种语言识别,提供数据标注和合成工具,支持在服务器、移动、嵌入式和物联网设备之间训练和部署)

二阶段模型训练

文字检测模型训练

这个主要是做目标检测文字 定位 的,后面一个文字识别就是做分类的,我们以训练自己的数据集为例,官方说用于模型训练的文字检测数据格式应如下

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

这里如果我们训练自己的数据集的话,我们可以直接使用官方提供的数据集标注软件PPOCRLabel,标注完的结果就得到以上的格式。

PPOCRLabel操作

按照这个步骤安装好直接启动就可以了

这个软件操作起来也比较简单,他的官方文档下面也有相关功能按键的描述即可

https://github.com/PaddlePaddle/PaddleOCR/tree/main/PPOCRLabel

最后会导出文本检测和文字识别两个标签文件,每次修改标注完一张图片,点击下一个图片的时候,它会弹出保存窗口。

保存之后,这样他的标签文件才会同步变更,对了,这个软件也支持ai自动的半标注。

除此以外,这里我汇聚了主流的一些标注软件

https://github.com/Ai-trainee?submit=Search&q=label&tab=stars&type=&sort=&direction=&submit=Search

以及robflow平台也有标注工具:

https://www.bilibili.com/video/BV12K421v7SM/

我们已经有了自己的数据集就可以执行一下他提供的数据及划分脚本

cd ./PPOCRLabel # Change the directory to the PPOCRLabel folderpython gen_ocr_train_val_test.py --trainValTestRatio 6:2:2 --datasetRootPath ../train_data

当我们数据集都准备完的时候,我们可以回到开头来进行文本检测模型的训练:

我们参照这里选择模型即可

https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/models_list.md

直接把配置文件和训练模型下载下来(分为中文、英文和多语言模型,选择相应的场景模型即可)。

下载地址中其中还有一个推理模型,这里要说的是它的模型构成其实分为三个类型,

你可以对比这张图表了解,也就是说训练和推理的模型后缀格式是不一样的。

然后启动训练脚本即可

# 单机单卡训练 mv3_db 模型  
python3 tools/train.py -c configs/det/det_mv3_db.yml \  
     -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained

启动之前注意修改一下配置文件,包括数据集的路径,模型的路径,还有训练参数等等(det_mv3_db.yml)

训练结束之后需要将模型转化为推理模型

如果做完以上步骤,那么文本检测模型就训练完毕(更多的具体细节可以参考官方文档)

文字识别模型训练

数据集格式


" 图像文件名                 图像标注信息 "train_data/rec/train/word_001.jpg   简单可依赖train_data/rec/train/word_002.jpg   用科技让复杂的世界更简单...

与文本检测模型训练类似,只需要参考官方文档即可

https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md

PP-OCR 推理部署

PP-OCR模型已打通多种场景部署方案,点击链接获取具体的使用教程。

  • • Python 推理

  • • C++ 推理

  • • Serving 服务化部署(Python/C++)

  • • Paddle-Lite 端侧部署(ARM CPU/OpenCL ARM GPU)

  • • Paddle.js 部署

  • • Jetson 推理

  • • Paddle2ONNX 推理

https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/README_ch.md

最后我们可以按照顺序学习这个项目(他的教程内容很多,可以先按照上面动手,先把模型跑出来,然后慢慢把整个项目文档看完)

说点题外话,在电脑本地使用的ocr软件,我觉得这个白描OCR应该是挺无敌的存在,准确率高,然后速度还很快,平时进行办公会用到识别复制粘贴之类的,一个快捷键,就能准确提取,效率这方面没得说,,白描目前还处于终身买断制。

https://baimiao.uzero.cn/

PaddleOCR使用常见的170个问题汇总:

https://mp.weixin.qq.com/s/UqCudUz4wbQSOPKBHHjp0whttps://github.com/PaddlePaddle/PaddleOCR/tree/main?tab=readme-ov-file

** 点这里 👇 关注我,记得标星哦~ **

**
**

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

您可以使用ppocrlabel标注的数据来训练SLANet(Spatial Pyramid Attention Network)模型。SLANet是一种用于文本检测的深度学习模型,它可以在图像中定位和识别文本。 下面是一些步骤,可帮助您将ppocrlabel标注的数据用于训练SLANet模型: 1. 数据准备:确保您已经准备好ppocrlabel标注的数据集。该数据集应包含图像和相应的标注信息,标注信息应包括文本框的坐标和对应的文本标签。 2. 数据预处理:根据SLANet模型的要求,您可能需要对图像进行一些预处理步骤,例如调整图像大小、归一化等。您还可以考虑将文本标签进行编码,以便在训练过程中使用。 3. 构建SLANet模型:根据SLANet的网络结构,您可以使用深度学习框架(如PyTorch、TensorFlow等)构建模型。SLANet通常由卷积层、注意力机制和分类器组成,您可以根据需要进行适当的调整和修改。 4. 数据加载与批处理:使用合适的数据加载器和批处理技术,将预处理后的数据输入到SLANet模型中进行训练。确保在训练过程中进行数据增强作,如随机裁剪、水平翻转等,以增加模型的泛化能力。 5. 损失函数与优化器:选择适当的损失函数(如交叉熵损失)和优化器(如Adam、SGD等),并将它们应用于SLANet的训练过程中。这将帮助模型学习适应文本检测任务的特定目标。 6. 训练与调优:使用ppocrlabel标注的数据集对SLANet模型进行训练。您可以根据需要进行多个训练轮次,并使用验证集对模型进行评估和调优。尝试不同的超参数设置和模型结构调整,以获得更好的性能。 7. 模型评估与推理:在训练完成后,使用测试集对训练好的SLANet模型进行评估。您可以计算文本检测的准确率、召回率、F1分数等指标,以评估模型的性能。同时,您还可以使用该模型对新的图像进行文本检测推理。 请注意,以上步骤仅提供了一般性的指导,具体现可能因您的任务和数据集而有所不同。建议您参考相关文献和代码库,以获取更详细的指导和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aitrainee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值