2、硬件选型策略:低功耗处理器选型、AI加速芯片对比、传感器功耗特性
好,咱们进入正题。硬件选型这事儿,说简单也简单,说复杂也复杂。我见过不少团队,算法调得飞起,结果一上硬件,电池撑不过两小时。说白了,选型阶段埋下的坑,后面要用十倍的精力去填。今天我就把这些年摸爬滚打的经验,掰开了揉碎了讲给你听。
2.1 低功耗处理器选型:别只看数据手册
选处理器,我最怕看到有人只盯着「功耗多少毫瓦」这一个数字。你想想看,数据手册上的功耗,那是在特定条件下测出来的。你实际跑起来,情况完全不一样。
我个人习惯,先看三个维度:
- 唤醒时间:从休眠到全速运行,需要多久?我遇到过一款芯片,休眠功耗确实低,但唤醒要200ms。你想想,视觉系统每帧都要唤醒一次,这200ms的功耗全浪费了。
- 动态电压频率调节(DVFS):能不能根据负载实时调频?这个功能在视觉任务里特别重要。画面静止时,跑低频就够了;画面变化剧烈时,再拉高频。
- 外设集成度:摄像头接口、ISP、DMA这些,是片内集成还是片外搭?片外搭一个接口芯片,功耗就多几百微安。
核心原则:处理器的「有效功耗」= 运行功耗 × 占空比 + 休眠功耗 × (1 - 占空比)。别只看一个点,要看整个工作周期的平均功耗。
举个例子。我曾经在一个项目里对比过STM32L4和i.MX RT系列。STM32L4休眠功耗低至几十纳安,但跑视觉算法时CPU占用率飙到90%,发热严重。i.MX RT虽然休眠功耗高一些,但跑同样的算法,CPU占用率只有30%,大部分时间可以降频。最后算下来,i.MX RT的整体功耗反而更低。
我的小技巧:选型时,拿你的实际代码去跑一下。别信厂商的「典型功耗」,那都是实验室数据。我一般会做两个测试:一个是满负荷跑视觉算法,一个是待机唤醒循环。这两个数据一出来,选谁不选谁,心里就有数了。
2.2 AI加速芯片对比:NPU、GPU、FPGA怎么选?
视觉系统里,AI加速是功耗大头。市面上主流方案就三种:NPU、GPU、FPGA。我一个个说。
| 方案 | 功耗效率(TOPS/W) | 灵活性 | 开发难度 | 典型场景 |
|---|---|---|---|---|
| NPU(如K210、瑞芯微NPU) | 2-5 TOPS/W | 低(固定算子) | 低(SDK成熟) | 人脸检测、物体分类 |
| GPU(如Jetson Nano) | 0.5-1 TOPS/W | 高(可编程) | 中(CUDA生态) | 多任务、复杂模型 |
| FPGA(如Xilinx Artix) | 1-3 TOPS/W | 极高(硬件可重构) | 高(RTL开发) | 定制化、低延迟 |
我个人建议:
- 如果你的模型是固定的,比如就做一个人脸检测,选NPU。功耗低,开发快。我有个项目用K210,整机功耗不到0.5W,跑MobileNet V1,帧率能到30fps。
- 如果你需要跑多种模型,或者模型经常更新,选GPU。虽然功耗高一点,但灵活。Jetson Nano跑YOLOv5s,功耗大概5W,帧率20fps左右。
- 如果你对延迟要求极高,比如毫秒级响应,或者需要做非标准的数据流处理,选FPGA。但要做好心理准备,开发周期至少是NPU的3倍。
避坑指南:我曾经在一个项目里选了FPGA做AI加速,结果模型量化后精度掉了5个点,调了两个月才搞定。如果你团队没有FPGA专家,建议优先考虑NPU或GPU。FPGA的功耗优势,往往被开发成本抵消了。
2.3 传感器功耗特性:摄像头选型有门道
摄像头是视觉系统的「眼睛」,也是功耗大户。很多人只关注分辨率,忽略了功耗特性。我告诉你,选摄像头,重点看三个参数。
第一,工作模式。 现在的摄像头都有多种模式:全分辨率模式、子采样模式、待机模式。好的摄像头,从待机到出图只要几毫秒。我见过一些低端传感器,待机唤醒要100ms,这期间功耗还不低。
第二,帧率与功耗的关系。 很多人以为帧率降一半,功耗也降一半。其实不是。摄像头功耗 = 模拟部分功耗 + 数字部分功耗。模拟部分(像素阵列、ADC)基本固定,降帧率只能省数字部分。所以,从30fps降到15fps,功耗可能只降20%。
第三,MIPI接口的功耗。 数据通道数越多,功耗越高。2-lane MIPI比4-lane MIPI省电,但带宽也小。如果你的分辨率不高,用2-lane就够了。
我的选型清单:
- OV2640:200万像素,功耗约150mW,适合低端应用
- OV5640:500万像素,功耗约250mW,性价比高
- IMX219:800万像素,功耗约300mW,画质好
- AR0234:200万像素,功耗约200mW,低照度性能强
注意:以上都是运行功耗。待机功耗一般都在1mW以下,但唤醒时间差异很大。OV系列唤醒约10ms,IMX系列约30ms。
嗯,这里要注意。 有些摄像头支持「ROI模式」,就是只输出画面中感兴趣的区域。比如你做人脸检测,只输出人脸那块区域,其他区域不输出。这样数据量小了,后端处理功耗也降了。我在一个门禁项目里用过这个功能,整体功耗降了40%。
我的经验:选摄像头时,一定要看数据手册里的「Power Consumption vs Frame Rate」曲线。有些厂商会标「典型功耗150mW」,但那是30fps下的数据。你如果跑10fps,功耗可能还是120mW。这个坑我踩过,后来学乖了,直接问FAE要实测数据。
2.4 综合选型策略:从系统角度看功耗
选型不是孤立的。处理器、AI芯片、传感器,这三者要放在一起看。我一般会画一个「功耗瀑布图」,从传感器采集,到处理器预处理,再到AI加速,最后输出结果。每一级的功耗都要匹配。
举个例子:
- 传感器输出30fps,处理器处理能力跟不上,就会丢帧。丢帧意味着传感器白工作了,功耗浪费。
- AI芯片的输入带宽,要和传感器的输出带宽匹配。传感器输出1080p,AI芯片只能处理VGA,中间就得加一个降采样模块,又多一份功耗。
所以,我建议你选型时,先定一个「系统功耗预算」。比如整机功耗不超过1W,那传感器占200mW,处理器占300mW,AI芯片占400mW,剩下100mW给其他外设。然后按这个预算去选型,别超了。
最后提醒一句:别迷信「低功耗」三个字。有些芯片标称「超低功耗」,但实际跑起来,因为性能不够,反而更耗电。我见过一个团队,为了省电选了M0内核,结果跑视觉算法要3秒一帧,传感器一直开着,功耗比用M4还高。选型,要算总账。
好了,硬件选型这块就聊到这儿。下一章咱们讲软件层面的功耗优化,那才是真正见功夫的地方。