深度 | 用于大规模行人重识别的行人对齐网络

1.Motivation

近年来,对行人重识别(person re-ID)问题的研究也越来越多了。类比于自然语言处理(nlp)的话,大家或者集中于语义层面的设计(比如设计 loss,triplet loss,identi+verif loss),或者集中于语法层面上(利用人体的内在结构,比如水平切割,pose预测)。

这篇文章集中于语法层面上,也就是利用人体结构来增强识别能力。现阶段行人重识别的发展一部分是归因于大数据集和深度学习方法的出现。现有大数据集往往采用自动检测的方法,比如 DPM 来检测行人,把行人从背景中切割出来。或者花钱,邀请很多标注者一起来抠人,标注数据。

但是自动检测会包含错误,影响下一阶段的学习和识别; 人为抠的行人图像 虽然明显错误较少,但包含不同的 bias,也同样未必适合下阶段 深度学习方法的学习。 所以一个直接的想法: 让深度学习方法自己来矫正输入,学习一个二维的变换,把行人对齐好以后,再做下一步的识别。

那么我们如何定义什么样的二维变换是好的变换呢? 需要额外的监督信息来学习么,比如行人 pose 的 groundtruth?

不需要额外的信息标注。 本文提出一个想法,直接用我们识别人这个信息就好了。 因为 行人对齐和行人识别是可以互利互惠的两个问题。 当我们做行人识别的时候,行人人体是高亮的(可以见如下的热度图),背景中不含重要信息,自然就区分出来了。所以我们可以依此来把人体抠出来,预测输入的变换方式。 而反过来,当行人数据对齐得好的时候,行人识别也可以识别得更准。 达到互相帮助的目的。

下图为对齐的效果 (上一行为原始检测,下一行为对齐后的结果)。可以看到我们的方法对于两种常见检测错误都有作用,过多背景(比如把树和操场也包含了) 和 部件缺失(比如腿没了)。 在对齐后,图像输入回到了同一个尺度(比如人脸大小差异不是那么大了),更容易做人与人之间的比较。

2.Method

实验方法也相对直接。网络包含两个 CNN 分类网络 蓝色部分(Base Branch + Alignment Branch),一个映射预测网络 橙色部分(Affine Estimation)。

接下来我们按顺序来介绍。

Base Branch 其实就是一个传统的 finetune 的 ResNet。在 Market1501 中包含 751 个不同行人的训练数据,故在示例图像中,最后 fc 是到 751 类,执行行人识别的预测。

而 Affine Estimation 其实也是一个 CNN,输入为 base branch 的 Res4 Block 的输出(大小为 14x14x1024),其中已经蕴含了对人体的 attention(可视化就是刚才的热度图), 输出为 6 维的向量 θ。

如果大家熟悉二维仿射变换的化,其实这 6 维向量 θ 也没什么神秘的。就是下面这个公式中的 xy 变换对应的系数而已。

我们可以将这个变换应用于原图(224x224x3),不过,网络前几层都是用来提取边缘信息,基本可以共享,所以实际上在设计中,我们直接把这个变换应用在 Res2Block 的输出上(56x56x256),在仿射变换之后得到的的输出也为(56x56x256).

现在我们再把另一个分类网络(图中下半部)接上去。输入 56x56x256 的 tensor, 也执行一个 751 类分类就好了。

好,为了帮助理解,我们再反过头思考一下这个网络是怎么 work 起来的。进行一下梳理。

在反向传播的时候,因为只有两个 loss,流向如上图。红色为第一个分类 loss,第二个 loss 为从调整过的输入这边过来的分类 loss。而关键的 θ 其实也是由第二网络的 loss 来进行调整,也就是一开始说的,利用识别行人的 loss 来指导 行人对齐网络的学习,不需要额外的标注信息。

3.Experiments

光用识别人的 loss 真的可以有效果么?一开始我们也担心这个。如下为实验中,将θ应用于原图得到的效果。在三个数据集(两个自动检测,一个人为标注)上,我们都可以看到调整后的效果。虽然也有限,但还是有些我们希望的效果。(背景过多的,我们切掉; 背景过少,缺部件的,我们用 0 来填,0 就是图中的黑色像素。)这样可以减轻后面分类网络的压力,make it easy。

量化的行人重识别指标也都不错。(注:其中 cuhk03 跑的是新的 test setting,图像一半训练一半测试,所以指标相对低一些)

在 Market 上 对齐以后的结果,并没有超过原来的 base 的结果。这可能是 market 真的有太多剧烈的变化了,检测结果 bias 大。 反而是在一些人为抠行人的数据集上,我们一开始会认为没有太大提升。但对齐后往往可以有 3% 的 rank1 提升,说明网络克服相对小的 bias 很拿手。

另外, 当我们把 base 和 alignment 两个网络的 embedding 接在一起,可以进一步提升效果,在一些数据集上达到了state-of-the-art。

4.额外实验

另外,还是比较好奇,这样训练出来网络的对齐是不是真的靠谱。所以我们用不断变小的输入,来看这个对齐是不是鲁棒。实验效果如下面这些 gif。左侧是输入,右侧为对齐后的结果。

更多细节可以在论文对应 github上找到。

5.相关阅读

其实本文本质上是对输入做了处理,使得后面识别更简单,希望能更容易找到有区分能力的特征。同时不需要利用额外标注信息。 与本文相关,还有一些更显式的做法,利用pose定点。大家有兴趣的话,还可以看以下这些paper。

[1] [1701.07732] Pose Invariant Embedding for Deep Person Re-identification (https://arxiv.org/abs/1701.07732) [2] http://openaccess.thecvf.com/content_cvpr_2017/papers/Zhao_Spindle_Net_Person_CVPR_2017_paper.pdf

文章链接:

[1707.00408] Pedestrian Alignment Network for Large-scale Person Re-identification(https://arxiv.org/abs/1707.00408)

代码链接:

layumi/Pedestrian_Alignment(https://github.com/layumi/Pedestrian_Alignment)

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

深度学习VGG模型核心拆解

如今深度学习发展火热,但很多优秀的文章都是基于经典文章,经典文章中的一句一词都值得推敲和分析。此外,深度学习虽然一直被人诟病缺乏足够令人信服的理论,但不代表我们...

7048
来自专栏企鹅号快讯

机器学习算法分类与其优缺点分析

机器学习算法的分类是棘手的,有几种合理的分类,他们可以分为生成/识别,参数/非参数,监督/无监督等。 例如,Scikit-Learn的文档页面通过学习机制对算法...

2197
来自专栏IT派

深度学习必知必会25个概念

导语:很多人认为深度学习很枯燥,大部分情况是因为对深度学习的学术词语,特别是专有名词很困惑,即便对相关从业者,亦很难深入浅出地解释这些词语的含义。本文编译自An...

3065
来自专栏人工智能

马里兰大学帕克分校提出对“损失函数”进行“可视化”,以提高神经网络的训练能力

原文来源:arxiv 作者:Hao Li、Zheng Xu、Gavin Taylor、Tom Goldstein 「雷克世界」编译:嗯~阿童木呀、KABUDA ...

2267
来自专栏数据派THU

CVPR清华大学研究新成果,高效视觉目标检测框架RON

来源:新智元 作者:孙涛,孙富春等 编译:熊笑 本文长度为2200字,建议阅读4分钟 本文为你介绍高效视觉目标检测框架RON。 [ 导读 ]当前最好的基于深度网...

2365
来自专栏闪电gogogo的专栏

吴恩达机器学习笔记

(1)Field of study that gives computers the ability to learn without being explic...

861
来自专栏小樱的经验随笔

浅谈关于特征选择算法与Relief的实现

一、 背景 1) 问题 在机器学习的实际应用中,特征数量可能较多,其中可能存在不相关的特征,特征之间也可能存在相关性,容易导致如下的后果: 1.     特征个...

1.3K5
来自专栏机器之心

学界 | CMU&FAIR ICCV论文:通过传递不变性实现自监督视觉表征学习

选自arXiv 机器之心编译 参与:路雪、黄小天 通过自监督学习学习视觉表征在计算机视觉领域逐渐开始流行。本文提出可通过不变性的传递实现视觉表征自监督学习,该网...

34815
来自专栏语言、知识与人工智能

transformer框架概述

3.6K8
来自专栏机器学习算法与Python学习

支持向量机(SVM)--3

上次说到支持向量机处理线性可分的情况,这次让我们一起学习一下支持向量机处理非线性的情况,通过引进核函数将输入空间映射到高维的希尔伯特空间,进而将线性不可...

3525

扫码关注云+社区