首页 > 其他分享 >paddleocr_paddle_onnxruntime

paddleocr_paddle_onnxruntime

时间:2024-08-11 17:54:55浏览次数:9  
标签:PP ch onnxruntime paddleocr OCRv3 paddle -- det rec

paddleocr_paddle

论文

PaddleOCR通过det、rec、cls三个模型分别实现字符检测、字符识别和字符方向分类的应用

det模型主要用DB算法,参考论文如下:

https://arxiv.org/pdf/1911.08947.pdf

rec模型主要用SVTR算法,参考论文如下:

https://arxiv.org/pdf/2205.00159.pdf

cls模型用mobilenetv3实现通用分类,参考论文如下:

https://arxiv.org/pdf/1905.02244.pdf

模型结构

det:

image

rec:

image

cls:

image

算法原理

image

环境配置

光源可拉取训练以及推理的docker镜像,在光合开发者社区可下载paddle、onnxruntime安装包。PaddleOCR推荐的镜像如下:

docker pull image.sourcefind.cn:5000/dcu/admin/base/paddlepaddle:2.4.2-centos7.6-dtk-23.04.1-py37-latest
docker run -d -t --privileged --device=/dev/kfd --device=/dev/dri/ --shm-size 64g --network=host --group-add video --name paddleocr-test image.sourcefind.cn:5000/dcu/admin/base/paddlepaddle:2.3.2-centos7.6-dtk-22.10.1-py37-latest
docker exec -it paddleocr-test bash
pip3 install -r requirements.txt
pip3 install onnxruntime.whl
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/pretrained/MobileNetV3_large_x0_5_pretrained.pdparams
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_rec_train.tar

数据集

推荐使用icdar2015数据集icdar2015

检测模型训练集文件结构

/PaddleOCR/train_data/icdar2015/text_localization/
  └─ icdar_c4_train_imgs/         Training data of icdar dataset
  └─ ch4_test_images/             Testing data of icdar dataset
  └─ train_icdar2015_label.txt    Training annotation of icdar dataset
  └─ test_icdar2015_label.txt     Test annotation of icdar dataset

识别模型训练集文件结构

|-train_data
  |-rec
    |- rec_gt_train.txt
    |- train
        |- word_001.png
        |- word_002.jpg
        |- word_003.jpg
        | ...
    |-ic15_data
        |- rec_gt_test.txt
        |- test
            |- word_001.jpg
            |- word_002.jpg
            |- word_003.jpg
            | ...

训练

检测模型

python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/train.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained

识别模型

python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/train.py -c configs/rec/PP-OCRv3/en_PP-OCRv3_rec.yml -o Global.pretrained_model=./pretrain_models/en_PP-OCRv3_rec_train/best_accuracy

测试

测试(paddle)

检测模型

python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/eval.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model=./output/db_mv3/best_accuracy.pdparams

识别模型

python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/eval.py -c configs/rec/PP-OCRv3/en_PP-OCRv3_rec.yml -o Global.pretrained_model=./output/v3_en_mobile/best_accuracy.pdparams

测试(ort)

检测模型

python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/eval.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model=./ch_PP-OCRv3_det_infer/ch_PP-OCRv3_det.onnx --use_onnx=true

识别模型

python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/eval.py -c configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml -o Global.pretrained_model=./ch_PP-OCRv3_rec_infer/ch_PP-OCRv3_rec.onnx --use_onnx=true

推理

推理(paddle)

 python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./ch_PP-OCRv3_det_infer/" --cls_model_dir="./ch_ppocr_mobile_v2.0_cls_infer/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=true --rec_image_shape=3,48,320 --warmup=1

推理(ort)

python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./ch_PP-OCRv3_det_infer/ch_PP-OCRv3_det.onnx" --cls_model_dir="./ch_ppocr_mobile_v2.0_cls_infer/ch_ppocr_mobile_v2.0_cls_infer.onnx" --rec_model_dir="./ch_PP-OCRv3_rec_infer/ch_PP-OCRv3_rec.onnx" --use_onnx=true --use_angle_cls=true --rec_image_shape=3,48,320 --warmup=1

result

image

精度

检测模型测试

ModelPrecisionRecall
det0.70540.7193

识别模型测试

ModelAcc
rec0.6490

检测模型测试(ort)

ModelPrecisionRecall
det0.50970.4068

识别模型测试(ort)

ModelAcc
rec0.6076

应用场景

算法类别

ocr

热点应用行业

制造,金融,交通,教育,医疗

源码仓库及问题反馈

ModelZoo / paddleocr_paddle_onnxruntime · GitLab

参考资料

标签:PP,ch,onnxruntime,paddleocr,OCRv3,paddle,--,det,rec
From: https://blog.csdn.net/qq_27815483/article/details/140579242

相关文章

  • 基于paddlehub 未戴口罩检测算法
    一、简介以前大夏天戴着口罩别人觉得你不正常,现在上街不戴口罩你不正常。本文要讲的未戴口罩算法是基于paddlehub提供的模型,paddlehub是百度飞浆(PaddlePaddle)下的深度学习模型开发工具。PaddleHub旨在为开发者提供丰富的、高质量的、直接可用的预训练模,先看实际效果图......
  • 实时人脸换脸——基于C++与Onnxruntime调用GPU实现实时换脸
    1、概述1.1算法概述人脸换脸是一种使用人工智能技术来实时或离线地将视频中的人脸替换成另一张人脸的技术。近年来,随着深度学习技术的发展,这一领域取得了显著进展。常见的人脸换脸项目有:Deepfake:这是最著名的换脸算法之一,使用深度学习技术合成人脸图像,通常使用卷积神......
  • 百度飞桨paddle提供李宏毅的《机器学习》课程、可以使用免费算力一键运行项目,快来一起
    李宏毅的课程《机器学习》是一门深入浅出、内容丰富的在线课程,由台湾大学李宏毅教授主讲。我正在AIStudio学习『李宏毅课程-机器学习』,还可以使用免费算力一键运行项目,快来一起学习吧。点击进入一、课程概述李宏毅的《机器学习》课程旨在通过生动的讲解和丰富的实例,帮助......
  • ONNXRuntime: 深度学习模型入门学习简介
    目录ONNXRuntime的作用主要功能跨平台支持性能优化易于集成如何使用ONNXRuntimeONNXRuntime的优缺点优点缺点应用领域1.自然语言处理(NLP)2.计算机视觉(CV)3.语音识别和处理4.推荐系统5.医疗健康6.金融科技(FinTech)具体应用案例微软产品与服......
  • window配置onnxruntime,运行c++版本
    为了使用ONNX-Runtime-Inference这个项目,但是我缺少onnxruntime这个库,网上找了很多教程,但是大多数都是关于linux的,这里简单记录一下我的配置流程找到onnxruntime的release版本开始想着自己去找源码编译,发现这对于新手来说,是个坑,因为源码里面有些库是缺失的,需要自己去下载,并更改......
  • 【模型训练-1】【Windows-PaddleOCR-ocr模型训练(CPU)】数据标注
    模型训练使用ocr的使用对硬件设备有比较高的依赖。网上下的模型没有GPU的加持识别效率不高,完成自有模型的训练在相同硬件设备的基准上能大大提高识别效率,加速脚本执行效率。看一组数据:训练了自己的模型识别耗时1000ms,相同的图片网上随便下的模型4000ms接下来可以根据......
  • ONNXRuntime_C++安装教程
    1打开VisualStudio2017,新建空项目helloworld 2浏览输入onnxruntime,安装第一个,版本选择1.18.1 3配置PATH环境变量4配置项目包含目录 5配置库目录6配置链接器 配置opencVhttps://blog.csdn.net/qq_27825451/article/details/103036687 无法启动应用......
  • 飞桨PaddleOCR-动手学OCR
    技术背景在人工智能的浪潮中,OCR(OpticalCharacterRecognition,光学字符识别)技术作为一项关键技术,正在不断地推动着信息获取和处理的自动化和智能化。飞桨PaddleOCR,作为百度飞桨推出的一款开源OCR工具库,以其强大的识别能力、灵活的应用场景和易用的接口设计,成为开发者和研......
  • 在 MacOS 上使用 chromadb 添加文档时出现 ONNXRuntimeError
    我正在尝试使用Chromadb运行Python脚本。创建集合,添加一些向量并得到。但出现错误。脚本:importchromadbclient=chromadb.Client()collection=client.create_collection(name="example")collection.add(documents=["Skyisunlimited.","Treeisaplant......
  • paddleocr识别并按行输出结果
    frompaddleocrimportPaddleOCR#初始化OCR引擎ocr=PaddleOCR(use_angle_cls=True,lang="ch")#使用中文模型#对图像进行OCR识别img_path='./imgs/img_3.png'result=ocr.ocr(img_path,cls=True)#按y坐标对文本块进行排序sorted_result=sorted(result,......