EfficientDet阅读笔记

2023-10-28

EfficientDet: Scalable and Efficient Object Detection

2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

论文地址: https://arxiv.org/abs/1911.09070
作者: Mingxing Tan, Ruoming Pang, Quoc V. Le
代码地址1: https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch
代码地址2: https://github.com/bubbliiiing/efficientdet-pytorch

1、创新点

  • 提出了一种加权的双向特征金字塔网络(BiFPN);
  • 提出了一种复合尺度方法,同时统一尺度所有主干网络、特征网络和边界框/类别预测网络的分辨率、深度和宽度。
    EfficientDet-D7用52M的参数和325B FLOPs在coco测试数据集上取得52.2AP,较以前的检测器小4-9倍,少使用13-42倍的FLOPs。
    在这里插入图片描述

2、BiFPN

2.1 结构

在这里插入图片描述
传统的FPN结构受限于单一方向的信息流;PANet在FPN基础上增加了一个自下而上的路径聚合网络(path aggregation network);NAS-FPN使用神经网络搜索更好的多尺度特征网络拓扑,但这需要成千张GPU,发现的网络也不规则,并且非常难解释和修改。
本文就多尺度连接提出几项改进:

  1. 删除只有单输入的节点。没有特征融合意味着对特征网络贡献小。
  2. 在同级的输入和输出端增加shortcut。不增加计算成本的情况下融合更多特征。
  3. 相较于PANet只有一个Top-Down和Down-Top,BiFPN将双向路径作为一个特征网络层,可重复使用,以便融合跟多特征。
    在这里插入图片描述

2.2 加权特征融合数学表达式

  1. Unbounded fusion
    在这里插入图片描述
    w是个可学习的参数,缺点是权重没有约束,将导致训练不稳定。
  2. Softmax-base fusion
    在这里插入图片描述
    听过softmax将权重缩放至(0, 1)之间,但softmax增加了运算时间。
  3. Fast normalized fusion
    在这里插入图片描述
    每个wi后使用Relu激活,ε = 0.0001防止分母为0。
    在这里插入图片描述
    由Table 6知方法3比2快了不少,但AP并没有损失多少。
    在这里插入图片描述

3、复合缩放方法

在这里插入图片描述
使用一个超参数φ就可以缩放主干网络、BiFPN、class/box network和分辨率。

  1. 主干网络
    EfficientDet-B0 到B6使用相同的宽度\深度缩放系数,这样就可以使用预训练权重。
  2. BiFPN
    在这里插入图片描述
    BiFPN的宽度和深度缩放表达式如上图所示,1.35是一组参数中选出最好的。
  3. Box/class prediction network
    宽度和BiFPN的宽度一样, 深度增加公式如下图,[]中表达式向下取整。
    在这里插入图片描述
  4. Resolution
    在这里插入图片描述
    EfficientDet D0-D6的缩放配置
    与单一因素缩放的比较

4、实验

训练未使用数据集放大方法。
EfficientDet在COCO数据集上的表现
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EfficientDet阅读笔记 的相关文章

  • 使用 KL 散度时,变分自动编码器为每个输入 mnist 图像提供相同的输出图像

    当不使用 KL 散度项时 VAE 几乎完美地重建 mnist 图像 但在提供随机噪声时无法正确生成新图像 当使用 KL 散度项时 VAE 在重建和生成图像时都会给出相同的奇怪输出 这是损失函数的 pytorch 代码 def loss fu
  • 在pytorch张量中过滤数据

    我有一个张量X like 0 1 0 5 1 0 0 1 2 0 我想实现一个名为的函数filter positive 它可以将正数据过滤成新的张量并返回原始张量的索引 例如 new tensor index filter positive
  • 如何在pytorch中查看DataLoader中的数据

    我在 Github 上的示例中看到类似以下内容 如何查看该数据的类型 形状和其他属性 train data MyDataset int 1e3 length 50 train iterator DataLoader train data b
  • 尝试理解 Pytorch 的 LSTM 实现

    我有一个包含 1000 个示例的数据集 其中每个示例都有5特征 a b c d e 我想喂7LSTM 的示例 以便它预测第 8 天的特征 a 阅读 nn LSTM 的 Pytorchs 文档 我得出以下结论 input size 5 hid
  • PyTorch:如何检查训练期间某些权重是否没有改变?

    如何检查 PyTorch 训练期间某些权重是否未更改 据我了解 一种选择可以是在某些时期转储模型权重 并检查它们是否通过迭代权重进行更改 但也许有一些更简单的方法 有两种方法可以解决这个问题 First for name param in
  • 下载变压器模型以供离线使用

    我有一个训练有素的 Transformer NER 模型 我想在未连接到互联网的机器上使用它 加载此类模型时 当前会将缓存文件下载到 cache 文件夹 要离线加载并运行模型 需要将 cache 文件夹中的文件复制到离线机器上 然而 这些文
  • pytorch 中的 keras.layers.Masking 相当于什么?

    我有时间序列序列 我需要通过将零填充到矩阵中并在 keras 中使用 keras layers Masking 来将序列的长度固定为一个数字 我可以忽略这些填充的零以进行进一步的计算 我想知道它怎么可能在 Pytorch 中完成 要么我需要
  • 如何更新 PyTorch 中神经网络的参数?

    假设我想将神经网络的所有参数相乘PyTorch 继承自的类的实例torch nn Module http pytorch org docs master nn html torch nn Module by 0 9 我该怎么做呢 Let n
  • Pytorch Tensor 如何获取元素索引? [复制]

    这个问题在这里已经有答案了 我有 2 个名为x and list它们的定义如下 x torch tensor 3 list torch tensor 1 2 3 4 5 现在我想获取元素的索引x from list 预期输出是一个整数 2
  • pytorch 的 IDE 自动完成

    我正在使用 Visual Studio 代码 最近尝试了风筝 这两者似乎都没有 pytorch 的自动完成功能 这些工具可以吗 如果没有 有人可以推荐一个可以的编辑器吗 谢谢你 使用Pycharmhttps www jetbrains co
  • PyTorch 中的交叉熵

    交叉熵公式 但为什么下面给出loss 0 7437代替loss 0 since 1 log 1 0 import torch import torch nn as nn from torch autograd import Variable
  • Pytorch 与 joblib 的 autograd 问题

    将 pytorch 的 autograd 与 joblib 混合似乎存在问题 我需要并行获取大量样本的梯度 Joblib 与 pytorch 的其他方面配合良好 但是 与 autograd 混合时会出现错误 我做了一个非常小的例子 显示串行
  • ValueError:使用火炬张量时需要解压的值太多

    对于神经网络项目 我使用 Pytorch 并使用 EMNIST 数据集 已经给出的代码加载到数据集中 train dataset dsets MNIST root data train True transform transforms T
  • PyTorch:如何批量进行推理(并行推理)

    如何在PyTorch中批量进行推理 如何并行进行推理以加快这部分代码的速度 我从进行推理的标准方法开始 with torch no grad for inputs labels in dataloader predict inputs in
  • 在requirements.txt中包含.whl安装

    如何将其包含在requirements txt 文件中 对于Linux pip install http download pytorch org whl cu75 torch 0 1 12 post2 cp27 none linux x8
  • BertForSequenceClassification 是否在 CLS 向量上进行分类?

    我正在使用抱脸变压器 https huggingface co transformers index html使用 PyTorch 打包和 BERT 我正在尝试进行 4 向情感分类并正在使用BertFor序列分类 https hugging
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • 如何在pytorch中动态索引张量?

    例如 我有一个张量 tensor torch rand 12 512 768 我得到了一个索引列表 说它是 0 2 3 400 5 32 7 8 321 107 100 511 我希望从给定索引列表的维度 2 上的 512 个元素中选择 1
  • PyTorch 中的标签平滑

    我正在建造一个ResNet 18分类模型为斯坦福汽车使用迁移学习的数据集 我想实施标签平滑 https arxiv org pdf 1701 06548 pdf惩罚过度自信的预测并提高泛化能力 TensorFlow有一个简单的关键字参数Cr
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4

随机推荐