zoukankan      html  css  js  c++  java
  • BorderDet:通过边界特征大幅提升检测准确率,即插即用且速度不慢 | ECCV 2020 Oral

    边界对于定位问题十分重要,BorderDet的核心思想BorderAlign巧妙又有效,将边界特征融入到目标定位预测中,而且能够简单地融入到各种目标检测算法中带来较大的性能提升下。在开源实现中,对BorderAlign进行了高效CUDA实现,不会对耗时带来很大的影响,整个工作十分扎实

    来源:晓飞的算法工程笔记 公众号

    论文: BorderDet: Border Feature for Dense Object Detection

    Introduction


      目前大部分的point-based目标检测算法(SSD, RetinaNet, FCOS)使用特征图的single-point进行定位和分类,但single-point特征可能没有足够多的信息来表达完整的实例以及实例的边界信息。很多研究通过各种手段补充single-point的特征表达能力,这些方法虽然能够提取更多的特征,但可能带来不必要的计算以及会受背景的影响。最关键的,这些方法都没有直接利用边界特征,而边界对于定位是十分重要的。为此,论文提出新的特征提取操作BorderAlign,可直接利用边界特征优化原本的single-point特征,基于BorderAlign提出了SOTA目标检测算法BorderDet。
      论文的主要贡献如下:

    • 分析dense object detector的特征表达,展示边界特征对补强single-point特征的重要性。
    • 提出新的特征提取操作BorderAlign,通过边界特征来优化网络特征,并基于BorderAlign提出高性能目标检测算法BorderDet。
    • 在COCO数据集上,将BAM模块集成到FCOS和FPN中分别提升2.8AP和3.6AP,而集成到ResNext-101-DCN准确率为50.3AP,达到SOTA。

    Our Approach


    Motivation

      论文以FCOS为baseline,加入第二阶段预测来对比多种特征增强方法的效果,最后发现仅用边界中心点的增强效果与region-based方法几乎一样。从实验结果来看,可以得出以下结论:

    • point-based特征表达缺乏完整物体的显著特征,需要进行特征增强。
    • 从完整的boxes内提取特征是不必要的,且存在冗余。
    • 高效的边界特征提取策略能够带来更好的性能。

    Border Align

      密集地从边界提取特征是很低效的,一般边界上的目标物体相关的点很少,大多为背景点。为此,论文提出BorderAlign特征提取操作,能够有效且自适应地榨取边界特征。

      参考R-FCN的思想,BorderAlign提取$(4+1)C$维度的border-sensitive特征图作为输入,$4C$维度对应4条边,另外$C$维对应原本的single-point特征。假定特征图顺序为(single point, left border, top border, right border和bottom border),计算输出特征图时,对点$(i, j)$对应的bbox的每条边均匀取$N$个采样点,$N$默认设为10,采样点的值使用双线性插值计算,最后通过channel-wise max-pooling得到输出:

      $(x_0, y_0, x_1, y_1)$为点$(i,j)$预测的bbox,这种方法能够自适应地从边界极点榨取边界特征。

      论文对border-sensitive特征图中各channel的最大值进行了可视化,发现最大值分布基本符合预设的作用。

    Border Alignment Module

      BAM模块封装了BorderAlign操作,先使用$1 imes 1$卷积生成border-sensitive feature maps,然后结合初步bbox预测,通过BorderAlign输出Border增强后的特征图,再使用$1 imes 1$卷积恢复为模块输入维度。

    BorderDet

      BorderDet基于FCOS检测架构,主要在特征金字塔的预测head中加入BAM模块。首先预测初步bbox预测和初步分类预测,然后将初步bbox预测输入到BAM模块得到Border分类预测和Border bbox预测,预测跟原先一样使用$1 imes 1$卷积,最后统一两种结果进行输出。

    BorderRPN

      BAM模块也能用于two-stage目标检测算法中,将原本第二阶段的region-based特征提取改为文中的BAM模块进行边界特征增强预测,另外将前面特征提取的卷积改为空洞卷积来提升感受域。

    Model Training and Inference

    • Target Assignment

      BorderDet基于FCOS进行初步预测,在第二阶段将GT赋予每个IoU大于0.6的初步预测结果,回归目标定义为:

      $sigma$为方差,用于提高多任务学习的效率,默认为0.5。

    • Loss Function

      BorderDet的损失函数定义为:

      $mathcal{L}C_{cls}$和$mathcal{L}C_{reg}$为初步分类损失和初步定位损失,在实现时分别为focal loss和IoU loss,$mathcal{L}B_{cls}$和$mathcal{L}B_{reg}$则计算border预测结果与对应GT之间的分类损失和定位损失,仅处理正样本,在实现时分别为focal loss和$mathcal{L}_1$ loss。

    • Inference

      BorderDet在推理时对两种分类结果进行直接的相乘输出,而对于定位则使用border定位预测对初步定位的bbox进行公式2的反向转换,对所有的结果进行NMS输出,IoU阈值为0.6。

    Experiments


      对BAM模块以及BorderAlign参数进行对比实验。

      对比其它特征增强方法,作者对BorderAlign进行高效的CUDA实现,速度很快。

      直接将BorderDet结合到one-stage检测器和two-stage检测器中。

      与主流的检测算法进行对比。

    Conclustion


      边界对于定位问题十分重要,BorderDet的核心思想BorderAlign巧妙又有效,将边界特征融入到目标定位预测中,而且能够简单地融入到各种目标检测算法中带来较大的性能提升下。在开源实现中,对BorderAlign进行了高效CUDA实现,不会对耗时带来很大的影响,整个工作十分扎实。



    如果本文对你有帮助,麻烦点个赞或在看呗~
    更多内容请关注 微信公众号【晓飞的算法工程笔记】

    work-life balance.

  • 相关阅读:
    约瑟夫问题
    十点半
    鹊桥相会
    C语言实验——数日子
    汉诺塔
    读入字符串
    C语言实验——各位数字之和排序
    数据结构实验之链表五:单链表的拆分
    C语言实验——分割整数
    大一上学期
  • 原文地址:https://www.cnblogs.com/VincentLee/p/13425620.html
Copyright © 2011-2022 走看看