FasterX实时目标检测 | 依托NanoDet思想,使用辅助Head进一步提升YOLOX性能(一)

简介: FasterX实时目标检测 | 依托NanoDet思想,使用辅助Head进一步提升YOLOX性能(一)

由于物联网(IoT)节点等边缘GPU设备的计算资源有限,因此在无人机(uav)上的实时目标检测是一个具有挑战性的问题。为了解决这一问题,本文提出了一种基于YOLOX模型的轻量级深度学习架构FasterX,用于边缘GPU上的实时目标检测。

首先设计了一个有效的、重量轻的PixSF-Head来代替原来的YOLOX-Head,以更好地检测小物体,它可以进一步嵌入到深度可分离卷积(DS Conv)中,以实现更轻的Head。然后,在Neck中开发了一种更薄的结构,称为SlimFPN,以减少网络的参数,这是在精度和速度之间的权衡。

此外,在Head中嵌入注意力模块,以提高预测Head的特征提取效果。同时,还改进了标签分配策略和损失函数,以缓解无人机数据集的类别不平衡和Box优化问题。

最后,提出了在线蒸馏的辅助Head,以提高PixSF-Head的位置嵌入和特征提取能力。

本文轻量级模型的性能在NVIDIA Jetson NX和Jetson Nano GPU的嵌入式平台上进行了实验验证。大量的实验表明,与最先进的模型相比,FasterX模型在VisDrone2021数据集上的准确性和延迟之间实现了更好的权衡。


1、简介


无人机(uav)被认为是大规模环境传感和监测的一个高效的物联网(IoT)节点,广泛应用于城市、农业、监测等任务。视觉目标检测是无人机应用中的一个热点,它是一种能够对无人机摄影中的所有目标进行定位和分类的方法,如行人、汽车、自行车等。近年来,基于深度学习的目标检测在准确性和效率方面都取得了显著的进展,并提出了许多优秀的网络。两阶段模型通常精度较高,但效率较差,在计算资源有限的无人机平台上难以实现。近年来,基于YOLO的一期模型被广泛应用于嵌入式系统中。但是,在基于Anchor的YOLO模型中,它并不能解决以下问题:

  1. Anchor需要手动重新设计,以适应不同数据集的Anchor分布;
  2. 正样本和负样本之间的不平衡。同时,平衡检测精度和实时需求仍然是一项具有挑战性的任务。

为了克服这个问题,许多研究人员已经致力于开发高效的检测器架构,如FCOS和FSAF。基于Anchor-Free、NanoDet、YOLOX-Nano、YOLOX-Tiny和YOLOX-S的轻量级模型也是典型的代表。这些检测器基于COCO、VOC等方面进行了模型评价,促进了目标检测领域的发展。

image.png

然而,无人机在边缘设备检测的应用存在两个实际问题:

  1. 与COCO数据集和VOC数据集相比,无人机数据集存在目标规模变化较大、目标较小等具体问题,图2中可以直观地看到;
  2. 无人机实时边缘监控存在一定的硬件瓶颈。因此,这是小目标的检测精度与模型推理速度之间不可调和的矛盾。

对于无人机,目前提高小目标精度的简单有效方法可以归纳为2点:

  1. 提高输入图像分辨率,放大目标;
  2. 在不改变输入图像分辨率的情况下,增加一个小目标特征图,增加一个大分辨率检测Head,这是特征图上的放大策略。

无论如何提高精度,上述两种方法都会导致模型的GFLOPS成本急剧上升,严重影响推理,不利于边缘实时检测。因此,这些方法不能简单地应用于轻量级模型。

近年来,无人机嵌入式部署的相关工作陆续提出。其中,Zhang等人提出的模型压缩方法已经在vis无人机2021数据集上得到了广泛的验证,证明了其有效性,可作为优化方案之一。与模型压缩不同,本文主要关注小目标和检测器结构的优化,以实现无人机边缘GPU设备的实时推理性能。受PP-PicoDet、NanoDet、ESPCN和YOLOX的启发,作者提出了一种用于无人机检测的边缘GPU友好的Anchor-Free检测器FasterX,它比轻量级检测器YOLOX更精确、更轻。随着添加更多的预测Head,FasterX在参数、GFLOPS成本和推理时间上仍然保持了准确性和效率的优势。

综上所述,本文的主要贡献如下:

  • 提出了一种新型的轻量级PixSF-Head,大大缓解了Head造成的推理难题,其中增加了一个检测Head P4。此外,PixSF-Head是由一种新的位置编码器-解码器(Fcous和像素折叠)构建的。PixSF-Head不仅对无人机数据集Visdrone2021有效,而且在VOC2012基准数据集上得到了实验验证;
  • 开发了一种更薄的结构来取代Neck的PAFPN结构,称为SlimFPN。SlimFPN去掉了PAFPN的上采样结构,通过Ghost模块统一了Neck所有分支的输入通道数,大大降低了网络参数;
  • 采用动态标签分配策略SimOTA对训练过程进行优化,获得全局优化结果。同时,采用Focal Loss(FL)和CIoU损失的加权和,来缓解GT的类别不平衡和长宽比不平衡。
  • 提出了一种新的在线蒸馏辅助Head,以提高PixSF-Head的位置编码和特征提取能力。

2、本文方法


2.1、YOLOX

YOLOX是基于Anchor-Free框架设计的,放弃了YOLO系列的基于Anchor的策略(YOLOv2-v5)。由于它在当前COCO数据集上的YOLO系列中取得了最先进的结果,本文选择它作为基线。YOLOX总共有6种不同的网络宽度和深度设置的模型,包括YOLOX-Nano、YOLOX-Tiny、YOLOXS、YOLOX-M、YOLOX-L和YOLOX-X。其中,YOLOX-Nano、YOLOX-Tiny和YOLOX-S都属于YOLOX的轻量级家族,适合于部署在嵌入式设备中。

2.2、FasterX

FasterX的框架如图3所示。FasterX的主要部分由PixSF-Head、SlimFPN和辅助Head组成。所提出的FasterX在Jetson NX和Jetson Nano GPU嵌入式平台上实现了高效和实时的基于深度学习的目标检测。接下来将详细描述这个设计。

image.png

1、Lightweight PixSF head

image.png

对于无人机目标检测应用,目标在整体图像场景中相对较小(小目标< 32×32像素,中等目标32×32~96×96像素,大目标> 96×96像素,由COCO数据集定义)。例如,在VisDrone2021数据集中,超过60%的目标是小目标,如行人、自行车、汽车和汽车。虽然许多基于深度学习的目标检测方法可以获得较高的精度,但由于目标小、背景复杂,这些方法在无人机数据集中表现较差。

近年来,许多研究和综述已经开始探索使用一个额外的检测Head(P4-Head)来提高对小目标的检测精度。预测Head的4个Head结构可以减轻目标尺度变化的影响,降低小目标检测网络的优化难度。如图4所示,比较了4个Head结构下轻量级系列YOLOX的3种基准模型。4个Head的YOLOX-Tiny的AP50平均精度(mAP)和AP50平均精度远远优于3个Head的结构。

image.png

虽然4个Head的结构非常有效,但在GPU嵌入式设备上的参数和GFLOPS显著增加。特别是由于多分支结构的进一步扩展,GFLOPS值严重增加,不利于GPU并行计算。表一显示了在Jetson NX和Nano平台上的延迟结果。以YOLOX-S为例,与原生YOLOX相比,在Jetson NX平台和Nano平台上,具有4个Head结构的YOLOX的推理延迟分别增加了85%和353%。为了解决这一问题,本文设计了一种基于4个Head结构的轻量级PixSF-Head,该结构在精度和速度之间存在权衡。

在超分辨率重建领域,通常构建像素级损失函数进行像素级监督,实现从低分辨率图像(LR)到高分辨率图像(HR)的映射,其中像素级损失函数(L2损失)和卷积操作隐含包含位置信息。同样,在目标检测中也存在位置约束。在预测位置回归的置信度时,需要将位置预测解码到输入坐标范围,以适应损失监督。在YOLO中,位置解码的公式如下:

image.png

其中,和表示中心点从网格单元格左上角的偏移量,和分别表示对象的宽度和高度因子。这些值在原始地图的比例尺范围内,需要通过和当前特征图相对于原始地图的Stride进行链接。网格坐标系表示网格单元格的左上角坐标。此外,表示Head的输入,表示Head中的卷积操作。

综上所述,通过将编码后的特征映射到原始映射的固定位置,并结合网格和降采样倍数,将公式(1)可以看作是一个特征位置的嵌入。受此启发,本文设计了一种利用位置嵌入到Head中的位置编码解码器,称为PixSF-Head。

image.png

如图5所示,编码器使用Focus在HR特性中沿着通道方向连接pixel-patchs。这样,每个像素点的通道就包含了Patch位置信息(左上角、右上角、左下角、右下角)。

此外,为了降低编码成本,建立像素-图案之间的位置关系,使用了一个简单的1×1卷积来进行特征提取和降维。然后,将其输入到Decoupled-Head,分别进行回归和分类任务。

在解码器部分,利用pixelshufflfle操作将编码器提取的特征恢复到维数。具体来说,使用深度的1×1卷积将映射到,其中设置为2。该编解码器可以用以下方式来描述:

其中,表示编码器,表示解码器。为输入,大小为,是 multiple factor,注意需要被或整除。激活函数按元素应用,ω是整个解耦层中包含的参数。

2、SlimFPN

Anchor-Free目标检测器主要采用特征金字塔网络(FPN)进行多尺度预测,可以提取多层次目标特征,提高在线特征选择能力。在YOLOX的路径聚合网络(PANet)中,设计了一个基于FPN的自下而上结构PAFPN来补充定位信息,使FPN具有自下而上的梯度更新。在PAFPN结构中,Neck的输入和输出在不同阶段与主干层的输出相同。PAFPN的结构可以表述为:

其中P4为FPN的最低层,为2次降采样,为融合算子,Cat为通道级联。

PANet结构通过将上层特征图和现有特征图相结合,可以将定位特征传播到高语义特征层。然而,从梯度传播的角度来看,有利于小目标检测的P4预测层已经计算出了在PANet结构之前的损失。因此,P4-Head在梯度上不能共享PANet结构的优势,但有利于大目标的P10-Head可以完全共享PANet结构的优势。

考虑到具有大量通道的PANet在结构上是多分支的,导致边缘GPU设备的延迟推断,本文设计了一种没有PANet作为Neck的轻量级SlimFPN结构。SlimFPN通过获取主干网中每个阶段的输出来形成多级特征图。网络的提取参数随着网络深度的增加而增加,从而导致特征通道的增加。大量的通道会增加边缘GPU设备的计算成本。

因此,在SlimFPN中,对特征的大参数分支进行通道缩放,以降低推理速度。如图3的SlimFPN部分所示,由于每个阶段的主干通道随着深度的增加而增加,所以使用P3的输入C作为表示其他输入级别的基础。考虑到平衡通道不可避免地会导致信息损失,通过Ghost模块实现参数缩减,以提高空间提取能力,减轻信息损失。

与PANet相比,所提出的SlimFPN可能会导致一些准确性的损失,但其影响不显著。这是因为大多数无人机物体被认为是小目标。一方面,它受益于FPN在特征融合方面的强大性能。自上而下的结构可以确保深层语义信息被转移到浅层特征图中,从而为小目标提供语义支持。另一方面,PANet的自下而上结构主要针对大目标,对P4-Head不起监督作用。因此,SlimFPN会导致大目标精度的下降,但它可以提高三种模型的推理速度,这是对精度和速度的一种权衡。

3、Head with attention

在传统的目标检测头层中,回归和分类总是在最后阶段,其中大部分的权重在定位和回归任务之间共享。Double head RCNN 首先提出了一个double head layer,采用不同的卷积提取流进行回归和分类任务,以最小化回归和分类共享的特征部分。从那时起,这个想法就被用于最近流行的单阶段检测器中。为了进一步提高Head的提取能力,PPYOLOE和TOOD尝试利用注意机制来提高特征提取能力,并在COCO数据集中验证了集成在Head中的注意力模块的有效性。

image.png

在无人机的图像中,较大的覆盖区域总是包含复杂和多样的背景。为了提高头部层的特征提取能力,我们采用了注意机制来关注兴趣区域。本文采用卷积信道注意模块(CBAM),利用该模块改进头部层的特征表示。同时,CBAM是一个轻量级模块,可以轻松嵌入头部层,提高检测性能,如图6所示。

4、标签分配策略和损失

正负样本的标签分配对检测器有至关重要的影响。标签赋值被分配给RetinaNet,Faster RCNN通过Anchor和GT之间的IOU阈值的交集直接划分正样本和负样本。YOLOV5使用Anchor和GT之间的长宽比来进行正采样。FCOS以GT中心区域的Anchor作为正样本,ATSS根据GT附近最近Anchor的统计特征来确定样本。上述标签分配策略在全局训练过程中没有变化。为了获得全局最优的匹配结果,采用了SimOTA动态标签分配策略对训练过程进行了优化。

SimOTA首先通过中心先验确定候选区域,然后计算GT与候选区域中的候选框之间的IOU值,最后通过对IOU求和得到动态参数K。此外,SimOTA使用Cost矩阵为每个GT分配K个候选框进行网络训练,其中Cost矩阵是通过直接计算所有候选箱和GT的损失得到的。原SimOTA采用CE损失和IOU损失的加权和计算Cost矩阵,可表示为:

image.png

在无人机场景中,GT的样本类别和高宽比往往分别不平衡。以VisDrone2021数据集为例,行人的样本为79337,而三轮车的样本为4812。同时,GT的高宽比也不平衡。高宽比(最大侧/最小侧)的范围很宽,从1到接近5的上限。然而,大部分的GT都在1到2.5之间。在这种情况下,YOLOX的原始标签分配丢失无法很好地处理它。为了解决这一问题,对于类别不平衡,使用Focal Loss来使网络更加关注样本较少的类别。同时,对于高宽比不平衡,采用CIOU损失代替IOU损失,这可以引入高宽比监督信息来拟合GT BOX。因此,Focal Loss和CIOU Loss可以分别表示为:

image.png

其中为CostMatrix的平衡因子,为预测值与标签之间的距离。和是调整不平衡类的超参数。对于回归部分,可以定义为:

image.png

其中也是平衡因子。然后,用度量高宽比和GT的距离,计算预测框与GT中心点的距离(·)。

5、Auxiliary Head for Online distillation

本文利用位置约束设计了编解码器PixSF-Head,提高了对小目标的检测能力。同时,使用改进的SimOTA方法对网络进行训练。然而,对于轻量级网络,由于模型在LAD开始时,动态匹配和位置编码和解码方法是随机初始化的,因此这些方法可能不会得到很好的结果。

image.png

为了解决这个问题,在轻量级的PixSF-Head中设计了一个在线蒸馏的辅助Head。如图7所示在头部设计了两个流(Stu.Head and Aux.Head),Stu.Head (即PixSF-Head)是原始结构的Head,是蒸馏层。Aux.Head设计为指导SimOTA为teacher-head(PixSF-Head)分配标签分配结果。

如图7 (c)所示,用Aux.head引导下的SimOTA标签分配结果代替Stu.head的原始标签分配结果,以提高Stu.head的整体表达能力。此外还添加了一个额外的pixel-level alignment任务来增强Stu.head的能力。

image.png

其中,使用来计算PixSF-Head与Aux.Head上的特征之间的距离。值得注意的是,Aux.Head只在训练过程中执行,没有推理成本。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
自然语言处理 算法 数据挖掘
自蒸馏:一种简单高效的优化方式
背景知识蒸馏(knowledge distillation)指的是将预训练好的教师模型的知识通过蒸馏的方式迁移至学生模型,一般来说,教师模型会比学生模型网络容量更大,模型结构更复杂。对于学生而言,主要增益信息来自于更强的模型产出的带有更多可信信息的soft_label。例如下右图中,两个“2”对应的hard_label都是一样的,即0-9分类中,仅“2”类别对应概率为1.0,而soft_label
自蒸馏:一种简单高效的优化方式
|
2天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型的策略与优化方法
在机器学习领域,构建一个既高效又准确的预测模型是每个数据科学家追求的目标。本文将探讨一系列策略和优化方法,用于提高机器学习模型的性能和效率。我们将从数据处理技巧、特征选择、算法调优以及模型评估等方面进行详细讨论。特别地,文章将重点介绍如何通过集成学习和自动化模型调优工具来提升模型的泛化能力。这些技术不仅能帮助减少过拟合的风险,还能确保模型在未知数据集上的表现更加鲁棒。
|
2天前
|
机器学习/深度学习 算法 PyTorch
【SAHI】即插即用| SAHI操作可有效解决小目标检测过程中的难点!实现涨点
【SAHI】即插即用| SAHI操作可有效解决小目标检测过程中的难点!实现涨点
103 1
|
2天前
|
人工智能
全方位解析PAI:数据准备、模型开发、模型训练一网打尽
全方位解析PAI:数据准备、模型开发、模型训练一网打尽 随着人工智能技术的飞速发展,越来越多的企业开始关注并投入到AI的研发中。然而,AI的研发并非易事,从数据准备、模型开发、模型训练到模型服务,每一个环节都需要专业的工具和平台来支持。阿里云的PAI(Powered by AI)正是一个涵盖了数据准备、模型开发、模型训练、模型服务全流程的AI工作平台。本文将为您详细介绍PAI的各个子产品的产品线上规格及使用指引。
55 2
|
10月前
|
机器学习/深度学习
结合亲和力提高了 28.7 倍,基于端到端贝叶斯语言模型的方法设计大型、多样化的高亲和力抗体库
结合亲和力提高了 28.7 倍,基于端到端贝叶斯语言模型的方法设计大型、多样化的高亲和力抗体库
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
无需标注海量数据,目标检测新范式OVD让多模态AGI又前进一步
无需标注海量数据,目标检测新范式OVD让多模态AGI又前进一步
472 0
|
12月前
|
算法 计算机视觉
FasterX实时目标检测 | 依托NanoDet思想,使用辅助Head进一步提升YOLOX性能(二)
FasterX实时目标检测 | 依托NanoDet思想,使用辅助Head进一步提升YOLOX性能(二)
203 0
|
人工智能 自然语言处理 Shell
挖掘极致,将head数设置为特征数,Meta AI多头高效注意力模块更准、更快
挖掘极致,将head数设置为特征数,Meta AI多头高效注意力模块更准、更快
|
12月前
|
机器学习/深度学习 自然语言处理 算法
系统回顾深度强化学习预训练,在线、离线等研究这一篇就够了
系统回顾深度强化学习预训练,在线、离线等研究这一篇就够了
120 0
|
机器学习/深度学习 自然语言处理 资源调度
机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
在进行归回模型训练涉及主流ML模型:决策树、随机森林,lightgbm等;在模型验证方面:讲解了相关评估指标以及交叉验证等;同时用lgb对特征进行优化;最后进行基于stacking方式模型融合。