4. 工业AI模型选型与Kria部署约束
在Kria KV260或KR260上做工业AI推理,模型选型不是“精度越高越好”,而是要在检测精度、推理延迟、功耗和FPGA资源之间找到可落地的平衡点。Kria的核心计算资源是PL端的DPU(Deep Learning Processing Unit),以KV260常见的DPUCZDX8G为例,典型配置为B4096(4096个DSP等效乘加单元),在1.5GHz左右时钟下可提供约1.4 TOPS的INT8算力。这个数字决定了模型不能无限大:一个ResNet-50的INT8版本约25.6M参数、4.1G MACs,在B4096上单帧推理约十几毫秒;而YOLOv5s约7.2M参数、16.5G MACs,单帧往往需要30~50ms。选型的第一步,就是先算清楚模型的MACs和参数量,再对照DPU的算力预算。
工业场景通常分三类:质检、机器人和安防。质检以缺陷检测、分类、分割为主,输入分辨率高(如1280×1024),对漏检率敏感;机器人以目标检测、位姿估计、避障为主,要求低延迟(<30ms)和确定性;安防以人形、车辆、行为识别为主,可接受稍高延迟,但需要多路视频并行。这三类需求直接对应不同的模型族:ResNet适合高精度分类和特征提取,MobileNet适合轻量分类和骨干网络,YOLO适合实时检测。选型时先明确任务类型,再匹配模型族,最后用输入尺寸和量化敏感度做微调。
输入尺寸是第二个关键约束。DPU对输入张量的通道对齐有要求:通常需要通道数为4的倍数,且H×W不宜超过4096。YOLOv5s默认640×640,在B4096上单帧约35ms;若降到416×416,MACs从16.5G降到约7G,延迟可压到20ms以内,但小目标召回率会下降。质检场景中,缺陷往往只有几十像素,此时不能盲目降分辨率,而应改用切图推理(tiling):把1280×1024切成4块640×512分别推理,再合并结果。代价是4倍推理次数,但保留了小目标细节。MobileNetV2在224×224下仅0.3G MACs,即使切图也游刃有余,适合作为高分辨率质检的骨干网络。
量化敏感度是第三个约束,也是最容易被忽视的。DPU只支持INT8推理,模型必须经过量化。ResNet的BN层在量化前需要融合进卷积,融合后INT8掉点通常在0.5%~1.5%;MobileNet的深度可分离卷积对量化天然友好,掉点往往小于1%;YOLO的检测头包含大量小数值回归输出,直接PTQ(训练后量化)可能导致mAP掉3~8个百分点,必须用QAT(量化感知训练)或至少用500~1000张校准图做PTQ校准。在Vitis AI中,量化流程是:先导出ONNX,再用`vai_q_onnx`做量化,校准集要覆盖工业现场的光照、角度和缺陷类型,否则量化后的模型在产线上会“水土不服”。
下面给出一个可执行的选型决策表,按任务类型、延迟预算和精度要求三个维度交叉判断。表中参数为示例参考值,实际需以Vitis AI编译后的实测为准。
| 任务类型 | 延迟预算 | 推荐模型 | 输入尺寸 | 量化方式 | Kria B4096 预期延迟(示例) |
|---|---|---|---|---|---|
| 质检缺陷分类 | <10ms | MobileNetV3-S | 224×224 | PTQ | 约 2~4ms |
| 质检缺陷分类 | <20ms | ResNet-18 | 224×224 | PTQ + BN融合 | 约 6~10ms |
| 质检缺陷检测 | <50ms | YOLOv8n | 640×640 | QAT | 约 25~35ms |
| 机器人抓取检测 | <30ms | YOLOv5s | 416×416 | QAT | 约 18~25ms |
| 安防人形检测 | <40ms | YOLOv5s | 640×640 | PTQ + 校准 | 约 30~45ms |
| 高分辨率质检 | <80ms | MobileNetV2 + 切图 | 4×640×512 | PTQ | 约 4×3ms + 合并 |
最后强调一个工程原则:模型选型不是一次性的,而是“编译—实测—回退”的迭代过程。先在PC上用Vitis AI量化并编译,得到`.xmodel`,再部署到Kria上用`xir`或`vaitrace`测实际延迟。如果延迟超标,优先降输入尺寸,其次换更轻的模型,最后才考虑降低精度要求。工业场景中,一个稳定跑30ms的YOLOv8n,往往比一个勉强跑20ms但偶尔丢帧的YOLOv5s更有价值。选型的终点不是“最优模型”,而是“在Kria资源约束下可稳定交付的模型”。