无人机在工业、农业、军事及消费级市场均有如土地测绘、巡检监测、物资配送、灾后救援等重要作用。其中,实现高精度且高能效物体检测是开展所有无人机任务的基本要素,也是本领域急需提高的方向。由于航拍数据集(无人机视角)的缺失,进一步提升无人机物体检测系统变得更加困难。
在这样的背景下,圣母大学的史弋宇教授,匹斯堡大学的胡京通教授,香港城市大学的余备教授和Cognite Ventures公司的CEO Christopher Rowen发起“低功耗目标检测系统设计挑战赛”,并在DAC‘2018成功举办。该比赛由Nvidia、Xilinx和DJI大疆创新赞助,由圣母大学博士后徐小维和匹斯堡大学博士生张鑫燚进行评测。Nvidia和Xilinx分别为GPU和FPGA组的参赛队伍提供免费的嵌入式计算设备TX2 GPU和PYNQ Z-1 FPGA。大疆创新为比赛提供了高达150k份由无人机在实际环境中采集的数据并提供了准确标注。
比赛从2017年10月16日正式开始,于2018年5月28日结束,共吸引114支来自全球多个科研机构的队伍参加。其中,53支队伍参与GPU组比赛,61支队伍参与FPGA组比赛。最终,两个组别前三名的队伍将被邀请至旧金山,在DAC’2018上接受颁奖。同时,获奖队伍将能在大会上分享他们的设计并进行现场展示。
挑战1: 小物体及遮蔽物检测
由于所有图片均在无人机视角下拍摄,大量图片中的待检测物体都非常小,且有很大的概率被树木和建筑物遮挡。这些物体本身的特征在如此小的尺度下会大大提升检测的难度。
挑战2: 同一物体检测
与传统的物体检测不一样,本次比赛需要参赛队伍检测同一个物体。在无人机跟随应用中,无人机需要准确地检测出指定物体(如无人机操控者、车辆、动物等)并进行跟随飞行。当场景出现多个相似物体时,无人机也不能跟丢或跟错对象。此应用给物体检测带来了新的挑战。
挑战3:高精度vs低功耗
比赛采用的评价指标是精度,速度和能耗的结合(评分细则详见1)。考虑到GPU组及FPGA组使用了不同的计算能力硬件设备,比赛对检测速度提出了不同的要求。其中GPU设计需运行至20 FPS,FPGA设计需达到5 FPS。
GPU组前三强
GPU组的前三名分别是中科院计算所的ICT-CAS团队,浙江大学的DeepZ团队和山东大学的SDU-Legend团队。三个队伍均采用了深度学习完成比赛,也都采用Yolo神经网络作为他们的基础设计。
GPU组第一名: ICT-CAS
ICT-CAS团队使用了feature extractor, tucker decomposition and precision scaling相关技术。在每一种具体的方案中尝试了多种技术记忆组合以减少计算和内存消耗。在计算中采用了半精度(16bits)进行计算并使用TensorRT来提高计算速度。
GPU组第二名: DeepZ
DeepZ团队使用Yolo-v2作为骨干网络进行特征提取和检测。为了应对较小物体检测的问题,该团队使用了Feature Pyramid Network来获得上下文相关的特征。同时,focal loss function的引入来缓解单一物体检测与多个候选框的不平衡问题。该团队 对Yolo-v2网络进行了一定的改进,改进后的网络结构如下图所示。
GPU组第三名: SDU-Legend
SDU-Legend团队基于Yolo v-2进行优化。首先,该团队将Yolo v-2网络由32层删减为27层。其次,为了满足检测小目标的要求,该团队降低了下采样率。在体系层次,该团队也做了一些优化:将网络最后两层的计算放在CPU上进行。该团队实现了16bits的半精度计算来进一步提升计算速度。
FPGA组前三强
FPGA组的冠军是来自清华大学的TGIIF团队,亚军是苏黎世联邦理工大学的SystemsETHZ,季军来自UIUC的iSmart2团队。这三支参赛队伍分别在FPGA上部署了SSD,SqueezeNet和MobileNet神经网络,完成了比赛要求的物体检测任务。
FPGA组第一名: TGIIF
TGIIF团队在采用了深鉴科技的硬件加速器架构DPU、全栈式工具链DNNDK和深度压缩技术的基础上,从算法、软件和硬件对整个目标检测系统进行了全栈式的协同优化。通过采用硬件友好的SSD网络和多线程优化技术,结合深度压缩和定点训练,在保证识别精度的前提下,满足了低功耗和实时性的要求。FPGA组第二名: SystemsETHZ
SystemsETHZ团队使用低量化网络进行物体检测。特别的该团队采用squeezenet为基础进行设计,并将网络层数修改为18层。在具体的实现中,该团队采用了folded computing的方式来配置多路复用器和多路输出选择器进而实现神经网络不同阶段的计算。该团队使用一个DMA引擎实现CPU和FPGA间的数据传输。
FPGA组第三名: iSmart2
iSmart2组采用以Mobilenet为基础的轻量化网络设计,共12层。网络包含depth-wise 3x3卷积层,传统1x1卷积层和max pooling层,并采用简化的Yolo后端进行物体检测。在硬件实现上,该团队采用基于模块(IP)复用的结构,让相同种类的网络层复用同一个模块以节约硬件资源。此外,该团队将每层特征图分割成大小相同的数据块,以数据块为单位进行计算,实现了数据块之间的细粒度流水线结构,以缩短图片的处理延时。
1. http://www.cse.cuhk.edu.hk/~byu/2018-DAC-HDC/