easyocr:基于Pytorch的光学字符识别神器

发布时间:2026/9/25 16:53:19

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返回结构化字典。
延伸阅读

更多相关文章

2026/9/25 16:48:19

2026校招测评考什么?网申测评如何通过 + 高分攻略

一、网申测评,到底在筛选什么2026届校招的网申测评环节正在发生一个微妙但重要的变化:企业不再只看你“答对了多少题”。北森AI人才科学研究院发布的报告显示,2026年预计有95%的应届生在求职中使用AI工具,一年前这个数字还是66.7%…

2026/9/25 16:48:19

基于SpringBoot的大学生科技社团管理系统设计与实现

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 1. 项目背景与意义 随着高校学生社团数量的不断增长,传统的人工管理方式在社团信息登记、活动组织、成员管理等方面逐渐暴露出效率低、易出错、信息不透明等…

2026/9/25 16:48:19

计算机为什么用二进制?十进制会有什么问题【庖丁解牛】

根因 计算机底层依靠电子元器件的物理状态来表达信息。硬件最容易稳定实现的是两种状态:通电/断电、高电平/低电平、磁畴正向/反向。二进制刚好只有0、1两个符号,完美匹配硬件双稳态特性;如果强行做十进制,需要电路稳定区分10种不…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

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

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

2026/9/25 0:02:35

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

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

2026/9/25 0:02:35

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

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

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑