[阅读心得] 行人重识别经典论文——PCB&RPP

  • 写在前面
    • 1. Abstract
    • 2. Related Work
    • 3. PCB
      • 3.1 Architecture
      • 3.2 Within-Part Inconsistency
    • 4. RPP
      • 4.1 Architecture
      • 4.2 Induced Training
    • 5. Analysis

写在前面

通过将整体目标分为多个部分进行特征提取,在行人重识别领域已经被证实能够有效提升ReID性能。然而怎么分割更为合理、需不需要额外的标注工作仍然有待探索。本文也着重讨论了这两个问题。

1. Abstract

本文主要由两部分工作构成:

  1. 提出了一种简单的分部特征提取网络:PCB(Part-based Conv Baseline),将输入目标等分后分别进行特征提取
  2. 提出了一种细化分割区域的模块:RPP(Refined Part Pooling),在PCB的基础上通过半监督学习的方式精细调整各区域的划分,从而更加适应行人不同区域的特征

2. Related Work

基于深度学习的、划分不同part进行推理的ReID网络主要有两类:

  1. 基于额外先验信息:利用行人动作估计等额外信息进行分割,但是这需要额外的标注工作,如上图(a)、(b)均为此类工作;
  2. 不依赖额外信息:不依赖额外信息的,仅靠聚类(c图工作)或注意力机制(d、e图工作)进行目标分割;

3. PCB

3.1 Architecture


PCB的总体结构如上图所示,其主要流程为:
1)图像通过Backbone提取特征后得到三位的特征块T
2)对tensor T进行N等分
3)等分后的特征块按照channel axis进行Global Average Pooling操作,得到N个column向量g
4)colume vector经过1x1卷积降维后,得到N个向量h
5)向量h通过相互独立的FC层输出N个特征向量作为网络的结果

3.2 Within-Part Inconsistency

从上文介绍可以看出,PCB网络的结构非常简单,就是提前对特征进行N等分,随后即可正常输出N个特征向量,这理论上一定比只输出一个特征向量所蕴含的信息要多,效果也理应更好。

但是,这种Hard Partition的做法依旧是非常粗暴武断的,通过对T中各个位置的column vector和经过pooling后得到的g进行比较发现:虽然这种分割总体上合理,但是有些位置的特征并非与其所在Part最为匹配,而是与其他Part的特征更为匹配,这就需要我们调整Partition的方式,下面的RPP就在做这样的事。

4. RPP

4.1 Architecture

参考3.2中的分析,作者提出一种基于Softmax的Part分类层RPP:

P ( P i ∣ f ) = s o f t m a x ( W i T f ) = e x p ( W i T f ) ∑ j = 1 p e x p ( W j T f ) P(P_i|f) = softmax(W_i^T f) = \frac{exp(W_i^T f)} {\sum_{j=1}^p exp(W_j^T f) } P(Pif)=softmax(WiTf)=j=1pexp(WjTf)exp(WiTf)

其中, P i P_i Pi表示N个Part之一, W W W是可学习参数, f f f表示Tensor T中各个column vector
该层的目的是:将Tensor T块中每一个column vector通过表示的概率分配到与其最相近的Part中去。

如上图,将其添加进PCB的方法也非常简单:在原有网络的Global Avg Pooling层之前,用RPP取代等分层即可。对应的向量g的计算规则变为:考虑所有与当前Part概率不为0的f的加权期望

4.2 Induced Training

按照构想,RPP确实能够细化Partition,但是这个结构缺乏有效的监督信息进行训练,因此作者提供了一个半监督模式的训练方法如下:

值得注意的是,作者比较了是否首先训练一个Standard PCB的差别发现:这一环节为网络提供了一个模板,会让RPP层在N等分的基础上进行微调。而不加入这一环节,RPP的作用将和直接引入attention类似。通过实验比较:前者的效果是明显由于后者的。

5. Analysis

本工作将ReID网络中的目标划分为了多个特征进行提取,并且通过半监督学习的方法对划分方法进行了微调,值得借鉴。
笔者认为,如果这种方法要迁移到车辆ReID任务中,分割方法需要重新考量,因为与行人不同,车辆似乎没有“头、身、腿、脚”这样明确的节点,另外如果要应用到车辆MOT任务中,其必然会带来比生成单一embedding更多的推理时间消耗,另外这些网络是否会对检测效果其负作用也需要考量。

【行人重识别论文阅读笔记——PCBRPP】相关推荐

  1. 【行人重识别论文阅读笔记——VPM】

    [阅读心得] 行人重识别经典论文--VPM 写在前面 1. Abstract 2. Introduction 3. VPM 3.1 Architecture 3.2 Inference 3.3 Sel ...

  2. 行人重识别论文阅读2-视频中基于时空相关性和拓扑学习的行人重识别(CTL)

    视频中基于时空相关性和拓扑学习的行人重识别 Spatial-Temporal Correlation and Topology Learning for Person Re-Identificatio ...

  3. [行人重识别论文阅读]无监督学习发展与小结

    Unsupervised domain adaptation (UDA) for person re-ID. UDA methods have attracted much attention bec ...

  4. [行人重识别论文阅读]Fine-Grained Shape-Appearance Mutual Learning for Cloth-Changing Person Re-Identification

    论文地址 论文代码:暂无 文章思想 在上篇文章中我们引入了sketch(行人轮廓图)的思想去解决换衣问题,但是我们会在实践中发现sketch的优劣性严重影响了最后实验结果的好坏.此篇论文的核心思想就提 ...

  5. [行人重识别论文阅读]Invariance Matters: Exemplar Memory for Domain AdaptivePerson Re-identification

    论文链接:https://arxiv.org/abs/1904.01990 代码:https://github.com/zhunzhong07/ECN Abstract 1.传统的无监督方法只关注于缩 ...

  6. 行人重识别论文阅读(2021.7.3-7.11)

    一 各种方法性能比较 Method Key Market  r1 Market mAP Duke r1 Duke mAP (1)BOT global+BNNeck 94.5 84.5 86.4 76. ...

  7. [行人重识别论文阅读]AlignedReID: Surpassing Human-Level Performance in Person Re-Identification

    论文地址: 代码地址: Abstract 摘要部分明确提出了本文的重要思想,利用局部特征学习影响全局特征学习,并指出局部特征的学习方法是通过计算局部特征间的最短距离进而aligned局部特征. 原文: ...

  8. 行人重识别 代码阅读(来自郑哲东 简单行人重识别代码到88%准确率)

    来自郑哲东 简单行人重识别代码到88%准确率 阅读代码 prepare.py 数据结构 部分代码 一些函数 model.py ClassBlock ResNet50 train.py 一些参数 使用f ...

  9. 行人重识别综述学习笔记

    文章目录 <行人重识别研究综述> 摘要: 1 行人重识别概述 1.1 背景与研究意义 1.2 研究现状 1.3 评价标准 2 基于图像的行人重识别研究(传统+深度) 2.1 特征表达方法 ...

  10. 行人重识别论文--A Bottom-up Clustering Approach to Unsupervised Person Re-identification

    A Bottom-up Clustering Approach to Unsupervised Person Re-identification 目录 A Bottom-up Clustering A ...

最新文章

  1. 当你刷新当前Table时,刷新后如何回到你上一次所在位置呢?
  2. ADO学习(二).udl文件
  3. 【Leetocde | 10 】54. 螺旋矩阵
  4. Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML
  5. 活动预告 | 2020移动云客户高端峰会即将揭幕,邀您一起携手云端!
  6. 【AI视野·今日CV 计算机视觉论文速览 第191期】Wed, 5 May 2021
  7. springboot整合websocket实现简易版单人聊天
  8. iPhone X 的新解锁技术:用 Python 编写 Face ID!
  9. cocos2d(粒子效果编辑器)
  10. RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (三、无线温湿度传感器 之 I2C通讯)
  11. oeasy教您玩转vim - 57 - # 行可视化
  12. 2020年裸辞的人,真的待业了一整年吗?
  13. java 隐藏父类方法,java 子类继承父类成员变量的隐藏、实现方法的重写
  14. android动画送礼物,Android开发仿映客送礼物效果
  15. 长波红外相机和相机内核2022年全球行业分析报告
  16. Linux创建磁盘并分区命令
  17. 深度解析京东个性化推荐系统
  18. 每年存1.4万,40年后你将有多少钱?算完惊呆了!
  19. JAVA学习56_用UltraEdit代替“笨重”的IDE,实现轻巧编程!
  20. faker和劫的图片_这张图影响了LOL玩家多年,劫的新皮肤首次摘下面具

热门文章

  1. 使用mars3d加载星图地球的影像资源
  2. 压缩感知重构算法--MMP-BF和MMP-DF算法及其改进思路
  3. 移动商城源码java_基于SSM开发的Java移动电子商城 源码下载
  4. HGOI8.21集训题解
  5. java简单的工资明细结算
  6. 马云致股东信:我不会让自己空闲下来 将投入更多时间到教育
  7. 阿里及自建机房费用简记
  8. Ubuntu 启动错误:The virtual machine ‘win7‘ has terminated unexpectedly during startup with exit code 1
  9. javascript DOM元素操作汇总
  10. Redis 中地理位置功能 Geospatial 了解一下?