PPv3-OCR自定义数据从训练到部署

PPv3-OCR自定义数据从训练到部署

一、配置Paddle环境

创建虚拟环境

conda create --name pp python=3.7

img

image-20220412070356738

创建完成后激活环境

conda activate pp

img

image-20220412070519667

登录飞桨的官网下载最新的paddle,官网地址:飞桨PaddlePaddle-源于产业实践的开源深度学习平台

选择合适的CUDA版本,然后会在下面生成对应的命令。

img

image-20220412070703940

然后,复制命令即可

conda install paddlepaddle-gpu==2.2.2 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 

二、配置PaddleOCR

下载地址:(https://gitee.com/paddlepaddle/PaddleOCR

将其下载到本地,然后解压配置环境。

1、安装python包

1、yaml

pip install pyyaml

2、imgaug

pip install imgaug

3、pyclipper

pip install pyclipper

4、lmdb

pip install lmdb

5、Levenshtein

pip install Levenshtein

6、tqdm

pip install tqdm

2、测试环境

模型简介 模型名称 推荐场景 检测模型 方向分类器 识别模型
中英文超轻量PP-OCRv3模型(16.2M) ch_PP-OCRv3_xx 移动端&服务器端 推理模型 / 训练模型 推理模型 / 训练模型 推理模型 / 训练模型
英文超轻量PP-OCRv3模型(13.4M) en_PP-OCRv3_xx 移动端&服务器端 推理模型 / 训练模型 推理模型 / 训练模型 推理模型 / 训练模型
中英文超轻量PP-OCRv2模型(13.0M) ch_PP-OCRv2_xx 移动端&服务器端 推理模型 / 训练模型 推理模型 / 预训练模型 推理模型 / 训练模型
中英文超轻量PP-OCR mobile模型(9.4M) ch_ppocr_mobile_v2.0_xx 移动端&服务器端 推理模型 / 预训练模型 推理模型 / 预训练模型 推理模型 / 预训练模型
中英文通用PP-OCR server模型(143.4M) ch_ppocr_server_v2.0_xx 服务器端 推理模型 / 预训练模型 推理模型 / 预训练模型 推理模型 / 预训练模型

选择上面的一组模型放入到inference文件夹中,注意:是一组,包括:监测模型、方向分类器、识别模型。如下:

PaddleOCR-release-2.5
 └─inference
    ├─ch_PP-OCRv3_det_infer #检测模型
    │  ├─inference.pdiparams
    │  ├─inference.pdiparams.info
    │  └─inference.pdmodel
    ├─ch_PP-OCRv3_rec_infer #识别模型
       │  ├─inference.pdiparams
    │  ├─inference.pdiparams.info
    │  └─inference.pdmodel
    └─cls #方向分类器
    ├─inference.pdiparams
    ├─inference.pdiparams.info
    └─inference.pdmodel  

img

在这里插入图片描述

将待检测的图片放在./doc/imgs/文件夹下面,然后执行命令:

python tools/infer/predict_system.py --image_dir="./doc/imgs/0.jpg" --det_model_dir="./inference/ch_PP-OCRv3_det_infer/" --cls_model_dir="./inference/cls/" --rec_model_dir="./inference/ch_PP-OCRv3_rec_infer/" --use_angle_cls=true   

然后在inference_results文件夹中查看结果,例如:

img

image-20220413103556318

如果能看到结果就说明环境是ok的。

更多的命令,如下:

# 使用方向分类器
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --cls_model_dir="./cls/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=true --rec_image_shape=3,48,320
# 不使用方向分类器
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=false --rec_image_shape=3,48,320
# 使用多进程
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=false --use_mp=True --total_process_num=6 --rec_image_shape=3,48,320

也可以新建test.py脚本进行测试,系统会自动下载预训练模型,代码如下:

import cv2

from paddleocr import PaddleOCR, draw_ocr

# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="ch")  # need to run only once to download and load model into memory
img_path = './doc/imgs_en/img_10.jpg'
result = ocr.ocr(img_path, cls=True)
for line in result:
    print(line)
# 显示结果
from PIL import Image
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path='./fonts/simfang.ttf')
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')

开始运行:

img

红框的位置显示了详细的配置信息。 查看结果:

img

ocr.ocr(img_path, cls=True)这个方法不仅支持传入图片的路径,还支持ndarray和list类型。比如传入ndarray

import cv2

from paddleocr import PaddleOCR, draw_ocr

# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="ch")  # need to run only once to download and load model into memory
img_path = './doc/imgs_en/img_10.jpg'
# 第一种使用读入图片转为ndarray
from PIL import Image
import numpy as np
img = Image.open(img_path)
img = np.array(img)
result = ocr.ocr(img, cls=True)
# 第二种使用cv2读入图片。
img=cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
result = ocr.ocr(img, cls=True)

上面这两种方式都是可以的,大家自行尝试。

三 模型列表及其对应的配置文件

1. 文本检测模型

1.1 中文检测模型

模型名称 模型简介 配置文件 推理模型大小 下载地址
ch_PP-OCRv3_det_slim 【最新】slim量化+蒸馏版超轻量模型,支持中英文、多语种文本检测 [ch_PP-OCRv3_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml) 1.1M 推理模型 / 训练模型 / nb模型
ch_PP-OCRv3_det 【最新】原始超轻量模型,支持中英文、多语种文本检测 [ch_PP-OCRv3_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml) 3.8M 推理模型 / 训练模型
ch_PP-OCRv2_det_slim slim量化+蒸馏版超轻量模型,支持中英文、多语种文本检测 [ch_PP-OCRv2_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_cml.yml) 3M 推理模型
ch_PP-OCRv2_det 原始超轻量模型,支持中英文、多语种文本检测 [ch_PP-OCRv2_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_cml.yml) 3M 推理模型 / 训练模型
ch_ppocr_mobile_slim_v2.0_det slim裁剪版超轻量模型,支持中英文、多语种文本检测 [ch_det_mv3_db_v2.0.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml) 2.6M 推理模型
ch_ppocr_mobile_v2.0_det 原始超轻量模型,支持中英文、多语种文本检测 [ch_det_mv3_db_v2.0.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml) 3M 推理模型 / 训练模型
ch_ppocr_server_v2.0_det 通用模型,支持中英文、多语种文本检测,比超轻量模型更大,但效果更好 [ch_det_res18_db_v2.0.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml) 47M 推理模型 / 训练模型

1.2 英文检测模型

模型名称 模型简介 配置文件 推理模型大小 下载地址
en_PP-OCRv3_det_slim 【最新】slim量化版超轻量模型,支持英文、数字检测 [ch_PP-OCRv3_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml) 1.1M 推理模型 / 训练模型 / nb模型
en_PP-OCRv3_det 【最新】原始超轻量模型,支持英文、数字检测 [ch_PP-OCRv3_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml) 3.8M 推理模型 / 训练模型
  • 注:英文检测模型与中文检测模型结构完全相同,只有训练数据不同,在此仅提供相同的配置文件。

1.3 多语言检测模型

模型名称 模型简介 配置文件 推理模型大小 下载地址
ml_PP-OCRv3_det_slim 【最新】slim量化版超轻量模型,支持多语言检测 [ch_PP-OCRv3_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml) 1.1M 推理模型 / 训练模型 / nb模型
ml_PP-OCRv3_det 【最新】原始超轻量模型,支持多语言检测 [ch_PP-OCRv3_det_cml.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_cml.yml) 3.8M 推理模型 / 训练模型
  • 注:多语言检测模型与中文检测模型结构完全相同,只有训练数据不同,在此仅提供相同的配置文件。

2. 文本识别模型

2.1 中文识别模型

模型名称 模型简介 配置文件 推理模型大小 下载地址
ch_PP-OCRv3_rec_slim 【最新】slim量化版超轻量模型,支持中英文、数字识别 [ch_PP-OCRv3_rec_distillation.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/PP-OCRv3/ch_PP-OCRv3_rec_distillation.yml) 4.9M 推理模型 / 训练模型 / nb模型
ch_PP-OCRv3_rec 【最新】原始超轻量模型,支持中英文、数字识别 [ch_PP-OCRv3_rec_distillation.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/PP-OCRv3/ch_PP-OCRv3_rec_distillation.yml) 12.4M 推理模型 / 训练模型
ch_PP-OCRv2_rec_slim slim量化版超轻量模型,支持中英文、数字识别 [ch_PP-OCRv2_rec.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec.yml) 9M 推理模型 / 训练模型
ch_PP-OCRv2_rec 原始超轻量模型,支持中英文、数字识别 [ch_PP-OCRv2_rec_distillation.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_distillation.yml) 8.5M 推理模型 / 训练模型
ch_ppocr_mobile_slim_v2.0_rec slim裁剪量化版超轻量模型,支持中英文、数字识别 [rec_chinese_lite_train_v2.0.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml) 6M 推理模型 / 训练模型
ch_ppocr_mobile_v2.0_rec 原始超轻量模型,支持中英文、数字识别 [rec_chinese_lite_train_v2.0.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml) 5.2M 推理模型 / 训练模型 / 预训练模型
ch_ppocr_server_v2.0_rec 通用模型,支持中英文、数字识别 [rec_chinese_common_train_v2.0.yml](file:/D:/cv/PaddleOCR-release-2.5/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml) 94.8M 推理模型 / 训练模型 / 预训练模型

说明:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署PP-OCRv3模型,你可以按照以下步骤进行操作: 1. 首先,下载并解压PP-OCRv3模型。你可以使用以下命令下载和解压目标检测模型和文字识别模型: ``` wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar tar xf ch_PP-OCRv3_det_infer.tar tar xf ch_PP-OCRv3_rec_infer.tar ``` 2. 接下来,你可以使用PaddleOCR计算模型的检测指标,包括Precision、Recall和Hmean(F-Score)等。这些指标可以帮助你评估模型的性能。 3. 如果你想使用PPOCRLabel工具对数据集进行标注,可以按照以下步骤进行安装和启动: - 对于Ubuntu Linux系统,使用以下命令安装PPOCRLabel和其依赖项: ``` pip3 install PPOCRLabel pip3 install trash-cli PPOCRLabel --lang ch ``` - 对于MacOS系统,使用以下命令安装PPOCRLabel和其依赖项: ``` pip3 install PPOCRLabel pip3 install opencv-contrib-python-headless==4.2.0.32 # 如果下载过慢请添加"-i https://mirror.baidu.com/pypi/simple" PPOCRLabel --lang ch ``` 请按照上述步骤进行PP-OCRv3模型的部署。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ARM部署PP-OCR_V3](https://blog.csdn.net/crazty/article/details/126484626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [PPv3-OCR自定义数据训练部署](https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/125087878)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值