论文笔记: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
Paper:https://arxiv.org/pdf/1903.09776.pdf
1. Background and Motivation:
本文将 NAS 的技术用到了 person re-ID 上,但是并非简单的用 NAS 技术来搜索一种 ConvNet,本文考虑到 re-ID 的特色,将其结合到 NAS 中。当然之所以这么做,是因为作者认为专门为 classification 任务所设计的 CNN backbones,并不是完美的适合 re-ID 的任务,因为其网络模型可能含有 noisy, redundancy and missing components。作者认为 NAS 的方法用到 re-ID 的任务上,有如下三个挑战:
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 所示:

2. Methodology:
2.1 Preliminaries:
许多 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 的性能。
==
论文笔记:Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification的更多相关文章
- Person Re-identification 系列论文笔记(一):Scalable Person Re-identification: A Benchmark
打算整理一个关于Person Re-identification的系列论文笔记,主要记录近年CNN快速发展中的部分有亮点和借鉴意义的论文. 论文笔记流程采用contributions->algo ...
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- Deep Learning论文笔记之(八)Deep Learning最新综述
Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- 论文笔记(2):A fast learning algorithm for deep belief nets.
论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...
随机推荐
- Jmeter压测基础(二)——Badboy功能、Jmeter参数化、检查点、集合点、动态关联、图形监控
Badboy 以下稍微介绍一下badboy的部分功能: 1.Record;play(badboy打开后默认是recording状态) 2.Assertion(检查点/断言) 3.Variable: t ...
- docker的安装和升级
1.删除docker sudo apt-get purge docker.io sudo rm -rf /etc/docker/ sudo apt-get autoremove 2. 安装docker ...
- Vue学习记录第二天
又来做笔记啦,今天又自暴自弃了,还好及时清醒过来了,什么时候努力都不晚,主要是要一直坚持下去,只要坚持就一定会有收获,所有成功得人背后都是付出了巨大得努力的,没有人平白无故的成功.看似光鲜亮丽的背后, ...
- MySQL 误删数据、误更新数据(update,delete忘加where条件)
MySQL 误操作后数据恢复(update,delete忘加where条件) 关键词:mysql误删数据,mysql误更新数据 转自:https://www.cnblogs.com/gomysql/p ...
- webstorm 2018 Eslint修复 快捷键设置
首先确保eslint插件已安装 已勾选
- python 循环 while
count = 1while count <= 5: print("大家好!") count = count + 1 结果:while 可以进行循环, count 表示计数, ...
- keras笔记
函数式模型 函数式模型算是本文档比较原创的词汇了,所以这里要说一下 在Keras 0.x中,模型其实有两种,一种叫Sequential,称为序贯模型,也就是单输入单输出,一条路通到底,层与层之间只有相 ...
- 浅析MySQL InnoDB的隔离级别
MySQL InnoDB存储引擎中事务的隔离级别有哪些?对应隔离级别的实现机制是什么? 本文就将对上面这两个问题进行解答,分析事务的隔离级别以及相关锁机制. 隔离性简介 隔离性主要是指数据库系统提供一 ...
- 表情的战争(App名称)技术服务支持
1.进入游戏走过场动画,可以点击退出跳过此过场动画: 2.进入主界面后直接点击开始游戏进入场景跑图,进入npc对话面板,对话结束进入战斗面板: 3.战斗操作方法为玩家拖动表情牌,进行攻击或者防守,直至 ...
- FB面经 Prepare: Make Parentheses valid
给一组括号,remove最少的括号使得它valid 从左从右各scan一次 package fb; public class removeParen { public static String fi ...