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

树莓派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

解决方案建议

  1. 切换到兼容的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
  1. 安装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
  1. 禁用MKL优化
    部分ARM设备上MKL优化可能触发段错误,通过环境变量禁用:
export MKL_DISABLE_FAST_MM=1
# 运行脚本
python your_script.py
  1. 使用轻量版模型初始化
    尝试加载更小的预训练模型,降低架构适配压力:
# 指定轻量模型初始化
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')
  1. 更新系统依赖库
    确保树莓派系统的基础依赖库为稳定版本,避免版本冲突:
# 更新系统软件包
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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 13:04:55