Towards Accurate One-Stage Object Detection with AP-Loss

摘要

单阶段目标检测器是通过同时优化分类损失和定位损失来训练的

由于anchor的数量很多,存在前景目标和背景目标不平衡的问题

本文提出了一种新的框架来缓和上述不平衡问题,即使用排序方法来代替分类任务,并且使用 Average-Precision loss(AP-loss)来完成排序问题。

因为 AP-loss 是不可微且非凸的,AP-loss 不能直接被优化,故本文使用一种新的优化方法,可以将感知学习过程的误差驱动的更新机制和深度网络中的反向传播机制进行巧妙的结合。

1. 引言

目标检测需要从背景中定位并识别出目标,其面临的挑战是前景和背景数量极不平衡。

检测过程是一个多任务机制,需要用不同的损失函数来解决分类任务和定位任务。

分类任务主要是识别b-box中的目标的类别,定位任务主要是预测b-box的位置。

两阶段的检测器,首先生成确定数量的候选框,所有检测问题可以从这些候选框中直接解决。

单阶段的检测器,需要直接从大量的预定义的候选框中预测目标类别,大量的b-box会引起前景和背景的极度不平衡,使得分类任务难以进行。

已知,对于一个平凡解(无解),几乎所有的候选框都被预测为负标签,分类指标可能很高,而检测性能较差。如图1(a)所示。
在这里插入图片描述
为了解决单阶段目标检测的这种问题,很多不同的方法引入了新的分类损失,如 balanced loss[23]、Focal loss[15] 和 tailored training 方法(Online Hard Example Mining (OHEM))等。这些 losses 对每个 anchor box 都分别独立建模,在分类损失中,其尝试对前景样本和背景样本重新赋权值,来适应样本不平衡的情况,这些方法没有考虑不同 samples 之间的联系。设计的平衡权重是手工选取的超参数,并不能很好的适应于不同类型的数据集。

本文认为,分类任务和检测任务之间的鸿沟阻碍了单阶段目标检测器的性能提升,本文并未从分类损失函数的修正上着手,而是直接使用排序方法(ranking)来代替分类损失。其中,关联的 ranking loss 显式地对关系建模,并且对正样本和负样本的比例不敏感。

如图1(b)所示,本文使用 AP 作为本文目标损失,其本质上更符合目标检测的评价指标。

由于 AP- loss 是不可微且非凸的,所以标准的梯度下降方法无法训练,下面讨论三点:

1)在结构化的 SVM 模型中学习了基于 AP 的 loss,该 SVM 模型是线性模型,所以性能受限。
2)结构化的 hinge loss 用于优化 AP loss的上届,而不是直接优化 loss 本身
3)近似的梯度方法可以用于优化 AP-loss,但效率不高,且容易陷入局部最优。

综上,优化 AP-loss 仍然是一个开放性问题。

本文中,我们用 ranking task 来代替单阶段检测器的 classification task,故我们使用基于 ranking 的 loss(AP-loss)来解决类别不平衡的问题。

详细来讲,本文提出了一种新的基于误差的学习策略,来有效的优化基于 AP 的不可微的目标检测函数。

也就是说,给单阶段检测器的得分输出添加了一些额外的变换,来获得 AP- loss,包括线性变换(将 scores 变换成成对的偏差),之后利用非线性且不可微的“激活函数”将成对偏差变换成 AP-loss 的主要内容,最后就可以通过将原始 term 和 label vector 进行点乘来获得 AP-loss。

受感知学习方法的启发,我们使用误差驱动的学习方式,来直接通过不可微的激活函数传递更新的信号。

不同于梯度方法,我们的学习机制给每个变量的误差一个更新信号的比率,之后使用反向传播来传递权值更新信号。

本文从理论和实际上都证明了提出的优化方法不会出现不可微可非凸的情况,本文主要贡献如下:

  • 提出了新的框架来解决分类样本正负不均衡的问题
  • 提出了误差驱动的学习机制,可以有效地优化不可微且非凸的基于 AP 的目标函数
  • 通过实验验证,本文方法相比于使用 classification loss 的方法效果更好

2. 相关工作

单阶段检测器:目标检测中,单阶段方法可以比两阶段方法更简单且更高效。

众所周知,单阶段目标检测器的优良效果得益于密集的anchors,但这会导致前景和背景目标的不平衡,为了解决这个问题,OHEM [18, 31] 和 Focal Loss [15] 被用来降低简单样本的权重,然而,该问题仍然没有得到有效的解决。

首先,手选超参数难以泛化到其他数据集
其次,anchors 之间的关系没有很好的建模

用于目标检测的 AP loss:

AP 被当做评价指标,但由于其不可微和非凸性,难以用作优化函数,本文的方法有四个特点:

1)本文方法可以被用于任何可微线性或可微非线性模型,如神经网络,其他的那些方法,如[37,19] 仅仅可以在线性 SVM 模型中起作用。
2)本文方法直接优化 AP- loss,[20]会导致 loss 出现 gap
3)本文方法不是近似的梯度,且不受 [34,9] 中的目标函数非凸性的影响
4)本文方法可以端到端的训练检测器

感知学习方法:

本文优化准则的核心是“误差驱动更新”,是感知学习方法的泛化版本,有助于克服不可微目标函数的困难。

感知器是使用阶跃函数作为激活函数的简单的人工神经元,感知学习方法是由Frank Rosenblatt [26]最初提出的,因为阶跃函数是不可微的,其不适合于使用梯度更新准则,但该方法也没有使用类似于交叉熵损失函数的方法来代替优化函数,而是使用“误差驱动更新”方法来更新权值。

当训练数据是线性可分的时,该方法能够保证在有限次数内收敛。

3. 方法

我们主要是使用基于 ranking task 的 AP-loss 来代替 classification task。

图2展示了本文方法的两个主要结构:ranking 过程 + 误差驱动更新准则
在这里插入图片描述

3.1 Ranking Task 和 AP-loss

3.1.1 Ranking Task

传统单阶段检测器:

给定输入图像 I I I II I IIII2<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于 "Region-Based Convolutional Networks for Accurate Object Detection and Segmentation" 这篇论文的复现,我可以给你一些指导。该论文介绍了一种基于区域的卷积神经网络方法,用于准确的物体检测和分割。 首先,你需要了解论文中提出的方法的核心思想和技术细节。然后,你可以按照论文中描述的步骤进行复现。以下是一些可能的步骤: 1. 数据集准备:根据论文中使用的数据集,你需要获取相应的训练集和测试集数据。确保数据集包含物体检测和分割的标注信息。 2. 模型架构:根据论文中描述的模型架构,你可以使用深度学习框架(如TensorFlow、PyTorch等)来构建模型。确保按照论文中提到的网络层次结构、连接方式和参数设置来构建模型。 3. 损失函数:根据论文中提到的损失函数,你可以实现相应的损失函数来衡量检测和分割任务的性能。 4. 训练过程:使用训练集数据对模型进行训练。根据论文中提到的训练策略和超参数设置,你可以使用反向传播算法来更新模型的权重。 5. 测试过程:使用测试集数据对训练好的模型进行测试。评估模型在物体检测和分割任务上的性能,并与论文中的结果进行比较。 请注意,由于论文可能没有提供完整的代码实现,你可能需要根据论文的描述进行一定的调整和优化。 希望这些步骤能为你复现该论文提供一些帮助!如果你有任何进一步的问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值