CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection(论文阅读)

论文:https://arxiv.org/abs/2007.13816

代码:https://github.com/Duankaiwen/CPNDet(预计2020年8月开源)

1. 论文与摘要

                                                 《Corner Proposal Network for Anchor-free,Two-stage Object Detection》

                                                                                无锚点两阶段目标检测的角点建议网络  

      摘要:目标检测的最终目的是要从图片中确定检测目标的类别和位置。本文提出了一个无锚点的两阶段检测框架,该框架第一阶段通过角点确定提取感兴趣区域,然后在第二阶段给这些区域附上标签。实验证明,这个两阶段的检测器能端到端的训练,并且非常有效的提高目标的召回率和检测精度。我们的方法叫做CPNDet,它能检测任意不同的形状,并且能够有效的避免误检。该方法在COCO数据集上达到了49.2%的mAP,达到了当前最先进的检测效果。发方法的推理阶段也十分高效,mAP为41.6%/39.7%时的检测速度为26.2/43.3FPS,非常有竞争力。开源代码地址:https://github.com/Duankaiwen/CPNDet

2. 方法与实现

      2.1 Anchor-based or Anchor-free?

      作者的核心观点是:基于无锚点的方法能更好的定位任意形状的目标,因此具有更高的召回率。

      基于锚点的方法要根据经验设置锚点,这些算法不够灵活,并且对于特殊形状的物体容易漏检。如下表所示,基于锚点的Faster R-CNN的召回率较低,特别是对于大目标和目标长宽比大于5:1的情况下(因为这种长宽比下没有定义锚点)。

       如下图所示:

CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection(论文阅读)
Caption

       2.2 One-stage or Two-stage?

       鉴于CornerNet角点标签预测不准确的情况,作者采用两阶段的方法解决该缺点。作者首先将得到的感兴趣区域进行二分类,去掉误检,紧接着用一个多分类重新给类别附上标签。由于第一阶段的二分类去掉了80%的proposals,提高了检测效率。第二阶段利用了proprosals内部的信息,所以分类更加准确。

       第一阶段二分类的损失函数如下:

CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection(论文阅读)
Caption

       N:正样本的数量;

       p m:是物体的概率得分;

       IOUm: 物体与ground-truth的最大交并比。      

       第二阶段分类器的损失函数如下:

CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection(论文阅读)

         q(m,c): 第m个物体属于第c类的得分。

      2.3 网络的整体架构

            算法框架如下图所示:

CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection(论文阅读)
Caption

             整体的损失函数:             

CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection(论文阅读)

              注:前两项代表关键点定位和偏移的损失,后两项代表二分类和多分类的损失。