不需要锚框:一种全卷积 One-Stage 目标检测算法(FCOS)

简介: 不需要锚框:一种全卷积 One-Stage 目标检测算法(FCOS)

本文内容框架

  1. 基于锚框的检测器(Anchor-Based Detectors)
  2. 全卷积 One-Stage 目标检测算法(FCOS)的提出
  3. 多级检测(Multi-level detection)
  4. Centre-Ness 策略
  5. 实验对比
  6. 总结

基于锚框的检测器(Anchor-Based Detectors)

现有的目标检测方法大多使用预先定义的锚框,如:Fast-RCNN, YOLOv3, SSD, RetinaNet 等。但是这些锚框涉及到许多的超参数,如:锚框数量、尺寸比、图像划分区域数量等。而这些超参数对于最终结果的影响很大。其中,边框被判断为正样本还是负样本,由 Intersetcion over Union (IoU)这个超参数决定。而 IoU 的值极大程度上影响着锚框。下图展示了 Yolov3 当中锚框的作用:

image.png

我们之所以延续使用锚框,是因为这一方法的思想存在已久——历史上第一个目标检测器就是借鉴了经典计算机视觉早期检测模型中滑动窗口(sliding window)的概念。但是,既然现在我们拥有了多个 gpu,那么也就不需要滑动窗口了。

FCOS 的提出

因此 FCOS 方法采用了新的思路,即不再使用锚框,而是像语义分割一样,以逐像素预测的方式解决目标检测问题。首先,让我们看看这种方法是如何工作的:

Fᵢ为总步长为s的 CNN 的第一层Fᵢ⁰特征图。同时定义图像的基础边界框为Bᵢ = ( x⁰ᵢ, y⁰ᵢ, x¹ᵢ, y¹ᵢ, cᵢ ) ∈ R₄ × {1, 2 … C}. 。其中,C是类的数量;(x⁰ᵢ, y⁰ᵢ)(x¹ᵢ, y¹ᵢ) 是边框的左上角及右下角坐标。对于特征图上的任一位置(x,y),类似于语义分割中的工作,我们可以确定其对应的原始图像中的像素。然后将特征图上的(x,y)映射到感受野中心附近位置(floor(s/2) + x*s, floor(s/2) + y*s)。通过一个 8x8 的图像以及 4x4 的特征图,将能够很好地理解这一特征提取过程。

通过上述映射,我们能够将图像中的每个像素都关联起来作为训练样本。也就意味着每个位置(x,y)都可以是正样本或负样本之一,而决定其是否属于正样本的条件为:当其位于基础边界框以内,并且该点计算得到的标签与基础边界框的标签一致。

具体的,我们通过四个值(l*, t*, r*, b*)的回归可以确定边界框的尺寸:

并且针对这些值的回归计算也将是整个检测算法的损失函数的一部分

现在,由于没有锚框,因此不需要计算锚框和边界框之间的 IoU 来获得正样本,从而可以直接训练回归器。相反,被确定为正样本的每个点(位于边界框内并具有正确的类标签)都是边界框尺寸参数回归的一部分。而这可能是即使使用的超参数更少,但FCOS比基于锚框的检测器工作得更好的原因之一。

对于特征图中的每个点,我们计算其分类得分,而对于被确定为正样本的每个点,我们进行回归。因此,总损失函数变成:

image.png

其中,λ=1。

RHS的第一部分是像素(x,y)分类,采用了 RetinaNet 中使用的标准焦距损失(Standard focal loss)。RHS的第二部分是边界框的回归,对于被确定为非正样本的像素,它被赋值为零。

多级检测(Multi-level detection)

多级预测是指利用不同层次的特征图进行目标检测。这类似于在RetinaNet中使用的FPNs(Feature Pyramid Networks)的概念。如下图所示,检测器应用于特征图P3、P4、P5、P6、P7等多个级别,这有助于我们检测图像中不同大小的物体,同时也有助于解决边界框重叠的问题。

image.png

基于锚框的检测器,通过将不同的锚框应用于不同的特征级别,以实现在不同级别分离不同的重叠的边界框。而类似于 FCOS 的无锚框检测器,则通过在不同的特征级别对回归预测进行约束,以实现相同的功能。具体地,首先定义了 $m_i$参数,对于所有的特征级别(P3-P7),mᵢ被分别设定为0、64、128、256、512和无穷大,而对于P2则设定为0。以P7为例,当max(l*,r*,t*,b*)< infinity时,对边界框进行回归预测。如果一个像素即使在多级检测之后仍然被分配给多个边界框,它将自动分配给两个边界框中较小的一个。

Centre-Ness 策略

center-ness策略在每一个层级预测中添加了一个center-ness分支,该分支与分类和回归并行。顾名思义,它是对边界框内正样本像素的中心度进行计算,相当于给网络添加了一个损失,而该损失保证了预测的边界框尽可能的靠近中心。这是为了改善无锚框检测器的性能,使其与基于锚框的检测器不相上下。

具体地,中心度(centerness)计算如下:

image.png

实验对比

与主流的基于锚框的目标检测算法进行性能对比,结果如下:

image.png

上表显示了 FCOS 与 RetinaNet (一种最先进的基于锚框的算法)的性能比较。可以看出,在相同主干网络的情况下,FCOS的性能比RetinaNet高出1.9%。对于这两种模型,在nms阈值等参数设置相同的情况下,采用多级预测策略和centre-ness策略的FCOS算法表现都优于RetinaNet。上表中提到的“improvements”包括:①将中心度分支移到回归分支而不是分类分支;②控制采样。

image.png

同时,上表展示了有添加 center-ness 策略和未添加 center-ness 策略的算法性能比较。可以明显看出 center-ness 策略对于提升算法性能有着很大作用。基于锚框的算法在对正锚框和负锚框进行分类时需要引入IoU阈值参数,而 center-ness 策略有助于消除这些超超参数。

值得注意的是,该研究中使用的一些重要的超参数,如学习率,NMS抑制阈值等,都是基于 RetinaNet 获取到。而如果进一步对这些超参数进行调整,将可能获得更好的目标检测效果。

总结

FCOS 这一算法能够使得目标检测更加简单化、快速化。这一方法的提出,将引导更多研究者摒弃基于锚框的目标检测算法,有可能成为解决目标检测这一难题更有效的方案。

目录
相关文章
|
3月前
|
监控 安全 算法
137_安全强化:输入过滤与水印 - 实现输出水印的检测算法与LLM安全防护最佳实践
随着大语言模型(LLM)在各行业的广泛应用,安全问题日益凸显。从提示注入攻击到恶意输出生成,从知识产权保护到内容溯源,LLM安全已成为部署和应用过程中不可忽视的关键环节。在2025年的LLM技术生态中,输入过滤和输出水印已成为两大核心安全技术,它们共同构建了LLM服务的安全防护体系。
|
4月前
|
传感器 资源调度 算法
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
本文提出一种多子带相干累积(MSCA)算法,通过引入空带和子带相干处理,解决DDMA-MIMO雷达的多普勒模糊与能量分散问题。该方法在低信噪比下显著提升检测性能,实测验证可有效恢复目标速度,适用于车载雷达高精度感知。
646 4
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
|
3月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
7月前
|
机器学习/深度学习 运维 监控
实时异常检测实战:Flink+PAI 算法模型服务化架构设计
本文深入探讨了基于 Apache Flink 与阿里云 PAI 构建的实时异常检测系统。内容涵盖技术演进、架构设计、核心模块实现及金融、工业等多领域实战案例,解析流处理、模型服务化、状态管理等关键技术,并提供性能优化与高可用方案,助力企业打造高效智能的实时异常检测平台。
672 1
|
6月前
|
存储 监控 算法
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
192 0
|
8月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于PSO(粒子群优化)改进TCN(时间卷积神经网络)的时间序列预测方法。使用Matlab2022a运行,完整程序无水印,附带核心代码中文注释及操作视频。TCN通过因果卷积层与残差连接处理序列数据,PSO优化其卷积核权重等参数以降低预测误差。算法中,粒子根据个体与全局最优位置更新速度和位置,逐步逼近最佳参数组合,提升预测性能。
|
9月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本项目基于MATLAB2022a开发,提供无水印算法运行效果预览及核心程序(含详细中文注释与操作视频)。通过结合时间卷积神经网络(TCN)和遗传算法(GA),实现复杂非线性时间序列的高精度预测。TCN利用因果卷积层与残差连接提取时间特征,GA优化超参数(如卷积核大小、层数等),显著提升模型性能。项目涵盖理论概述、程序代码及完整实现流程,适用于金融、气象、工业等领域的时间序列预测任务。
|
7月前
|
机器学习/深度学习 数据采集 并行计算
基于WOA鲸鱼优化的TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于TCN(Temporal Convolutional Network)与WOA(Whale Optimization Algorithm)的时间序列预测算法。TCN通过扩张卷积捕捉时间序列长距离依赖关系,结合批归一化和激活函数提取特征;WOA用于优化TCN网络参数,提高预测精度。算法流程包括数据归一化、种群初始化、适应度计算及参数更新等步骤。程序基于Matlab2022a/2024b开发,完整版含详细中文注释与操作视频,运行效果无水印展示。适用于函数优化、机器学习调参及工程设计等领域复杂任务。
|
7月前
|
机器学习/深度学习 监控 算法
面向办公室屏幕监控系统的改进型四叉树屏幕变化检测算法研究
本文提出一种改进型四叉树数据结构模型,用于优化办公室屏幕监控系统。通过动态阈值调节、变化优先级索引及增量更新策略,显著降低计算复杂度并提升实时响应能力。实验表明,该算法在典型企业环境中将屏幕变化检测效率提升40%以上,同时减少资源消耗。其应用场景涵盖安全审计、工作效能分析及远程协作优化等,未来可结合深度学习实现更智能化的功能。
138 0