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

如何在Raspberry Pi Zero部署YOLOv5?解决TFLite armv6l兼容问题

树莓派Zero(armv6l)部署YOLOv5目标检测方案

核心问题说明

树莓派Zero采用armv6l架构,官方TensorFlow Lite预编译包仅支持armv7l及以上版本,因此直接通过pip安装会出现找不到适配架构的包的报错(对应你提供的安装失败截图)。以下是无需Docker的可行部署方案,按优先级推荐:


方案一:使用ONNX Runtime(推荐,编译简单)

ONNX Runtime官方提供armv6l的预编译包,适配性更好,步骤如下:

  1. 更新系统并安装基础依赖
sudo apt-get update && sudo apt-get install -y python3-pip libatlas-base-dev
  1. 安装armv6l版本的ONNX Runtime
pip3 install onnxruntime --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cpu/pypi/simple/
  1. 转换YOLOv5模型为ONNX格式(在x86/ARMv7+设备上完成,Zero性能不足)
    选择最小的YOLOv5n模型以适配Zero的算力:
git clone https://github.com/ultralytics/yolov5.git && cd yolov5
pip3 install -r requirements.txt
python export.py --weights yolov5n.pt --include onnx --dynamic --img 320
  1. 树莓派Zero上运行推理
    创建Python脚本(示例):
import cv2
import onnxruntime as ort
import numpy as np

# 加载ONNX模型
session = ort.InferenceSession("yolov5n.onnx")
input_name = session.get_inputs()[0].name
output_names = [output.name for output in session.get_outputs()]

# 预处理图像
def preprocess(img, img_size=320):
    img = cv2.resize(img, (img_size, img_size))
    img = img.transpose(2, 0, 1)  # HWC -> CHW
    img = np.expand_dims(img, axis=0).astype(np.float32) / 255.0
    return img

# 推理示例
img = cv2.imread("test.jpg")
input_tensor = preprocess(img)
outputs = session.run(output_names, {input_name: input_tensor})

# 解析输出(参考YOLOv5 ONNX输出格式)
# 此处省略后处理代码,可参考YOLOv5官方文档

方案二:直接运行YOLOv5 Python轻量版本(无需额外框架)

如果对推理速度要求不高,可直接在Zero上运行YOLOv5的Python原生版本,无需转换模型:

  1. 安装依赖
sudo apt-get install -y python3-pip git libopencv-dev
pip3 install opencv-python-headless torch torchvision --index-url https://download.pytorch.org/whl/cpu
  1. 克隆YOLOv5并运行最小模型
git clone https://github.com/ultralytics/yolov5.git && cd yolov5
python detect.py --weights yolov5n.pt --source test.jpg --img 320 --conf 0.5

注:Zero运行yolov5n的单帧推理时间约10-15秒,适合静态图像检测,不适合实时视频。


方案三:手动编译TensorFlow Lite Runtime(armv6l)

若必须使用TFLite,可手动编译适配armv6l的pip包,无需Docker:

  1. 安装编译依赖
sudo apt-get install -y build-essential python3-dev python3-pip git cmake libssl-dev openjdk-11-jdk
  1. 安装Bazel(编译TensorFlow的工具)
wget https://github.com/bazelbuild/bazel/releases/download/5.4.0/bazel-5.4.0-dist.zip
unzip bazel-5.4.0-dist.zip && cd bazel-5.4.0-dist
./compile.sh
sudo cp output/bazel /usr/local/bin/
  1. 编译TFLite Runtime
git clone https://github.com/tensorflow/tensorflow.git && cd tensorflow
git checkout v2.15.0  # 选择稳定版本
./configure  # 全程按默认选项回车,确认Python路径为/usr/bin/python3
bazel build --config=elinux_armhf //tensorflow/lite/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/lite/tools/pip_package/build_pip_package /tmp/tflite_pip
  1. 安装编译好的包
pip3 install /tmp/tflite_pip/tensorflow_lite_runtime-*.whl

注:编译过程耗时较长(Zero上约2-3小时),需确保设备供电稳定。


优化建议

  • 始终选择YOLOv5n(最小模型),并将输入分辨率降至320x320,大幅减少计算量
  • 使用opencv-python-headless替代完整OpenCV,节省内存
  • 关闭推理时的可视化输出(仅保存结果),提升速度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:30:56