随笔 - 29  文章 - 1  评论 - 69  阅读 - 65281

PaddleOCR在 Linux下的webAPI部署方案

很多小伙伴在使用OCR时都希望能过采用API的方式调用,这样就可以跨端跨平台了。本文将介绍一种基于python的PaddleOCR识方案。喜欢的可以关注公众号,获取更多内容。

 

 

 一、 Linux环境下部署
1.环境要求
操作系统:CenterOS7;
主要软件环境:python3.9X64、opencv4.5.5、PaddleOCR2.5、paddlepaddle2.2.1。python运行环境建议3.6-3.9
1. 环境安装
1.1 安装python3.9x64
运行以下命令,进行python3.9版本的安装

复制代码
   wget  https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz&&
    yum install -y gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel&&
    mkdir /usr/local/software&&
    mkdir /usr/local/software/tars&&
    mkdir /usr/local/software/python&&
    tar -zxvf Python-3.9.10.tgz -C /usr/local/software/tars/&&
    mv /usr/local/software/tars/Python-3.9.10 /usr/local/software/python&&
    cd /usr/local/software/python/Python-3.9.10&&
    # 指定安装目录为/usr/local/software/python/
    ./configure  --prefix=/usr/local/software/python/&&
    make&&
    make install
复制代码

如果提示没有【wget】命令,请准备【wget】的安装。
修改环境变量:

vi /etc/profile

在末尾添加如下内容:

#python
PATH=/usr/local/software/python/bin:$PATH

保存后执行

source /etc/profile

修改python的链接指向,用于修改默认的python命令版本

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/software/python/bin/python3 /usr/bin/python

因为yum和firewall都依赖python,所以更改会导致它们不可用,需要修改配置。
编辑yum文件:

vi /usr/bin/yum

将第一行”#!/usr/bin/python” 改为 “#!/usr/bin/python2.7”即可。

编辑urlgrabber-ext-down文件:

vi /usr/libexec/urlgrabber-ext-down

将第一行”#!/usr/bin/python” 改为 “#!/usr/bin/python2.7”即可。
验证是否修改成功 执行 :

python -V

至此,python3.9安装成功。

1.2 安装opencv4.5.5

pip3 install opencv-python==4.5.5.64
pip3 install opencv-python-headless

1.3 安装PaddleOCR

pip3 install  paddleocr

安装PaddleOCR的依赖预测库:

pip3 install paddlepaddle

1.4 安装其他依赖

pip3 install Flask
pip3 install DateTime

1.5 安装libstdc++.so.6.0
下载安装libstdc++.so.6.0依赖库
然后上传到linux任意目录下,执行以下命令:

cp libstdc++.so.6.0.26 /usr/lib64/
cd /usr/lib64/
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6

至此基本环境搭建完成,接下来即可搭建WebAPI项目了。

用于定义WebAPI的IP地址和端口,可根据实际情况部署修改。

请求方式:POST
url地址:http://ip:port//WebAPI/PaddleOCR

数据格式:json

把下面代码另存为PaddleOCRWebAPI.py文件,并上传到linux系统,

复制代码
import io
from pickle import DICT
import paddleocr
import json
import base64
import DateTime
from flask import Flask, request,jsonify  
import numpy as np
from PIL import Image
app=Flask(__name__)
app.config['JSON_AS_ASCII']=False
@app.route("/WebAPI/PaddleOCR",methods=["POST"])
def PaddleOCR():
    if(request.data==""):
        return APIResult.Error("request data is null")
    data=json.loads(request.data)
    imgbase64=data["image"];
    imgbyte=base64.b64decode(imgbase64)
    image=io.BytesIO(imgbyte)
    temp= Image.open(image)
    img=np.array(temp)[:,:,:3]
    info= ppocr.ocr(img)
    result={"TextBlocks":[]}
    for textblocks in info:
        textBlock={"Points":[],"Text":""}
        for tk in textblocks[0]:
              point={"x":str(tk[0]),"y":str(tk[1])}
              textBlock["Points"].append(point) 
        textBlock["Text"]=textblocks[1][0]
        result["TextBlocks"].append(textBlock)
    print(result)
    return jsonify(result)
    
def main():
    global ppocr;
    ppocr=paddleocr.PaddleOCR(use_gpu=False);
    app.run(debug=True,host="0.0.0.0",port=80)
if __name__=="__main__":
    main();
复制代码

启动服务:

python PaddleOCRWebAPI.py

 

windows下部署参考PaddleOCR在 windows下的webAPI部署方案 - 明月心技术学堂 - 博客园 (cnblogs.com)

更多技术学习请关注公众号【明月心技术学堂】或者加入QQ群了解。QQ群:318860399

posted on   饶玉田  阅读(1588)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示