Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function

CVPR 2016

  摘要:跨摄像机的行人再识别仍然是一个具有挑战的问题,特别是摄像机之间没有重叠的观测区域。本文中我们提出一种 多通道 基于part 的卷积神经网络模型,并且结合 改善的三元组损失函数 来进行最终的行人再识别。具体来说,所提出的 CNN 是由多个channel构成的,可以联合的学习 global full-body 和 local body-parts feature of the input persons.

  引言:行人在识别依然存在的挑战:

    1. 不同摄像机下,剧烈的形变 和 混杂的环境 ;

    2. 随着时空变化导致的 行人姿态的剧烈变化 ;

    3. 背景的复杂 和 遮挡 ;

    4. 不同的个体之间可能共享相似(想死)的外观 ;

  此外,脸部的遮挡或者不可见,使得许多生物学的方法并不适应。下图展示了相关的数据集:

  

  给定一张所要找寻的行人图像,在一系列候选中,去寻找,需要解决两个问题:

  1. 好的图像特征 来表示 target images 和 candidate images ;

  2. 合适的距离度量 不可避免的来确定候选中是否存在 target image 。

  现有的方法大部分都集中精力于 第一种思路。当双方的特征都提取完毕后,就开始选择标准的距离度量来决定 image pairs 的相似度。

  

  而本文就着眼于 将这两个独立的阶段,联合的进行处理,即:Joint feature extraction and distance metric learning.

  为了更好的学习特征,我们提出一种新的,多通道的 CNN 模型,可以学习到 行人全身 和 部分的特征。然后将这两个特征 concatenate 在一起,输入给网络的 fc 层,最终进行预测。

  此外,借助于 三元组损失函数的思想,本文做了稍微的改动,即:

    原本的三元组要求:only require the intra-class feature distances to be less than the inter-class ones ;

    而改善后损失函数进一步的要求: the intra-class feature distances to be less than a predefined margin.

  实验结果表明这个小的改动可以提升将近 4个点 !

  本文的所提出的 CNN model 和 改进的三元组损失函数 可以认为是学习一个映射函数,使得能够将原始 raw image 映射成 一个特征空间,该特征空间使得同一个人的图像距离 小于 不同行人的图像距离。所以,所提出的框架,可以学习到最优的特征和距离度量,从而更好的进行行人的在识别任务。

  接下来 废话少来,我们先看大致流程框架:

  像上图所展示的那样:

  本文是用三个网络结构来学习三个图像,这其中有两个相同身份的 human,另一个是 negative images。目标就是使得其中相同的行人之间的距离 小于 不同身份的图像距离。

  

  具体来讲,关于 multi-channel parts-based CNN model 主要体现在以下几点:

  主要是由以下几个 layer 构成的:

  1. one global convolutional layer ;

  2. one full-body convolution layer ;

  3. four body-part convolutional layers ;

  4. five channel-wise full connection layers ;

  5. one network-wise full connection layer.

  看起来很复杂的一个网络结构,被细分为这几个分支之后,就显得不那么复杂了,但是却取得了不错的效果。因为这种网络结构很暴力啊,感觉,这种细分到 part 的网络结构,如果不是自动定位的 part,那么就会显得非常的不智能。

  然后,就是改善的三元组损失函数了。

  但是,这个损失函数并没有显示的表示:target image 和 positive image 之间的距离应该有多近。所造成的一个结果,就可能是:属于同一个行人的 instance 可能构成一个大的 cluster,并且有一个较大的 intra-class distance in the learned feature space. 明显的是,并没有一个需要的输出,这不可避免的会损害再识别的性能。

  基于以上观察,我们做了相应的改进。我们添加了相应的新的损失函数来增强约束。target image 和 positive image 之间的距离应该小于一个阈值 $\tau_2$, 并且这个阈值应该小于 $\tau_1$。

  这个改进的损失函数进一步的拉近了同一个human之间的距离,并且拉远了 不同行人之间的距离。

  其中,N 是triplet训练样本的个数,$\beta$ 平衡了类别内部 和 类别之间 的约束。距离函数 d(. , .) 是 L2-norm distance.


  训练算法

  


总结:

  总体来说,感觉还是比较暴力的解决方案。一方面来说,文章提出了一种利用 human part 和 global body 进行精细化识别的框架来提供更加有效的 feature。另一方面,改善了三元组损失函数,使得最终的训练更加有效。 这是本文中,两个最重要的创新点。

  但是,对于行人 part 的定位文章并未做详细描述,估计是靠手工标注来完成的。那么,这个就有点 low 了。。。

  

  

论文笔记之: Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function的更多相关文章

  1. 论文笔记:语音情感识别(三)手工特征+CRNN

    一:Emotion Recognition from Human Speech Using Temporal Information and Deep Learning(2018 InterSpeec ...

  2. 深度学习论文笔记:Fast R-CNN

    知识点 mAP:detection quality. Abstract 本文提出一种基于快速区域的卷积网络方法(快速R-CNN)用于对象检测. 快速R-CNN采用多项创新技术来提高训练和测试速度,同时 ...

  3. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  4. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  5. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  6. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  7. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  8. Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型

    看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...

  9. 论文笔记(1):Deep Learning.

    论文笔记1:Deep Learning         2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...

随机推荐

  1. hdu4758Walk Through Squares(ac自动机+dp)

    链接 dp[x][y][node][sta] 表示走到在x,y位置node节点时状态为sta的方法数,因为只有2个病毒串,这时候的状态只有4种,根据可走的方向转移一下. 这题输入的是m.N,先列后行, ...

  2. mac 文本编辑器 文本编码Unicode utf-8 不适用的问题

    在mac上使用默认的文本编辑器打开下载的xx.txt文件,如果文本是gbk的编码可能会出现 文本编码Unicode utf-8 不适用的打开错误,如下图 解决方式: 文本编辑---偏好设置-----打 ...

  3. linux笔记:用户和用户组管理-用户配置文件

    用户信息文件(/etc/passwd): 影子文件(/etc/shadow) 组信息文件(/etc/group)和组密码文件(/etc/gshadow):

  4. Github上传代码菜鸟超详细教程【转】

    最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...

  5. Centos 关闭后台进程 .sh 等

    命令后加 & 符号可以让其在后台运行 如: node app.js & 想要关闭分两步: ps aux | grep app.js 查看app.js  所运行的进程号 kill 进程号 ...

  6. java.util.concurrent包分类结构图

    摘自:http://blog.csdn.net/tsyj810883979/article/details/6956290

  7. linux 下mysql的安装,并设置必要的密码

    首先,我使用的是redhat linux ,版本号为: [root@localhost init.d]# cat /proc/version Linux version - (bhcompile@po ...

  8. 51nod 1158 全是1的最大子矩阵

    题目链接:51nod 1158 全是1的最大子矩阵 题目分类是单调栈,我这里直接用与解最大子矩阵类似的办法水过了... #include<cstdio> #include<cstri ...

  9. nodejs之process进程

    虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程.node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程( ...

  10. Unix 初步(一)

    1.Unix文件系统 Unix文件系统有三种文件类型:普通文件.目录文件和设备文件(将外部设备作为一种特殊的文件进行管理,实现输入输出统一而单纯的操作.) 2.Unix的网络功能 TCP/IP 3.r ...