2、Raspberry Pi基础:型号选择、系统安装、SSH远程连接与文件传输
在开始YOLO模型本地推理实战之前,必须夯实Raspberry Pi(树莓派)这一硬件基础。目标检测项目对计算资源、内存带宽和存储速度有明确要求,选错型号、装错系统或无法高效远程操作,都会让后续开发寸步难行。本章将围绕“选型→装系统→远程连接→传文件”四条主线展开,帮助你建立一套可复用的开发环境搭建方法论。
上图展示了本章四个核心模块的依赖关系:硬件选型是基础,系统安装是前提,远程连接是手段,文件传输是效率保障。下面逐一深入拆解。
2.1 硬件选型:为什么Pi 4B/5是YOLO推理的底线
核心原理:YOLO模型推理本质上是大量的矩阵乘法和卷积运算,对CPU的SIMD指令集、内存容量和带宽、以及GPU/NPU加速单元都有要求。Raspberry Pi的ARM架构处理器虽然功耗低,但算力有限。以YOLOv5s为例,输入640×640分辨率时,单帧推理在Pi 4B上约需2-3秒,在Pi 5上约需1-1.5秒。如果选择Zero系列或Pi 3B+,推理时间会超过10秒,完全无法满足实时检测需求。
| 型号 | CPU | 内存 | USB | 网络 | YOLO推理适配度 |
|---|---|---|---|---|---|
| Pi 3B+ | 4核A53 1.4GHz | 1GB | USB 2.0 | 百兆+WiFi | 不推荐,内存不足 |
| Pi 4B (2GB) | 4核A72 1.5GHz | 2GB | USB 3.0×2 | 千兆+WiFi5 | 勉强可用,易OOM |
| Pi 4B (4GB/8GB) | 4核A72 1.5GHz | 4/8GB | USB 3.0×2 | 千兆+WiFi5 | 推荐,性价比高 |
| Pi 5 (8GB) | 4核A76 2.4GHz | 8GB | USB 3.0×2 | 千兆+WiFi5 | 最佳选择,性能翻倍 |
操作流程:选型时优先确认三点:内存≥4GB(YOLO模型加载后占用约1.5-2GB,系统与Python环境需1GB以上);存储使用A2级MicroSD卡或USB固态硬盘(随机读写速度影响模型加载时间);电源必须满足5V/3A(Pi 4B)或5V/5A(Pi 5)输出,劣质电源会导致CPU降频,推理速度骤降。
2.2 系统安装:无头模式下的Raspberry Pi OS部署
核心原理:对于目标检测项目,我们通常采用“无头模式”(Headless)——不连接显示器、键盘和鼠标,仅通过网络进行SSH远程控制。这样既节省功耗,又便于将Pi部署在摄像头附近。Raspberry Pi OS基于Debian,提供Lite(无桌面)和Desktop(带桌面)两种版本。YOLO推理建议使用Lite版,减少图形界面占用的内存和CPU资源。
操作流程:
- 下载Raspberry Pi Imager(官方烧录工具),选择操作系统为“Raspberry Pi OS (64-bit) Lite”。
- 插入MicroSD卡,在Imager中点击齿轮图标,预配置:
启用SSH(允许使用密码登录) 设置用户名/密码(如pi/raspberry) 配置WiFi(SSID和密码) 设置地区时区(Asia/Shanghai) - 烧录完成后,将SD卡插入Pi,通电启动。等待约1-2分钟,Pi会自动连接WiFi并启用SSH。
- 在电脑终端执行:
IP地址可在路由器管理界面查看,或使用ssh pi@<Pi的IP地址>arp -a命令扫描局域网。
ssh的空文件(无扩展名)来强制启用SSH。2.3 SSH远程连接:从密码认证到密钥免密登录
核心原理:SSH(Secure Shell)通过加密通道提供远程终端访问。默认端口22,使用TCP协议。密码认证每次连接都需要输入密码,且存在暴力破解风险。密钥认证使用公钥加密、私钥解密,安全性更高且支持免密登录,适合频繁操作的开发场景。
操作流程:
- 在电脑端生成密钥对:
一路回车即可,默认保存在ssh-keygen -t ed25519 -C "pi-yolo-project"~/.ssh/id_ed25519。 - 将公钥复制到Pi:
输入密码后,公钥自动追加到Pi的ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@<Pi的IP>~/.ssh/authorized_keys。 - 测试免密登录:
无需密码直接进入。ssh pi@<Pi的IP> - 为Pi配置静态IP,防止DHCP分配的地址变化导致连接失败:
sudo nano /etc/dhcpcd.conf # 在文件末尾添加: interface wlan0 static ip_address=192.168.1.100/24 static routers=192.168.1.1 static domain_name_servers=8.8.8.8 114.114.114.114
2.4 文件传输:SCP、SFTP与rsync的合理选择
核心原理:YOLO项目涉及三类文件传输:代码文件(小文件多)、模型权重(大文件如YOLOv5s.pt约14MB)、数据集(大量图片)。不同场景应选择不同工具:SCP适合单次传输,SFTP适合交互式浏览,rsync适合增量同步大目录。
| 工具 | 协议 | 特点 | 适用场景 |
|---|---|---|---|
| SCP | SSH | 简单直接,不支持断点续传 | 传输单个脚本或配置文件 |
| SFTP | SSH | 支持目录浏览、断点续传 | 图形化操作(WinSCP/FTP) |
| rsync | SSH | 增量同步,只传差异部分 | 同步数据集或模型目录 |
操作流程:
# SCP上传文件到Pi
scp yolov5s.pt pi@192.168.1.100:/home/pi/yolo/
# SCP下载Pi上的文件到本地
scp pi@192.168.1.100:/home/pi/log.txt ./logs/
# rsync同步整个项目目录(排除缓存)
rsync -avz --exclude='__pycache__' --exclude='.git' ./yolo_project/ pi@192.168.1.100:/home/pi/yolo_project/
# 使用rsync从Pi下载数据集
rsync -avz pi@192.168.1.100:/home/pi/datasets/ ./datasets/
2.5 案例复盘:从零搭建YOLO开发环境
背景与约束:某高校实验室需要部署一套基于Pi的口罩检测系统,要求:成本控制在800元以内,开发周期3天,支持远程更新模型。团队选择Pi 4B 4GB + 32GB A2卡 + 官方电源,总成本约650元。
实施过程:
- 使用Imager烧录64位Lite系统,预配置WiFi和SSH。
- 通电后SSH连接,执行系统更新:
sudo apt update && sudo apt upgrade -y - 安装Python虚拟环境和依赖:
python3 -m venv yolo_env source yolo_env/bin/activate pip install torch torchvision opencv-python numpy - 通过rsync将YOLOv5代码和权重同步到Pi。
- 测试推理:
首次推理耗时3.2秒,后续稳定在2.5秒。python detect.py --weights yolov5s.pt --source test.jpg
结果与复盘:系统稳定运行72小时无宕机。发现的问题:CPU温度达到78℃(环境温度30℃),加装散热风扇后降至55℃。经验总结:散热不是可选项而是必选项;虚拟环境必须使用,避免系统Python环境被污染;rsync比SCP更适合同步代码,因为增量传输节省了大量时间。