自动驾驶汽车应对在高速公路和主干道等高速行驶场景以及对各种突然事件需要做出及时的反应,如旁边车辆变道、前方车辆突发故障或前方行人突然出现等,检测系统要求具备较高的实时性,其中硬件加速平台是整个系统中最关键的部分。本项目设计的智能加速平台能够推理加速多种深度学习算法,帮助自动驾驶系统快速全面认知复杂路况、精准感知、预测车辆行驶过程中的交通情况,并且实时对周边环境做出准确的判断。此外,还可以应用在智能安防、智慧交通、工业生产等嵌入式领域。
前言
读研期间,主要研究面向目标检测领域的加速器设计,包含两个项目:一个是2021 DAC System Design Contest 低功耗单目标检测系统设计竞赛,另一个是面向自动驾驶多目标检测场景的可配置深度学习加速器设计。这篇文章主要介绍一下面向自动驾驶多目标检测场景的可配置深度学习加速器设计。
项目介绍
系统架构

整个系统基于Xilinx ZYNQ异构计算平台搭建,ARM(CPU)端运行装有PYNQ软件框架的Linux系统,CPU通过AXI-GP接口配置加速器和DMA,加速器的数据搬运依赖DMA走AXI-HP接口,使用的是AXI-Stream总线。加速器系统(Booster System)包含缓存模块、计算模块以及总线接口模块。
缓存模块包含指令缓存、BN参数缓存、权重缓存以及图片的输入和计算结果的输出缓存。
计算模块为加速器Booster的核心模块,主要由控制模块、2块特征图缓存缓存模块、PE模块、预处理模块、累加模块、BN ReLU模块(简称BR模块)、池化模块组成。
加速器的主要特点
- 通用化的加速器架构(命名为Booster),加速器由缓存部分和计算部分构成,缓存模块用来配置网络模型的参数,用户可以通过向加速器系统的参数缓存和指令缓存配置网络模型的参数和描述模型结构的指令,便可直接部署不同CNN网络模型
- 高利用率的PE单元设计,可以实现标准卷积、深度卷积、点卷积3种不同类型的卷积计算
- 基于量化感知训练的软硬件协同设计(INT8,W8A8)
- 支持算子
- Standard Convolution、Depthwise Convolution、Pointwise Convolution
- Max Pooling、Average Pooling
- ReLU
- Batch Normalization
- Concat
- Upsample
- Branch
- Round(四舍五入、四舍六入五成双)
资源消耗情况
| Resource | Utilization | Available | Utilization / % |
|---|---|---|---|
| LUT | 98193 | 230400 | 42.62 |
| LUTRAM | 28190 | 101760 | 27.70 |
| FF | 72421 | 460800 | 15.72 |
| BRAM | 156 | 312 | 50.00 |
| URAM | 96 | 96 | 100.00 |
| DSP | 625 | 1728 | 36.17 |
功耗情况

Demo展示
模型设计
- 模型结构:MobileNetV1 YoloV3-tiny
- 输入图片尺寸:640x320
- 训练数据集:BDD100k
- 训练效果
| Class | mAP@0.5:0.95 (fp32) | mAP@0.5:0.95 (INT8) |
|---|---|---|
| all | 0.193 | 0.185 |
| person | 0.153 | 0.147 |
| rider | 0.0869 | 0.0886 |
| car | 0.367 | 0.349 |
| bus | 0.274 | 0.259 |
| truck | 0.268 | 0.251 |
| bike | 0.107 | 0.105 |
| motor | 0.0938 | 0.0949 |
场景一:市区街道场景应用
- 模型: MobileNetV1-YoloV3-tiny,输入尺寸640x320x3
- 平台:ZCU104 + PYNQ
- 场景搭建:OpenCV 读取Camera,依次进行图像Resize、加速器Inference、NMS处理和Box显示。


场景二:公路场景应用
- 模型: MobileNetV1-YoloV3-tiny,输入尺寸640x320x3
- 平台:ZCU104 + PYNQ
- 场景搭建:OpenCV 读取Video,依次进行图像Resize、加速器Inference、NMS处理和Box显示。


性能测试
| Test Work | FPS |
|---|---|
| Video Read Baseline | 67 |
| Camera Read Baseline | 14/90 |
| Booster | 52 |
| Booster+NMS(CPU) | 33 |
| Video+IMG Resize+Booster+NMS | 20 |
| Camera+IMG Resize+Booster+NMS | 10/24 |
- Camera设备1为罗技的c270 (720p 30fps) , Camera Read Baseline测试为14fps
- Camera设备2为 See3CAM_CU30_CHL_TC_BX (1080p 60fps),Camera Read Baseline测试为90fps
- Booster 主频为 215MHz,AXI 总线传输位宽为 32bit