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行人重识别算法论文解读的更多相关文章

  1. 行人重识别(ReID) ——基于深度学习的行人重识别研究综述

    转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...

  2. 行人重识别(ReID) ——数据集描述 Market-1501

    数据集简介 Market-1501 数据集在清华大学校园中采集,夏天拍摄,在 2015 年构建并公开.它包括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的 1501 个行人.32668 个 ...

  3. 行人重识别(ReID) ——概述

    什么是Re-ID? 行人重识别(Person re-identification,简称Re-ID)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术.广泛被认为是一个图像 ...

  4. 行人重识别(ReID) ——数据集描述 CUHK03

    数据集简介 CUHK03是第一个足以进行深度学习的大规模行人重识别数据集,该数据集的图像采集于香港中文大学(CUHK)校园.数据以"cuhk-03.mat"的 MAT 文件格式存储 ...

  5. 行人重识别(ReID) ——数据集描述 DukeMTMC-reID

    数据集简介 DukeMTMC 数据集是一个大规模标记的多目标多摄像机行人跟踪数据集.它提供了一个由 8 个同步摄像机记录的新型大型高清视频数据集,具有 7,000 多个单摄像机轨迹和超过 2,700 ...

  6. 行人重识别(ReID) ——技术实现及应用场景

    导读 跨镜追踪(Person Re-Identification,简称 ReID)技术是现在计算机视觉研究的热门方向,主要解决跨摄像头跨场景下行人的识别与检索.该技术能够根据行人的穿着.体态.发型等信 ...

  7. 端到端文本识别CRNN论文解读

    CRNN 论文: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Applica ...

  8. 行人重识别和车辆重识别(ReID)中的评测指标——mAP和Rank-k

    1.mAP mAP的全称是mean Average Precision,意为平均精度均值(如果按照原来的顺利翻译就是平均均值精度).这个指标是多目标检测和多标签图像分类中长常用的评测指标,因为这类任务 ...

  9. 行人重识别(ReID) ——基于Person_reID_baseline_pytorch修改业务流程

    下载Person_reID_baseline_pytorch地址:https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/ ...

随机推荐

  1. Vulkan移植GpuImage(四)从D到O的滤镜

    现把D到O的大部分滤镜用vulkan的ComputeShader实现了,列举其中一些有点特殊的说明. GaussianBlurPosition 指定区域高斯模糊 没有按照GPUImage里的方式实现, ...

  2. 05- 移动端APP的分类 与对比webApp hybridApp nativeApp

    随着智能手机的普及,移动端应用几乎成为每个互联网产品的标配.在快速迭代的互联网战场中高效开发.低成本上线产品,是每个应用开发团队追求的目标.此时,选择合适的应用类型和开发模式便至关重要.移动应用可以粗 ...

  3. SQL注入平台(sqli-labs)搭建提示Fatal error: Uncaught Error:

    笔者搭建该平台时用的是phpstudy,估计wampserver和xmapp也适用 搭建过程中出现错误 在浏览器进入sqli-labs时有以下提示 Fatal error: Uncaught Erro ...

  4. (CV学习笔记)看图说话(Image Captioning)-2

    实现load_img_as_np_array def load_img_as_np_array(path, target_size): """从给定文件[加载]图像,[缩 ...

  5. 密码学系列之:NIST和SHA算法

    目录 简介 SHA1 SHA2 SHA3 简介 SHA算法大家应该都很熟悉了,它是一个用来计算hash的算法,目前的SHA算法有SHA1,SHA2和SHA3种.这三种算法都是由美国NIST制定的. N ...

  6. thymeleaf中[[${}]]与[(${})]的区别

    [[-]]会被转义,[(-)]不会. 假设在后台传入msg的值为 <b>AAA</b> 在前台这样使用 [[${msg}]]___[(${msg})] 展示效果 官方参考文档

  7. PHP基础-常用的数组相关处理函数

    一 数组键/值操作有关的函数 1. array_values()//获取数组中所有的值 $lamp=array("os"=>"linux", " ...

  8. mybatis增删改返回的int是-2147482646,并不是想要返回结果

    MyBatis发现更新和插入返回值一直为"-2147482646"的错误是由defaultExecutorType设置引起的,如果设置为batch,更新返回值就会丢失,返回结果就只 ...

  9. Vue(1):用Vue-cli构建Vue3项目

    使用Vue-cli构建Vue3项目 1.检查node版本 node -v 以上node版本位14.15.0满足Vue3项目的创建条件(Vu3需要node 版本8以上) 为什么需要安装node? vue ...

  10. 一种巧妙的使用 CSS 制作波浪效果的思路

    在之前,我介绍过几种使用纯 CSS 实现波浪效果的方式,关于它们有两篇相关的文章: 纯 CSS 实现波浪效果! 巧用 CSS 实现酷炫的充电动画 本文将会再介绍另外一种使用 CSS 实现的波浪效果,思 ...