PaddleOCR在 windows下的webAPI部署方案

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PaddleOCR在 windows下的webAPI部署方案相关的知识,希望对你有一定的参考价值。

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

# 一、 windows环境下部署
###1.环境
操作系统:windows10;
主要软件环境:python3.9X64、opencv4.5.5、PaddleOCR2.5、paddlepaddle2.2.1。python运行环境建议3.6-3.9
###1. 环境安装
###1.1 安装python-3.9.1-amd64.exe
Python官方下载地址[python windows版本下载](https://www.python.org/downloads/windows/ "python windows版本下载")
选择合适的windows版本,下载到本地后,双击进行安装,安装时勾选添加环境变量。

验证是否修改成功,执行以下cmd命令 :

python -V


至此,python3.9安装成功。

###1.2 安装opencv4.5.5

pip3 install opencv-python==4.5.5.64


###1.3 安装PaddleOCR
安装PaddleOCR:

pip3 install paddleocr


如果提示报错缺少Microsoft Visual C++14.0 ,则需要下载安装。
去官网下载对应的文件(需要拥有一个微软的账号),首先,打开链接[my.visualstudio.com](https://my.visualstudio.com/Downloads/Featured?mkt=zh-cn "my.visualstudio.com") ,登录账号,点击进入下载页面;接下来,在下载页面搜索build tools,找到左侧的Visual Studio 2015 update 3。
点击Visual Studio 2015 update 3后,下载对应的文件即可,约1.1G,这里需要将格式修改为DVD。
下载完成后,我们得到了文件mu_visual_cpp_build_tools_2015_update_3_x64_dvd_dfd9a39c.iso,解压后,双击VisualCppBuildTools_Full.exe即可自动进行安装。
安装PaddleOCR的依赖预测库:

pip3 install paddlepaddle


###1.4 安装其他依赖

pip3 install Flask
pip3 install DateTime


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


###3. OCR部署
####3.1 功能代码(PaddleOCRWebAPI.py)

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.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=5000)if __name__=="__main__":
main();

其中

app.run(debug=True,host="0.0.0.0",port=5000)


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

启动服务:

python PaddleOCRWebAPI.py

#3.2接口文档
##基本信息
请求方式:POST
url地址:`http://ip:port/WebAPI/PaddleOCR`
数据格式:json
##### 输入参数

变量名描述是否必填类型备注
image需要识别文字的图像base64String

##### 输入示例:

"image": "xxxxxxxxx"


###输出参数
数据格式:json字符串
输出示例:

"TextBlocks"://识别出来的文本块数组,[
"Points"://该数组固定四个大小,为一个识别区域的四个顶点坐标,从左上角开始,顺时针方向。[
"x":0,"y":0,
"x":100,"y":0,
"x":100,"y":50,
"x":0,"y":50
],"Text":"中国ABC123"//一个文本区域识别出来的文字,
"Points":
[
"x":0,"y":0,
"x":100,"y":0,
"x":100,"y":50,
"x":0,"y":50
],"Text":"中国ABC123",
"Points":
[
"x":0,"y":0,
"x":100,"y":0,
"x":100,"y":50,
"x":0,"y":50
],"Text":"中国ABC123",
......
]

以上是关于PaddleOCR在 windows下的webAPI部署方案的主要内容,如果未能解决你的问题,请参考以下文章

[课程][原创]paddleocr训练自己数据集windows版

PaddleOCR简单使用教程-Windows

paddleocr使用

[C#][原创]利用paddleocr.net库编写C#代码进行ocr检测和识别

Paddle OCR, windows/mac安装指南

[课程][原创]paddleocr训练自己的数据集ubuntu版