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

如果提示沒(méi)有【wget】命令,請(qǐng)準(zhǔn)備【wget】的安裝。
修改環(huán)境變量:

vi /etc/profile

在末尾添加如下內(nèi)容:

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

保存后執(zhí)行

source /etc/profile

修改python的鏈接指向,用于修改默認(rèn)的python命令版本

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

因?yàn)閥um和firewall都依賴python,所以更改會(huì)導(dǎo)致它們不可用,需要修改配置。
編輯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”即可。
驗(yàn)證是否修改成功 執(zhí)行 :

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的依賴預(yù)測(cè)庫(kù):

pip3 install paddlepaddle

1.4 安裝其他依賴

pip3 install Flask
pip3 install DateTime

1.5 安裝libstdc++.so.6.0

下載安裝libstdc++.so.6.0依賴庫(kù)。
然后上傳到linux任意目錄下,執(zhí)行以下命令:

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

至此基本環(huán)境搭建完成,接下來(lái)即可搭建WebAPI項(xiàng)目了。

用于定義WebAPI的IP地址和端口,可根據(jù)實(shí)際情況部署修改。

請(qǐng)求方式:POST
url地址:http://ip:port//WebAPI/PaddleOCR

數(shù)據(jù)格式:json

把下面代碼另存為PaddleOCRWebAPI.py文件,并上傳到linux系統(tǒng),

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();

啟動(dòng)服務(wù):

python PaddleOCRWebAPI.py

本文章轉(zhuǎn)載微信公眾號(hào)@明月心技術(shù)學(xué)堂

上一篇:

ChatOCR:文心一言/千帆API實(shí)現(xiàn)關(guān)鍵信息提取

下一篇:

50 個(gè)超實(shí)用的機(jī)器學(xué)習(xí)API
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)