在EasyOCR中使用DBnet模型时遇RuntimeError报错求助
解决EasyOCR使用DBnet(CPU模式)时的
deform_conv_cpu.*.so导入错误 问题原因
DBnet检测网络依赖**可变形卷积(Deformable Convolution)**组件,在CPU模式下运行时,EasyOCR需要加载对应的deform_conv_cpu.so库文件,但该文件未成功编译或导入,导致报错。
解决方案
以下是几种可行的解决方法,按优先级排序:
1. 切换到无需可变形卷积的检测网络
如果对检测精度要求不是必须用DBnet,可以直接改用EasyOCR默认的craft网络,修改初始化代码:
reader = Reader(['ar'], gpu=False, detect_network='craft')
这种方法最简单,无需额外编译操作。
2. 从源码重新安装EasyOCR
预编译的EasyOCR包可能在部分CPU环境下缺少正确的deform_conv_cpu库,从源码编译安装可以适配你的本地环境:
- 先卸载现有EasyOCR:
pip uninstall easyocr -y - 克隆源码仓库:
git clone https://github.com/JaidedAI/EasyOCR.git cd EasyOCR - 安装依赖并编译:
pip install -r requirements.txt python setup.py install
编译过程中会自动根据你的CPU架构生成对应的deform_conv_cpu.so文件。
3. 手动编译可变形卷积CPU版本
如果不想重新安装整个EasyOCR,可以单独编译deform_conv组件:
- 进入EasyOCR的deform_conv目录(通常在
Lib/site-packages/easyocr/deform_conv) - 执行编译命令:
python setup.py build_ext --inplace
编译完成后,将生成的.so文件(Windows下是.pyd)放在当前Python环境的EasyOCR deform_conv目录下。
内容的提问来源于stack exchange,提问作者AAA
相关产品推荐
相关产品推荐

