树莓派5(Python3.13)初始化PaddleOCR时出现Segmentation fault
PaddleOCR初始化阶段出现Segmentation Fault错误
环境信息
- 硬件:树莓派5(8GB内存)
- Python版本:3.13(虚拟环境)
- PaddleOCR版本:3.4.0
- PaddlePaddle版本:3.2.2
报错代码
from paddleocr import PaddleOCR import matplotlib.pyplot as plt import cv2 import numpy as np def mainCode(): # 1. Initialize OCR ocr = PaddleOCR(lang='ch') # 2. Run OCR result = ocr.predict('001.png') # 3. Load image and draw bounding boxes img = cv2.imread('001.png') img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Draw boxes for line in result[0]: box = np.array(line[0]).astype(int) # Draw polygon plt.plot([box[0,0], box[1,0]], [box[0,1], box[1,1]], 'r-', linewidth=2) plt.plot([box[1,0], box[2,0]], [box[1,1], box[2,1]], 'r-', linewidth=2) plt.plot([box[2,0], box[3,0]], [box[2,1], box[3,1]], 'r-', linewidth=2) plt.plot([box[3,0], box[0,0]], [box[3,1], box[0,1]], 'r-', linewidth=2) # Show/save plt.imshow(img) plt.axis('off') plt.savefig('output/output.jpg', bbox_inches='tight', pad_inches=0) plt.show() if __name__ == '__main__': print("hello!") mainCode()
错误输出
-------------------------------------- C++ Traceback (most recent call last): -------------------------------------- No stack trace in paddle, may be caused by external reasons. ---------------------- Error Message Summary: ---------------------- FatalError: `Segmentation fault` is detected by the operating system. [TimeInfo: *** Aborted at 1771411237 (unix time) try "date -d @1771411237" if you are using GNU date ***] [SignalInfo: *** SIGSEGV (@0x0) received by PID 21676 (TID 0x7ffe9168f160) from PID 0 ***] Segmentation fault
已排查内容
- 确认设备可用内存充足(剩余内存足够)
- 模型已成功下载并缓存到本地
- 工作目录中存在目标图片文件
001.png
解决方案建议
- 切换到兼容的Python版本
Python 3.13属于较新版本,PaddlePaddle和PaddleOCR对其ARM架构下的支持可能不完善。建议切换到Python 3.10或3.11(官方推荐的稳定版本),重新创建虚拟环境并安装依赖:
# 创建Python3.11虚拟环境 python3.11 -m venv paddle_env source paddle_env/bin/activate # 安装对应版本的依赖 pip install paddlepaddle==3.2.2 paddleocr==3.4.0
- 安装ARM架构适配的PaddlePaddle包
树莓派5基于ARM64架构,确保安装针对ARM优化的PaddlePaddle版本。卸载现有版本后重新安装:
pip uninstall paddlepaddle -y # 安装ARM64适配版本 pip install paddlepaddle==3.2.2 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
- 禁用MKL优化
部分ARM设备上MKL优化可能触发段错误,通过环境变量禁用:
export MKL_DISABLE_FAST_MM=1 # 运行脚本 python your_script.py
- 使用轻量版模型初始化
尝试加载更小的预训练模型,降低架构适配压力:
# 指定轻量模型初始化 ocr = PaddleOCR(lang='ch', use_angle_cls=False, use_gpu=False, det_model_dir='ch_PP-OCRv3_det_infer', rec_model_dir='ch_PP-OCRv3_rec_infer')
- 更新系统依赖库
确保树莓派系统的基础依赖库为稳定版本,避免版本冲突:
# 更新系统软件包 sudo apt update && sudo apt upgrade -y # 重新安装兼容版本的OpenCV和numpy pip install opencv-python==4.8.0 numpy==1.26.0
内容的提问来源于stack exchange,提问作者Ching On Chan
相关产品推荐
相关产品推荐

