Python利用Gradio与EasyOCR构建在线识别文本的Web应用
作者:IT里的交易员 发布时间:2023-05-31 09:35:57
前言
随着人工智能的不断发展,各种智能算法越来越普遍,本文就给大家介绍一种通过训练好的算法进行文字识别的方法,而且是Web页面可视化操作,方便调用。
一、Gradio是什么
Gradio是一个开源的 Python 库,用于构建机器学习和数据科学演示和 Web 应用。
官网:https://www.gradio.app/
Gradio适用于:
演示客户/合作者/用户/学生的机器学习模型。
部署通过自动共享链接快速创建模型,并获得模型性能反馈。
排除故障使用内置的操作和解释工具,在开发过程中以交互方式处理您的模型。
案例展示:https://huggingface.co/spaces/hysts/insightface-SCRFD
安装包:https://pypi.org/project/gradio/
Github:https://github.com/gradio-app/gradio
安装gradio库
pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple
二、EasyOCR的准备工作
使用EasyOCR,需要安装pytorch,当让也可以通过暗转easyocr来带动安装torch相关库。
pip install easyocr -i https://pypi.tuna.tsinghua.edu.cn/simple
因为EasyOCR使用训练后的算法,所以在安装完以上库后还需要上官网https://www.jaided.ai/easyocr/modelhub/下载相应的训练好的model文件。主要是以下三个文件,并将文件解压到C:\Users\Administrator.EasyOCR\model 目录下 。Administrator为登录用户名,根据自己情况修改哦。
另外以下两个问题如果没碰到最好,碰到了就按方法解决就是。
注1:如果出现多个python环境,安装如出错,可增加–user参数安装到用户目录下。
pip install easyocr -i https://pypi.tuna.tsinghua.edu.cn/simple --user
注2:如果出现如下提示:
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
这是因为torch包中包含了名为libiomp5md.dll的文件,与Anaconda环境中的同一个文件出现了某种冲突,所以需要删除一个。我是将\Anaconda3\Library\bin\下libiomp5md.dll改名libiomp5md_old.dll。
三、使用Gradio、easyocr构建在线识别文本的 Web 应用
完成了以上准备工作,下面就到了见证奇迹的时刻。
import gradio as gr
import easyocr
import cv2
reader = easyocr.Reader(['ch_sim','en'])
def img2txt(image):
img = r"C:\text.jpg"
cv2.imwrite(img, image)
img_read = cv2.imread(img)
res = reader.readtext(img_read)
print('识别结果为:',res)
txt = ''
if len(res)>0:
for i in res:
txt += i[1]
return txt
interface = gr.Interface(fn=img2txt, inputs="image", outputs="text")
interface.launch()
运行后如下图:
随便上传一张图片,试试效果,如下图:
来源:https://blog.csdn.net/popboy29/article/details/129939759


猜你喜欢
- 我们已经知道Application和Session对象的OnStart、OnEnd事件的脚本,都必须是在 Global.asa&n
- 本文实例为大家分享了python OpenCV来表示USB摄像头画面的具体代码,供大家参考,具体内容如下确认Python版本$ python
- python协程只能运行在事件循环中,但是一旦事件循环运行,又会阻塞当前任务。所以只能在当前进程中再开一个线程,这个线程的主要任务是运行事件
- 为什么页面出现乱码?为什么数据库里出现乱码?为什么这些乱码的出现几率飘忽不定了?诸如此类的乱码问题困扰了很多WEB开发人员。假如不将这背后的
- 引言最近公司换了电脑,系统也从 win7 升级到 win11,开发环境都重新安装了一遍,然后在 idea 用mvn 执行打包命令 mvn c
- 今天主要记录一下pandas去重复行以及如何分类汇总。以下面的数据帧作为一个例子: import pandas as pddata
- 一、类型数组是值类型,将一个数组赋值给另一个数组时,传递的是一份拷贝。切片是引用类型,切片包装的数组称为该切片的底层数组。我们来看一段代码/
- 手写数字识别算法的设计与实现本文使用python基于TensorFlow设计手写数字识别算法,并编程实现GUI界面,构建手写数字识别系统。这
- 本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理。1.URLError首先解释下URLError可能产生的原
- 基本环境配置python 3.6pycharmrequestscsvtime相关模块pip安装即可目标网页分析网页一切的一切都在图里找到数据
- 直接上代码import pygameimport randomdef main(): # 初始化pygame &n
- 本文实例讲述了Python设计模式之MVC模式。分享给大家供大家参考,具体如下:一.简单介绍mvc模式 the mo
- 在用Python做开发的时候经常会用到数据库或者其他需要动态配置的东西,硬编码在里面每次去改会很麻烦。Python自带有读取配置文件的模块C
- 项目结构├── node_modules # 项目依赖包目录├── build &nb
- 1、replicate_do_db 和 replicate_ignore_db 不要同时出现。容易出现混淆。也是毫无意义的。 Replica
- 字符串转十六进制StrToHex Function<% Response.Write StrToHex("Nice
- 1.regex-coach ——正则表达式工具2. IECookiesView——IE的cookie查看工具3.Flex Trace Pan
- dict是python中的常用数据结构,应该尽量掌握其使用方法字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>
- 1. 引言热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜
- 本文实例讲述了Python快速查找算法的应用,分享给大家供大家参考。具体实现方法如下:import randomdef partition(