开篇故事:一个让人崩溃的Demo演示
去年冬天,我帮一个做智能门禁的朋友调试树莓派上的YOLOv5。他信心满满地拿来一块Pi 4B,说“代码都写好了,就卡在推理速度上”。我插上显示器,运行他的脚本——好家伙,一帧要跑2.3秒,画面卡得像PPT。他挠着头说:“我在Jetson Nano上明明能跑15FPS啊,怎么换了个板子就崩了?”
我问他:“你用的什么框架?”
“PyTorch啊,直接加载.pt模型,用OpenCV读摄像头。”
我叹了口气:“兄弟,你这是开着卡车去跑马拉松啊。”
树莓派和Jetson Nano最大的区别在于:Jetson有专用NPU和CUDA核心,而树莓派的VideoCore GPU对深度学习几乎零加速。如果你把Python + PyTorch那套直接搬过来,CPU 100%满载,内存爆掉,帧率能上5FPS都算你运气好。
今天这篇,我就带你走一遍从Python到C++的完整迁移路径。目标很明确:在树莓派4B上,用TFLite或OpenCV DNN,把YOLOv5跑进30FPS。
痛点拆解:你正在犯的三个致命错误
错误一:用PyTorch直接推理
# 反例代码:树莓派上直接跑PyTorchimporttorch