EfficientDet论文笔记

论文链接
提出一种在不同资源平台都有良好适应性的单阶段模型,同时精度又高
创新点1:BI-FPNFPN针对已经被广泛使用:PANet,NAS-FPN的改进,这些融合FPN都只是简单地上采样后将特征想加,没有考虑不同分辨率特征贡献程度的差异,BIFPN引入了可学习权重去学习不同输入特征的重要性。
创新点2:之前的网络主要关注在更大的backbone或者更大的输入图片来提升精确度,本文发现提升特征网络和box/classification预测网络的尺度也很重要,提出了一种复合缩放法
目前无官方代码,个人代码链接(keras)(pytorch

BIFPN

在这里插入图片描述
对于传统FPN来说
在这里插入图片描述
缺点是受限于单向的信息流,只是从语义信息强的高层向下流动,为解决这个问题PANet加了一个额外的从下向上流动的过程。相比NAS和FPN PANet效果最好,但参数多是一个缺点。为了解决这个问题 ,论文移除了那些只有一个输入的节点比如P3后面的一个节点以及P7后面一个节点
intuition:
if a node has only one input edge with no feature fusion, then it will have less contribution to feature network that aims at fusing different features.
得到简化PANET
在这里插入图片描述
更进一步:增加了额外的边链接原始输入到输出节点,如果他们在同一层,会得到更多的信息
最后一步 不像PANet只有一次的topdown和bottomup 本文会将这个结构重复多次来进行更多的高层特征融合

加权特征融合

普通的特征融合方法往往是将不同分辨率的特征resize之后相加没有区分度。为了解决这个问题,增加了一个额外的权重对每个输入在特征融合的时候并且让网络去学习每个特征的重要性。
这里有三种加权fusion的方法

unbounded fusion

在这里插入图片描述
wi可以是一个scalar,一个向量,或者一个多维张量
单个尺度效果最好,但是由于该值没有边界,可能会导致训练不稳定,需要额外加weight normalization

softmax-based fusion

在这里插入图片描述
对每个权重进行softmax 变成概率定义,缺点是会变的非常慢(有指数运算)

Fast normalized fusion

在这里插入图片描述
wi用relu确保大于等于0

在这里插入图片描述
在这里插入图片描述
注意:这里为了进一步提高效率,使用了depthwise separable conv并且在每个卷积之后都加了normalization和activation

EfficientDet

在这里插入图片描述

Compound Scaling

用一个简单的复合系数 联合的去scale up 所有的backbone,neck,head以及输入图片的尺度。由于检测头需要的图片尺寸大不能用分类用的网格搜索的思路,而需要用基于启发式的尺度缩放方法
主要思想来源:
Efficientnet: Rethinking model scaling for convolutional neural networks. ICML, 2019.
在这里插入图片描述
可以用到的方法:BIFPN和加权输入特征的结构,对FPN进行修改

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、付费专栏及课程。

余额充值