CVPR2020行人重识别算法论文解读
CVPR2020行人重识别算法论文解读
Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer
具有特定共享特征变换的跨模态行人重识别
摘要:
跨模态行人重识别对智能视频分析是一个难点,而又关键的技术。过去的研究主要集中在,将嵌入式不同模态放到同一个特征空间中,来训练常用的表现形式。但是,仅仅训练这些常用的特性,意味着会丢失大量的信息,降低特征显著性的上限。
本文中,通过推荐一个新的特定跨模态特征转换算法(称为cm-SSFT),探测模态共享信息和特定模态特性来克服这个限制,提升重识别的性能。依据不同模态特征示例内容,在不同模态之间转换共享和特定特征。推荐辅助特征研究策略,包括模态适应性,目标对抗训练,重构增强性能,分别学习每种形态的区别性和互补性的共同特征和具体特征。整个cm-SSFT算法能用端到端方式训练。用综合实验验证真个算法的优势,以及各个环节的效果。这个算法在两个主流数据集上将mAP分别提高22.5% 和 19.3%。
关注的任务是红外线-RGB跨模态行人重识别。主要想解决的问题是:以往大部分跨模态行人重识别算法一般都只关注shared feature learning,而很少关注Specific feature。因为Specific feature在对面模态中是不存在的。例如在红外线图片中是没有彩色颜色信息的。反之在彩图中也不会有热度信息。而实际上做过ReID的都知道,传统ReID之所以性能很高,很大程度上就是有些“过拟合”到了这些specific信息上。比如衣服颜色一直是传统ReID的一个重要的cue。于是从这个角度出发,想试图利用specific特征。主要思路是利用近邻信息。思路(motivation)是这样:给定一红外线query。当搜索彩色target时,可以先找到一些简单的置信度高的彩色样本(这些样本大概率是红外线query的positive样本),把这些彩色样本的颜色特异特征给与红外线query。做了这件事后,红外线query样本可以利用这些彩色信息再去搜索更难的彩色样本。这样做与传统做法的对比如下:
图1:motivation和与传统基于特征学习的方法的对比
基于这个思路,参考了以往使用GCN做传统ReID的一些方法。提出了自己的算法。本文会大致介绍一下该算法的流程。也会从介绍一些bad case和问题。欢迎各位讨论。整体pipeline如下:
1. shared and specific feature learning:
这里就是follow了以往的做法。现在主流工作都会有shared支路和specific支路去提取两种特征。在两个支路上进行训练,会使得backbone的整体判别力(discriminative)很强。具体细节可以参考。这里也同样follow了这个做法,使用two-stream网络学习shared和specific特征。
2. Shared and Specific Transfer Network
这里的思路主要是借鉴自SGGCN和Spectral Feature Transfer。这两篇工作使用GCN去做跨样本特征融合,本质上是平滑了特征,挖掘了样本间的联系。而这种做法恰好与要做的事情很吻合。前面的思路,即利用近邻关系将specific特征在样本间进行传递,本质也是个message passing的过程,所以在这里也利用这种思维。pipeline如下:
首先将每个样本的特征表示成三段式的形式:【RGB-sp,
sh, IR-sp】。
即认为每一个样本都有RGB特异特征,shared特征和红外线特异特征三段。只是对于RGB样本,其红外线特异部分是0。同样对于红外线样本,RGB特异部分是零。这种表示会便利于矩阵运算。整体特征矩阵写为:
之后使用特征计算出样本间的相似度矩阵A。而后利用矩阵A进行跨样本特征融合,会同时propagate三种特征,利用GCN公式进行特征传播:
这块的细节可以去参考原文,整体的思路就是利用近邻关系进行信息传递。会补全每个样本缺失的对面模态的specific
feature,而且GCN的平滑特性也会使得shared feature鲁棒性有所提高。最后三段式feature会被fusion进行训练。
3. Complementary Learning
这一段其实是当初投NIPS时被argue后加入的点。即有review认为specific和shared feature很容易学成一个feature,即实际上差不多。specific并不是真正的specific。所以这里利用了很多方式去给特征做解纠缠,这块思路恰好与CVPR另一篇做本任务的算法类似。大家可以去阅读那一篇。这里也示例下sh与sp特征是什么样子,进行了可视化:
Bad case讨论:实验细节可以见原文。本文最大的bad case其实是,这种做法在testing的时候需要multi-query。因为训练的时候其实每个batch内RGB和红外线图片有多张,但在测试时理论上query模态的图片只有一张(query自己),这会引起模态不平衡。所以初始Test时也包含了其他的query图片(当然是不会包含label的),但是这个做法实际上一定程度上违背了ReID的限制,即理论上不应该看见其他的query图片(所以定义除了当前query图片外的其他query图片为辅助集)。在原文中同样利用实验证明了辅助集对性能的影响:
可见即便单query也是有提高的。这里单query提高的原因思考为。即便query模态图片只有一张。但是gallery模态的图片有多张,gallery模态特异信息同样是有利用价值的。所以会带来提高。而在实际应用中,辅助集其实容易获得。库存中很容易会留存以往被检索过的query图片,所以并不会阻碍实际的应用潜力。这个问题也是未来会尝试解决的事情。
CVPR2020行人重识别算法论文解读的更多相关文章
- 行人重识别(ReID) ——基于深度学习的行人重识别研究综述
转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...
- 行人重识别(ReID) ——数据集描述 Market-1501
数据集简介 Market-1501 数据集在清华大学校园中采集,夏天拍摄,在 2015 年构建并公开.它包括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的 1501 个行人.32668 个 ...
- 行人重识别(ReID) ——概述
什么是Re-ID? 行人重识别(Person re-identification,简称Re-ID)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术.广泛被认为是一个图像 ...
- 行人重识别(ReID) ——数据集描述 CUHK03
数据集简介 CUHK03是第一个足以进行深度学习的大规模行人重识别数据集,该数据集的图像采集于香港中文大学(CUHK)校园.数据以"cuhk-03.mat"的 MAT 文件格式存储 ...
- 行人重识别(ReID) ——数据集描述 DukeMTMC-reID
数据集简介 DukeMTMC 数据集是一个大规模标记的多目标多摄像机行人跟踪数据集.它提供了一个由 8 个同步摄像机记录的新型大型高清视频数据集,具有 7,000 多个单摄像机轨迹和超过 2,700 ...
- 行人重识别(ReID) ——技术实现及应用场景
导读 跨镜追踪(Person Re-Identification,简称 ReID)技术是现在计算机视觉研究的热门方向,主要解决跨摄像头跨场景下行人的识别与检索.该技术能够根据行人的穿着.体态.发型等信 ...
- 端到端文本识别CRNN论文解读
CRNN 论文: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Applica ...
- 行人重识别和车辆重识别(ReID)中的评测指标——mAP和Rank-k
1.mAP mAP的全称是mean Average Precision,意为平均精度均值(如果按照原来的顺利翻译就是平均均值精度).这个指标是多目标检测和多标签图像分类中长常用的评测指标,因为这类任务 ...
- 行人重识别(ReID) ——基于Person_reID_baseline_pytorch修改业务流程
下载Person_reID_baseline_pytorch地址:https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/ ...
随机推荐
- jmeter响应时间与postman响应时间为什么不一样?
postman响应时间 是一个线程或者一个用户再者说是发送一次请求的响应时间,一般都是200ms一下: 而jmeter属于并行,就是多个用户去访问这个功能点或者接口,多个用户同时访问,就会造成压力,自 ...
- hdu4268贪心
题意: 两个人有一些图片,矩形的,问a最多能够覆盖b多少张图片.. 思路: 明显是贪心,但是有一点很疑惑,如果以别人为主,每次都用自己最小的切能覆盖敌人的方法就wa,而以自己为 ...
- 【原创】Centos8使用ansible
目录 使用ansible发布公钥 ansible基本命令 ansbile配置文件详解 一.使用ansible发布公钥 1.0 生成秘钥对 1.生成命令 ssh-keygen -t rsa# 推送单个公 ...
- 从苏宁电器到卡巴斯基第10篇:我在苏宁电器当营业员 II
之所以是主推,其实是有原因的 据我所知,尽管诺基亚卖的很好,但是他们的厂促的待遇却很一般,估计也就一千多两千的样子,撑死两千多.但是呢,记得当时我们的卖场里面还有联想手机,别看卖得相当次,但是他们的厂 ...
- Android Apk加固的初步实现思路(dex整体加固)
一.前 言 Android Apk加固的发展已经有一段时间了,相对来说本篇博客要记录的Android加壳的实现思路是4年的东西了,已经被老鸟玩烂了,Android加固的安全厂商也不会采用这么粗犷的方式 ...
- Python爬虫 XPath语法和lxml模块
XPath语法和lxml模块 什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. X ...
- Linux系统调用表
Linux系统调用表 记录下来,免得到处找 32位 int 0x80 %eax Name Source %ebx %ecx %edx %esx %edi 1 sys_exit kernel/exit. ...
- ElasticSearch7.10.0入门学习
ElasticSearch完成最关键的一个功能就是 大数据搜索 官网:https://www.elastic.co/cn/elasticsearch/ 简介 Elasticsearch 是一个分布式全 ...
- Github镜像网站
https://hub.fastgit.org
- 【maven】maven资源过滤问题<build>
需要在pom.xml加入以下代码(在父项目添加即可,如果还不行的话,就在子module的pom.xml也添加) <build> <resources> <resource ...