读书笔记: DetNet: Design Backbone for Object Detection

2023-10-30

读书笔记: DetNet: Design Backbone for Object Detection:

之前咱们不是读了adaptive convolution嘛,赶紧学以致用告诉我们为什么要用AC;

Abstract:

背景:CNN已经被广泛应用于目标检测任务,不管是单阶段的还是多阶段的网络,而且他们都经常使用Imagenet之中预训练(为了分类);
但是我们提出的目标检测的backbone一些不同的观点(feature extractor)
Difference classification and object detection:
在classification之中,例如,FPN和RetinaNet 通常有额外步骤针对图像分类任务来处理不同比例的任务;
在object detection,在目标检测之中,我们不仅需要识别图像的分类,同时还需要进行空间定位;
答案:所以说,图像的classification和object dectection上存在差异的,因此我们提出了DetNet,所以我们提出了新颖的backbone DetNet——针对目标检测。同时我们的DetNet也包含了额外阶段针对图像classification问题,保持了在较高较深的层之中空间分辨能力。

Introduction:

背景: 目标检测一般都在ImagNet上做一个预训练(分类任务)。同时检测和分类有着不同,目标检测不仅需要识别对象的实例分类,同时还要识别空间上的定位框。更具体的说(目标检测),使用分类的backbone用作目标检测的任务存在着两个问题:
存在问题:

  1. 最近的detector例如FPN,拥有额外的阶段(extra stages) 比 在Imagenet的分类的backbone 可以检测出更多不同大小的物体;
  2. 传统的卷积运算,通过一次又一次的卷积对砌特征图片(为了最后连接全链接层)从而进行下采样,这样做大大提升图像的分类能力;但 是这样做会使空间分辨率(spatial resolution)受损,从而无法去定位大型物体/小型物体;
    答案:我们提出的DetNet,为了解决以上的问题从而精心设计而来的,是一种新颖的backbone针对目标检测任务。更具体的说,DesNet设计了一个跟FPN一样的额外阶段;即使通过了这个额外阶段,我们仍然保留了位置空间信息。
    但是,空间位置的保留大大的提升了计算量和内存的使用——我们还降低了网络的复杂度——通过我们整合网络——Desnet不仅仅有着高分率特征图,同时还有着较大的观察野;
    文章贡献:
    1.我们分析了传统网络/detector的固有缺点——使用Imagenet预训练模型链接全链接层;
    2.提出了新颖的backbone——Desnet,为目标检测定制——通过保留了空间信息和增大感受野;
    3.我们简化了网络的复杂程度,同时我们低复杂度的网络还取得了不错的结果;

Relate work:

今天的relatework就比较重要了,得好好读一读
背景:我们先聊一聊目标检测,客套话咱们就不说了。目标检测简单来说就是给出一张图像你要告诉我们where和what与目标之间的联系。
早期:
以前的目标检测提取特征是通过hand engineered的组件(例如:HOG和SIFI等等)。很长一段时间DPM都是在目标对象检测器之中占有着主导地位的。
现代:
随着神经网络的快速发展基于CNN的目标检测探测器取得了非凡的成就,成为未来发展的一个全新趋势。在这种网络结构下一般分为两个部分。第一部分是backbone network,另一部分是detection branch;

  1. backbone network
    用于目标检测的backbone通常都会借用imagenet classification之中的backbone。然后的话Imagenet被视为最权威的数据集,所以很多网络都旨在提高imagenet的性能。alexnet是第一个尝试使用加深卷积神经网络的,为了减少计算量和增加感受野,alexnet的特征图与原图相比缩小了32倍,也为后世设定了一个标准。各个公司开始通过各种方法来加深CNN的网络;关于骨干网络有着很多很多的研究,但是他们一般都是针对classification而设计的。
  2. object detection branch
    目标检测分支一般都是附加到image net分类数据集设计和训练而设计的,通常来说又两种截然不同的设计思路。第一种利用backbone直接进行目标预测,例如YOLO用的这个Darknet backbone,然后将检测划为回归问题。第二种就是用的二阶段的方法,先让backbone提出候选的建议(propsals),然后额外的classifier对这些候选的proposal进行分类和回归。例如faster rcnn,先从backboneFPN提出proposal。特征金字塔建立特征通过金字塔等级的深度神经网络,产生多层组合的FPN通过U形结构,能保留空间信息;

总结来说,传统的backbone都通常借用的imagenet的分类网络,适合目标检测的backbone网络这个领域的研究还是比较要少的。目前不管是单阶段还是多阶段,都是先在imagenet上先搞一个分类的预训练模型,没有针对目标检测去进行优化表现。所以说在我们的论文中,我们提出的detnet就是设计一个专门为目标检测而设计的backbone。

DetNet: A Backbone network for Object Detection

动机
背景:最近的目标检测都是依赖在Imagenet中预训练的backbone,但是目标检测和分类任务不同,目标检测不仅要识别而且还要是被出空间定位的BBOX。同时,图像分类的设计原则不太适用于目标检测,例如一般的检测backbone(VGG和Resnet),他特征图的空降分辨率会逐渐的减弱。不过,还是有一些方法例如特征金字塔等方法技术可以应用于这些网络来保留住空间信息。
困难/挑战:

  1. 网络的stage数量不同
    如下图所示,一般的分类网络通常是通过5个stage(F1B,少算了一个2X的),每个阶段都进行下采样。传统的classification network backbone一般下采样到原图的32倍。不过特征金字塔就不一样了,特征金字塔一般采用更多的步骤stage,FPN加了一个X64来处理比较大的物体,Retinanet就更厉害了,为了处理更大的物体在这个基础上又加了一层;
  2. 大object可见性较差
    feature map在stride of 32有着较强的语义信息于较大的接收野,这引领了分类任务的成功。然而,较大的stride对目标定位带来巨大的损失。在特征金字塔之中,大的物体一般预测和产生在较深的网络之中,但是他们的边界会很模糊而来造成回归的损失/难以精准回归。
  3. 小物体的可见性较差
    大的stride的另一个缺点是会遗漏我们图片之中的小物体。小物体的信息会随着特征图的缩小而减小。因此空间金字塔在浅层预测预测小物体,但是在浅层的语义信息较少,不足以识别对象。因此FPN会通过上下文提取特征来提高他的分类能力。如下图(F1A自上而下的途径提取信息)

在这里插入图片描述
为了解决上述问题,我们提出了答案:
答案:我们提出了DesNet 1.DesNet的stage完全是为目标检测所设计;2.DesNet在保留边界和寻找小物体的能力更强;
DetNet Desgin 介绍网络的详细结构,我们采用ResNet-50作为我们的Baseline,这个baseline大量应用于目标检测。
困难和挑战:为了保证优秀的目标检测网络,若保持神经网络中的空间分辨率将占用大量的时间和内存,而且减少下采样因子会导致接收野较小,从而对分类/语义分割任务造成伤害。
方法:DetNet的前四层保持了和ResNet。从第五层开始DesNet59和ResNet50的结构就开始有所不同,具体如下:

  • 我们介绍了额外的阶段stage6,使用了多特征融合FPN的方法,同时我们在stage4之后就一直进行16倍下采样
  • 为了保证从stage4开始的stage到之后的stage的stride是相同的,我们使用了dilated [27, 25, 1] bottleneck with 1x1 convolution projection在每个阶段的开始。(We find the model in Fig. 2 B is important for multi-stage detectors like FPN.鬼知道是什么意思,FPN的stride不是会变小吗????)
  • 我们使用了扩张瓶颈作为网络的基本模块来扩大我们的接收野。由于这种运算很浪费时间,我们第五阶段和第六阶段保持和第四阶段相同的stride。
    而且,讲DetNet集成进/不集成 特征金字塔是很容易实现的。所以说我们也使用杰出的detectorFPN来用作为我们DetNet backbone效果的检测。所以说我们的实验用的是DetNet 的baseline +FPN detector。
    在这里插入图片描述

Experiments

我们采用标准的coco指标来评估我们的方法,包括AP与不同取值的IOU的AP;
所有的实验都使用ImageNet预训练的权重进行初始化。
结果分析:
我们使用ResNet50的FPN backbone作为我们的Baseline,因为FPN是一个很不错的detector。同时为了验证DesNet的有效性,我们还拿出了DetNet59与ResNet50作为对比。
实验一:分类(ImageNet classification)
FLOPS代表计算的复杂性,可以看到DetNet是优于ResNet的;这是为什么呢,一个很自然的假设是由于DetNet的参数更多的原因,因此还涉及了更多参数的ResNet/DetNet101
在这里插入图片描述
实验二:我们直接从头训练基于DetNet/ResNet59/50的FPN
不包含预训练参数的FPN,可以看出DN还是高出1.8个点
在这里插入图片描述
结果分析2:
在下一步之前我们先聊一聊评价指标:AP(average precision)正确定位了多少对象和AR(average recall)表示我们可以找到多少物体,IOU表示对象定位的回归能力(IOU越大,回归要求越准确)
实验3:DetNet-59在大对象定位的性能提升无比巨大
在IOU=85的情况下带来了5.5个点的提升

在这里插入图片描述
实验4:小物体的影响
在发现小物体中,我们的DN提升了6.4个点,但是在IOU85的时候提升的比较小,但是这是较为合理的,因为Detnet已经没有小物体可共定位
在这里插入图片描述
总结:DetNet可以更准确的找到大型物体

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

读书笔记: DetNet: Design Backbone for Object Detection 的相关文章

随机推荐

  • 【BUG

    问题 运行Inpaint Anything时 pycharm中的conda环境下的tensorflow问题 2023 04 19 10 53 30 485189 I tensorflow core platform cpu feature
  • [非卷积5D] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    不使用3D建模 使用静态图片进行训练 用 非卷积 深度网络表示场景的5D连续体表示 再通过ray marching进行渲染 paper NeRF Representing Scenes as Neural Radiance Fields f
  • idea数据库表生成实体类

    先说一下实现的功能 根据数据库 生成实体类 生成的实体类的格式可参看下图 生成的实体类中加入的注解有 Table注解 无getset方法 加入了lombok的 DATA Slf4j注解 支持 ID注解 当字段名为id时 如果数据库表中字段通
  • java比较string是否相同

    比较引用 equals 比较值 1 java中字符串的比较 我们经常习惯性的写上if str1 str2 这种写法在java中可能会带来问题 example1 String a abc String b abc 那么a b将返回true 因
  • 弹性盒子(flex布局)

    传统布局 兼容性好 布局繁琐 局限性 不能再移动端很好的布局 flex弹性布局 操作方便 布局极为简单 移动端应用广泛 PC端浏览器支持情况较差 布局原理 flex意为 弹性布局 用来为盒状模型提供最大的灵活性 任何一个容器都可以指定为fl
  • .net core 整洁架构入门

    Clean Architecture with NET Core Getting Started 使用 NET Core整洁架构 Clean Architecture 入门 Over the past two years I ve trav
  • 融合黄金正弦,十种混沌映射,搞定!把把最优值,本文思路可用于所有智能算法的改进...

    上一期的2023年最新优化算法之减法优化器算法 SABO 效果已经相当不错了 而且由于其十分简单的公式原理 更适用于刚接触智能优化算法的小伙伴 今天这篇文章为大家带来 融合黄金正弦的减法优化器 GSABO 本文会讲解一下改进思路 为各位小伙
  • 流程型和离散型制造行业mes系统的区别

    流程型和离散型制造行业mes系统的区别 在制造信息化的时代背景之下 MES系统 被越来越多的企业重视 虽然MES系统在制造行业中有着巨大的价值 但是不同的企业对MES系统的需求也存在很大的差异性 比较突出的就是流程型和离散型这两个方面 那么
  • 修改linux命令行终端的显示区行数列数

    stty rows 50 columns 200
  • Bugkuctf web 前女友

    老规矩 有新东西就记上一记 题目链接 这个有点儿意思 打开源码 好了 代码意思比较简单 重点看圈住的代码就好 满足v1v2的值不等但是md5相等 且v3 flag才行 好了 新知识来了 首先是md5 函数漏洞 第一种 GET a GET b
  • Web自动化Selenium-获取页面元素的相关信息

    获取页面元素的信息主要有两个目的 一是执行完步骤后进行断言 二是获取前一步骤的响应结果 将其作为后续步骤的输入或判断条件 获取元素的基本信息 目的输出元素的大小 文本 标签名 关键字 tag name 输出元素的标签名 size 输出元素的
  • TCP/IP协议,HTTP协议--面试必备

    经常面试被问到什么是http协议 什么是TCP协议 而且每次都弄不清楚 是时候记录一下了 一 什么是http协议 如果读者对计算机网络的体系结构比较了解的话应该清楚 IP协议位于网络层 TCP UDP协议位于传输层 HTTP位于应用层 如下
  • 本地存储基础

    本地存储特性 1 数据存储在用户浏览器中 2 设置 读取方便 甚至页面刷新不丢失数据 3 容量较大 sessionStorage约5M localStorage约20M 4 只能存储字符串 可以将对象JSON stringify 编码后存储
  • 如何使用Navicat修改mysql用户密码?

    https jingyan baidu com article 455a995054d490a167277858 html 下面介绍如何使用Navicat修改mysql用户密码的具体操作方法 工具 原料 Navicat Premium 方法
  • calico网络策略

    关于优先级order 为了与 Kubernetes 兼容 Calico 网络策略执行遵循 Kubernetes pod 的标准约定 如果没有网络策略适用于 Pod 则允许所有进出该 Pod 的流量 如果一个或多个网络策略应用于类型为 ing
  • TypeError: write() argument must be str, not bytes解决方法

    使用 HTMLTestRunner 输出测试报告 报错 TypeError write argument must be str not bytes 如下 原因 实例化HTMLTestRunner的runner runner HTMLTes
  • tmux插件管理器

    参考 tmux插件管理器tpm Tmux Plugin Manager 安装要求 tmux version 1 9以上 git bash 下载插件管理器 git clone https github com tmux plugins tpm
  • 2023Web自动化测试的技术框架和工具有哪些?

    Web 自动化测试是一种自动化测试方式 旨在模拟人工操作对 Web 应用程序进行测试 这种测试方式可以提高测试效率和测试精度 减少人工测试的工作量和测试成本 在 Web 自动化测试中 技术框架和工具起着至关重要的作用 本文将介绍几种常见的
  • linux实现复制文件的两种方法

    分享在linux系统下拷贝文件的两种方法 方法1 使用系统调用的read和write实现文件拷贝 include
  • 读书笔记: DetNet: Design Backbone for Object Detection

    读书笔记 DetNet Design Backbone for Object Detection 之前咱们不是读了adaptive convolution嘛 赶紧学以致用告诉我们为什么要用AC Abstract 背景 CNN已经被广泛应用于