zoukankan      html  css  js  c++  java
  • Batch DropBlock Network for Person Re-identification and Beyond

    Batch DropBlock Network for Person Re-identification and Beyond 

    ICCV 2019

    2019-12-24 10:47:06

     

    Paperhttp://openaccess.thecvf.com/content_ICCV_2019/papers/Dai_Batch_DropBlock_Network_for_Person_Re-Identification_and_Beyond_ICCV_2019_paper.pdf 

    Codehttps://github.com/daizuozhuo/batch-dropblock-network  

     

    1. Background and Motivation

     

     

    2.  Batch DropBlock (BDB) Network

    Backbone Network and ResNet-50 Baseline

    本文的骨干网络采用的是 ResNet-50,并且刚开始的时候,不使用 stage 4 的下采样操作。这样的话就可以得到一个 2048*24*8 的特征图。在改骨干网络的基础上,作者添加了一个 global branch。特别的,在 ResNet-50 的 stage 4 之后,作者采用了 global average pooling 得到一个 2048-D 的特征向量,并且用 1*1 的卷积网络进一步降采样得到 512-D。作者将 backbone network 和 该 global branch 称为 ResNet-50 Baseline

     

    Batch DropBlock Layer

    给定一批量输入图像,我们可以用骨干网络得到 feature tensor T,Batch DropBlock Layer 可以随机的扔掉 tensor T 的相同区域。扔掉的那块区域的所有值,都被设置为 0。作者在图 2 中给出了一些使用该 layer 之后的可视化图。

    Network Architecture

    如图 3 所示,本文所提出的 BDB network 是由一个 global branch 和 一个 feature dropping branch 构成的。全局分支是用于提供全局特征表达的。也用于监督训练 feature dropping branch,并且使得 batch DropBlock layer 可以在学习好的特征图上进行操作。为了说明这一点,作者给出了一些可视化的东西,如图 4 所示,来说明 global branch 的影响。

    我们可以发现仅用 dropping branch 学习到的 features 更加分散,并且有冗余的背景噪声。如其他工作中所说的那样,在刚开始学习的时候就随机的扔掉输入特征图的一大部分区域,可能会伤害 network 的学习。所以,他们采用了一种渐进式的丢弃 feature map 的方法,即:刚开始扔掉的区域比较少,但是,随着学习的进行,慢慢的增加扔掉的区域,使得训练过程更加稳定。在 BDB network 中,我们不需要用全局分支的监督来改变 dropping area。在训练的起始阶段,当 feature dropping branch 不能学习的很好时,全局分支可以帮助训练。

     

    然后 feature dropping branch 用 BatchDropBlock Layer 在 feature map T 执行,得到 batch erased feature map T'。然后,我们采用 global max pooling 得到 2048-D的特征向量。最终,特征向量的维度从 2048-D 改为了 1024-D,然后用 triplet 和 softmax losses。feature dropping branch 的目的是:学习多个 attentive feature regions 而不是 聚焦于 major discriminative region。图 4 也可视化了带有 DropBlock 和 不带 Batch DropBlock 的类别激活图(the class activation map)。

     

    BDB network 利用 global average pooling 在 global branch 上,与 ResNet-50 network 相同。作者这里用的是 Global Max Pooling,因为 GMP 可以在具有较强区分性的特征被扔掉后,仍然可以鼓励网络发现相对弱的显著特征。强的 feature 可以被很容易的选择,而弱的特征则很难从较低的值中被区分出来。当强的特征被扔掉后,GMP 可以估计 network 来增强 weak features。对于 GAP 来说,除了 weak features 之外的 low values 仍然影响着最终的结果。

     

    在测试阶段,从弄个 global branch 和 feature dropping branch 得到的特征被组合起来,作为行人图像的映射向量。此外,仍然需要注意如下三点:

    1)Batch DropBlock Layer 没有参数,不会增加网络的大小;

    2)Batch DropBlock Layer 可以被很容易的接到其他的 metric learning 任务中,而不止 person re-ID;

    3)Batch DropBlock 超参数可以调节,对于不同的任务,而不需要改变网络的结构。

     

    Loss Function:本文用到了两个损失函数:soft margin batch-hard triplet loss 以及 soft loss on both the global branch and feature dropping branch。

     

    3. Experiments:

     

    ==

  • 相关阅读:
    Android Service启动原理分析
    线程池原理分析
    仿EventBus做一个简单的基于订阅发布的事件总线
    EventBus原理以及源代码分析
    Android从点击Launcher图标开始到App打开流程分析
    使用LruCache和DiskLruCache手写一个ImageLoader
    OkHttp2连接池复用原理分析
    OkHttp执行流程源码分析
    Android使用动态代理模仿Retrofit的create方法,使其可以返回任意的接口类型
    Android模仿Retrofit的建造者模式
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/12090220.html
Copyright © 2011-2022 走看看