PaddleOCR环境安装-踩坑记录

出发点

最近有搞OCR的心,调研了一下最新的开源代码,发现还是paddleOCR做的最好,那就先从这个开始部署一下环境吧
github paddleOCR
PaddlePaddle 3.0

安装paddlepaddle

开始使用

从上图可以看到,paddlepaddle提供了多种安装方法,我一如既往的选择linux+docker+英伟达+cuda11.8的方式来安装

python 复制代码
docker pull paddlepaddle/paddle:3.0.0-gpu-cuda11.8-cudnn8.9-trt8.6
# paddle的镜像是真大啊
docker run --gpus all --name paddle_docker -v $PWD:/paddle --network=host -it paddlepaddle/paddle:3.0.0-gpu-cuda11.8-cudnn8.9-trt8.6 /bin/bash
# 新建容器

安装paddleOCR

python 复制代码
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install paddleocr

是不是看起来很简单?第一个报错来了。。

报错1

我在网上搜了一下,发现需要手动删除PyYAML的文件,操作如下:

python 复制代码
pip show PyYAML
# Name: PyYAML
# Version: 5.3.1
# Summary: YAML parser and emitter for Python
# Home-page: https://github.com/yaml/pyyaml
# Author: Kirill Simonov
# Author-email: xi@resolvent.net
# License: MIT
# Location: /usr/lib/python3/dist-packages
# Requires:
# Required-by:
rm -rf /usr/lib/python3/dist-packages
pip install paddleocr
# 安装成功

报错2

安装成功了,是不是就可以进行OCR识别了呢?

python 复制代码
paddleocr ocr -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False 

然后就来了第二个报错

服务器没能成功下载这个字体,那我去代码上看了一下,找到了完整的链接(/usr/local/lib/python3.10/dist-packages/paddlex/utils/fonts/init.py#L36)

python 复制代码
https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/fonts/PingFang-SC-Regular.ttf

我从本地上下载了下来,上传到服务器,那要放到哪里呢?打印代码里的font_path,看到了(/root/.paddlex/fonts/PingFang-SC-Regular.ttf)

那就把这个字体放过去

继续下载一个字体

python 复制代码
https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/fonts/simfang.ttf

继续放到(/root/.paddlex/fonts/)下

报错3

在下载一个模型文件,没有成功,那就手动下载吧

python 复制代码
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_det_infer.tar 

打开/usr/local/lib/python3.10/dist-packages/paddlex/utils/download.py进行修改

python 复制代码
# 将PP-OCRv5_server_det_infer.tar放入/root/.paddlex/official_models/
def download_and_extract(
    url, save_dir, dst_name, print_progress=True, overwrite=False, no_interm_dir=True
):
    """download and extract"""
    # NOTE: `url` MUST come from a trusted source, since we do not provide a solution
    # to secure against CVE-2007-4559.
    os.makedirs(save_dir, exist_ok=True)
    dst_path = os.path.join(save_dir, dst_name)
    print ("dst_path", dst_path)
    if overwrite:
        _remove_if_exists(dst_path)

    if not os.path.exists(dst_path):
        with tempfile.TemporaryDirectory() as td:
            td = save_dir# 将td改为固定的路径 /root/.paddlex/official_models/
            arc_file_path = os.path.join(td, url.split("/")[-1])
            extd_dir = os.path.splitext(arc_file_path)[0]
            print ("arc_file_path", arc_file_path)
            #_download(url, arc_file_path, print_progress=print_progress)# 将下载注释掉,因为我们手动下载了

再次运行,报错

python 复制代码
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_rec_infer.tar
# 将这个文件放入/root/.paddlex/official_models/

再次运行,就可以看到下一个错误了

报错4


文件不存在,那就看一下这个文件是啥?

做完这一步修改,看到默认的图片是网上的图片,我想还是自己下载下来放到某个路径下吧。。

运行

python 复制代码
paddleocr ocr -i /root/.paddlex/imgs/general_ocr_002.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False

成功

总结

下载了四个文件

python 复制代码
https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/fonts/PingFang-SC-Regular.ttf
https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/fonts/simfang.ttf

https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_det_infer.tar 
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_rec_infer.tar

补充

python 复制代码
# 运行 PP-StructureV3 推理
paddleocr pp_structurev3 -i /root/.paddlex/imgs/general_ocr_002.png --use_doc_orientation_classify False --use_doc_unwarping False

# 下载文件
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-DocBlockLayout_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-DocLayout_plus-L_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-LCNet_x1_0_textline_ori_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-LCNet_x1_0_table_cls_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/SLANeXt_wired_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/SLANet_plus_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-FormulaNet_plus-L_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/RT-DETR-L_wired_table_cell_det_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/RT-DETR-L_wireless_table_cell_det_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv4_server_seal_det_infer.tar
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-LCNet_x1_0_doc_ori_infer.tar
相关推荐
满怀冰雪8 小时前
22-使用 PaddleClas 快速训练图像分类模型
人工智能·python·机器学习·分类·数据挖掘·paddlepaddle
满怀冰雪13 小时前
21-图像分类实战:从 MNIST 到 CIFAR-10
人工智能·python·深度学习·分类·数据挖掘·paddlepaddle
满怀冰雪10 天前
18-训练可视化:日志、指标记录与 VisualDL 入门
人工智能·深度学习·机器学习·paddlepaddle
满怀冰雪11 天前
17-正则化方法:Dropout、权重衰减与过拟合控制
人工智能·python·深度学习·机器学习·paddlepaddle
TunerT_TQ13 天前
Valhalla 静态工程审阅 #022|百度PaddlePaddle 源码证据驱动评测【大厂开源基础设施特辑】
人工智能·百度·开源·paddlepaddle·#深度学习·#飞桨
donoot17 天前
《大话文渊慧典》:五
人工智能·aigc·ocr·pymupdf·paddleocr·文渊慧典·大话系列
donoot21 天前
双层 PDF 体积暴涨(18MB 原图 → 200MB PDF)完整原因剖析 + 针对性优化方案
python·pymupdf·paddleocr·双层pdf
满怀冰雪21 天前
12-PaddlePaddle, 飞桨, 分类模型, 训练循环, 损失函数, 优化器, cross_entropy, Adam
人工智能·深度学习·分类·paddlepaddle
蓝创工坊Blue Foundry22 天前
发票、凭证和对账单怎么整理成 Excel?先定义字段,再逐项复核
pdf·ocr·excel·文心一言·paddlepaddle
donoot22 天前
PaddleOCR + PyMuPDF 生成【全兼容双层 PDF】完整实操指南
人工智能·算法·pymupdf·paddleocr·双层pdf