ocr文字识别环境部署

2023-10-26

一、 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.bakln -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==2.5

安装PaddleOCR的依赖预测库:

pip3 install paddlepaddle==2.2.1

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 iofrom pickle import DICTimport paddleocrimport jsonimport base64import DateTimefrom flask import Flask, request,jsonify  import numpy as npfrom 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=8000)if __name__=="__main__":

    main();

启动服务:

python PaddleOCRWebAPI.py

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ocr文字识别环境部署 的相关文章

随机推荐

  • 在嵌入式学习困惑:做驱动开发还是做应用开发更有前途

    在嵌入式学习过程中 很多人都有这样的困惑 意思就是说 你告诉我哪个更有前途 我就好好学哪个 另外一个就不用学了 问这种问题的同事往往会同时问另外一些问题 我以后就想做驱动开发 你教我这些应用开发的技术有什么用 C 用得多吗 学了有什么用 我
  • 黑苹果必备技能之一:升级OC(open core)引导

    目前来说 安装黑苹果的用户大部分应该都是采用的clover以及OC引导 目前由于OC引导的不断完善以及配置方法更简单 有不少用户都已经从clover引导转变到了OC引导 而关于使用OC引导安装黑苹果的教程大家可以去参考之前发布的文章 此篇文
  • 实现回到顶部功能的三种方法

    1 使用锚点 页面顶部放置一个锚点链接 然后在页面下方放置一个返回到该锚点的链接 用户点击该链接即可返回到该锚点所在的顶部位置 锚点方式 div div a href topAnchor 回到顶部 a 2 监听浏览器的scollTop事件
  • VHDL程序:四位乘法器

    VHDL程序 四位乘法器 1 IF语句行为级描述 library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity multip 4 is por
  • 前端 echarts 导出图片到excel中

    这里演示的demo是基于react的 yarn add exceljs file saver echarts 首先安装以上三个包 直接使用下列代码即可 import React Component from react import App
  • FISCO BCOS(二十一)——— 实现对byte32[]数组类型的输入

    如果对一个byte32 类型的数组进行传参 我们先看一下一个string类型转成16进制是什么样的 字符串与进制转换http www ku51 net ox2str 在区块链中地址一般是0x开头 也就是16进制标识 比特币不是 所以在这里要
  • c++的可视化计算器

    学生党的一个课程设计 希望可以对有些人有些帮助 第一次发 不好的话请多多原谅 c 一 题目要求 设计一个可视化的计算器 可以执行 等操作 要求使用API来编写程序 我的计算器输入的时候是以 号开始 二 需求分析 1 问题描述 用api来编写
  • 解决easyUI 1.2.6 + datagrid在 IE浏览器下无法重新加载、查询

    I easyUI 1 2 6 datagrid在 IE浏览器目前存在的问题 1 无法重新加载 查询 var row dg user table datagrid getSelected dg userPri table datagrid m
  • C++写的encodeURIComponent

    最近在用c 找了几个库没有找到与javascript的URI编码相对应的函数 自己写一个 只写了编码 测试可以在javascript里用decodeURIComponent正常解码 uri编码字符串 param in 必须是utf 8编码的
  • 彻底解决电脑自动更新问题

    是不是隔几天电脑关机 重启的时候那会出现更新后再关机或者更新后再重启 没有立刻关机或重启是不是很烦 去设置那里的更新只能是短暂的暂停更新七天而已 这种方法没什么用的 治表不治本 只能推迟而已 如果windows推送一下小升级七天后你又得更新
  • 什么是JWT?(细致讲解)

    什么是JWT 转自 java技术爱好者 链接 https www zhihu com question 485758060 answer 2257869896 来源 知乎 起源 需要了解一门技术 首先从为什么产生开始说起是最好的 JWT 主
  • 状态设计模式

    目录 前言 状态机原理 状态机的实现方式一 分支逻辑法 状态机实现方式二 查表法 状态机实现方式三 状态模式 总结 参考资料 前言 在实际的软件开发中 状态模式并不是很常见 但是在能够用到的场景里 可以发挥比较大的作用 状态模式一般用来实现
  • HTTPSHandler & SSL Error

    我在服务器ubuntu中 尝试使用pip3 但是出现下面的报错 ImportError cannot import name HTTPSHandler 通过查询资料 发现报错的原因是 该pip3 5中没有安装好openssl 我尝试在pyt
  • python的安装过程

    python的安装 进入官网 点击进入官方链接 点击官方后 进入该页面 可以英译中 点击 Downloads即下载 选择适合自己的系统 windows系统即选择windows 苹果系统即选择macOS 进入下载页面后 选择python的版本
  • 2023面试自动化测试面试题【含答案】

    1 你做了几年的测试 自动化测试 说一下 selenium 的原理是什么 我做了五年的测试 1年的自动化测试 selenium 它是用 http 协议来连接 webdriver 客户端可以使用 Java 或者 Python 各种编程语言来实
  • flask中的Flask、request、render_temple、redirect和url_for

    学flask也有一个多星期了 对这个web框架也有了一点的了解 梳理一些基础的知识点 还是小白一只 代码写得比较low 若文章有错误的地方欢迎大佬随时指正 代码中被注释掉的代码是关于预防csrf 无视即可 主程序脚本 1 from flas
  • 01.Vuepress2.x 创建自己的技术文档站

    目录 一 简介 二 安装 三 配置 四 启动 五 效果图 六 编译 一 简介 Vuepress2 x 英文官网 Vuepress2 x 中文官网 二 安装 参考 步骤1 新建一个文件夹 如 Doc2 0 步骤2 进入文件夹目录 新建 pac
  • Anaconda对python环境管理常用命令

    创建环境 n 为指定环境名称 python 未指定python的版本 conda create n env name python 3 6 删除环境 conda remove n env name all 删除环境的包 conda remo
  • LordOfTheRoot_1.0.1靶机入侵

    LordOfTheRoot 1 0 1靶机入侵 1 环境搭建 下载地址 https www vulnhub com entry lord of the root 101 129 下载后用 VMware 或者 VirtualBox 打开 并配
  • ocr文字识别环境部署

    一 Linux环境下部署1 环境要求操作系统 CenterOS7 主要软件环境 python3 9X64 opencv4 5 5 PaddleOCR2 5 paddlepaddle2 2 1 python运行环境建议3 6 3 91 环境安