笔者这两天在做一个自动化的任务,需要自动化完成一个网站的验证码识别,以实现自动登录。
主要通过python + pytesseract(Tesseract OCR)实现。但发现Tesseract官方的训练库识别率非常低,效果不是很好。于是想尝试下其他的OCR引擎,查了下,决定试试EasyOCR。
直接通过安装命令安装easyOCR:
pip install easyocr
然后进入python,进行验证:
import easyocr
结果却发现运行失败,提示错误如下图:
其实错误提示很明确,表示加载fbgemm.dll文件或其依赖出现了错误。
然而笔者开始没有经验,以为是EasyOCR安装有问题。卸载重装问题依旧,并不能解决。
后来,百度了很多个帖子,最终得以解决。问题的根源,在于笔者不知道easyOCR需要使用PyTorch,因此必须先成功安装PyTorch。而其实经测试笔者的PyTorch果然也是安装失败的,运行下面torch的测试代码时,提示的错误与上面截图一样。
import torch
于是找到了问题的直接解决关键点,即正确安装torch。卸载torch重装也是不行的。
解决的方式是:定位fbgemm.dll依赖的缺失文件,下载缺失的文件并将其复制到fbgemm.dll所在文件夹下即可。
具体方法来自于两篇帖子,笔者认为写得非常详细了,原文如下:
《window系统运行pytorch找不到指定的模块,报错“fbgemm.dll“ or one of its dependencies.”》
笔者运行了依赖检测工具后,发现也是缺少libomp140.x86_64.dll。估计遇到同样的问题的十有八九都是这个文件。所以,时间紧不想检测的朋友可以直接尝试下载这个文件并放在fbgemm.dll所在文件夹下。
至此,顺利解决。验证效果如下:
给遇到同样问题的朋友提供一个思路。