项目背景

本项目为2023年全国大学生集成电路创新创业大赛(海云捷讯杯)赛题,聚焦于工业铝罐/片生产线的自动化缺陷检测场景。赛方提供了特定数据集、基于Intel Cyclone V SoC的云FPGA平台(AWCloud),以及配套的AI推理加速器Demo与工具链。

数据集包含铝制品的四种常见缺陷类型:

  • zhen_kong(针孔)
  • ca_shang(擦伤)
  • zang_wu(脏污)
  • zhe_zhou(褶皱)
图1
图 1 数据集示例

AWCloud平台提供了可视化管理平台(如图2所示)。其配套加速器Demo工具链(如图3所示)兼容Tensorflow、PaddlePaddle、Caffe深度学习框架,通过Analysis阶段将优化与编译后的算子映射到AWCloud CNN Accelerator执行。

图2
图 2 AWCloud可视化平台
图3
图 3 CNN加速器Demo工具链

赛题核心任务:

  • 完成缺陷检测网络模型的训练与量化压缩
  • 将核心算法成功部署至AWCloud平台
  • 编写ARM端驱动,实现“摄像头 -> AI加速器 -> 显示器”的端到端视频流
  • (可选进阶)修改并优化AI推理加速器Demo的硬件架构

    评分基准: 最终作品主要通过算法精度(mAP)与端到端推理帧率(FPS)进行综合评定。


技术方案概览

  • 采用轻量化MobileNet-SSD-lite模型实现铝表面缺陷检测
  • 联合FPGM剪枝与QAT量化算法,进一步压缩获取轻量模型
  • 模型部署到AWCloud云FPGA平台,重写Cyclone V SoC ARM端驱动实现完整视频流

个人贡献

  • 使用FPGM剪枝剔除13%参数量,并利用QAT将模型参数由FP32压缩为INT8,同时维持高mAP

  • 通过算法和软件优化,将模型在云FPGA平台上的端到端推理帧率提高2.3倍

详细技术实现

💡 提示:点击对应模块可展开阅读。

'剪枝+量化'联合压缩与编译部署

本项目以单阶段检测器SSD作为Baseline进行轻量化改造,摒弃传统VGG骨干网络,引入轻量级MobileNet,并将检测头替换为深度可分离卷积,搭建了MobileNet-SSD-lite检测模型,网络架构如图4所示。

图4
图 4 SSD检测器

采用PaddlePaddle框架训练,FP32精度下预训练模型mAP为98.45%。随后引入PaddleSlim工具进行FPGM剪枝与QAT量化联合压缩。在剔除13%冗余参数并将权重由FP32量化为INT8后,模型mAP仍稳定保持在97.05%。导出模型后,经工具链编译成功部署至AWCloud平台。全链路流程如图5所示。

图5
图 5 模型训练、压缩与部署流程

部署与性能表现

通过算法层面的联合压缩,在确保高检测精度的前提下实现了推理速度的提升。具体性能对比指标如下表所示:

指标维度 优化前 (Baseline FP32) 优化后 (FPGM剪枝 + INT8量化) 最终收益
检测精度 (mAP) 98.45% 97.05% 精度仅微降 1.4%
参数规模 100% 87% 冗余参数剔除 13%
纯推理延迟 473 ms 170 ms 运算提速 2.78 倍
端到端延迟 540 ms 235 ms 整体帧率提升 2.3 倍

实际推理效果如图6所示。在输入分辨率为 300×300 RGB 图像时,系统能够稳定、准确地框选出铝表面缺陷,兼顾了算法的准确性与边缘端部署的实时性。


图 6 缺陷检测算法在AWCloud平台的实时执行效果

总结与思考

个人评价:从理论到实践

本次项目是将科创计划中的“压缩算法联合优化理论”付诸实践的尝试。在实践中我发现,由于深度可分离卷积本身已极其精简,其对剪枝操作非常敏感,导致本方案仅能安全剔除13%的参数量,超出此阈值便会引发严重的精度坍塌。此外,赛方加速器Demo仅支持粗粒度的Per-tensor量化,这在DW卷积各通道数据分布差异较大的情况下极易损害精度。为弥补这一短板,我采用了QAT方案,通过微调成功挽回了精度损失。

略微遗憾的是,受限于赛程时间,未能深入重构Demo的硬件加速器层,部分硬件执行效率的瓶颈直接制约了最终帧率。但这也为我后续深入研究底层硬件加速器架构埋下了伏笔。

AI系统:阿姆达尔定律的约束

AI系统的实际推理效率不仅受算法的理论计算量与参数量的影响,底层硬件的真实执行效率往往才是木桶短板。从系统架构的角度来看,整体性能不可避免地受制于阿姆达尔定律(Amdahl’s Law),即系统的最大加速比最终取决于其中耗时最长的串行或低效任务。因此,打破系统瓶颈的关键在于对最弱一环进行优化。

这一定律在本项目的加速器Demo中得到直观印证:由于采用ARM端进行HWC格式到CHW格式的张量数据重排,这种串行循环迭代的方式导致了计算阵列的空置、拖慢了计算效率。针对这一瓶颈,可以从软硬两方面解决:

  • 软件并行化:引入ARM NEON指令集,利用SIMD技术对重排过程进行向量化加速
  • 定制重排硬件:在FPGA端定制数据重排模块,利用硬件流水线来卸载ARM端负载

这种数据搬运拖慢计算的问题不止存在于Demo中,而目前AI芯片普遍面临的痛点。随着LLM时代的到来,模型参数量与上下文维度急剧增长,这种制约更加明显。AI加速器的研究重心已然逐渐从早期追求计算阵列算力峰值的比拼转向了EMA(External Memory Access)以及片上数据复用效率的优化。如何避免计算阵列因数据饥饿而空置,已成为如今AI系统设计的核心命题。