边缘设备的高效检测器通常针对参数或速度指标进行优化,这些参数或速度计数指标与检测器的能量保持弱相关。然而,卷积神经网络的一些视觉应用,如始终在线的监控摄像头,对能量限制至关重要。
本文旨在通过设计检测器作为基线,从两个角度实现能量和性能之间的权衡:
1)广泛分析各种cnn以识别低能量架构,包括选择激活函数,卷积算子和颈部特征融合结构。这些过去工作中未被重视的细节严重影响了探测器的能量消耗;
2)为了突破能量性能两难问题,我们利用已发现的 low-energy 元件,提出了一种能量驱动的平衡探测器,命名为FemtoDet。除了新的结构外,我们还通过考虑卷积和训练策略优化来改进FemtoDet。
具体而言,开发了一种新的实例边界增强(IBE)模块用于卷积优化,以克服cnn有限容量与不同空间表示下检测任务之间的矛盾,并提出了一种递归热重新启动(RecWR)算法用于优化训练策略,以避免轻量级检测器的子优化,考虑到流行增强中产生的数据移位。因此,只有68.77k个参数的FemtoDet在PASCAL VOC上获得了46.3 AP50的竞争分数,在高通骁龙865 CPU平台上获得了1.11 W和64.47 FPS的竞争分数。在COCO和TJUDHD数据集上进行的大量实验表明,该方法在不同场景下都取得了较好的效果。
文章首先分析了各种卷积神经网络,以找出低能耗的架构。这包括选择激活函数、卷积运算符和特征融合结构。作者认为这些在过去的工作中被忽视的细节严重影响了检测器的能耗。
FemtoDet 特别适用于层次化的智能芯片,可以实现快速的响应和警报。例如,它在 TJU-DHD 数据集的行人检测中表现出 85.8 的 AR20 和 76.3 的 AP20,同时在中大型物体检测上表现出色。同时,FemtoDet 在 AP50或AP20 和中等难度的数据场景(例如VOC)上表现良好,均能在一定成都反映其应用能力。
论文地址:[2301.06719] FemtoDet: An Object Detection Baseline for Energy Versus Performance Tradeoffs (arxiv.org)
作者主页:Peng Tu (yh-pengtu.github.io)
高效卷积神经网络(cnn)的部署使边缘设备的视觉检测器取得了巨大的进步[Ssd,YOLOV1234X,PP-YOLOE],其中它们不断减少参数和速度计数以提高准确性。然而,就能源而言,这些指标与模型的效率并没有很好地相关。评估指标(如参数)没有考虑模型的能量成本,从而对检测器的能量成本产生重大影响。
与相同架构相比,模型的参数与其能量成本呈正相关关系(如下表所示),
而在模型参数相等的情况下,其能量消耗可能与模型参数呈负相关甚至不相关关系(如下表所示)。考虑到各种激活函数、卷积算子和特征融合结构可能不会增加模型参数,反而会产生更多的能量成本。
同样,速度计数也不能很好地与能量相关,因为它可以通过并行度来优化。当定制的高效探测器被部署在像永远在线的监控摄像头这样的严重能源限制下时,这种断开将使它们无法使用。
本文旨在降低高效目标检测器的能量成本,同时通过实现能量与性能的权衡来提高其性能。具体来说,这些瓶颈分为以下几类:
1)未知能量的探测器组件。目前大多数目标检测方法要么集中在面向延迟的,要么集中在面向精度的上。对探测器组件能量成本的研究非常有限,这是设计能量性能平衡探测器的第一个障碍。为了确定探测器的节能组件,遵循[Ecc: Platformindependent energy-constrained deep neural network compression via a bilinear regression model]从三种类型的结构(即激活函数、卷积算子和探测器颈部)对其能量指标进行基准测试。得到以下发现:首先,一些激活函数得到了广泛的应用,因为它们能够在不增加更多参数的情况下改进模型。它们增加了成本,但得到的关注却非常有限。如上表所示,我们将基于ReLU的模型设置为基线。当用GELU取代ReLU时,性能提高了4.40%,但能量成本增加了12.50%,平均能量与性能权衡(Eq. 1)的对应系数下降了7.16%。
m E P T = ( 1 N ∑ i N P ) / ( P o w e r ) , ( 1 ) s . t . P o w e r = 1 T t i m e ∑ i N ( η ( W , x i ) − η ( W ^ , x i ) ) , ( 2 ) mEPT=(\frac{1}{N}\sum_i^NP)/(Power),(1)\\ s.t. ~Power=\frac1{T_{time}}\sum^N_i(\eta(W,x_i)-\eta(\hat W,x_i)),(2) mEPT=(N1i∑NP)/(Power),(1)s.t. Power=Ttime1i∑N(η(W,xi)−η(W^,xi)),(2)
此外,虽然大的核卷积可以改进模型(上表),但增加的能量成本是不可接受的。配备大的内核卷积可以使模型的性能提高约1.87%,但与较小的内核卷积相比,其能量成本(16.20%)更高(如上表第二行所示)。最后,探测器中的标准FPN也会导致显著的能源成本。这种情况的发生是由于多特征融合路径遵循自底向上或自顶向下的方式,导致频繁读取内存中的数据以覆盖数据。然而,研究表明,多特征之间的上下融合可能是不必要的。如下表所示,我们提出了一个简单的SharedNeck来取代FPN,以降低约5.77%的能源成本,同时获得6.25%的性能提升。SharedNeck通过学习卷积在多个特征之间进行自适应融合,而不是像FPN那样使用从下到上或从上到下的特征融合。
基于这些分析,我们进一步构建了一个名为FemtoDet的低能探测器。令人惊讶的是,FemtoDet在平台上只有68.77k个参数和1.1W的功率。
2)CNN的优化是另一个瓶颈,因为获得一个有利的检测器是非常具有挑战性的,特别是对于少量的参数。轻量级检测器受限于其有限的容量,这将导致感兴趣对象实例边界的特征映射出现混淆,如下图 (b)所示。
特征上模糊的实例边界可能会增加模型中错误检测的风险。针对这一问题,我们提出了一种新的实例边界增强模块(IBE),该模块强调了对象边界信息的潜力:首先应用参数重用机制将局部描述符与卷积运算相结合,以实现鲁棒性和多样性的实例边界特征表示。但该操作会导致正常特征与集成特征之间的特征不对齐。然后,为了充分利用这两种类型的特征,我们在IBE中设计了双归一化,以重新排列特征。IBE采用共享卷积,但也采用独立的批归一化层进行单独的归一化。最后,我们在双归一化层后面添加了普通特征和集成特征。IBE提供了一种新的参数重用形式,从共享卷积算子生成新的局部描述符。该方法通过对学习到的卷积周围的梯度线索进行积分来获取目标边界信息。经过训练后,IBE模块可以折叠成简单的卷积算子,不再需要额外的计算;此外,数据增强是有效训练检测器的常用方法。使用设计良好的强增广有助于提高模型的泛化能力。
然而,如何防止训练图像和验证图像之间的数据转移尚未探讨,而训练数据受到强烈的增强。研究发现,强增强所产生的数据偏移会阻碍轻量级检测器向全局最优方向移动。一种常见的观点是,强图像增强可以有效地鼓励网络学习不同的特征。但是对于轻量级检测器,这些不同的特征不能帮助模型在验证集中做出更好的概括。换句话说,由于容量有限,轻量级检测器更容易受到这些被忽略的数据移位的影响。此外,我们提出了一种有效的训练策略,即递归重新启动(RecWR),以适应这些不同的特征,以提高模型的泛化能力。RecWR基于多阶段训练,逐步削弱数据增强强度。该方法可以帮助有限容量检测器在高维多元特征的帮助下跳出局部最优。在PASCAL VOC数据集上对IBE和RecWR的有效性进行了评价。
实验结果表明,与原始架构相比,IBE在不增加额外参数负担的情况下,可将FemtoDet性能提高7.72%;RecWR通过逐步削弱多阶段学习中的数据增强强度,使FemtoDet性能提高6.19%。通过与IBE和RecWR联合训练FemtoDet,本文提出的方法在使用相同水平参数的情况下,性能优于YOLOX 51.34%。
值得一提的是,FemtoDet是专门为分层智能芯片设计的,可实现始终在线的警报:始终在线的低功耗、高召回率和良好的准确性——在TJU-DHD上执行行人检测时,它达到了85.8 AR20和76.3 AP20。此外,FemtoDet对小物体的检测能力较差,但对他们更感兴趣的大中型物体的检测能力很好,在TJUDHD上的AR20-m为88.8,AP20-m为94.1,AR20-l为95.3,AP20-l为98.6。识别出可能感兴趣的对象后,可以将信息传递给其他模型,然后启动高精度鲁棒模型进行准确识别。永远在线的智能产品有广泛的应用,例如家庭监控或机器人。因此,宽松的指标(如AP50或AP20)和中等难度的数据场景(如VOC)可以很好地反映FemtoDet的应用能力。此外,在COCO数据集上的实验验证了该方法适用于多种场景,结果具有竞争性。
这里还提出了一种名为实例边界增强(Instance Boundary Enhancement,IBE
)的模块,以优化卷积并解决 CNN 有限容量与检测任务在多样空间表示中的矛盾。此外,为了解决轻量级检测器由于数据增强产生的数据偏移问题,作者提出了一种递归启动(Recursive Warm-restart,RecWR
)的训练策略。这两种方法都在 PASCAL VOC 数据集上进行了评估,结果表明 IBE 可以在不增加额外参数的情况下提高 FemtoDet 约 7.72% 的性能,RecWR 则通过逐步减弱数据增强强度,在多阶段学习中可以提高 FemtoDet 约 6.19% 的性能。
物体检测是一项经典的计算机视觉任务,用于识别图像或视频中物体的类别和位置。现有的目标检测器可分为两类:两级检测器和一级检测器。两级检测器是基于锚定的设备,它从图像中生成区域建议,然后从这些建议中生成最终的预测框。此外,FPN通过融合多层次特征来改进两级检测器。尽管与一级检测器相比具有更高的准确性,但在部署在边缘设备上时,两级检测器仍然难以实现低延迟。
具体来说,有两种类型的单阶段检测器:基于锚点和无锚点,这取决于锚点先验注入到整个图像中,以实现盒回归。SSD是一种经典的基于锚点的一级检测器,它将边界框的输出空间离散为一组默认锚点,每个特征图位置具有不同的纵横比和尺度。这一操作有助于探测微小物体。另一种典型的基于锚点的探测器是YOLO系列。YOLOv2探索袋的免费赠品,以提高一级探测器的性能。YOLOv3提出了跨尺度特征和新颖的nms (Non-Maximum Suppression)来获得更有信心的预测。YOLOv4发现网络优化的重复梯度加重了检测器的延迟,因此设计了Cross-Stage-Partial-connection模块,在保持检测性能的同时降低检测器的延迟。无锚探测器旨在消除预定义的锚盒集。YOLO作为一种无锚的一级检测器,将图像划分为多个网格,并在靠近目标中心的网格上预测框。CornerNet将对象检测为一对关键点(通过边界框的左上角和右下角)。在CornerNet中利用单个卷积网络来预测同一对象类别实例的所有左上角的热图,所有右下角的热图,以及每个检测到的角的嵌入向量。的确,CornerNet是一个新的对象检测管道。FCOS通过提出一种全卷积的单级目标检测器来消除锚点设置,该检测器可以以逐像素预测的方式解决目标检测问题。无锚点检测器解决了基于锚点检测器存在的问题,降低了存储成本,提高了边界盒的精度。
单阶段和两阶段目标检测方法在许多具有挑战性的公共数据集上都取得了高性能,如COCO和TJU-DHD。这些方法提供了面向精度的检测器。然而,为边缘设备服务的检测器的关键问题是检测延迟及其功率。换句话说,探测器在具有挑战性的场景中获得更高的性能,这不是部署在边缘设备上的探测器的必要选项。对于检测延迟,人们已经投入了大量的努力来实现准确性和效率之间的平衡。
FastYOLO是一种从YOLOv2扩展而来的优化架构,参数更少,性能下降2%,这使得FastYOLO在Nvidia Jetson TX1嵌入式系统上以平均约18FPS的速度运行。YOLObite专注于通过压缩编译的方式设计冗余对象检测器,使其具有实时性。NanoDet使用ShuffleNetV2作为主干使模型更轻,并进一步使用ATSS和GFL来提高精度。
值得注意的是,NanoDet在ARM CPU上也达到了~ 60FPS。这些轻量级检测器是面向延迟的。实际上,无论是面向精度的探测器还是面向延迟的探测器都没有考虑到它们的能量消耗。高能量成本探测器对部署在边缘的设备不友好。
本文旨在开发一种能够在能量和性能之间实现权衡的轻质探测器。
本节将分为两个小节来描述FemtoDet如何实现能源与性能之间的权衡。
1)低能探测器的基准:我们提供了设计低能探测器的基准,包括激活函数、卷积算子和探测器颈部的探索。
2)面向能量的FemtoDet:基于设计低能探测器的基准,提出了一种面向能量的轻型探测器FemtoDet,该探测器由深度可分离卷积(DSC)、BN和ReLU层叠加而成。FemtoDet在高通骁龙865 CPU平台上仅涉及68.77k参数和1.11W功耗。
此外,FemtoDet可以通过两种设计进行优化:首先,使用实例边界增强(IBE)模块来改进FemtoDet中的DSC,克服轻量级模型表示优化的瓶颈(即模型由于容量有限会学习混淆特征,如上图(b)所示)。其次,RecWR训练策略是一个多阶段的递归温启动学习过程,能够克服强数据增广产生的数据迁移。
top1 - acc (top1精度,用于图像分类)和AP(平均精度,用于目标检测)是广泛用于评估CNN性能的度量。除了常用的指标top1 - Acc和AP之外,我们还建议使用Power(能源成本)和mEPT(平均能源与性能权衡)来全面评估模型的能源成本及其实现能源与性能权衡的能力。
其中 T t i m e T_{time} Ttime 表示评估N张图像所需的总时间, ε ( W , x i ) ε(W, x_i) ε(W,xi) 表示能量成本,而模型使用训练参数W评估第 i 张图像 x i x_i xi。 ε ( W , x i ) ε(W, x_i) ε(W,xi) 与 ε ( W ^ , x i ) ε(\hat W, x_i) ε(W^,xi) 相似。不同之处在于我们为每层通道设置了1的值,其中模型参数为 W ^ ⋅ ε ( W ^ , x i ) \hat W·ε(\hat W, x_i) W^⋅ε(W^,xi) 表示模型为空状态。P 表示图像 x i x_i xi 中的模型性能(top1-Acc用于评估激活函数和卷积算子时的图像分类,AP50用于评估检测器颈部时的目标检测)。对于功率度量,期望该值尽可能小。对于mEPT度量,期望的结果越高越好。
为了识别探测器的低能组件,我们遵循从激活函数、卷积算子和探测器颈部三种结构中对其能量成本进行基准测试:激活功能。ReLU (Rectified Linear Unit,整流线性单元)、GELU、Swish、SiLU等因其参数少、flops少而被广泛用于目标检测。我们计算不同激活函数在同一架构下的能量成本,以探索哪种激活函数对设计面向能量的探测器更友好。
卷积算子可以自动学习过滤器权重,而cnn被训练来总结有用的信息,包括图像中的水平、垂直、边缘、对角线等特征。Villa卷积(vanConv)、深度可分离卷积(DSC)及其大核尺寸版本被广泛使用。Ding等指出,当基于足够大的卷积核构建cnn时,其结果可以与Transformer相媲美。在此,我们在不同的网络结构(ResNet和MobileNetV2)上建立了不同卷积(vanCon和DSC)和多尺度卷积核大小(3×3和5×5)的能耗比较实验。重要的是,对于每个实验案例,卷积算子类型或核大小将是唯一的变量。
探测器的瓶颈:特征金字塔网络(FPN)是两级或一级探测器的基本组成部分。基于fpn的检测器颈融合多个低分辨率和高分辨率特征输入以获得更好的表示,导致了一系列设计人工复杂融合方法的研究。然而,他们只提出了FPN带来的良好效果,而忽略了它的能源成本。在FemtoDet上进行了一系列实验,使用不同的颈部类型,例如FPN、PAN和我们提出的SharedNeck来研究相应的指标(包括能源成本、参数和PASCAL VOC的检测精度)变化。
可以观察到DSC和ReLU比vanCon和其他激活函数更节能。此外,与FPN和PAN等检测器的颈部相比,本文提出的SharedNeck更适合于轻型检测器。
backbone :FemtoDet的主干包含一个初始的全卷积层,有8个滤波器。我们使用ReLU作为非线性,使用BN作为批归一化。从第二层开始,所有的卷积算子都使用DSC。原因是我们遵循基准测试的结果来选择能源友好型组件。
整个主干的描述见附录下表;颈部:我们为FemtoDet定制了一个颈部,以实现能量和性能之间更好的权衡。SharedNeck首先对骨架输入的尺度信息进行对齐,然后将这些对齐特征与元素添加进行合并。最后,DSC在合并的特征之间进行自适应多尺度信息融合。SharedNeck的实现细节,以及它与其他颈部的区别如下图所示;头部和训练损失:在这里,我们使用YOLOX的解耦头部作为我们提出的检测器的头部,其训练损失与YOLOX相同。
众所周知,优化轻量级检测器是一个具有挑战性的问题。其原因是受检测器表征的限制,检测器学习到的特征是弥漫性的,如上图(b)所示。实例边界增强(Instance boundary enhancement, IBE)模块旨在改善FemtoDet中的DSC,从而克服轻量级模型表征优化的瓶颈。IBE类似于中引入的模块,不同之处在于我们的模块是为卷积层设计的,卷积层被分解为深度层和点向层。我们进一步引入了一种双归一化机制,使得IBE模块可以用于对象检测,而[Autoslim,Pixel difference networks for efficient edge detection,Mocopnet]中的模块只能用于低级任务。基于DSC块,IBE的基本块包括3×3深度卷积,然后是1×1卷积。IBE通过设计新的局部描述符、语义投影和双规格化层来增强DSC。
具体来说,1×1局部描述符是一种参数重用机制,它是由围绕共享深度卷积的积分梯度线索的线性变换产生的。因此,目标边界信息可以在局部描述符中找到。以前,局部描述符被称为差分卷积,用于低级任务。
虽然利用这些目标边界信息增强上述标准算子(如深度卷积)的噪声特征表示(如图 (b)所示)的思路很容易理解,但在实践中,原有的差分卷积架构无法服务于高级语义任务。我们观察到,差分卷积得到的特征与标准卷积得到的特征是不对齐的。一方面,差分卷积通过积分3×3周围的梯度线索或更大的卷积来捕获关于物体边界的各种信息。另一方面,高级任务鼓励标准卷积来总结图像的抽象语义信息。这就是经典差分卷积不能用于高级任务的原因。
为了同时解决这个问题,我们提出了一个语义投影仪和一个双归一化层。语义投影是将深度卷积的线性变换转化为与语义信息提取相关的传递算子;双规范化层由两个独立的批规范化模块组成,专门用于对齐未对齐的特征。之后,我们从局部描述符和深度卷积之间的特征添加中合并对象边界线索,以指导模型学习实例的有效表示(细化结果如上图©所示)。
IBE模块的描述见附录图3。对于kernel大小为3的深度卷积, C i n C_{in} Cin 表示输入通道维数, C o u t C_{out} Cout 表示输出通道维数,权值矩阵记为 W c o n v ∈ R 1 × C i n × 3 × 3 W_{conv}∈R^{1×C_{in}×3×3} Wconv∈R1×Cin×3×3 ,bias表示为 b ∈ R D b∈R^D b∈RD。通过参数的重用,从深度卷积得到kernel大小为1的局部描述符。其权重矩阵记为 W d e s W_{des} Wdes,它是对 W c o n v W_{conv} Wconv 周围的梯度线索进行积分:
W d e s = − θ 1 ⋅ ∑ p n ∈ R W c o n v ( p n ) , ( 3 ) W_{des}=-\theta_1·\sum_{p_n\in R}W_{conv}(p_n),(3) Wdes=−θ1⋅pn∈R∑Wconv(pn),(3)
其中, W d e s ∈ R C o u t × C i n , θ 1 ∈ [ 0 , 1 ] , ∈ R 1 × 1 W_{des}∈R^{C_{out}×C_{in}}, θ_1∈[0,1],∈R^{1×1} Wdes∈RCout×Cin,θ1∈[0,1],∈R1×1 为可学习的参数投影因子。R表示Wconv中的3×3卷积,pn为n-权值。在 W c o n v W_{conv} Wconv 周围集成梯度线索可以帮助局部描述符有效地捕获目标边界信息。语义投影是由深度卷积生成的,通过可学习的线性变换可以得到多种语义表示,如下所示:
W p r o = θ 2 ⋅ W c o n v , W p r o ∈ R C o u t ∗ C i n ∗ 3 ∗ 3 , ( 4 ) W_{pro}=\theta_2·W_{conv},W_{pro}\in R^{C_{out}*C_{in}*3*3},(4) Wpro=θ2⋅Wconv,Wpro∈RCout∗Cin∗3∗3,(4)
其中, θ 2 ∈ [ 0 , 1 ] , R 1 × 1 θ_2∈[0,1],R^{1×1} θ2∈[0,1],R1×1 是另一个可学习的参数作为投影因子。随后,在目标边界信息的指导下,IBE模块执行四个步骤来细化特征表示。1)将输入 x i n x_{in} xin 与得到的三个卷积算子进行卷积,对应的结果分别记为 x 22 、 x 21 、 x 23 x_{22}、x_{21}、x_{23} x22、x21、x23 ;2)在 x 22 x 21 x_{22} ~ x_{21} x22 x21 之间进行元素添加;3)双归一化层实现x21和x23上的特征分布归一化;4)双归一化层的两个输出可以相加;因此,上述添加的特征通过点向卷积进行卷积,作为IBE模块的最终输出。
此外,我们利用卷积的同质性和可加性,在推理阶段将IBM模块折叠成更简单的深度可分离卷积,而不会降低性能。详情见附录C。
强增强(Strong augmentation, SA)被广泛用于目标检测,[Yolox,YOLOV3]表明设计良好的强增强(Strong augmentation)可以有效地改进检测器。然而,我们发现设计良好的SA并不总是有利于轻量级检测器,因为当前的训练策略不能充分利用不同的训练表示来提高对真实验证数据的泛化能力。例如,YOLOX指出,MixUp会使YOLOX-nano的性能降低约5%。我们认为,有限容量检测器在训练过程中尽可能地拟合SA生成的各种数据,使得模块没有多余的能力来调整学习到的特征以提高模块对真实验证数据的泛化能力。换句话说,SA产生了与数据移位相等的不同表示,从而破坏了模块的泛化能力。我们还提出了一种有效的训练策略来调整这些不同的特征以提高泛化能力,即递归热重启(RecWR)。
如附录图5所示,整个训练过程可以分为四个阶段。从第1阶段到第4阶段,图像增强的强度逐渐降低。具体来说,在第一个训练阶段,一些SA类型将被组合,如MixUp, Mosaic和RandomAffine。从第2个训练阶段开始,上述SA类型在每个训练阶段逐渐卸载,直到第4个训练阶段。在最后一个训练阶段,只对训练数据进行随机翻转和随机缩放。此外,在开始每个训练阶段之前,等待的训练检测器加载前一个训练阶段的训练权值作为初始化。
我们可以在附录D中看到,用RecWR训练FemtoDet后,MixUp也可以帮助这种极小的探测器获得更好的性能。也就是说,RecWR利用SA学习的多样性特征,使FemtoDet脱离子优化。
在这里,我们评估了不同颈部(包括FPN、PAN和SharedNeck)在FemtoDet中的作用。实验结果如上表所示,部分观察结果总结如下:
1)FPN虽然使FemtoDet取得了较好的效果,但不仅能耗较大,而且参数开销较大;
2)由于轻量级模型的代表性有限,PAN的自顶向下和自底向上特征融合较差;
3)通过自适应特征融合,SharedNeck在参数、能量成本、目标检测性能、平均能量与性能权衡等指标上取得了最佳效果。
我们在三个数据集上验证了FemtoDet的有效性:PASCAL VOC, COCO和TJU-DHD,同时将输入大小调整为640×640进行训练,并将输入大小调整为416×416进行验证。两个数据集,PASCAL VOC和TJU-DHD两个数据集转换为COCO数据类型进行评估。
此外,我们从TJU-DHD数据集中提取校园数据,以评估我们提出的极轻检测器(即FemtoDet)的行人检测性能。考虑到极轻的检测器难以拟合检测性能较差的复杂COCO数据集,我们将相应的结果拉到附录e中。此外,我们将FemtoDet的检测性能与YOLOX和NanoDet Plus进行了比较,其中它们处于相同的参数水平以确保公平性。所有的检测器骨干在ImageNet上预训练100 epoch,本节给出的mEPT度量在AP50和Power之间计算。
实验结果如表4所示,其中显示了具有8个指标的轻型探测器:参数(Param)、能量成本(Power)、AP50、平均能量与性能权衡因子(mEPT)、mAP、小尺寸物体的mAP (mAP-s)、中等尺寸物体的mAP (mAPm)和大尺寸物体的mAP (mAP- 1)。
我们可以看到,虽然YOLOX有大量的参数,但在许多指标上都比FemtoDet低得多。NanoDet Plus的参数与FemtoDet相当,但仅在mAP-s指标上优于FemtoDet。我们认为,对于这种极轻的探测器,它们在大尺度物体上的性能是最关键的。在map - 1指标上,FemtoDet也比YOLOX和NanoDet Plus表现出更好的结果。虽然用于评价性能和能量平衡的指标mEPT,但与其他两种模型相比,FemtoDet的平衡效果最好。
此外,我们还在高通骁龙865 CPU平台上评估了训练后的检测器的推理速度(FPS)和功率。如下表所示,我们的FemtoDet在edge设备上也实现了最小的能量消耗和推理速度。
像FemtoDet这样的极轻探测器在监控场景中有着广阔的应用前景。因此,我们使用校园数据集TJU-DHD评估FemtoDet在行人检测方面的性能,并在不太严格的度量标准AP20上展示检测器的性能。下表表明,在常见的监控场景中,FemtoDet能够胜任行人检测:1)部署时,FemtoDet的能源成本较低,比YOLOX低29.74%;2) FemtoDet可以得到76.3%的AP20,而相同参数的YOLOX只能得到71.80%的AP20。
对PASCAL VOC进行了一系列消融研究,以证明我们的IBE模块和RecWR培训策略的有效性和效率。如下表所示:1)第二行和第三行表明,通过FemtoDet*的300和1200次epoch的训练,这样长的epoch并没有产生更好的收益。2)对FemtoDet*的第4行和第5行分别进行RecWR和300 epoch的IBE增强训练。结果表明,独立配置IBE和RecWR可以提高模型的性能。3)六行表明,IBE和RecWR联合使用使FemtoDet达到最佳性能。
下表给出了FemtoDet主干的详细信息,它由1个香草卷积和13个深度可分离卷积(DSC)组成。
根据下图所示的IBE概述,我们将深度卷积、点向卷积、局部描述符和语义投影分别表示为Conv1、Conv4、Conv2和Conv3。 x o u t x_{out} xout 的输出特征可以由 x o u t = C o n v 4 ( B N 1 ( x 31 ) + B N 2 ( x 23 ) ) x_{out} = Conv_4(BN1(x_{31}) + BN2(x_{23})) xout=Conv4(BN1(x31)+BN2(x23)) 得到,其中 x 23 = C o n v 3 ( x i n ) , x 31 = x 21 − S i g m o i d ( θ ) ∗ x 22 = C o n v 1 ( x i n ) − S i g m o i d ( θ ) ∗ C o n v 2 ( x i n ) x_{23} = Conv_3(x_{in}), x_{31} = x_{21} - Sigmoid(θ)∗x_{22} = Conv_1(x_{in}) - Sigmoid(θ)∗Conv_2(x_{in}) x23=Conv3(xin),x31=x21−Sigmoid(θ)∗x22=Conv1(xin)−Sigmoid(θ)∗Conv2(xin)。根据卷积的齐次性和可加性,我们展示了将上述所有复杂操作折叠成深度卷积的过程
1)合并BN2和Conv3。首先,我们将Conv3的权重矩阵和偏置表示为ω和b,将BN2的变量表示为γ, σ, λµ和β。然后,我们有 x 23 = C o n v 3 ( x i n ) = ω ∗ x i n + b , B N 2 ( x 23 ) = γ ∗ ( x 23 − µ ) / √ σ 2 + ϵ + β = γ ∗ ( ω ∗ x i n + b − µ ) / √ σ 2 + ϵ + β = x i n ∗ ( γ ∗ ω ) / √ σ 2 + ϵ + β + γ ∗ ( b − µ ) / ( √ σ 2 + ϵ ) x_{23} = Conv_3(x_{in})=ω∗x_{in}+ b, BN2 (x_{23}) =γ∗(x_{23} -µ)/√σ2 +ϵ+β=γ∗(ω∗x_{in}+ b -µ)/√σ2 +ϵ+β=x_{in}∗(γ∗ω)/√σ2 +ϵ+β+γ∗(b -µ)/(√σ2 +ϵ) x23=Conv3(xin)=ω∗xin+b,BN2(x23)=γ∗(x23−µ)/√σ2+ϵ+β=γ∗(ω∗xin+b−µ)/√σ2+ϵ+β=xin∗(γ∗ω)/√σ2+ϵ+β+γ∗(b−µ)/(√σ2+ϵ) 。最后,我们得到了一个新的卷积算子- con3,其权矩阵和偏置为: ω = ( γ ∗ ω ) / √ σ 2 + λ , − b = β + γ ∗ ( b − µ ) / ( √ σ 2 + λ ) ω = (γ∗ω)/√σ2 + λ, - b = β+γ∗(b -µ)/(√σ2 + λ) ω=(γ∗ω)/√σ2+λ,−b=β+γ∗(b−µ)/(√σ2+λ) 。也就是说,两步操作BN2(Conv3(xin))等价于一步操作;
2)将Conv1(xin) - Sigmoid(θ)∗Conv2(xin)折叠为一次卷积运算。首先,基于卷积的同质性,我们可以将常数与特征之间的乘法转换为常数与卷积算子之间的乘法。这意味着Sigmoid(θ)∗Conv2(xin) = Sigmoid(θ)∗(ω∗xin + b) = (Sigmoid(θ)∗xin + Sigmoid(θ)∗b = Conv2(xin)。新卷积的权重矩阵和偏置分别是Sigmoid(θ)∗b和Sigmoid(θ)∗b。其次,根据卷积的可加性,我们可以将特征之间的加法转化为卷积算子之间的加法。Conv1(xin) - Sigmoid(θ)∗Conv2(xin)可以重写为Conv1(xin) - Sigmoid(θ)∗Conv2(xin) = Conv1(xin) - Conv2(xin) = (ω1∗xin + b1) - (ω2∗xin + b2) = (ω1 - ω2)∗xin + b1 - b2 = Conv(xin)。式中,ω1和b1为Conv1的权矩阵和偏置,ω2和ω b2为Conv1的权矩阵和偏置,(ω1 - ω2)和(b1 - ω b2)为Conv的权矩阵和偏置;
3)类似于1),BN1(Conv1(xin) - Sigmoid(θ)∗Conv2(xin)) = BN1(Conv (xin))可以合并成一个新的卷积:Conv ’ (xin) = BN1(Conv (xin));与2)一样,BN1(x31) + BN2(x23) = BN1(Conv(xin)) + Conv3(xin) = Conv ’ (xin) + Conv3(xin)可以折叠成单个卷积算子。经过以上操作,我们可以在推理时将IBE折叠为DSC。
下表显示了MixUp对训练FemtoDet的影响:1)第二行和第三行是使用RecWR和RecWR1训练FemtoDet的过程,说明可能MixUp与RecWR结合可以帮助轻量级检测器获得更好的性能;2)第4和第5行显示MixUp在标准训练策略中伤害了轻量级检测器,这与YOLOX给出的结果一致;3)结合1)和2),我们得出结论,MixUp只有在RecWR下用于轻量级检测器训练时才能改善轻量级检测器。换句话说,RecWR利用从MixUp学习到的多样性特征,从次优化中获得轻量级检测器。
COCO是另一个广泛使用的目标检测数据集,其数据复杂性比PASCAL VOC大得多。这个数据集包含了从网络上收集的大约160K图像的80个类别。我们使用118K图像在train2017上训练检测器,并使用41K图像在val2017上验证检测器。下表比较了YOLOX和FemtoDet在COCO上的性能。检测指标的结果似乎很糟糕。原因是探测器太轻,无法容纳如此复杂的数据。即便如此,FemtoDet在COCO上的表现还是优于YOLOX。
经典边缘检测可以识别尖锐的图像亮度变化,如强度、颜色或纹理的不连续性;图像梯度或导数信息是提取此类信息的首选。从两个角度实现IBE捕获目标边界信息:
1)首先,通过对3 × 3深度卷积附近的梯度进行积分,建立局部描述子来探索图像梯度线索;
2)其次,通过显式计算像素差,利用基于梯度计算的IBE中的不同卷积对边缘检测所需的重要梯度信息进行编码。
在本节中,我们在前文提到的TJU-DHD校园数据集上构建本节的实验结果。输入尺寸为416×416的行人箱体尺寸分布如下图所示。
根据验证集中行人的大小不同,我们将其划分为5个区域范围(0 ~ 11×37、11×37 ~ 14×50、14×50 ~ 28×99、28×99 ~ 56×198和56×198 ~ MAX)来评估检测器。可以发现,行人多为小物体(0 ~ 11×37),占总数的35.81%。因此,极端检测器在整个验证集上只显示其平均精度(mAP、AP50或AP20)是不合理的。接下来,我们将重点关注探测器在三个最大尺度(14×50 ~ 28×99、28×99 ~ 56×198、56×198 ~ MAX)上的检测结果。
下图给出了上述三个面积范围的PR曲线。
在14×50 ~ 28×99范围较小的区域:1)虽然FemtoDet的AP50最高召回率不能达到0.90,但当召回率达到0.85时,其精度更高(0.56 & 0.40);2)在AP20下,FemtoDet的查全率分别为0.85(0.90 & 0.81)和0.90(0.69 & 0.66),准确率较高。
在该地区的中程28 56××99∼198:FemtoDet不仅达到更好的精度,但也有更高的信心与更高的回忆,在评价矩阵AP20(召回/精密/分数:0.85 / 0.98/0.57 & 0.97/0.44 / 0.85,0.90 / 0.96/0.34 & 0.93/0.23 / 0.90)和AP50(召回/精密/分数:0.85 / 0.95/0.54 & 0.90/0.35 / 0.85,0.90 / 0.87/0.18 & 0.74/0.10 / 0.90)。这意味着FemtoDet非常健壮。
在最大范围为56×198 ~ MAX的区域:虽然两种极轻的探测器在检测大型物体时都表现出高性能,但FemtoDet相对更好,在ap50时的召回率为0.85,精度比比较方法提高约2.17%(0.94和0.92)。
众所周知,假阳性检测会影响目标检测的精度,而漏检会影响目标检测的召回率。特别地,将AP50下目标检测结果的误报检测和漏检检测分别可视化在下图中。
这个工作更多的关注边缘设备的高效目标检测器如何通过设计探索在能耗和性能间的权衡。该研究引入了一个新的目标检测器FemtoDet
,此检测器使用了低能耗组件,同时提出了一种卷积优化的新方法和一种优化训练策略。
IBE
模块这是一种专为优化轻量级检测器而设计的模块。由于轻量级模型的表征能力有限,它们学习的特征往往较为分散。IBE 模块的目的是改进 FemtoDet 中的深度可分离卷积(Depthwise Separable Convolutions,DSC),从而克服轻量级模型表征优化的瓶颈。
IBE 模块是基于因式分解为深度和点状层的卷积层设计的。它还引入了一个双重标准化机制。具体地,该模块通过设计新的局部描述符、语义投影器和双重标准化层来增强 DSC。特别是,1*1 的局部描述符是通过集成梯度提示周围的线性变换生成的参数重用机制。因此,对象边界信息可以在局部描述符中找到。然后,我们利用这些对象边界信息来增强上述标准操作(如深度卷积)的噪声特征表示。
最后,我们将局部描述符和深度卷积之间的特征添加的对象边界提示结合起来,引导模型学习实例的有效表示。细化的结果大家可以从上面的可视化结果图中看到。
IBE的基本块包括3×3的深度卷积,后跟1×1的卷积。IBE通过设计新的local descriptor、semantic projector 和dual-normalization layer来增强DSC。具体而言,1×1的局部描述符是通过对共享深度卷积周围的梯度线索进行线性变换生成的参数重用机制。因此,local descriptor中包含了目标边界信息,并能够提取出相关的语义特征。semantic projector 是将深度卷积的线性变换用于转移与语义信息提取相关的操作符;dual-normalization layer由两个独立的批归一化模块组成,专门设计用于对齐不对齐的特征。接着,我们通过将局部描述符和深度卷积的特征相加,将目标边界线索融入模型中,引导模型学习出有效的实例表示。
我们在IBE模块上比较了差分卷积和语义投影的激活值。横轴表示特征的通道指数,纵轴表示对应的特征通道值。(a) Before:在dual normalization层之前的特征分布表明它们在同一空间中未对齐;(b) After:双归一化层后的特征分布。很明显,双归一化层有效地对齐了两种类型的特征。
强数据增强(Strong Augmentation,SA)广泛用于目前检测,但是作者发现,当前的训练策略不能充分利用 SA 产生的多样性训练表示,以提高在真实验证数据上的泛化能力。
本文提出了一个有效的训练策略,即递归热重启(RecWR)。整个训练过程可以分为四个阶段。从第一阶段到第四阶段,图像增强的强度逐渐降低。具体来说,在第一阶段的训练中,将组合一些 SA 类型,如MixUp
,Mosaic
和RandomAffine
。从第二阶段开始,上述 SA 类型在每个训练阶段都会逐渐减弱,直到第四阶段。
在开始每个训练阶段之前,等待训练的检测器会加载前一个训练阶段的训练权重作为初始化。实验发现,在使用 RecWR 训练 FemtoDet 后,MixUp 也能帮助这些极小的检测器获得更好的性能。换句话说,RecWR 利用了 SA 学习的多样性特征,使 FemtoDet 摆脱了次优化困境。
四阶段递归热重启训练(RecWR):从训练的第一阶段到最后阶段,每阶段训练图像的增强强度逐渐减弱。在每个训练阶段开始前,等待的训练检测器将加载前一个训练阶段的训练权值作为模型初始化。横轴表示训练epoch的个数,纵轴表示训练模型在PASCAL VOC验证集上的性能。我们可以看到,RecWR推动检测器向更好的性能发展。