树莓派5B跑YOLOv5-Lite:从零配置到实时摄像头检测的保姆级避坑指南

张开发
2026/4/16 8:40:23 15 分钟阅读

分享文章

树莓派5B跑YOLOv5-Lite:从零配置到实时摄像头检测的保姆级避坑指南
树莓派5B跑YOLOv5-Lite从零配置到实时摄像头检测的保姆级避坑指南当你想用树莓派5B打造一个能实时识别人脸、车辆或宠物的智能设备时YOLOv5-Lite绝对是首选。这个专为边缘计算优化的轻量级模型在树莓派上跑起来比原版YOLOv5快3倍不止。但别急着兴奋——我见过太多人在环境配置这一步就翻车要么conda环境冲突要么摄像头死活调不起来。下面这份实战指南会带你避开我踩过的所有坑。1. 硬件准备与系统调优树莓派5B的4GB内存版跑YOLOv5-Lite完全够用但散热是关键。实测连续运行1小时后不加散热片的CPU温度会飙到85℃以上导致自动降频。建议搭配铝合金散热外壳和5V小风扇成本不到50元温度能控制在60℃以内。必备配件清单树莓派5B主板建议4GB内存版本32GB以上UHS-I速度的TF卡推荐闪迪Extreme系列支持5V3A的PD快充电源电压不稳会导致摄像头断连免驱USB摄像头实测罗技C270兼容性最佳散热套装金属外壳4010风扇烧录系统时务必选择64位Bullseye系统。32位系统虽然能用但无法发挥ARM Cortex-A76的全部性能。首次启动后这三项优化能让推理速度提升20%# 启用ZRAM交换分区 sudo nano /etc/dphys-swapfile # 修改CONF_SWAPSIZE2048 sudo systemctl restart dphys-swapfile # 关闭图形界面如需VNC可跳过 sudo raspi-config # 选择3 Boot Options → B1 Desktop/CLI → B1 Console # 超频设置保守方案 sudo nano /boot/config.txt # 添加 arm_freq2000 gpu_freq700 over_voltage2提示超频后建议运行压力测试半小时确认无死机再部署模型2. 极速环境配置方案Miniconda是管理Python环境的最优解但官方源下载速度堪比蜗牛。这里推荐用中科大镜像一步到位wget https://mirrors.ustc.edu.cn/anaconda/miniconda/Miniconda3-py38_4.12.0-Linux-aarch64.sh -O Miniconda.sh sha256sum Miniconda.sh # 校验应为b1a5d9b31dff4b1b7c49c7a1c0846b8c8768633a bash Miniconda.sh -b -p $HOME/miniconda source ~/miniconda/bin/activate创建专用环境时这几个依赖版本组合最稳定conda create -n yololite python3.8.12 -y conda activate yololite pip install numpy1.21.6 opencv-python4.5.5.64 protobuf3.20.3 -i https://mirrors.aliyun.com/pypi/simple/常见报错解决方案libGL.so缺失sudo apt install libgl1-mesa-glxIllegal instruction核心转储重新编译OpenCVpip install --force-reinstall opencv-python摄像头无权限将用户加入video组sudo usermod -aG video $USER3. YOLOv5-Lite的定制化部署原版YOLOv5在树莓派上帧率不到3FPS而YOLOv5-Lite的e版本能跑到12FPS。关键区别在于模型版本参数量(M)推理延迟(ms)mAP0.5YOLOv5s7.23200.56v5lite-e3.5850.52v5lite-s1.8620.45下载推荐用国内镜像加速git clone https://gitee.com/ppogg/YOLOv5-Lite.git cd YOLOv5-Lite sed -i s/github.com/gitee.com/g requirements.txt pip install -r requirements.txt -i https://mirrors.bfsu.edu.cn/pypi/web/simple/模型转换时这个参数组合效果最佳python export.py --weights v5lite-e.pt --include onnx --simplify \ --opset 12 --img-size 320 320 --batch 1注意务必指定img-size与后续检测时保持一致动态尺寸会导致内存溢出4. 实时检测性能优化技巧直接运行detect.py会卡成幻灯片需要针对性优化摄像头采集优化# 修改utils/datasets.py LoadStreams类 self.cap cv2.VideoCapture(index, cv2.CAP_V4L2) # 添加V4L2驱动 self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) # 分辨率不宜过高 self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) self.cap.set(cv2.CAP_PROP_FPS, 15) # 限制帧率推理加速配置python detect.py --weights v5lite-e.onnx --source 0 \ --imgsz 320 --conf-thres 0.4 --device cpu --half关键参数说明--half启用FP16推理速度提升35%--device cpu强制使用CPU树莓派GPU加速反而更慢--imgsz 320必须与导出模型时尺寸一致终极性能方案使用多进程分离采集和推理from multiprocessing import Process, Queue def capture(queue): while True: ret, frame cap.read() queue.put(frame) if ret else None def detect(queue): while True: if not queue.empty(): results model(queue.get()) # 显示结果... Process(targetcapture, args(frame_queue,)).start() Process(targetdetect, args(frame_queue,)).start()采用ONNX Runtime专属优化import onnxruntime as ort so ort.SessionOptions() so.graph_optimization_level ort.GraphOptimizationLevel.ORT_ENABLE_ALL session ort.InferenceSession(v5lite-e.onnx, sess_optionsso)实测优化前后对比优化措施帧率(FPS)CPU占用率(%)原始版本2.1180基础优化8.7120多进程ORT15.390当所有配置到位后你会看到一个流畅的实时检测画面。不过要提醒的是树莓派终究是嵌入式设备别指望它能达到台式机的性能——我曾见过有人试图在上面跑YOLOv8结果直接触发过热保护。

更多文章