32位树莓派3B+如何在无PyTorch环境下使用YOLOv5/YOLOv7?
32位树莓派3B+装PyTorch/用YOLOv5/YOLOv7的解决办法
一、搞定PyTorch安装的两种途径
- 直接升级到64位系统(首推):树莓派3B+硬件本身支持64位,刷个64位的Raspberry Pi OS就能彻底解决问题。刷完后跑这条命令就能正常装PyTorch:
官方PyTorch早就只支持64位ARM了,升级后不仅能装PyTorch,后续用YOLOv5/v7的官方代码也不会有各种兼容坑。pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu - 找社区编译的32位PyTorch包:官方没有32位ARM的PyTorch包,但有社区用户自己编译了适配32位树莓派的wheel文件。你可以找ARMv7架构的旧版PyTorch(比如1.9.x及更早)的whl文件,手动安装:
这种方式稳定性不如官方包,而且YOLOv5/v7可能得降级到对应兼容的版本才能用。pip install /path/to/你下载的torch-xxx-linux_armv7l.whl
二、不用PyTorch也能跑YOLOv5/YOLOv7
- 转成ONNX格式用ONNX Runtime跑:
- 先在64位电脑上,用YOLOv5/v7的官方导出脚本把预训练模型转成ONNX格式:
# YOLOv5示例命令 python export.py --weights yolov5s.pt --include onnx - 在树莓派上装ONNX Runtime:
pip install onnxruntime - 写个简单的推理脚本,用ONNX Runtime加载转好的
.onnx模型就能做检测,全程不用PyTorch。
- 先在64位电脑上,用YOLOv5/v7的官方导出脚本把预训练模型转成ONNX格式:
- 转成TensorFlow Lite格式部署:
找社区的转换脚本把YOLOv5/v7模型转成.tflite格式,TensorFlow Lite对32位ARM支持很好。转好后在树莓派上装TensorFlow Lite运行时,就能加载模型推理,完全不依赖PyTorch。 - 直接用Darknet原生版本:
YOLO本来就是基于Darknet做的,Darknet能在32位树莓派上编译运行:- 克隆Darknet仓库,进入目录后编译:
make ARM=1 # 开启ARM架构优化,编译速度更快 - 下载YOLOv5/v7的Darknet格式权重(或者把PyTorch权重转成Darknet格式),然后用Darknet的命令行工具检测:
./darknet detect cfg/yolov5s.cfg yolov5s.weights test.jpg
- 克隆Darknet仓库,进入目录后编译:
内容的提问来源于stack exchange,提问作者Yusuf
相关产品推荐
相关产品推荐

