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.

  • 相关阅读:
    MVC ORM 架构
    Kubernetes 第八章 Pod 控制器
    Kubernetes 第七章 Configure Liveness and Readiness Probes
    Kubernetes 第六章 pod 资源对象
    Kubernetes 第五章 YAML
    Kubernetes 核心组件
    Kubernetes 架构原理
    Kubernetes 第四章 kubectl
    Kubernetes 第三章 kubeadm
    yum 配置及yum 源配置
  • 原文地址:https://www.cnblogs.com/VincentLee/p/13425620.html
Copyright © 2011-2022 走看看