Linux(Centos7)下进行OCR识别-pytesseract

一.环境准备

1.Leptonica 库安装与配置

Dart 复制代码
# 解压安装(一定要注意版本!!)

tar -zxvf leptonica-1.78.0.tar.gz

# 进入包文件夹

cd 你解压后的文件名

# 依次执行以下命令,进行程序编译,安装

./autogen.sh

./configure

make

make install

# 配置



# 修改profile

vim /etc/profile

# 添加信息 i

export LD_LIBRARY_PATH=/usr/local/lib

export LIBLEPT_HEADERSDIR=/usr/local/include

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

# 保存退出

# 刷新配置

source /etc/profile

2.tesseract 安装与配置

Dart 复制代码
#  下载(一定要注意版本!!)

wget http://www.XXX/tesseract-4.0.0.tar.gz

tar -xzvf tesseract-4.0.0.tar.gz

cd tesseract-5.2.0

./autogen.sh

./configure

make

make install

# 添加到环境变量



vim /etc/profile

# 添加以下字段:

PATH=$PATH:/usr/local/tesseract/bin

export PATH

export TESSDATA_PREFIX=/root/tessdata

export PATH=$PATH:$TESSDATA_PREFIX

# 刷新配置

source /etc/profile

3.升级GCC

没有源怎么办?更换源,先备份,然后新建文件

Dart 复制代码
yum install -y centos-release-scl

yum install devtoolset-8-gcc*

4.查看tesseract版本

Dart 复制代码
tesseract --version

# 查看可执行文件路径:

which tesseract

/usr/local/bin/tesseract

# 语言包存放位置

/usr/local/share/tessdata/

语言包下载(linux版本语言包)

二.测试代码

1.初步测试

测试代码:

python 复制代码
import pytesseract
from PIL import Image
import re
import cv2
import json

# 设置 Tesseract 路径(Windows需指定)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
pytesseract.pytesseract.tesseract_cmd = r'D:\softwares\Tesseract-OCR\tesseract.exe' # 替换成你自己的程序路径

def extract_info_from_image(image_path):
    # 读取图片并预处理(灰度化、二值化)
    img = cv2.imread(image_path)
    # if img is None:
    #     print("错误:图像加载失败,请检查路径或文件格式")
    # else:
    #     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    # _, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
    
    # OCR 识别文本
    text = pytesseract.image_to_string(Image.fromarray(img), lang='chi_sim+eng')
    lines = [line.strip() for line in text.split('\n') if line.strip()]

    # 提取结构化数据,不同结果对应的处理不同,此处省略
    ######
    ######
    data = {}
    
    return data

# 调用函数并输出结果
result = extract_info_from_image("D:/pythonProjects/input_image/1.jpg")

测试结果:

2.测试精度低问题

数据增强,提高模型泛化性

3.解决Flask并发处理问题

方法一:使用geventeventlet库来在Flask中运行多线程

Dart 复制代码
pip install gevent  # 安装gevent

from gevent.pywsgi import WSGIServer   # flask启动脚本中新增导入包

server = WSGIServer(('0.0.0.0', 5000), app)   # 启动方式用WSGIServer

server.serve_forever()

方法二: 使用asyncioaiohttp库来处理异步请求

Dart 复制代码
pip install aiohttp  # 安装包


# 示例代码
from aiohttp import web
from flask import Flask, jsonify
import asyncio

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

async def init(loop):
    app_runner = web.AppRunner(app)
    await app_runner.setup()
    site = web.TCPSite(app_runner, '0.0.0.0', 5000)
    await site.start()

loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
相关推荐
HwJack2019 小时前
Flask+SQLite简易后端数据存储实现原理
jvm·sqlite·flask
ZC跨境爬虫20 小时前
模块化烹饪小程序开发日记 Day5:(后端Flask接口开发与AI智能解析菜谱的实现)
前端·人工智能·后端·python·ui·flask
weixin_4080996720 小时前
易语言调用OCR API实现批量图片文字识别:从接口对接到多文件处理(附完整源码)
ocr·文字识别·api接口·易语言·批量识别·石榴智能·精易模块
码界筑梦坊21 小时前
130-基于Python的体育用品销售数据可视化分析系统
开发语言·python·信息可视化·flask·毕业设计
码界筑梦坊21 小时前
131-基于Flask的美国新泽西州自动售货机销售数据可视化分析系统
开发语言·python·信息可视化·数据分析·flask·毕业设计
AI人工智能+2 天前
不动产权证书识别技术:融合了计算机视觉、自然语言处理(NLP)和人工智能的深度技术栈
人工智能·计算机视觉·语言模型·ocr·不动产权证书识别
知识分享小能手2 天前
Flask入门学习教程,从入门到精通, 认识Flask路由 — 知识点详解 (2)
python·学习·flask
Maydaycxc2 天前
跨境电商多账号自动化:RPA对接指纹浏览器与OCR识图实战
自动化·ocr·rpa
Miss roro2 天前
法律文书信息自动提取:OCR识别与AI技术在案件管理中的应用
人工智能·ocr·法律科技·律所管理系统·案件管理系统
Fleshy数模2 天前
基于机器视觉的工业产品型号识别与报警系统实现
python·ocr·pyqt