FC游戏站:为您提供一个绿色免费的下载空间! 首页| 电脑软件| 安卓 | 手机网站
当前位置:首页 > FC游戏动态 > DAC快速目标检测算法优化和架构设计优化方案

DAC快速目标检测算法优化和架构设计优化方案

来源:FC游戏站 更新:2020-12-03

用手机看

扫描二维码随时看1.在手机上浏览
2.分享给你的微信好友或朋友圈

Design Automation Conference 自动设计大会是全球久负盛誉的产学研交流盛会,也是计算机学会推荐的A类会议之一。2019年第56届DAC大会在拉斯维加斯举行。其中系统设计竞赛(System Design Contest, SDC)的任务为面向端侧设备进行快速的目标检测。该比赛由Xilinx、大疆和英伟达赞助。该比赛针对比赛方给定无人机视角的训练数据集(9万张分辨率为360x640的图片,单目标标注)进行训练,在比赛方自有的5万张测试数据集上进行测试。最终检测精度IoU(Intersection over Union)高、且能量消耗低者胜出。

2018年该比赛第一次举行,当时提供了Pynq第一代平台(Zynq7020),由清华大学汪玉教授团队的曾书霖博士获得了全球第一名。2019比赛继续进行,Xilinx将平台升级到了支持Pynq框架的Ultra96,该平台搭载了Xilinx UltraScale+ ZU3器件。另一个赛道提供了Nivida的TX2。Ultra96是一款优秀的Xilinx ZYNQ的开发板。其PS侧搭载四核ARM Cortex-A53 CPU,主频为1.5GHz;软件方面可以使用基于Python的PYNQ框架进行开发。Ultra96平台以及ZU3的PL侧资源如下图所示。

1.2 动机

为了达到检测精度与能耗的平衡,我们团队选择并优化了面向端侧的轻量级神经网络框架。并针对ZU3的资源限制,精简了我们团队设计的一个可以支持通用网络的DNN加速器(HiPU),将其部署在ZU3的PL侧。主要工作分为针对硬件平台的算法优化和架构设计优化两部分:

算法上的优化主要有:

1) 选择ShuffleNet V2作为特征提取的主框架;

2) 选择YOLO作为单目标位置的回归框架;

3) 对神经网络进行8bit量化。

HiPU的优化主要有:

1) 支持CONV,FC,Dep-wise CONV,Pooling,Ele-wise Add/Mul等操作,峰值算力为268Gops,效率大于80%;

2) 支持Channel shuffle、divide、concat操作,且不消耗额外时间;

3) 提供C、RISC-V汇编接口的API,调度灵活;

4) HiPU完全由PL侧实现,不依赖PS侧。PS主要工作负载为图片预处理和结果输出上。

经过上述优化,我们团队的设计在比赛方的数据集上测得如下结果:准确率IoU为61.5%;能耗为9537J,帧率为50.91Hz,功率为9.248W。

2. 算法框架设计

2.1 任务分析

本次竞赛的训练集由大疆提供,部分图片如下图所示。在确定算法之前,我们团队首先对训练数据集的特点进行了分析:

1) 图片尺寸均为360x640,不需要对图片进行resize操作进行归一化;

2) 所有测试图片均是无人机视角。标定框的大小从36像素到7200像素不等,算法需要支持各种大小的目标检测;

3) 所有图片共12大类(95个子类),包括boat (7), building (3), car (24), drone (4), group (2), horse-ride(1), paraglider(1), person (29), riding (17), truck (2), wakeboard(4), whale(1)类别。算法在设计时需要对这12类物体进行分类;

4) 即使测试图片中出现多个相似的目标,标定框也是指定固定的一个目标。即训练时需要适当的过拟合。

图 2 训练集的部分图片

2.2 单目标检测网络选择

为满足移动端的检测实时性,我们团队最终选定了YOLO作为基础检测算法。并将其中的特征提取网络替换为轻量级的ShuffleNet V2,其参数规模略大于1X。如下图所示为我们定制的单目标检测网络,ShuffleDet。

图 3 ShuffleDet的网络结构示意图

2.3 神经网络的训练与量化

我们团队首先在ImageNet数据集上预训练一个标准的ShuffleNet V2分类网络。待模型收敛后,将其中的特征提取部分的参数迁移到ShuffleDet网络中。使用比赛方的训练集进行其他层的参数的训练。

为了适应FPGA的定点运算,待整体参数训练完成后,需要对所有参数进行量化操作。我们团队将网络参数和feature map均量化为8bit定点。

量化过程主要分为以下几步:
1) 将BN层合并到参数中;
2) 将合并后的参数进行对称量化;
3) 量化后的参数如果直接使用,精度损失过于严重。因此量化后还需要对参数进行fine tune。

如下图所示为量化操作的示意图。

图 4 网络参数的量化流程

经过量化后,我们使用的ShuffleDet网络的卷积层数约为74层,权重约为1.94MB,Bias约为78KB。

3. 计算架构框架设计

3.1 HiPU整体介绍

猜你感兴趣