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
猜你喜欢
- 先介绍一下redis的pub/sub功能:Pub/Sub功能(means Publish, Subscribe)即发布及订阅功能。基于事件的
- 采集中 或者 在线添加文章中 都可以用到此功能俺自己在baidu上搜索的保存远程图片到本地的代码 感觉比较难用点 而且没有现成的比较全的代码
- 最好也是最简单的办法就是利用Cookie,而不必用到数据库。当然,你愿意用数据库也可以。下面就是利用Cookie来实现的:< 
- 一、问题描述如题,在使用pip install xxx的方法安装python库,或者是基于python的软件时,报错“E
- 这一段要毕业,得折磨自己两个月....这段时间还是会摆弄了javascript的.大致在下面两个方面: 1.javascript的
- 在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序
- 在使用pre-train model时候,我们需要restore variables from checkpoint files.经常出现在
- 最近在学习正则,一些比较有用的东西怕忘记,记下来,比较乱,想一条记录一条:正则表达式在线测试//匹配文本,这个偶尔比较好用,但是要小心字符中
- TXT文本文件,WORD文档点击后弹出另存为对话框,然后保存下载,而不是在浏览器中打开的asp实现方法,使用了asp中的stream对象,同
- 有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔x步进行一次采样,这就要求对一个list每隔x步进行一次截取,再从截取到的不同的子集
- 学习目的: 学习ADO.NET用法,并如何用DataRearder读取数据 今天练习数据库的最基本用法,如何打开数据库。首先在网站设置文件w
- bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
- 背景:Email地址存于MSSql一用户信息表中,数量上万。公司自有服务器,集SMTP,POP3,WWW,FTP,MSSql,DNS等多种服
- 变量赋值与对象赋值对比<?php // 声明一个变量并赋值 $a = 1; // 将数据类型
- 前言:NoxfileNox 默认在一个名为noxfile.py的文件中查找配置。在运行 nox 时,你可以使用 --noxfile参数指定其
- 场景:1.计算SimHash值,及Hamming距离。2.SimHash适用于较长文本(大于三五百字)的相似性比较,文本越短误判率越高。Py
- 引言之前有些无聊(呆在家里实在玩的腻了),然后就去B站看了一些python爬虫视频,没有进行基础的理论学习,也就是直接开始实战,感觉跟背公式
- Installing mysql (2.8.1) with native extensions /usr/local/lib/ruby/si
- 本文实例讲述了Python中列表元素转为数字的方法。分享给大家供大家参考,具体如下:有一个数字字符的列表:numbers = ['2
- 前文学习:python数据类型: python数据结构:数据类型.python的输入输出: python数据结构输入输出及控制和异常.pyt