之前谈到文本 OCR 识别时,写过一篇文章介绍了一个 Python 包 pytesseract ,具体内容可参考
介绍一个Python 包 ,几行代码可实现 OCR 文本识别!这篇文章 ,pytesseract 包是基于 Tesseract 封装得到的,这个包虽然支持多语言文本识别,但对于不同语言文本识别,准确率却不一样,例如英文识别准确率高,而中文文本较低;
英文字符识别,整体来看基本不会出错,但对于中的中文字符,经常出现乱码、识别失败,
2,EasyOCR 介绍
今天将介绍一个的用于 文本OCR 新的Python 包 EasyOCR ,这个包是基于训练好的 Deep Learning 模型开发的,模型包含功能:文本检测、文本识别
EasyOCR 包从开源到现在 10 个月不到,但在 Github 已经有 10k+ star,到目前为止经过四次版本迭代,有以下几个特点:
1,到目前为止 支持70+种语言文本识别,包括但不限于 英语、中文、日语、韩语等;
2,源于深度学习技术,识别精度很高;对于正常文本识别来说,准确率能达到 100% ;

3,不仅适用于单语言,同样也适用于多语言(例如一张中需要同时识别中文、英语、日语三类语言);

4,支持 GPU 加速,GPU 识别速度要比 CPU 快 6~7 倍;(需要提前配置好 cuda、 pytorch、torchvision Python 环境);
对比传统 OCR 只具有文本识别之外,EasyOCR 还具有 文本检测 功能(中识别到的文本框,在中的定位以 左上、右上、右下、左下 坐标顺序依次返回),效果如下图:

上图中 EasyOCR 最终输出的是右图的 文本信息 ,左图中的红色线框是后面经处理加上去的
3,EasyOCR 使用
上面对 EasyOCR 程序包做了简单介绍,下面介绍一下它的基本用法
安装
EasyOCR 已经上传到 Pypi 上面了,可通过 pip 命令完成安装
pip install easyocr
EasyOCR 的模型是基于 pytorch 框架训练的,在 easyocr 下载同时会下载一些其它附加 python 包,例如 pytorch, torchvision 等,时间需要久一点(需要注意下,easyocr 默认安装的是 pytorch 的 cpu 版本,需要 gpu 配置的小伙伴可以搜一下 pytorch-gpu 相关教程进行配置);
使用方法
虽然 EasyOCR 安装步骤很简单,只有一行代码;但使用过程中会出现包版本不匹配、环境项缺失 等问题,在使用过程中,我遇到了两个因为环境错误导致无法使用的问题,这里我贴在下方并附上解决方案,遇到的小伙伴们可以参考下,当然没遇到的话更好
训练整个数据集的次数。
当一个 完整的 数据集通过了神经网络一次并且返回了一次,这个过程称为一次epoch。(也就是说,所有训练样本在神经网络中都进行了一次正向传播 和一次反向传播 )
然而,当一个Epoch的样本(也就是所有的训练样本)数量可能太过庞大(对于计算机而言),就需要把它分成多个小块,也就是就是分成多个Batch 来进行训练。
将整个训练样本分成若干个Batch。
每批样本的大小。
训练一个Batch就是一次Iteration(这个概念跟程序语言中的迭代器相似)。
mnist 数据集有60000张作为训练数据,10000张作为测试数据。假设现在选择 Batch_Size = 100对模型进行训练。迭代30000次。
参考: >
在PyTorch中,GPU训练时显卡显存free(即未被使用的显存)可能不会立即分配给当前任务。这是由于PyTorch具有内置的CUDA内存管理器,它负责在GPU内存之间管理数据的分配和移动。
当PyTorch需要为一个张量分配内存时,它会向CUDA内存管理器申请一块适当大小的内存。如果该内存块已经存在于空闲池中,则会立即返回给PyTorch,并用于存储张量。但是,如果没有足够的空闲内存,则CUDA内存管理器将查看哪些内存块可以被释放以腾出足够的空间来满足请求。这个过程涉及到一些算法和策略,例如内存碎片整理、异步释放等,因此分配不一定会立即发生。
此外,显存分配还受到其他因素的影响,如 *** 作执行的顺序、数据类型、张量大小等。有时候可能需要手动释放已不再需要的变量或清理缓存以确保尽可能多地利用可用的显存资源。
要在JSON开发板上使用显卡运行PyTorch,首先需要安装GPU版本的PyTorch和CUDA工具包。接着,需要配置Python环境和相关库,确保能够使用GPU进行计算。具体步骤可参考以下 *** 作:
1 安装NVIDIA显卡驱动程序和CUDA工具包,并根据所用PyTorch版本选择对应的CUDA工具包版本。
2 安装cuDNN加速库和PyTorch等深度学习框架,并检查是否正确安装。
3 配置Python环境变量,并将所需依赖库导入到Python环境中。
4 在代码中添加相应的GPU使用语句,如`device=torchdevice('cuda')`,以使用GPU进行计算。
总之,在使用JSON开发板进行PyTorch开发时应当注意GPU环境的配置和使用方法,以充分利用GPU进行高效的深度学习计算。
以上就是关于python 有人用过easyocr这个库吗 遇到问题了吗。不会就我一个人遇到了问题,满屏报错
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)