一、课程导论与硬件基础:嵌入式视觉概述、GPU在嵌入式系统中的作用、主流嵌入式GPU平台对比

1.1 嵌入式视觉,到底在做什么?

各位同学,欢迎来到这门实战课。我是你们的讲师,一个在嵌入式视觉和GPU加速领域摸爬滚打了十来年的工程师。

先聊聊嵌入式视觉。说白了,就是让摄像头“看懂”世界,但不是在服务器机房,而是在一个巴掌大的板子上跑。你想想看,无人机要避开电线杆,扫地机器人要识别拖鞋,工业相机要检测螺丝有没有拧紧——这些场景,背后都是嵌入式视觉在干活。

我个人习惯把嵌入式视觉拆成三块:图像采集、算法推理、结果输出。采集靠摄像头和ISP,推理靠CPU或GPU,输出可能是控制电机、显示画面,或者发个报警信号。嗯,这里要注意,很多新手只盯着算法,忽略了前端的图像质量和后端的实时性,结果项目翻车。

我在项目中遇到过一件事:一个客户要做果园里的水果分拣,算法在PC上跑得飞快,一上嵌入式板子,帧率直接掉到个位数。为什么?因为图像分辨率太高,内存带宽不够,GPU根本没吃饱。所以,嵌入式视觉的核心不是“能不能跑”,而是“能不能在功耗和成本约束下跑得稳”

核心观点:嵌入式视觉 = 算法 × 硬件 × 实时性。缺一个,项目就黄。

1.2 GPU在嵌入式系统里,到底扮演什么角色?

很多人觉得,嵌入式系统嘛,用CPU跑跑OpenCV就够了。我以前也这么想,直到有一次做双目深度估计,CPU算一张图要200毫秒,换成GPU,直接压到15毫秒。那一刻我明白了:GPU不是锦上添花,而是雪中送炭

GPU在嵌入式系统中的作用,我总结为三点:

  • 并行计算加速:图像处理本质上是像素级的并行操作。一个卷积核在CPU上要串行遍历,在GPU上可以同时算几百个像素。你想想看,这差距有多大。
  • 降低延迟:自动驾驶、无人机避障这类场景,延迟超过50毫秒就可能出事。GPU能帮你把推理时间从“秒级”压到“毫秒级”。
  • 释放CPU资源:让CPU去干它擅长的事——调度、控制、通信。GPU专心做矩阵运算。各司其职,系统才稳。

但是,GPU不是万能的。我曾经踩过一个坑:在RK3588上跑一个轻量级分类网络,结果发现GPU利用率只有30%,CPU反而满载。后来一查,是数据预处理没优化,CPU成了瓶颈。所以,GPU加速是个系统工程,不是把模型扔上去就完事

避坑指南:我曾经以为GPU越强越好,结果在Jetson Nano上跑YOLOv5,功耗飙到10W,电池撑不过半小时。后来换了Tiny版本,帧率只降了10%,功耗却降了一半。选型时,一定要算功耗账。

1.3 主流嵌入式GPU平台对比:Jetson、RK3588、树莓派

好,到了大家最关心的环节。市面上主流的嵌入式GPU平台,我挑三个最有代表性的:NVIDIA Jetson系列、瑞芯微RK3588、树莓派4B/5。这三款我都深度用过,下面说说我的真实感受。

对比项 Jetson Orin NX RK3588 树莓派5
GPU算力 70 TOPS (INT8) 6 TOPS (INT8) ≈0.5 TFLOPS (FP32)
显存/内存 8GB/16GB LPDDR5 8GB/16GB LPDDR4X 4GB/8GB LPDDR4X
功耗 10W - 25W 5W - 15W 5W - 12W
软件生态 CUDA、TensorRT、DeepStream RKNN、Rockchip NPU SDK OpenCV、Vulkan、TensorFlow Lite
典型场景 自动驾驶、机器人、工业检测 智能安防、边缘盒子、AI摄像头 教学原型、轻量级视觉、IoT
价格 ¥2000 - ¥6000 ¥800 - ¥1500 ¥300 - ¥600

1.3.1 NVIDIA Jetson:生态王者,但贵

Jetson系列,尤其是Orin NX,是我目前的主力平台。为什么?因为CUDA生态太强了。你想想看,PC上训练的模型,用TensorRT一优化,直接部署到Jetson上,几乎不用改代码。我在项目中做过一个工业缺陷检测,从训练到部署,只花了两天。

但Jetson也有痛点:贵,而且功耗高。Orin NX跑满25W时,散热是个大问题。我有个项目,因为散热没做好,GPU降频,帧率直接腰斩。后来加了主动散热才解决。

警告:Jetson的散热设计一定要留余量。我曾经在40℃的车间里测试,Orin NX的散热片烫到不敢摸。建议至少预留20%的散热能力。

1.3.2 RK3588:国产之光,性价比之选

RK3588是瑞芯微的旗舰芯片,集成了ARM Mali-G610 GPU和自研NPU。说实话,我第一次拿到开发板时,觉得这玩意儿能跟Jetson比?结果一测,6 TOPS的NPU算力,跑MobileNet-SSD能到30fps,功耗才8W。嗯,真香。

我个人习惯用RK3588做安防类的项目。比如人脸门禁,白天晚上都要稳定运行。RK3588的ISP很强,配合NPU,整体功耗控制在10W以内,不用风扇,完全被动散热。这一点,Jetson做不到。

但RK3588的软件生态不如NVIDIA。RKNN工具链虽然一直在更新,但跟TensorRT比,还是有差距。我曾经在移植一个自定义算子时,折腾了三天才搞定。所以,如果你追求快速迭代,选Jetson;如果追求性价比和低功耗,选RK3588

1.3.3 树莓派:学习利器,但别指望它干重活

树莓派,尤其是最新的5代,GPU性能比4代强了不少。但说实话,它跟Jetson和RK3588不是一个量级的。树莓派的GPU主要靠Vulkan和OpenGL ES,跑传统图像处理还行,跑深度学习就吃力了。

我记得有一次,一个学生想在树莓派上跑YOLOv8n,结果帧率只有3fps。后来换成TensorFlow Lite的量化模型,勉强到8fps。所以,树莓派适合做原型验证、教学演示,或者跑一些轻量级的传统视觉算法。真要上产品,还是得看Jetson或RK3588。

我的建议:如果你是初学者,先买一块树莓派5,把OpenCV和基本的图像处理跑通。然后换RK3588,体验一下NPU加速。最后再上Jetson,感受一下CUDA的威力。循序渐进,别一上来就烧钱。

1.4 如何选择?我的决策框架

讲了这么多,到底怎么选?我总结了一个简单的决策框架:

  1. 看算力需求:如果模型需要超过10 TOPS的算力,直接上Jetson Orin。如果5-10 TOPS,RK3588够用。如果只是做做颜色识别、边缘检测,树莓派就行。
  2. 看功耗预算:电池供电、被动散热,优先RK3588。有主动散热、电源充足,选Jetson。
  3. 看开发周期:项目急,选Jetson,CUDA生态成熟,踩坑少。项目不赶,选RK3588,性价比高,但要做好调试准备。
  4. 看预算:单板预算低于500元,树莓派。500-1500元,RK3588。1500元以上,Jetson。

好了,这一章的内容就到这里。下一章,我们会深入Jetson平台,手把手教你怎么搭建开发环境、跑通第一个GPU加速的视觉程序。到时候,我会分享一些我当年踩过的坑,保证让你少走弯路。

课后思考:假设你要做一个“智能垃圾分类”的嵌入式设备,要求实时识别塑料、纸张、金属,功耗低于10W,成本控制在1000元以内。你会选哪个平台?为什么?欢迎在评论区留言,我会挑几个典型问题在下一章解答。