定义

是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。给定一张切好块的行人图像 (probe image,), 从一大堆切好块的图像 (gallery images) 中找到同一身份的人的图像。这些图像通常是由不同摄像头拍摄的不连续帧。

主要技术方案


1. 基于表征学习的ReID方法

CNN自动从原始的图像数据中根据任务需求自动提取出表征特征(Representation),然后把行人重识别问题看做分类(Classification/Identification)问题或者验证(Verification)问题.

但是也有论文认为光靠行人的ID信息不足以学习出一个泛化能力足够强的模型。通过结合ID损失和属性损失能够提高网络的泛化能力。

2. 基于度量学习的ReID方法

2.1 对比损失(Contrastive loss)

对比损失用于训练孪生网络,可以使得正样本对之间的距离逐渐变下,负样本对之间的距离逐渐变大,从而满足行人重识别任务的需要。

2.2 三元组损失(Triplet loss)

三张图片分别命名为固定图片(Anchor) a ,正样本图片(Positive)p和负样本图片(Negative) n 。考虑正负样本对之间的相对距离.

2.3 四元组损失(Quadruplet loss)

四张图片为固定图片(Anchor) a ,正样本图片(Positive) p ,负样本图片1(Negative1) n1 和负样本图片2(Negative2) n2 。其中 n1 和 n2 是两张不同行人ID的图片,其结构如上图所示。则四元组损失表示为:

2.4 边界挖掘损失(Margin sample mining loss, MSML)

3. 基于局部特征的ReID方法

3.1 PCB-RPP

> 1. 提出了均匀分块的 Part-based Convolutional Baseline(PCB),探讨了较优的块间组合方式
> 2. 提出了基于 parts 的 Refined part pooling(RPP),用注意力机制来对齐 parts

3.2 基于骨架仿射变换对齐

3.3 Spindle Net

对于输入的一张行人图片,有一个预训练好的骨架关键点提取CNN(蓝色表示)来获得14个人体关键点,从而得到7个ROI区域,其中包括三个大区域(头、上身、下身)和四个四肢小区域。

3.4 AlignedReID链接

实现了自动对齐,首次超越人工识别.

  • 特点1:动态规划
    为了解决两幅图像之间的 Part对齐问题,分别提取局部特征和全局特征,通过N*N的距离矩阵描述最短路径即是两幅图像最佳的Local 匹配。
  • 特点2: 协同学习
  • 特点3: reRanking

3.5 EANet链接

  • 特点1:部件对齐池化(PAP: Part Aligned Pooling)
    其实就是根据骨架关键点先验知识,在feature map上进行纵向划分;
  • 特点2:部件分割约束(PS Constraint)
    发现meature map特征冗余性很强,所以添加一个正则约束,也就是和预训练的不见分割器所产生的部件伪标签对比,增加Conv5后meature map特征的空间区分性,减少相关度.

    4. 基于视频序列的ReID方法

    累计运动背景网络(AMOC)

    1) 首先训练了一个运动信息网络(Moti Nets)。这个运动网络输入为原始的图像序列,标签为传统方法提取的光流序列,输出光流序列;
    2) AMOC拥有空间信息网络运动信息网络两个子网络。图像序列的每一帧输入到Spat Nets来提取图像的全局内容特征,相邻的两帧将会送到Moti Nets来提取光流图特征。

5. 基于GAN造图的ReID方法

ReID的其中一个难点就是姿态的不同,通过每一张图片都生成标准的n个pose来实现不见对齐.

Person Re-ID行人重试别梳理的更多相关文章

  1. Person Re-ID行人重试别数据集

    1. 杜克大学数据(DukeMTMC-reID) DukeMTMC 数据集是一个大规模标记的多目标多摄像机行人跟踪数据集.它提供了一个由 8 个同步摄像机记录的新型大型高清视频数据集,具有 7,000 ...

  2. Akka源码分析-Persistence-AtLeastOnceDelivery

    使用过akka的应该都知道,默认情况下,消息是按照最多一次发送的,也就是tell函数会尽量把消息发送出去,如果发送失败,不会重发.但有些业务场景,消息的发送需要满足最少一次,也就是至少要成功发送一次. ...

  3. 浅谈PHP数据结构之单链表

    什么是链表?(依据百度词条查询而得) 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每个元素称为结点)组成,结点能够在执 ...

  4. [转帖]微软宣布加入 OpenJDK 项目

    微软宣布加入 OpenJDK 项目 https://news.cnblogs.com/n/646003/ 近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含 ...

  5. 微软宣布加入 OpenJDK,打不过就改变 Java 未来!

    近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区. 在邮件中,Bruno Borges ...

  6. (四) appium-desktop 脚本录制常用AW使用介绍

    通过使用appium-desktop录制脚本,编写app自动化脚本的过程中,会使用到一些AW,下面就这些AW的使用方法做详细的介绍.通过实践可以看到这几个AW可以完成测试工作. AWOpenGiveP ...

  7. 微软宣布加入 OpenJDK 项目

    近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区.在邮件中,Bruno Borges ...

  8. Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020)

    Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020) 1. Motivation 可见 ...

  9. atomic 原子自增工程用法案例

    案例 1 : 简单用法 atomic_int id; atomic_fetch_add(&id, 1) atomic_uint id; atomic_fetch_add(&id, 1) ...

随机推荐

  1. Confluence 6 导入模板的定义

    模板是一个预先定义的页面,这个预先定义的页面可以在创建新页面的时候预先载入.模板能够给一个页面统一的样式或格式. 你可以在 Confluence 中创建你自己的模板,请查看页面 Create a Te ...

  2. 暑假里的第八篇Java

    日期:2018.9.1 博客期:008 星期六 这几天刚到学校,Java方面写的少了!目前在做老师头放假前发布的那一套题目,就是哪个Java程序测试卷.至于自己能不能都做出来我自己心里十分清楚!今天就 ...

  3. ES6笔记

    /** * Created by Administrator on 2017/4/13. */ /*---------------------Es6编码规范---------------------* ...

  4. poj2417 bsgs算法非逆元模板,用于求解A^x=B(mod C)的方程

    参考博客 https://blog.csdn.net/clover_hxy/article/details/50683832关于欧拉定理推论的证明 https://www.cnblogs.com/as ...

  5. queryset优化 。。。。。exists()与iterator()方法

    exists()方法!! 判断queryset是否有值存在.exists()    只会查询一个字段 .正常会查所有!!! iterator()方法 objs = Book.objects.all() ...

  6. js中json对象数组按对象属性排序(sort方法)---2(根据拼音排序汉字和排序英文)

    本例主要实现 中文汉字按拼音排序的方法和英文按照首字母排序的方法. 要排序的数据: //要排序的数据 let data = [ {chinese: '蔡司', english: 'Chase'}, { ...

  7. ftp的自动部署以及添加虚拟账户的脚本

    #!/bin/bash #本脚本为自动化安装vsftp,使用虚拟用户认证登录ftp上传下载文件 echo =============================================== ...

  8. ActiveMQ使用的设计模式

    注:接收不需要连接池,而发送需要连接池,是因为,接收在启动项目时就要注册监听,数目是固定的,而发送则会随着时间数目不断在变动,需要连接池,性能更优. 重点代码: private static void ...

  9. 在 Python 中使用 JSON

    在 Python 中使用 JSON 本教程将会教我们如何使用 Python 编程语言编码和解码 JSON.让我们先来准备环境以便针对 JSON 进行 Python 编程. 环境 在我们使用 Pytho ...

  10. MariaDB修改默认字符集

    MariaDB修改默认字符集,以及创建数据库授权 1 . 修改server默认字符集utf8 [root@aws my.cnf.d]# vim /etc/my.cnf.d/server.cnf [my ...