easyocr:基于Pytorch的光学字符识别神器
文章目录安装并下载模型试用类和方法安装并下载模型easyocr是基于PyTorch的光学字符识别(Optical Character Recongnition, OCR)工具开箱即用支持从自然场景图像到密集文档的文本提取。在确认安装Pytorch之后用pip安装即可。pip install easyocr -i https://pypi.tuna.tsinghua.edu.cn/simpleeasyocr在使用时需要从github下载模型考虑到github经常抽风这里推荐离线下载下载完成后可将.pth文件放进C:\Users\用户名\.EasyOCR\model\路径下。共有两类文件一个是检测模型地址为https://github.com/JaidedAI/EasyOCR/releases/download/pre-v1.1.6/craft_mlt_25k.zip https://github.com/JaidedAI/EasyOCR/releases/download/v1.6.0/pretrained_ic15_res18.zip https://github.com/JaidedAI/EasyOCR/releases/download/v1.6.0/pretrained_ic15_res50.zip另一类是语言模型语言列表为EasyOCR Model Hub。试用下面以下面这张刚截的图片为例运行结果如下importeasyocr patheasyocr.png# 图片路径readereasyocr.Reader([ch_sim,en])resultreader.readtext(path)forresinresult:print(f{res[2]:.2}:{res[1]}) 0.86: import easyocr 1.0: path 0.45: easyocr. Png 0.77: 图片路径 0.75: peader 0.3: easyocr .Reader ( [ ch_sim 0.8: pesult 0.69: reader.readtext (path ) 其中readtext方法的返回值是结果列表其中每一项都是一个三元组依次是文本框的坐标识别结果以及置信度。类和方法【Reader】是easyocr的核心类【readtext】为Reader的核心方法。二者签名如下classReader(lang_list,gpuTrue,model_storage_directoryNone,user_network_directoryNone,detect_networkcraft,recog_networkstandard,download_enabledTrue,detectorTrue,recognizerTrue,verboseTrue,quantizeTrue,cudnn_benchmarkFalse):defreadtext(image,decodergreedy,beamWidth5,batch_size1,workers0,allowlistNone,blocklistNone,detail1,rotation_infoNone,paragraphFalse,min_size20,contrast_ths0.1,adjust_contrast0.5,filter_ths0.003,text_threshold0.7,low_text0.4,link_threshold0.4,canvas_size2560,mag_ratio1.,slope_ths0.1,ycenter_ths0.5,height_ths0.5,width_ths0.5,y_ths0.5,x_ths1.0,add_margin0.1,threshold0.2,bbox_min_score0.2,bbox_min_size3,max_candidates0,output_formatstandard)参数非常多除了刚刚已经用到的lang_list和image之外还有几个参数相对比较重要其中Reader类的参数gpu设为True时启用GPU。否则用CPU。model_storage_directory**模型路径**。自定义预训练权重.pth文件的存放目录。设为None时使用系统默认路径如~/.EasyOCR/modelreadtext的参数。allowlist白名单。强制模型仅输出该字符串中包含的字符。例如识别车牌时设为0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZblocklist黑名单。强制模型忽略该字符串中包含的字符。detail输出详细度。1返回[边界框坐标, 识别文本, 置信度]设为0则仅返回纯文本字符串列表。其他参数含义如下参数含义备注user_network_directory自定义网络路径用于加载用户自行训练的网络结构定义文件。detect_network检测算法指定文本检测网络默认为craft也可选其他支持的轻量级变体 [[2]]。recog_network识别算法指定文本识别网络。可选standard或generation2g2 版本通常推理更快 [[2]]。download_enabled自动下载模型缺失时是否允许联网下载。离线部署必须设为False。detector启用检测若设为False则跳过检测阶段假定输入图像已是裁剪好的单行文本直接执行识别。recognizer启用识别若设为False则仅执行文本框检测不进行文字识别。verbose日志输出是否在控制台打印模型加载和运行的详细信息。quantize模型量化是否对模型进行 INT8 量化可减少内存占用并提升 CPU 推理速度但可能轻微损失精度。cudnn_benchmarkcuDNN 优化若输入图像尺寸固定设为True可让 cuDNN 自动寻找最优卷积算法提升 GPU 速度。参数含义备注decoder解码策略默认为贪心解码greedy。可选束搜索beamsearch精度更高但更慢beamWidth束搜索宽度仅在beamsearch解码时生效控制搜索树的分支数量。batch_size批处理大小大于 1 可显著提升 GPU 识别速度但会线性增加显存消耗workers数据加载线程PyTorch DataLoader 使用的线程数0 表示使用主线程。paragraph段落合并是否根据空间位置将相邻的检测框合并为完整的段落文本检测阶段Detection超参数注通常无需修改仅在特定场景如极小文本、低对比度图像识别失败时微调。text_threshold(0.7): 文本像素的置信度阈值高于此值判定为文本。low_text(0.4): 文本区域的下限阈值用于连接相邻的弱文本像素。link_threshold(0.4): 连接相邻字符区域形成完整文本行的阈值。canvas_size(2560): 检测网络输入图像的最大边长。超大图像会被等比缩放至此尺寸。mag_ratio(1.0): 图像放大比例。处理极小文本时可设为1.5或更高。min_size(20): 忽略面积或边长小于此像素值的检测框用于过滤噪点。contrast_ths(0.1): 判定图像为“低对比度”的阈值。adjust_contrast(0.5): 当图像对比度低于contrast_ths时自动增强到的目标对比度。filter_ths(0.003): 基于字符高度的后处理过滤阈值剔除异常比例的检测框。bbox_min_score(0.2): 检测框的最低置信度得分低于此值的框被丢弃。bbox_min_size(3): 检测框允许的最小像素尺寸。max_candidates(0): 检测阶段保留的最大候选框数量0表示无限制。识别与几何后处理超参数rotation_info(None): 列表如[90, 180, 270]。指定模型尝试旋转图像的角度用于处理多方向或倒置文本。add_margin(0.1): 在裁剪检测框周围额外添加的边距比例10%以保留更多字符边缘上下文。slope_ths,ycenter_ths,height_ths,width_ths,y_ths,x_ths: 均为浮点数。仅在paragraphTrue时生效用于计算两个文本框在斜率、中心点距离、宽高比上的几何相似度以决定是否合并为同一段落。output_format(standard): 输出数据格式可选standard或dict返回结构化字典。

相关新闻

MES生产执行系统全流程:工厂车间到底怎么实现数字化管理

MES生产执行系统全流程:工厂车间到底怎么实现数字化管理

1. 为什么工厂车间需要 MES很多工厂已经上了 ERP,计划部门能在系统里排单、算物料、看库存,但计划一旦下达到车间,后面的事情往往就变成“拍脑袋”和“靠人追”。今天生产了多少、哪台设备在停机、这批料是谁领的、质量异常卡在哪个工序&…

2026/9/25 16:52:18 阅读更多 →
软著公开信息批量采集:用 OpenClaw 抓取软件著作权数据,分析企业技术布局方向

软著公开信息批量采集:用 OpenClaw 抓取软件著作权数据,分析企业技术布局方向

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 16:52:18 阅读更多 →
Scikit-learn机器学习实战:436页课件算法与避坑指南

Scikit-learn机器学习实战:436页课件算法与避坑指南

简介:这份《机器学习常用算法课件大全》共436页PDF,面向机器学习入门与进阶学习者、算法工程师及高校师生,系统梳理常见算法的原理、API调用与实战案例。内容从K-近邻算法切入,覆盖距离度量、kd树、交叉验证与网格搜索&#xff0c…

2026/9/25 16:52:18 阅读更多 →

最新新闻

ONNX Runtime端侧部署三要素:打包、量化与线程治理

ONNX Runtime端侧部署三要素:打包、量化与线程治理

1. 项目概述:为什么端侧推理不能只靠“跑通就行”ONNX Runtime 打包、量化与推理线程治理——这九个字不是技术堆砌,而是端侧模型落地的三道生死关。我带团队做过17个终端AI项目,从智能摄像头固件到车载语音助手,再到工业手持终端…

2026/9/25 17:31:44 阅读更多 →
Seastar 高性能服务器框架实战指南:从编译构建、构建模式到异步编程工程接入

Seastar 高性能服务器框架实战指南:从编译构建、构建模式到异步编程工程接入

后端异步编程网络 【免费下载链接】seastar High performance server-side application framework 项目地址: https://gitcode.com/gh_mirrors/se/seastar 点击查看 免费下载 Seastar 是一个基于事件驱动与 future 编程模型的高性能服务器端 C 框架,支持…

2026/9/25 17:31:44 阅读更多 →
RubricRL实战:用结构化评分表替代标量奖励的大模型强化学习方案

RubricRL实战:用结构化评分表替代标量奖励的大模型强化学习方案

1. 为什么我要折腾 RubricRL 这件事大语言模型做强化学习,这两年最主流的路线基本被 RLHF 和后来的 DPO、GRPO 这些方法占满了。但真上手做过的人都知道,RLHF 那套奖励模型(Reward Model)的训练成本高得离谱,而且奖励模…

2026/9/25 17:31:44 阅读更多 →
BlockNote 表格混合列宽的 Markdown 导出:从 columnWidths 到 GFM 快照的完整链路解析

BlockNote 表格混合列宽的 Markdown 导出:从 columnWidths 到 GFM 快照的完整链路解析

前端富文本UI组件AI 应用 【免费下载链接】BlockNote A React Rich Text Editor thats block-based (Notion style) and extensible. Built on top of Prosemirror and Tiptap. 项目地址: https://gitcode.com/gh_mirrors/bl/BlockNote 点击查看 免费下载 本文以 B…

2026/9/25 17:31:44 阅读更多 →
EasyWeChat 6.x 微信开发疑难解答全攻略:从环境配置到平台接入的排坑指南

EasyWeChat 6.x 微信开发疑难解答全攻略:从环境配置到平台接入的排坑指南

后端即时通讯 【免费下载链接】easywechat 📦 一个 PHP 微信 SDK 项目地址: https://gitcode.com/gh_mirrors/ea/easywechat 点击查看 免费下载 在微信公众平台、小程序与支付接口的对接过程中,开发者常会遇到证书校验失败、授权目录未注册、…

2026/9/25 17:31:44 阅读更多 →
Android 内存泄露排查实战:从 Logcat 到 TaoToken 统一 Key 配置的完整链路

Android 内存泄露排查实战:从 Logcat 到 TaoToken 统一 Key 配置的完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 17:30:43 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →