Person Re-ID行人重试别梳理
定义
是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。给定一张切好块的行人图像 (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行人重试别梳理的更多相关文章
- Person Re-ID行人重试别数据集
1. 杜克大学数据(DukeMTMC-reID) DukeMTMC 数据集是一个大规模标记的多目标多摄像机行人跟踪数据集.它提供了一个由 8 个同步摄像机记录的新型大型高清视频数据集,具有 7,000 ...
- Akka源码分析-Persistence-AtLeastOnceDelivery
使用过akka的应该都知道,默认情况下,消息是按照最多一次发送的,也就是tell函数会尽量把消息发送出去,如果发送失败,不会重发.但有些业务场景,消息的发送需要满足最少一次,也就是至少要成功发送一次. ...
- 浅谈PHP数据结构之单链表
什么是链表?(依据百度词条查询而得) 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每个元素称为结点)组成,结点能够在执 ...
- [转帖]微软宣布加入 OpenJDK 项目
微软宣布加入 OpenJDK 项目 https://news.cnblogs.com/n/646003/ 近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含 ...
- 微软宣布加入 OpenJDK,打不过就改变 Java 未来!
近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区. 在邮件中,Bruno Borges ...
- (四) appium-desktop 脚本录制常用AW使用介绍
通过使用appium-desktop录制脚本,编写app自动化脚本的过程中,会使用到一些AW,下面就这些AW的使用方法做详细的介绍.通过实践可以看到这几个AW可以完成测试工作. AWOpenGiveP ...
- 微软宣布加入 OpenJDK 项目
近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区.在邮件中,Bruno Borges ...
- 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 可见 ...
- atomic 原子自增工程用法案例
案例 1 : 简单用法 atomic_int id; atomic_fetch_add(&id, 1) atomic_uint id; atomic_fetch_add(&id, 1) ...
随机推荐
- Confluence 6 配置 XSRF 保护
Confluence 需要一个 XSRF 令牌才能创建一个评论,这个被用来保护用户不在评论区恶意发布内容.所有 Confluence 自定义的主题都被启用了这个功能,但是如果你使用自定义主题的话,可能 ...
- django之ORM数据库操作
一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...
- 【linux】安装python依赖库confluent_kafka
想跑https://github.com/ghaughian/mongo-kafka-spark/blob/master/src/pub.py这个程序,发现没有confluent_kafka库 1.p ...
- 《剑指offer》 链表中倒数第k个节点
本题来自<剑指offer> 链表中倒数第k个节点 题目: 输入一个链表,输出该链表中倒数第k个结点. 思路: 倒数第k个节点,而且只能访问一遍链表,定义两个节点,两者之间相差k个距离,遍历 ...
- ubuntu MySQL配置文件
查看配置文件: locate my.cnf 查看配置文件路径: /记得要在配置环境变量后执行下列命令 which mysqld /usr/local/mysql/bin/mysqld --verbos ...
- poj2411 状态压缩-铺地板题型-轮廓线解法(最优)
解法参考博客https://blog.csdn.net/u013480600/article/details/19569291 一种做法是先打出所有的状态,即满足上下配对的所有可能方案,然后再逐行进行 ...
- ural1018依赖背包-边权
其实用点权更简单,但这种做法是边权的 /* 依赖背包问题 dp[u][k]表示u结点往下共走k步的最大值 */ #include<iostream> #include<cstring ...
- C++ GetSystemDirectory()
关于GetSystemDirectory function,参考:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724373(v ...
- azkaban安装使用
本文记录azkaban的安装和 一些报错处理(文章末尾). AzKaban组成 MySQL数据库,azkaban-server (web端),azkaban-executor (执行job) 1.下载 ...
- sqlserver数据库不能重命名报错5030
在学习asp.net的时候使用mssql'经常会出现这种错误,数据库不能重名名5030的错误,其实很简单原因就是有应用程序正在占用这个连接,使用这样一行命令就可以查询出正在占用的连接 use mast ...