论文笔记:Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification

Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification
2019-03-26 15:27:10

算法

Paperhttps://arxiv.org/pdf/1903.09776.pdf 网络

 

1. Background and Motivation:app

本文将 NAS 的技术用到了 person re-ID 上,可是并不是简单的用 NAS 技术来搜索一种 ConvNet,本文考虑到 re-ID 的特点,将其结合到 NAS 中。固然之因此这么作,是由于做者认为专门为 classification 任务所设计的 CNN backbones,并非完美的适合 re-ID 的任务,由于其网络模型可能含有 noisy, redundancy and missing components。做者认为 NAS 的方法用到 re-ID 的任务上,有以下三个挑战:ide

1). the body structure information 在 re-ID 中扮演着重要的做用,可是,现有的 NAS 方法却没法建模;函数

2). re-ID 算法一般在 CNN backbone 的 tail 部分来编码结构化信息,可是,大部分这些方法都是依赖于 backbone 的。当采用不一样 backbone 的时候,须要充分的手工调整超参数。性能

3). re-ID 本质上算是一种 retrieval task,可是大部分的 NAS 方法缺只是被设计用于 classification。因为 retrieval 和 classification 有不一样的目标,现有的 NAS 算法没法直接用于 re-ID 的问题。编码

 

基于上述观察和分析, 做者设计了一种新的 Auto-reID 算法来解决上述三个问题。而这种方法的关键在于:design a new re-ID search space,这种搜索空间能够将身体结构化的信息做为可操做的 CNN 成分。另外,做者也将 retrieval loss 结合到搜索机制中,使得搜索的结果更加适合 re-ID 任务。那么,本文所提出的 re-ID search space 和 re-ID search algorithm 能够确保找到一个 efficient 和 effective 的网络结构,如图 1 所示:spa

 

2. Methodology设计

2.1 Preliminaries: 3d

许多 NAS 的方法都是许多 neural cell 的堆叠,而一个 cell 包含多个 layers,将以前 cells 的输出做为输入,而后产生新的输出 tensor。做者也服从这种套路,来搜索适合的 re-ID 网络结构。

 

具体来讲,一个 neural cell 能够看作是一个 directed acyclic graph (DAG),假设有 B 个 blocks。每个 block 有以下三个步骤:

1). 将 2 tensors 做为输入;

2). 在输入 tensors 上分别采用 two operations;

3). 将这两个 tensors 进行 sum。

而所选择的操做,就是从一个候选操做集合 O 上选择。本文中,采用以下的 operations:

(1) 3×3 max pooling,

(2) 3×3 average pooling,

(3) 3×3 depth-wise separable convolution,

(4) 3×3 dilated convolution,

(5) zero operation (none),

(6) identity mapping. 

第 c 个 cell 的 第 i 个 block 能够表达为以下的四元组: 另外,第 c 个 cell 的 第 i 个 block 的输出是:

 

其中,I are selected from the candidate input tensors, which consists of output tensors from the last two neural cells and output tensors from the previous block in the current cell. 为了搜索公式 1 中的操做符 O 以及 I,咱们将操做符选择的问题进行松弛,用 softmax 来对每个 operation 进行打分:

其中,$\alpha$ 表明对于一个 neural cell 的拓扑结构,称为:architecture parameters。咱们将全部 O 中的参数记为 w,称为 operation parameters,一个典型的可微分的 NAS 算法,联合的在 training set 上进行 w 的训练,在 validation set 上进行 $\alpha$ 的训练。在训练以后,H 和 I 之间的强度(strength)定义为:

其中,带有最大强度的 H 被选择做为 I,作大权重的操做符,被选为 $O_{i1}^c$。上述常规的 NAS 搜索方法 DARTS 是被设计用于 classification task,因此做者考虑将该机制结合到 re-ID 任务中。

 

2.2 Re-ID Search Algorithm

做者尝试将 the re-ID specific knowledge 结合到搜索算法中。从网络结构的角度来讲,做者利用 ResNet 的 macro structure 做为 re-ID 的backbone,每个 residual layer 被 neural cell 所替换。而这种 neural cell 的结构,就是搜索出来的。

 

上述过程,简述了特征变换的过程。另一个重要的问题是损失函数的定义,在 classification task 中 cross-entropy loss function 固然是首选,那么问题是 re-ID task 并不是简单的分类问题。因此,做者在这里作了些许的改变,引入了 triplet loss 来进一步改善网络的训练过程。联合的损失函数表示以下:

  

其中,交叉熵损失函数 和 三元组损失函数的定义分别以下所示:

  

上述就是损失函数的定义。算法流程以下所示:

 

2.3. ReID Search Space with Part-aware Module

该小节主要是介绍做者设计的 part-aware module 来改善搜索空间的问题。做者也给出了一个 pipeline,来讲明该过程:

 

具体的操做其实就是对 feature map 进行 part 的划分,而后计算其 self-attention,进行 attend。而后将 attend 以后的 local feature,分别与原始的 input feature 进行组合,而后用 1*1 的卷积操做进行降维处理,获得 output tensor。这么作的优点是什么呢?做者提到本文所设计的 part-aware module 能够捕获有用的 body part cue,并将这种结构化信息融合到 input feature 中。本文所提出的 part-aware module 的参数大小和数量 和 3*3 的depth-wise separable convlution 是至关的。因此,并不会显著的影响 NAS 的效率。

 

3. Experimental Results

 

 

4. Future Works:

在将来工做中,做者提到本文是首次进行 re-ID 网络结构的设计,仅考虑到了一种可能的特定模块。更多的关于 re-ID 的特定领域知识,均可以考虑进来。以获得更好的 re-ID 的性能。

==

相关文章
相关标签/搜索