You Only Look One-level Feature(YOLOF)

本文探讨了目标检测中特征金字塔网络(FPN)的有效性,通过实验对比表明,多尺度特征融合与分而治之对检测效果的影响。提出使用SiSo结构的encoder,结合DilatedEncoder和UniformMatching方法来优化检测性能。针对C5特征层的感受野限制和anchor分布不平衡问题,设计了LimitedScaleRange和ImbalanceProblemOnPositionAnchors解决方案。实验结果显示,所提方法在保持检测速度的同时提高了检测精度,特别是在大目标检测上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

paper code

Motivation

目标检测中常用到特征金字塔(FPN),在各网络中证明FPN确实有效,通常认为其有效得益于两个方面:(1)多尺度特征融合:融合了多种高分辨率和低分辨率的特征获取到更好的特征表达;(2)分而治之:根据目标的大小在不同层进行目标检测。
目标检测的网络结构可以分为三大部分:backbone、encoder、decoder,如下所示:
在这里插入图片描述

对encoder设计如下结构Figure 1进行实验,验证FPN的有效性是得益于多特征融合还是分而治之
在这里插入图片描述
通过实验发现SiMo作为encoder,其输入只有C5特征层,并未进行特征融合,可以获得和MiMo相当的效果,而MiSo和SiSo作为encoder,检测效果大幅下降。这表明:1)C5特征层对于不同尺度的目标含有足够的上下文信息,因此SiMo作为encoder能获得不错的检测效果;2)分而治之的作用远超多尺度融合。
采用SiMo来进行分而治之的缺点是:计算量大,检测器运行速度慢。
因此,本文的encoder采用SiSo的结构作为encoder,但采用两种方式:Dilated Encoder(分而治之的思想)和Uniform Matching来提升SiSo作为encoder的检测效果。

本文算法

SiSo与MiMo相比,性能下降的两个主要原因是:1.C5的感受野是受限的,因此在不同尺寸目标上的检测性能下降;2.单层特征产生的sparse anchor会导致正负anchor的失衡。

Limited Scale Range(应对第一个感受野受限的问题)

SiSo输入为C5特征层,为产生不同的感受野,本文通过对常规卷积和空洞卷积进行stack来增大感受野,如图5所示,Resisual Blocks中的卷积采用不用dilationrate的空洞卷积,从而产生不同的感受野,以覆盖所有尺寸的目标。

在这里插入图片描述

Imabance Problem on Position Anchors(应对正负anchor失衡的问题)

SiSo相比于MiMo,anchor的数量会从100k将为5k,因此anchor比较sparse。几种不同的正anchor匹配方法基于单层特征产生的正anchor分布如下所示:
在这里插入图片描述
本文采用Uinform Matching:对于每个GT box,选取k个最近的anchor(k nearest)作为正anchor,这样所有的GT box不论尺寸大小都有相同数据的正anchor;此外本文还依据Max-IoU匹配的原则,在Uniform Matching时,设定IoU阈值以去除大IoU(>0.7)的负anchor和小IoU(<0.15)的正anchor。

整体网络结构

在这里插入图片描述

实验

和其他算法相比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
整体表现:速度快、效果好

消融实验

在这里插入图片描述
Dialated Encoder和Uniform Matching都有着重要作用
在这里插入图片描述

  • 上图(a)表明残差block取4最优;
  • 上图(a)表明4个残差block中空洞卷积取2,4,6,8的dialation rate最优;
  • 上图©表明残差块中需要shortcut;
  • 上图(d)表明Uniform Matching时,取k=4最优;
  • 上图(e)表明Uniform Matching方式最优。

思考

  • Uniform Matching可以解决部分小目标检测的问题;
  • 采用空洞卷积来扩大感受野对大目标有效(文中大目标AP提升多),但对小目标效果有限,如何进一步提升小目标检测?
### YOLOF目标检测模型复现教程 YOLOFYou Only Look One-level Feature)是一种单阶段的目标检测算法,旨在通过简化特征金字塔网络来提高效率和性能。该模型主要依赖于单一尺度的特征图来进行对象检测,而不是像传统的方法那样使用多层特征金字塔。 #### 1. 环境准备 为了成功实现YOLOF模型,在开始之前需安装必要的库和工具包: ```bash pip install torch torchvision torchaudio git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection pip install -e . ``` 上述命令会下载并配置mmdetection框架,这是一个广泛使用的计算机视觉开源项目[^1]。 #### 2. 数据集处理 对于训练过程而言,数据预处理至关重要。通常情况下,需要将自定义的数据集转换成COCO格式以便与现有代码兼容。这涉及到创建JSON文件描述图像路径及其对应的标注信息。 #### 3. 配置文件调整 YOLOF的具体参数设置位于`configs/yolof/`目录下的`.py`文件中。这里可以修改诸如输入尺寸、锚框比例等超参以适应特定应用场景的需求。 #### 4. 训练流程启动 一旦完成了前期准备工作,则可以通过如下指令开启训练进程: ```bash python tools/train.py configs/yolof/yolof_r50_c5_8x8_1x_coco.py --gpu-id=0 ``` 此命令指定了要使用的GPU编号以及具体的实验配置脚本位置。 #### 5. 测试与评估 完成一轮或多轮迭代之后,可利用测试模式验证模型效果,并计算各类指标如AP值等衡量其准确性。 ```bash python tools/test.py configs/yolof/yolof_r50_c5_8x8_1x_coco.py checkpoints/yolof.pth --eval bbox ``` 以上即为基于PyTorch平台下YOLOF物体识别系统的搭建指南概览。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤劳的凌菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值