Deep Attributes Driven Multi-Camera Person Re-identification 
2017-06-28  21:38:55  

  【Motivation】

  本文的网络设计主要分为三个部分:

    Stage 1: Fully-supervised dCNN training
    Stage 2: Fine-tuning using attributes triplet loss
    Stage 3:Final fine-tuning on the combined dataset

  

  大致的网络网络结构以及流程图,如下所示:

  从这里,可以大致看出本文 属性识别的方法:sem-supervised learning 的方法来提升 网络识别能力,之所以识别能力不强,是因为现有的 attribute dataset 都是非常小的,这就导致了 deep neural network 训练不够充分,而手工标注这些数据又非常的困难,耗时费力。比较尴尬。。。

  

  本文首先在全部标注的行人属性识别网络上进行 监督训练,以得到初始的【属性识别网络】,此时的识别网络能力是不足的,即:weak。如何进一步的提升属性识别的能力呢?本文考虑到这么一个现象【同一个人的属性,应该有类似的属性识别结果】,基于该观察,作者利用 triplet loss function,在 instance 的基础上进行属性识别能力的改进:

  【三元组的构建】

  1. select an anchor sample

  2. select another positive sample with the same person ID ;

  3. select a negative sample with different person ID.

  

  而这部分网络训练的目标是:使得同一个人的属性输出结果尽可能的一致,而不同 instance 之间的属性输出结果差距尽可能的大,作者称该 triplet loss 为:attribute triplet loss。这部分的目标函数为:

  

  其中,D(.) 代表两个二元属性向量之间的距离函数,所以对应的损失函数可以表达为:

  

    其中 E 表示 triplet 的个数。

  但是,作者提到上述损失函数可能存在一些问题:the person ID label is not strong enough to train the dCNN with accurate attributes. Without proper constraints, the above loss function may generate meaningless attribute labels and easily overfit the training dataset U.

  于是,作者在上述损失函数的基础上添加了几条规则化项:

  

  公式(4)不仅确保了同一个人拥有相似的属性,并且避免了meaningless attribute。

  

  【在组合的数据集上进行微调】:

  用第二部分得到微调后的网络,预测一部分无标签数据,并且将这部分无标签数据 和 原始标注好的数据,一起来微调 属性识别网络。

  

  最后,就是如何利用这些属性进行最终的再识别???

  其实就是依赖于 属性之间的差距,借用作者摘要当中的话来说就是:

  By directly using the deep attributes with simple Cosine distance, we have obtained surprisingly good accuracy on four person ReID datasets. Experiments also show that a simple distance metric learning modular further boosts our method, making it significantly outperform many recent works.  
  

  

论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification的更多相关文章

  1. 论文笔记——A Deep Neural Network Compression Pipeline: Pruning, Quantization, Huffman Encoding

    论文<A Deep Neural Network Compression Pipeline: Pruning, Quantization, Huffman Encoding> Prunin ...

  2. 论文笔记:Deep feature learning with relative distance comparison for person re-identification

    这篇论文是要解决 person re-identification 的问题.所谓 person re-identification,指的是在不同的场景下识别同一个人(如下图所示).这里的难点是,由于不 ...

  3. 论文笔记:Deep Residual Learning

    之前提到,深度神经网络在训练中容易遇到梯度消失/爆炸的问题,这个问题产生的根源详见之前的读书笔记.在 Batch Normalization 中,我们将输入数据由激活函数的收敛区调整到梯度较大的区域, ...

  4. 论文笔记:Deep Attentive Tracking via Reciprocative Learning

    Deep Attentive Tracking via Reciprocative Learning NIPS18_tracking Type:Tracking-By-Detection 本篇论文地主 ...

  5. 论文笔记(4)-Deep Boltzmann Machines

    Deep Boltzmann Machines是hinton的学生写的,是在RBM基础上新提出的模型,首先看一下RBM与BM的区别 很明显可以看出BM是在隐含层各个节点以及输入层各个节点都是相互关联的 ...

  6. 论文笔记 Pose-driven Deep Convolutional Model for Person Re-identification_tianqi_2017_ICCV

    1. 摘要 为解决姿态变化的问题,作者提出Pose-driven-deep convolutional model(PDC),结合了global feature跟local feature, 而loc ...

  7. 深度学习论文笔记:Deep Residual Networks with Dynamically Weighted Wavelet Coefficients for Fault Diagnosis of Planetary Gearboxes

    这篇文章将深度学习算法应用于机械故障诊断,采用了“小波包分解+深度残差网络(ResNet)”的思路,将机械振动信号按照故障类型进行分类. 文章的核心创新点:复杂旋转机械系统的振动信号包含着很多不同频率 ...

  8. 论文笔记 — L2-Net: Deep Learning of Discriminative Patch Descriptor in Euclidean Space

    论文: 本文主要贡献: 1.提出了一种新的采样策略,使网络在少数的epoch迭代中,接触百万量级的训练样本: 2.基于局部图像块匹配问题,强调度量描述子的相对距离: 3.在中间特征图上加入额外的监督: ...

  9. 论文笔记《Deep Hand: How to Train a CNN on 1 Million Hand Images When Your Data Is Continuous and Weakly Labelled》

    一.概述 这个是最近的核心工作了,基本上都是靠着这篇paper的model过日子了啊.. 论文主要讲的是hand gesture recognition,实际上是用googlenet做的一个class ...

随机推荐

  1. Acperience (英语阅读 + 数学推导)

    #include<bits/stdc++.h> using namespace std; int main(){ int T,n,m;scanf("%d",&T ...

  2. Java基础语法(三)

    七.方法 定义: 方法就是完成特定功能的代码块 在很多语言里面都有函数的定义 函数在Java中被称为方法 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) { 函数体; ...

  3. Java基础语法(二 )

    五.运算符 *算术运算符 *赋值运算符 *关系运算符 *逻辑运算符 *位运算符 *三目运算符 算术运算符 *+,-,*,/都是比较简单的操作 *+的几种作用: 加法 正数 字符串连接符 *除法的时候要 ...

  4. 【Hadoop学习之一】Hadoop介绍

    一.概念 Hadoop是一个能够对大量数据进行分布式处理的软件框架,充分利用集群的威力进行高速运算和存储. 二.主要模块Hadoop Common:支持其他Hadoop模块的常用实用程序.Hadoop ...

  5. Log4j基础知识

    Log4J是Apache的一个开放源代码的项目.通过使用Log4J,程序员可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日 ...

  6. Properties (25)

    1.Properties 没有泛型.也是哈希表集合,无序集合.{a=1,b=2,c=3}   2. 读取文件中的数据,并保存到集合   (Properties方法:stringPropertyName ...

  7. Spark With Mongodb 实现方法及error code -5, 6, 13127解决方案

    1.spark mongo 读取 val rdd = MongoSpark.builder().sparkSession(spark).pipeline(Seq(`match`(regex(" ...

  8. Linux基础命令---切换用户su

    su 临时切换身份到另外一个用户,使用su切换用户之后,不会改变当前的工作目录,但是会改变一些环境变量. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUS ...

  9. 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  10. Twemproxy和Redis性能压力测试

    性能测试 Redis自带了一个叫 redis-benchmark的工具来模拟N个客户端同时发出M个请求,(类似于Apache ab程序),你可以使用redis-benchmark -h来查看基准参数. ...