一、PaddleOCR简介
PaddleOCR是一个基于飞桨框架开发的开源OCR工具,提供了一系列强大的文本识别功能。PaddleOCR支持多种文本识别任务,包括文字检测、文字识别、文本方向检测等。它具有高效、准确的特点,适用于多种场景下的文本识别需求,如身份证识别、车牌识别、表格识别等。PaddleOCR具有丰富的模型库,包括超轻量级的模型、高精度的模型等,用户可以根据具体需求选择合适的模型进行文本识别。此外,PaddleOCR还提供了易于使用的API接口和丰富的文档,方便用户快速部署和使用。博文实验环境如下:
- 操作系统:银河麒麟V10 SP1
- paddlepaddle:2.6
- padleocr:2.7.1
二、安装要求
PaddleOCR的最新版本是2.7.1,但是environment.md最近一次更新还是2年前了,所以这个环境要求已经过时,只是最低要求参考。PaddleOCR安装需要依赖PaddlePaddle,所以我们参照paddle安装时的版本python、cuda版本要求即可。我们安装PaddlePaddle最新稳定版本2.6
- PaddlePaddle 2.6
- python>=3.8
- cuda>=11.2
- swig=4.2.1
三、部署步骤
1、检查系统是否有GPU显卡
使用命令"lspci | grep -i nvidia"查看主机是否有显卡,paddlenlp在cpu环境也可以运行,但是如果需要大模型功能需要GPU。
2、安装显卡驱动
银河麒麟环境下安装显卡驱动参考博文银河麒麟之NVIDIA GeForce显卡驱动安装。使用nvidia-smi命令可以确认是否安装驱动,以及查看显卡参数和运行信息。
3、安装anaconda3
anaconda3的安装可以参考博文Linux之anaconda3安装及使用,虽然系统略有区别,但是安装方式是一样的。anaconda3不是必须的,只是如果我们需要使用不同的python版本进行验证测试,anaconda3是一个非常不错的选择,通过虚环境管理,非常方便。
(base) wuhs@test:~/anaconda3$ conda --version
conda 24.1.2
4、创建一个paddleocr虚拟环境
安装完成anaconda3后我们创建一个python版本为3.11.5的虚拟环境。
(base) wuhs@test:~$ conda create -n paddleocr python=3.11.5
5、切换到paddlenlp虚拟环境
通过conda activate切换到新建的paddlenlp虚拟环境。
(base) wuhs@test:~$ conda activate paddlenlp
(paddleocr) wuhs@test:~$
6、安装paddle-gpu
访问百度飞浆官网
(paddleocr) wuhs@test:~$ conda install paddlepaddle-gpu==2.6.0 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
…
7、验证paddle
(paddleocr) wuhs@test:~$ python
Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import paddle
>>> paddle.version
‘2.6.0’
8、下载paddleocr的requirements文件
访问paddlenlp的GitHub地址,可以下载该文件或者复制文件内容自己创建requirements.txt文件。
(paddleocr) bdsc@kylinv10:~/anaconda3/requirementfiles$ cat paddleocr_github.txt
shapely
scikit-image
imgaug
pyclipper
lmdb
tqdm
numpy
visualdl
rapidfuzz
opencv-python<=4.6.0.66
opencv-contrib-python<=4.6.0.66
cython
lxml
premailer
openpyxl
attrdict
PyMuPDF<1.21.0
Pillow
9、安装swig
未安装swig,在安装依赖软件包PyMuPDF的时候会报错。
(paddleocr) wuhs@test:~/data/requirements$ pip3 install swig
Collecting swig
Downloading swig-4.2.1-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (3.6 kB)
Downloading swig-4.2.1-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 110.2 kB/s eta 0:00:00
Installing collected packages: swig
Successfully installed swig-4.2.1
10、根据requirements文件安装软件依赖
根据创建的requirements.txt文件,使用pip3命令安装相关依赖软件包。
(paddlenlp) wuhs@test:~/data/requirements$ pip3 install -r paddleocr_github.txt
11、安装paddleocr
pip方式安装paddleocr。
(paddleocr) wuhs@test:~/anaconda3$ pip3 install paddleocr
12、查验版本
安装完成后使用pip3 show paddleocr或者conda list paddleocr命令查看版本是否正常输出显示。进入python交互模式,导入paddleocr模块看是否报错,无报错说明安装成功。
(paddleocr) wuhs@test :/data/bdscdata/code/lexical_analysis$ conda list paddleocr
…
paddleocr 2.7.0.3 pypi_0 pypi
(paddleocr) wuhs@test :~/anaconda3$ python
Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import paddleocr
>>> paddleocr.version
‘2.7.0.3’
三、模型验证
安装完成我们可以实验PaddleOCR在GitHub官网上的python代码进行功能验证。
1、上次一张图片到/tmp目录
将需要识别的图片上传到指定目录。
2、python交互模式执行代码
切换到paddleocr虚拟环境下,进入python交互模式执行如下代码。
from paddleocr import PaddleOCR, draw_ocr
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
result = ocr.ocr(img_path, cls=True)
for idx in range(len(result)):
res = result[idx]
for line in res:
print(line)
3、查看结果
执行完成后结果输出文字内容与图片一致说明,paddleocr大模型部署正常。
4、总结说明
如果是基于GPU运行paddleocr还需要paddlepaddle支持,而paddle需要cuda、cudnn的支持,而且需要版本相匹配。如果没有GPU,也是支持CPU运行的。