EfficientDet 论文总结

目录

论文摘要

前言

BiFPN

1)FPN

 2)PANet

 3)NAS-FAN

 4)BiFPN

Unbounded fusion

Softmax-based fusion

Fast normalized fusion

EfficientDet

Compound Scaling

 总结


论文摘要

在计算机视觉领域,模型的效率变得越来越重要。在这篇论文中,我们系统地研究了用于目标检测的神经网络架构设计选择,并提出了几个关键优化来提高效率。首先,我们提出了一种加权双向特征金字塔网络(BiFPN),它允许轻松且快速地进行多尺度特征融合;其次,我们提出了一种复合缩放方法,该方法能够同时统一缩放骨干网络、特征网络以及框/类别预测网络的分辨率、深度和宽度。基于这些优化和更好的骨干网络,我们开发了一种新的目标检测器系列,称为EfficientDet,该系列在各种资源约束条件下都能始终比现有技术实现更高效的性能。特别是,单模型和单尺度的EfficientDet-D7在COCO测试集上实现了55.1 AP的最新性能,使用了77M参数和410B FLOPs,比之前的检测器小4倍到9倍,FLOPs减少13倍到42倍。代码可在automl/efficientdet at master · google/automl · GitHub获取。

论文标题

EfficientDet: Scalable and Efficient Object Detection

论文链接

[1911.09070] EfficientDet: Scalable and Efficient Object Detection (arxiv.org)

前言

正如摘要中所说,在计算机视觉领域模型的效率变得越来越重要。一个低效的网络无法很好的被应用到生活中的各个场景中,较大的模型尺寸和昂贵的计算成本阻碍了它们在机器人领域和自动驾驶汽车等许多显示应用中部署,鉴于这些资源限制,模型的效率对于目标检测变得越来越重要。

在这篇论文中,作者通过优化FPN结构提出了一种更高效的BiFPN,并且考虑到了在图片尺寸缩放时可能会收到网络结构的限制,提出了联合缩放的方法,这些改进使得EfficientDet-D7在COCO测试集上实现了55.1AP的测试结果。

BiFPN

1)FPN

最原始的FPN结构只有一条由上至下的路径,在原文中作者解释,这种传统的自顶向下的FPN本质上受到单向信息流的限制。

 2)PANet

为了改进FPN,PANet提出了一种思路,那就是增加一条自下而上的路径。

 3)NAS-FAN

NAS-FAN在PANet的基础上找到了更好的跨尺度特征网络的路径,但是在寻找这样的路径的过程中需要消耗大量的计算资源,在原文中作者指出,找出这样更好的路径需要在GPU上计算上千小时,而且这样的网络往往还是无序的,还缺少拓展性。如图所示。

 4)BiFPN

作者没有沿用NAS-FPN的思路,而是在PANet的基础上修改。

 BiFPN的设计思路

1. 先删除PANet中只有一个输出边的节点,因为这种结构对于融合各种尺度的特征的作用比较小。

2. 如果节点在同一个层次,那么就增加一个输入到输出的边。(紫色边)

3. 把一个BiFPN结构作为一个layer,在一个网络中执行多次,这样可以提取到更高层次的融合特征。

Unbounded fusion

 无界融合是一种为了解决传统FPN结构在多尺度融合时的局限性的方法。

其中wi是一个可学习的权重,它可以时一个标量(pre-feature),一个向量(per-channel)或者是一个多维的Tensor(per-pixel),这个方法可以达到不错的精度,但是因为标量权重是无界的,所以可能会导致训练的不稳定,所以接下来作者又做了进一步的改进,来把这个值限制在一定范围内。

Softmax-based fusion

 这个方法利用softmax函数将权重都归一化为0-1的范围内,虽然这种方法起到了作用,但是对于计算资源的要求比较大,所以最后还是采用了准确率差不多,但是计算量更小的Fast normalized fusion。

Fast normalized fusion

 在这里使用了ReLU函数使得wi >= 0,并且设置\epsilon = 0.0001防止分母为0。这里权重仍然会被归一化为0-1的范围但是没有了softmax函数运行的效率更高了。

EfficientDet

EfficientDet以EfficientNet(ImageNet-Pretrained)作为网络的backbone,结合了BiFPN和联合缩放,很大程度上遵循了one-stage的设计风格。

下面是EfficientDet的架构

Compound Scaling

在一个网络使用不同分辨率的图片作为输入时,如果仅仅改变某一个维度可能会导致资源利用不平均。所以作者提出了一种Compound Scaling机制来解决网络的深度,宽度,输入分辨率之间的平衡问题。

这里采用的方法就是引入一个参数\phi

 下面是作者对于不同的EfficientNet backbone的网络配置

 总结

从这篇论文中可以发现,在网络的性能受限时设计一个合理的网络结构非常重要,作者发现了先前的FPN结构的不足之处,通过合理的改进,让模型的准确率和速度都得到了很大的提升。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EfficientDet是一种高效的目标检测算法,旨在提高目标检测的准确性和效率。它基于EfficientNet模型,通过在不同尺度的特征层上进行多尺度特征融合和级联特征筛选,有效地提高了检测性能。 要复现EfficientDet的PyTorch版本,首先需要准备相关的代码和数据集。可以从GitHub上找到官方提供的EfficientDet代码库,并下载相应的预训练权重和示例数据集。 在复现过程中,需要了解EfficientDet的网络结构和训练策略。EfficientDet主要由骨干网络、特征网络和目标检测头组成。骨干网络通常采用EfficientNet作为特征提取器,特征网络基于FPN和BiFPN来融合不同尺度的特征,而检测头则负责预测目标的位置和类别。 在编写代码时,需要按照EfficientDet的网络结构构建PyTorch模型,并加载预训练权重。可以使用PyTorch提供的各种库和函数来实现网络的构建和训练过程。训练过程通常涉及数据加载、前向传播、损失计算和反向传播等步骤。 为了复现EfficientDet,还需要选择适当的损失函数和优化器。常用的目标检测损失函数包括交叉熵损失和IoU损失。优化器可以选择Adam或SGD等常用的优化器。 在训练过程中,通常需要设置适当的学习率、批量大小和训练轮数等超参数,并进行调优以提高模型的性能。可以通过监控训练过程中的验证集性能来选择最佳的模型。 在复现EfficientDet时,还可以根据具体需求进行一些改进和优化。例如,可以尝试使用更大的图像分辨率、调整多尺度训练策略、增加数据增强方法等来提高模型的性能。 总之,复现EfficientDet的PyTorch版本需要理解其网络结构和训练策略,并按照这些原理进行代码实现和相关参数的设置。通过合理调整超参数和优化方法,可以达到和原论文相近甚至更好的目标检测性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值