You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用EasyOCR的readtext触发非法指令异常,如何获取文本输出?

解决EasyOCR非法指令异常(0xC000001D)问题

问题背景

使用EasyOCR处理图片时触发非法指令异常(退出码0xC000001D),代码无法进入循环获取识别结果。环境配置:

  • Python 3.12.7
  • easyocr 1.7.2
  • torch 2.5.1、torchvision 0.20.1、torchaudio 2.5.1
  • opencv-python 4.10.0.84
  • CPU支持AVX

执行代码:

import easyocr

reader = easyocr.Reader(['en'])
result = reader.readtext('images/phonenum.png')

for (bbox, text, prob) in result:
    print(text)

终端输出:

C:\Users\charl\PYTHON\stackoverflow_questions_2\.venv\Scripts\python.exe C:\Users\charl\PYTHON\stackoverflow_questions_2\read_text_ocr.py 
Neither CUDA nor MPS are available - defaulting to CPU. Note: This module is much faster with a GPU.

Process finished with exit code -1073741795 (0xC000001D)

解决方案

1. 降级PyTorch版本

PyTorch 2.5.x可能引入了你的CPU不支持的高级指令集(如AVX2/AVX512),即使CPU支持基础AVX也会触发异常。降级到兼容的旧版本:

pip uninstall torch torchvision torchaudio
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cpu

2. 禁用高级指令集优化并强制CPU模式

通过环境变量限制PyTorch的指令集使用,同时明确指定EasyOCR用CPU运行:

import os
# 禁用多线程和高级指令集优化
os.environ['TORCH_CPU_THREADS'] = '1'
os.environ['OMP_NUM_THREADS'] = '1'
os.environ['MKL_NUM_THREADS'] = '1'

import easyocr
reader = easyocr.Reader(['en'], gpu=False)
result = reader.readtext('images/phonenum.png')

for (bbox, text, prob) in result:
    print(text)

3. 更新CPU微码或BIOS

部分CPU需要更新微码或BIOS才能支持特定指令集,前往主板厂商官网下载对应型号的BIOS更新包,或通过Windows更新安装最新的CPU微码补丁。

4. 替换为Tesseract OCR

如果上述方法无效,可改用Tesseract OCR替代:

pip install pytesseract pillow

代码示例:

from PIL import Image
import pytesseract

# 若Tesseract未加入系统环境变量,需指定路径
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

img = Image.open('images/phonenum.png')
text = pytesseract.image_to_string(img, lang='eng')
print(text.strip())

内容的提问来源于stack exchange,提问作者Charles Knell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:57:07