Introduction

文章主要提出了 Dynamic Graph Matching(DGM)方法,以非监督的方式对多个相机的行人视频中识别出正确匹配、错误匹配的结果。本文主要思想如下图:

具体而言:方法采用迭代的方式,每次迭代生成一个二部图(bipartite),估计标签并学习区分矩阵。通过不断迭代,标签准确率提高,矩阵区分度更显著。方法加入了重新加权策略(re-weighting),提供软标签而不是硬标签,来降低标签的误差。

Graph Matching for Video Re-ID

(1)挖掘标签信息:

假设相机A拍摄的未标签图 GA 包含 m 个行人,表示为 [A] = {xai | i = 1, 2, ..., m};

相机B拍摄的图 GB 包含 n 个行人,表示为 [B]0 = {xbj | j = 0, 1, 2, ..., n},[B]0 指除了 n 个元素外包含0元素(为什么加上0元素?)。

目标函数:

其中 y = {yij} 表示 i 和 j 是否表示同一个行人,C = {C(i, j)} 为损失矩阵,其每个元素表示 i 到 j 的距离,计算为:(个人觉得这只是粗略提一下,具体损失函数在下面细说)

(2)惩罚函数:

总体惩罚函数:

Sequence Cost (CS) 惩罚匹配视频序列之间的差距:

Neighborhood Cost(CN)惩罚匹配视频邻居之间的差距:

其中和 表示相机A的第 i 个邻居行人和相机B的第 j 个邻居行人(即同一个人),k 为邻居参数,在本实验中 k 设置为5.

存在约束条件:

其中 分别是的邻居;

由于不等式的右侧三项均是很小的正项,因此也是个很小的正项,即:

Dynamic Graph Matching

(1)标签重新加权:

① positive re-weighting:

对于 y = 1 的项,设置软标签,可以过滤一些误报,然后分配不同的正样本对不同的权重:

② negative re-weighting:

对于 y = 0 的项,设置硬标签,过滤比较明显的负样本对:

其中设置 ,Cm 为 C 的均值,可参照下图进行理解:

总结:

(2)采用重新加权标签进行矩阵学习:

矩阵学习损失函数:

其中 c0 位一个正数,定义为两个相机的平均距离,马氏距离函数为:

矩阵学习目标函数:

其中 wij 为平衡正负样本对的平衡因子,如果为正样本对,,如果是负样本对,

(3)算法描述:

Experiment

(1)实验设置:

① 数据集:PRID-2011、iLIDS-VID、MARS;

② 特征提取:提取帧特征 LOMO,所有图片帧正规化为 128*64,采用PCA方法将特征维度压缩至600维;

③ 参数设置:迭代次数10次,λ = 0.5;

④ 实验环境:PC with i7-4790K @4.0 GHz CPU and 16GB RAM

(2)自我评估:

① 迭代效果:

② 重新加权效果:

③ 标签评估效果:

(3)对比监督学习:

(4)其他方法对比实验:

论文阅读笔记(十七)【ICCV2017】:Dynamic Label Graph Matching for Unsupervised Video Re-Identification的更多相关文章

  1. 论文阅读笔记十七:RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation(CVPR2017)

    论文源址:https://arxiv.org/abs/1611.06612 tensorflow代码:https://github.com/eragonruan/refinenet-image-seg ...

  2. 论文阅读笔记(十九)【ITIP2017】:Super-Resolution Person Re-Identification With Semi-Coupled Low-Rank Discriminant Dictionary Learning

    Introduction (1)问题描述: super resolution(SP)问题:Gallery是 high resolution(HR),Probe是 low resolution(LR). ...

  3. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  4. [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering

    [论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...

  5. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...

  6. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  7. [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati

    [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...

  8. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  9. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

随机推荐

  1. 死磕java(3)

    流程控制 if else // do while// switch case// while do// break// continue// 相关查询百度

  2. qt5实现简单布局

    layout.h #ifndef LAYOUT_H #define LAYOUT_H #include <QtWidgets/QDialog> #include <QLabel> ...

  3. Java入门基础(变量、操作符与表达式)

    Java入门基础 1. 第一个程序 2.变量(命名.运算.整数/小数/字符串.布尔类型) 3.操作符与表达式(算术/逻辑/关系/赋值/自增/类型转换操作符) HelloWorld! public cl ...

  4. WeChall_Training: PHP LFI (Exploit, PHP, Training)

    Your mission is to exploit this code, which has obviously an LFI vulnerability: GeSHi`ed PHP code 1 ...

  5. 关于SQL Server 2012 手动安装帮助文档

    大家以为安装帮助文档很简单,但是其实不然,这其中还有那么一点点道道.今天我就来给大家演示一下! 首先到microsoft官网上下载Microsoft SQL Server 2012 产品文档,然后将. ...

  6. 使用logstash结合logback收集微服务日志

    因为公司开发环境没有装elk,所以每次查看各个微服务的日志只能使用如下命令 这样子访问日志是并不方便,于是想为每个微服务的日志都用logstash收集到一个文件out中,那以后只要输出这个文件则可查看 ...

  7. SpringBoot之ApplicationRunner接口和@Order注解

    我们在开发中可能会有这样的情景.需要在容器启动的时候执行一些内容.比如读取配置文件,数据库连接之类的.SpringBoot给我们提供了ApplicationRunner接口来帮助我们实现这种需求.该接 ...

  8. 【TensorFlow】TensorFlow获取Variable值,将Variable保存为list数据

    Variable类型对象不能直接输出,因为当前对象只是一个定义. 获取Variable中的浮点数需要从数据流图获取: initial = tf.truncated_normal([3,3], stdd ...

  9. [Effective Java 读书笔记] 第二章 创建和销毁对象 第三 四条

    第三条 用私有构造器或者枚举类型强化singleton属性 singleton指只能被实例化一次的类,即将构造器设置为私有,使用公有静态成员来实例化,且只实例化一次对象 第四条 通过私有构造器强化不可 ...

  10. Windows远程连接Ubuntu上的MySQL数据库

    原因:mysql安装好后,默认监听3306端口,并且只允许localhost访问,只允许root用户在localhost上登录.   我的环境:                 Ubuntu16.04 ...