easyocr 本地部署模型 识别图像 ocr - python 实现

news2024/10/16 8:27:08

使用 easyocr 本地部署识别图像 ocr ,可以满足简单图像场景的ocr识别。

可以进行 中文、英文 ocr 识别。

安装 python 库

pip install easyocr

识别本地模型下载地址:easyocr本地部署模型识别图像ocr-python实现资源-CSDN文库

也可通过程序直接下载官方链接

识别示例代码具体如下:

#-*-coding:utf-8-*-
# date:2021-03-21
# Author: DataBall - XIAN
# Function: 实现图像 OCR 定位和识别

import os
os.environ['EASYOCR_DATA_DIR'] = './ckpt'
import easyocr
import cv2
import numpy as np

if __name__ == "__main__":
    reader = easyocr.Reader(['ch_sim','en'], gpu=True,model_storage_directory = "./ckpt") # 加载本地模型
    path_img= r"examples\s1.jpg"
    # path_img= r"examples\s2.jpg"
    print("path_img:",path_img)
    result = reader.readtext(path_img)
    # print("result:",result)
    print("len:",len(result))
    img = cv2.imread(path_img)

    idx = 0
    for m_ in result:
        idx += 1
        print(" [{}] {} ".format(idx,m_)) # 打印 ocr 识别结果
        pts = np.array(m_[0])
        pts = pts.reshape((-1,1,2))  #reshape为10x1x2的numpy
        # print(pts.shape)
        try:
            # 绘制区域
            cv2.polylines(img,[pts],True,(255,0,0),5)
            cv2.polylines(img,[pts],True,(0,02,550),2)
        except:
            continue
    cv2.namedWindow("img",0)
    cv2.imshow("img",img)
    cv2.waitKey(0)

【英文】识别ocr的示例 log如下:

path_img: examples\s1.jpg
len: 6
 [1] ([[215, 220], [372, 220], [372, 269], [215, 269]], 'Mairie du Il', 0.7160473332813915)
 [2] ([[256, 321], [477, 321], [477, 383], [256, 383]], 'IPalais du LOUVRE', 0.4025377946164086)
 [3] ([[242, 418], [515, 418], [515, 474], [242, 474]], 'LES ARTS DECORATIFS', 0.9520467181101142)
 [4] ([[260, 538], [481, 538], [481, 590], [260, 590]], 'IMusee du LOUVRE', 0.6906741106430193)
 [5] ([[197, 637], [281, 637], [281, 675], [197, 675]], 'Theatre', 0.9687920530479167)
 [6] ([[195, 668], [378, 668], [378, 713], [195, 713]], 'du PALAIS-ROYAII', 0.38048889529807867)

【英文】识别示例显示结果如下图:

【中文】 ocr识别示例 log如下:

path_img: examples\s2.jpg
len: 18
 [1] ([[68, 4], [411, 4], [411, 120], [68, 120]], 'T', 0.02513536960325169)
 [2] ([[53, 199], [151, 199], [151, 219], [53, 219]], '小科(', 0.005845191785346051)
 [3] ([[51, 227], [121, 227], [121, 267], [51, 267]], '雷军', 0.9930638791278288)
 [4] ([[312, 302], [346, 302], [346, 328], [312, 328]], '你', 0.9963706343826892)
 [5] ([[315, 329], [409, 329], [409, 349], [315, 349]], '不愿薏听我的', 0.12065996670191718)
 [6] ([[319, 357], [385, 357], [385, 377], [319, 377]], '我就闭嘴', 0.3216131031513214)
 [7] ([[330, 414], [376, 414], [376, 438], [330, 438]], '加旦', 0.00018517122243834601)
 [8] ([[334, 442], [442, 442], [442, 466], [334, 466]], '以后证明你错了', 0.9192290431047331)
 [9] ([[333, 473], [397, 473], [397, 493], [333, 493]], '而我了', 0.7705055472317546)
 [10] ([[333, 501], [443, 501], [443, 521], [333, 521]], '那你要向我道歉', 0.82041872865308)
 [11] ([[361, 625], [443, 625], [443, 645], [361, 645]], '本刊记者 :花月', 0.5882038669206735)
 [12] ([[47, 653], [69, 653], [69, 665], [47, 665]], '20元', 0.1347271710802868)
 [13] ([[93, 653], [125, 653], [125, 665], [93, 665]], '塑36?}', 0.0013240344658845757)
 [14] ([[131, 653], [189, 653], [189, 665], [131, 665]], '201841月288', 0.615746162991523)
 [15] ([[200, 654], [224, 654], [224, 662], [200, 662]], 'SO', 0.10028489515834976)
 [16] ([[231, 653], [259, 653], [259, 665], [231, 665]], '0', 0.0001401376108900185)
 [17] ([[262, 654], [326, 654], [326, 662], [262, 662]], 'IT6ArC', 0.0034239475033886247)
 [18] ([[346, 654], [422, 654], [422, 662], [346, 662]], 'SONo', 0.014922617934644222)

【中文】识别示例显示结果如下图:

​​

助力快速掌握数据集的信息和使用方式。

数据可以如此美好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2209788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机的错误计算(一百二十一)

摘要 探讨表达式 “((1/3-0.3333333333333333235)(1/3-0.333333333333333759)*0.008)*10^20” 的计算精度问题。 对于下列算式 若用C编程计算,则输出是错误结果[1]。那么别的语言呢? 例1. 计算 不妨用Java代码计算: public class expres…

el-image预览时和el-table边框出现样式穿透问题处理

el-image预览时和el-table边框出现样式穿透问题处理 如图所示 我们只需要在当前组件加一个css即可解决问题 <style lang"scss" scoped> :deep(.el-table__cell) {position: static !important; } </style>

Django学习笔记之Django基础学习

Django笔记 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录…

黑马程序员 javaWeb基础学习,精细点复习【持续更新】

文章目录 WEB开发一、HTML1.html介绍 二、CSS1.CSS介绍2.CSS导入方式3.CSS选择器4.CSS属性 三、JavaScript1.介绍2.浏览器3.js的三种输出方式4.js定义变量5.js数据类型6.js运算符7.全局函数8.函数定义9.js数组对象10.js正则对象11.字符串对象12.自定义对象13.BOM浏览器对象模型…

前端开发笔记--css 黑马程序员1

文章目录 1. css 语法规范2.css的书写风格3.基础选择器选择器的分类标签选择器类选择器类选择器的特殊使用--多类名 id 选择器 字体属性常见字体字体大小字体粗细字体倾斜字体的复合简写字体属性总结 文本属性文本颜色文本对齐装饰文本文本缩进文本间距文本属性总结 css的引入方…

新兴的安全职业挑战

我们经常与安全专业人士交谈&#xff0c;他们希望在努力提升职业发展的同时提高自己的价值并克服组织内部的挑战。在这些谈话中&#xff0c;花费大量时间讨论公司未来将面临的安全问题并不罕见。 安全领导者希望为问题制定计划并获得领导层对其计划的支持。这通常意味着实施修…

关于 文件操作详解 笔记 (含代码解析)

文件 磁盘&#xff08;硬盘&#xff09;上的⽂件是⽂件。 程序设计中&#xff0c;我们⼀般谈的⽂件有两种&#xff1a;程序⽂件、数据⽂件&#xff08;从⽂件功能的⻆度来分类 &#xff09; 程序⽂件 程序⽂件包括源程序⽂件&#xff08;后缀为.c&#xff09;,⽬标⽂件&#…

Mac解决服务端第三方库安装问题

问题&#xff1a; 这周使用Flask框架写了一个数据展示的小网页&#xff0c;在发布的时候发现构建失败&#xff0c;查看日志发现是这次新增的一个第三方库没有安装到服务端&#xff0c;导致构建的时候失败了 解决问题&#xff1a; 服务端发布新增第三方库 解决过程 1、确定服务…

笔记整理—linux网络部分(1)基础网络常用名词与知识

最开始使用在同一电脑主机下进行的通信门后面发展到不同主机之间的通信。 应用编程本章就是使用API socket进行通信。 应用层&#xff1a;低级&#xff08;直接基于socket接口编程&#xff09; 高级&#xff08;基于网络通信应用框架进行编程&#xff09; 更高级&#xff08;ht…

利用 Llama 3.1模型 + Dify开源LLM应用开发平台,在你的Windows环境中搭建一套AI工作流

文章目录 1. 什么是Ollama&#xff1f;2. 什么是Dify&#xff1f;3. 下载Ollama4. 安装Ollama5. Ollama Model library模型库6. 本地部署Llama 3.1模型7. 安装Docker Desktop8. 使用Docker-Compose部署Dify9. 注册Dify账号10. 集成本地部署的 Llama 3.1模型11. 集成智谱AI大模型…

【物联网】物联网智能项目:从概念到实践

物联网智能项目&#xff1a;从概念到实践 1. 物联网简介 物联网&#xff08;IoT, Internet of Things&#xff09;是指通过网络将各种物理设备连接起来进行数据交互的系统&#xff0c;目标是通过智能设备感知、采集和处理环境信息&#xff0c;实现远程控制、自动化操作和智能…

程序员应对AI辅助编程时代:策略与展望

前言 随着AIGC&#xff08;如chatgpt、midjourney、claude等&#xff09;大语言模型接二连三的涌现&#xff0c;AI辅助编程工具日益普及&#xff0c;程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工作&#xff0c;也有人认为AI是提高效率的得力助手。面对这一…

概率 多维随机变量与分布

一、二维 1、二维随机变量及其分布 假设E是随机试验&#xff0c;Ω是样本空间&#xff0c;X、Y是Ω的两个变量&#xff1b;(X,Y)就叫做二维随机变量或二维随机向量。X、Y来自同一个样本空间。 联合分布函数 F(x,y)P(X≤x,Y≤y)&#xff0c;即F(x,y)表示求(x,y)左下方的面积。 …

国内经典多模态大模型工作2——MiniCPM-V系列(MiniCPM-Llama3-V 2.5、MiniCPM-V-2.6解读)(持续更新)

MiniCPM-V系列是面壁智能推出的小参数量的开源多模态大模型&#xff0c;没有超过9B的版本。主打小而强。 官方目前只放出了MiniCPM-Llama3-V 2.5的paper&#xff0c;2.0只有技术博客而且主要是效果展示。 目前一共出了以下几代&#xff1a;MiniCPM-V、MiniCPM-V 2.0、MiniCPM-…

探索 OpenAI 的 Swarm:一个用于多代理系统的实验性框架

OpenAI 最近发布了 Swarm,这是一个轻量级且实验性的框架,旨在支持多代理系统的开发(在其 GitHub 上特别提到这是实验性和教育性的)。 与传统方法依赖于底层的大型语言模型 (LLM) API 不同,Swarm 提供了一个无状态的抽象,用于管理多个代理之间的交互和任务交接。 这一发…

比瓴科技应邀出席金融供应链安全研讨会•引领金融软件供应链安全创新实践

9月25日&#xff0c;广东省金融科技协会在广东省地方金融管理局指导下成功在广州隆重召开“筑‘链’安全 护航发展”金融供应链安全研讨会。 随着信息技术的飞速发展和金融行业的数字化转型&#xff0c;软件在金融领域的应用日益广泛。如何保障软件供应链安全已然成为守护供应…

univer实现excel协同

快速入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&q…

大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 聚合组 RowKeys

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

物联网如何推动工业数字化转型?

全球步入数字经济时代&#xff0c;制造业的数字化转型已成为驱动经济发展的核心引擎。物联网作为工业数字化转型的强力推手&#xff0c;其深度融入不仅促进了生产流程的智能化与自动化&#xff0c;还实现了数据的实时分析与精准决策&#xff0c;为制造业企业带来了前所未有的创…

根据Vue对比来深入学习React 上 函数组件 jsx 事件绑定 响应式数据 条件绑定 列表渲染 表单绑定

文章目录 React项目创建React核心库介绍React组件jsx编写jsx代码的本质jsx里面渲染不同内容 事件绑定事件绑定其他操作特别注意 响应式数据setState 的特性 条件渲染列表循环表单绑定总结 React项目创建 react官网提供了很多生产级的React框架 比如next.js&#xff0c;不过你还…