EasyOCR文字识别Python安装与使用
Easyocr:
检测部分使用了CRAFT算法,识别模型为CRNN,它由3个主要组件组成:特征提取,序列标记(LSTM)和解码(CTC)。整个深度学习过程基于Pytorch实现。
检测:CRAFT算法
识别:CNN+RNN+CTC
1 安装
直接pip unstall easyocr失败,不知道为啥。
于是到GitHub上下载zip文件。
把zip文件放到要放的文件夹(我放在当前python interpreter的script)里解压,在解压后的文件夹里鼠标右键+shift进入PowerShell窗口。
输入命令:Python setup.py install
中间会安装一些包,一些已有的包的版本可能跟需要的不兼容,重新下一下该库就行:
eg:torchvision 0.11.3 requires pillow!=8.3.0,>=5.3.0, but you have pillow 8.3.0 which is incompatible.
直接pip install Pillow==范围内的版本就行(我装的5.3.0)。
最后安装成功:
我感觉这个setup安装已经把相关的包(requirements.txt里的)一起安装了,不需要像参考链接那样再安装一遍,以防万一在pycharm的python package里看看是不是都在。装上的版本是:
torch 1.10.2
torchvision 0.11.3
opencv-python 4.5.4.60
scipy 1.1.0
numpy 1.18.5
Pillow 5.3.0
scikit-image 0.13.1
python-bidi 0.4.2
PyYAML 3.12
2.使用方法
直接跑下面代码(比原文多放了输出):
import easyocr
reader = easyocr.Reader(['ch_sim','en'],gpu=False) # 只需要运行一次就可以将模型加载到内存中
result = reader.readtext('chinese.jpg')
print(result)
for i in result:
word = i[1]
print(word)
报错
OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\Anaconda3\lib\site-packages\torch-1.10.2-py3.6-win-amd64.egg\torch\lib\asmjit.dll" or one of its dependencies.
Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure.
又是熟悉的oserror126,这次提示没有c++ redis,但是我分明下过,还装了两次。没办法再装一次,vc redis下载链接。
装了重启run以后错误变了,变更成:
AttributeError: module 'typing' has no attribute '_SpecialForm'
查了一下这貌似是python3.6的问题csdn,建议装3.8及以上,但是我项目有的sdk必须用3.6版本,还是得想办法看看能不能装点更高级的python版本,到时候不行就切换环境,但现在重新弄环境赶不上deadline,只能先降级typing-extensions。
根据GITHUBtyping-extensions4.2.0 要求 Python >= 3.7。用typing_extensions.py 替换掉原来的文件。或者下载这个也行:不是我的,要花钱
运行后又报错:
File "D:\Anaconda3\lib\site-packages\skimage\util\arraycrop.py", line 8, in <module>
from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name '_validate_lengths'
参考链接完美解决ImportError: cannot import name '_validate_lengths’报错问题解决了,我的arraypad .py没有九百多行,我直接放在文末保存后重启pycharm解决这个问题。(另:在此之前也试过pip install -U scikit-image的办法,对我来说没有用)
修改arraypad .py后运行结果(这里代码没加print语句,所以没输出):
加了输出语句后运行栏里:
Using CPU. Note: This module is much faster with a GPU.
[([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.6629598563364745), ([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.9619014638515315), ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9935730580773452), ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.9999929798007293), ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.9999620772373462), ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.2336988002212701), ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd。', 0.8949640237476169), ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.5179029432256108)]
西
愚园路
东
315
309
W
Yuyuan Rd。
E
进程已结束,退出代码0
参照一下原图:
结果还可以,也不知道怎么就我bug这么多,明天研究一下:
1.怎么输出地好看一点
2.能不能分析视频流,直接对视频流里面的一帧做 *** 作?
3.找下二维码识别的代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)