MSCAN:Learning Deep Context-aware Features over Body and Latent Parts for Person ReID阅读笔记

2023-11-02

Learning Deep Context-aware Features over Body and Latent Parts for Person Re-identification

作者: DangWei Li等人 CVPR 2017

1. 摘要:

设计了Multi-Scale Context-Aware Network(MSCAN)来学习全身和body parts的强大特征,通过在每一层堆叠多尺度卷积来很好地捕捉局部上下文知识。此外,不再使用预定义的刚性parts,而使用具有新的空间约束的Spatial Transformer Networks(STN)来学习和定位可变形的行人parts(人体不是刚性结构)。所学习的body part可以解决在基于parts的特征表示中的如姿态变化和背景杂波的影响。最后,将全身和body parts的表征学习过程整合到一个统一的reid框架中。大量实验表明本文的方法都SOTA。

2. 介绍

目前的工作要么基于单尺度,要么是基于刚性part;前者很容易导致忽略某些尺度上的线索,如低分辨率的行人图像中的墨镜就要在很小的尺度下才能观察到,后者会因为图像不对齐或行人检测器误差造成误差。如下图:在这里插入图片描述

  • 而作者使用Multi-Scale Context-Aware Network(MSCAN)解决第一个问题,即用不同感受野的卷积核去学习不同尺度的信息(不同感受野可以通过不同大小的卷积核或不同空洞率的空洞卷积实现。作者选择Dilated Convolutions,因为这可以减少参数、减少重叠、冗余,但达到相同的效果==>小感受野就关注图像中的小区域,大感受野就关注大区域,这样通过使用多种不同的感受野就相当于实现了不同的尺度,而不是像之前那样缩放图像尺寸);

  • 为了解决第二个问题,作者选择使用三个Spatial Transform Networks(STN)分别学习行人的头-肩、上半身、下半身,是一个行人part定位任务。

  • 然后,对full body使用MSCAN得到全局特征,对原始图像使用是三个STN得到是三个part,分别使用MSCAN得到三个局部特征,然后先融合是三个局部特征,再将局部特征结果和全局特征融合得到最终行人描述符。

关于空洞卷积参考https://blog.csdn.net/quincuntial/article/details/78743033

3. 本文的方法

3.1. MSCAN

一个MSCAN如下图所示:
在这里插入图片描述
其余几个也如此。而使用Conv1,Conv2,Conv3三重级联也就利用了不同感受野的Context-Aware信息。

3.2. Latent Part Localization

在这里插入图片描述
通过集成STN来实现。优点有二:首先容易集成到DCNN中;其次可以学习translate,scale,crop,wrap一个感兴趣的区域而不必利用标注信息

STN由两部分组成

  • spatial localization network==>用以学习变换参数,作者只学习translate和scale即可有效crop part
  • grid generator==>用以采样输入图像,作者使用双线性内插

图像的宽高都归一化到[-1,1]之间

变换过程如下:
在这里插入图片描述
然而存在三个问题:

  • 三个STN都容易落入同一区域,即person center,造成冗余
  • scale参数容易成负数,将导致图像水平和垂直翻转
  • 最终计算出来的crop区域在图像外

对以上三个问题分别提出三个先验约束来缓解/解决问题:

  • 中心约束,缓解问题1,后面可以看到没有解决问题
    在这里插入图片描述
    在这里插入图片描述
  • 预测scale参数值的范围约束
    在这里插入图片描述
  • 在图像内裁减的约束
    在这里插入图片描述
    在这里插入图片描述

3.3. 目标函数

定位loss加上softmax的id loss,得到总loss如下:
在这里插入图片描述
在这里插入图片描述

4. 实验

4.1.数据集和评估协议

4.2.实现细节

4.3.和SOTA方法比较

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全部拿下SOTA。

4.4. MSCAN的作用

paper给出的是三个尺度,这里还可以使用4,5…个尺度,即在
在这里插入图片描述
在这里插入图片描述

4.5. Latent Part Locationcal的作用

如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果显示效果比刚性part划分好得多。
在这里插入图片描述
结果显示局部定位loss对reid结果很重要。

4.6. Cross-dataset Evaluation

在其他数据集上的模型迁移到VIPeR,分别验证了直接迁移(viper作为测试集)和迁移后进行微调(在viper上进一步微调再测试)的性能。结果分别为表10和表11:
在这里插入图片描述

5. 总结

  • MSCAN
  • STN
  • global + local/part特征,互补
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MSCAN:Learning Deep Context-aware Features over Body and Latent Parts for Person ReID阅读笔记 的相关文章

  • Debug Tutorial Part 6: Navigating The Kernel Debugger

    Introduction In this tutorial we will be covering a few of the basic features of the kernel debugger and get used to usi
  • 生成随机mask以及根据mask对两幅图片进行合并

    前言 对图像处理的一些操作还是需要掌握的嘿嘿 随机mask生成 这里代码参考MAT的一份代码 https github com fenglinglwb MAT blob main datasets mask generator 256 py
  • 热红外和可见光数据集的具有模态不变特征表示的跨模态图像匹配网络

    Cross Modality Image Matching Network With Modality Invariant Feature Representation for Airborne Ground Thermal Infrare
  • 行人重识别数据集转换--统一为market1501数据集进行多数据集联合训练

    0 前言 常用的reID数据集如图所示 下载好数据集 我的数据集一开始是这样的 第一步 创建出来market1501的数据集文件夹格式 market1501数据集的具体介绍可以看看这个 http blog fangchengjin cn r
  • 单个 CALayer 可以用作多个其他层的掩模吗?

    我在文档中找不到任何指示单个 CALayer 或子类 是否可以用作mask多个其他层的属性 是否可以 还是未定义 我的实验表明不能 它将最终作为其附加到的最后一个图层的蒙版 并且它被指定为蒙版的任何先前图层都将恢复为蒙版的默认值
  • 屏蔽 CALayer - iPhone

    我正在为 iPhone 创建一个自定义开 关切换开 关 类似于标准开关 并且我正在设置滑块的蒙版 但调用 myView layer setMask maskLayer 设置遮罩层相对于其遮罩层的位置 而不是相对于遮罩层的容器层的位置 对于这
  • 如何使用 Sprite Kit 在 iOS 中创建 alpha 遮罩

    我想要达到的效果是在黑暗区域中有一个光圈 其效果类似于口袋妖怪游戏中的效果 当你处于黑暗的洞穴中并且周围的视野有限时 根据我的尝试和阅读 我无法在具有 alpha 级别的精灵套件中的节点上创建遮罩 我设法创建的蒙版都有硬边 而且基本上只是裁
  • 将函数应用于屏蔽 numpy 数组

    我有一个作为 numpy 数组的图像和一个图像掩码 from scipy misc import face img face gray True mask img gt 250 如何将函数应用于所有屏蔽元素 def foo x return
  • 尝试遮盖图像周围的圆圈不起作用

    我有一个图像 我试图在周围遮盖一个圆圈 使图像看起来是圆形的 这有点有效 但圆圈在顶部和底部达到一个点 profileImageView layer cornerRadius profileImageView frame size widt
  • OpenGL ES:如何用颜色对纹理着色

    我有阿尔法纹理 我想用某种颜色给它着色 所以它会根据颜色 alpha 值进行着色 但整体不透明度将仅由纹理 alpha 定义 这与多重纹理类似 但使用颜色而不是第二个纹理 怎么做 更新 我尝试过设置纹理组合器 颜色着色得很好 但 alpha
  • 带有 jQ​​uery 和 Masked 输入插件的电话掩码

    我在使用 jQuery 屏蔽电话输入时遇到问题屏蔽输入插件 有 2 种可能的格式 XX XXXX XXXX XX XXXXX XXXX 有什么办法可以掩盖它接受这两种情况吗 EDIT I tried phone mask 99 9999 9
  • 为什么我的 jquery 输入掩码不起作用?

    我正在尝试使用 jQuery 输入掩码插件 jquery maskedinput 1 3 min js 并且我搜索了几个示例 解决方案 并且我的代码与其他工作示例完全相同 但它根本不会为我工作 请记住 我的代码现在只是测试这个插件 尝试让它
  • iOS 中 UIImageView 的圆形蒙版动画

    我想知道如何在 uiimageview 上对蒙版的比例进行动画处理 附示例图片 灰色框是我的 uiviewcontroller 的图像背景 不是问题的一部分 我假设创建一个 uiview 子类 并传递图像 半径和中心点 然后 创建一个蒙版
  • 旋转时自动调整 UITableView 标题大小(主要在 iPad 上)

    我觉得这将是一个围绕 AutoResizingMasks 的简单答案 但我似乎无法理解这个主题 我有一个 iPad 应用程序 可以并排显示 2 个 UITableView 当我从纵向旋转到横向并返回时 UITableView 中的单元格会在
  • 在 iPhone 应用程序中使用 CoreGraphic 描边作为 Alpha 遮罩

    我基本上希望为不同的目的创建类似于 iSteam iFog alebit 的非常简单版本的东西 实际上 将有两个图像 一个是主题图像 另一个是凝结图像或类似图像 然后 用户可以在屏幕上擦拭手指 它将从顶层 剪切 以显示下层 到目前为止 我已
  • 多种情况下的熊猫面膜

    在我的数据框中 我想用 nan 替换低于 1 和高于 5 的每个值 这段代码有效 persDf persDf mask persDf lt 1000 我得到了作为 nan 的所有值 但这个没有 persDf persDf mask pers
  • 如何以编程方式对黑/白 UIImageView 进行着色?

    我有一组黑白图像 如下所示 如果我没记错的话 有某种方法可以设置 UIImage 的混合或遮罩属性以将其与背景 UIView 混合 在这种情况下 我想将该图像的颜色更改为红色以表示生命值 如何以编程方式更改此 UIImage 的颜色 我知道
  • R光栅绘制图像,画一个圆并掩盖圆外的像素

    下面的代码绘制一个图像 然后在该图像上绘制圆圈 我想让该圆圈之外的所有像素都变成黑色 我怎么能这么做呢 library raster library plotrix r1 lt brick system file external rlog
  • SpriteKit:如何使用混合模式在图层中打孔

    我有一个简单的场景 添加了一些元素 现在我想专注于一个带有遮罩的特定元素 在与我想要关注的元素相同的位置切割整个元素 与我们在某些游戏第一次启动时看到的显示某种教程非常相似 基本上我添加了一个全屏层alpha 0 7 因此用户仍然可以看到所
  • 将 CIDR 地址转换为子网掩码和网络地址

    给定一个 CIDR 地址 例如192 168 10 0 24 如何确定掩模长度 24 如何确定掩码地址 255 255 255 0 如何确定网络地址 192 168 10 0 它被 apache utils 覆盖 看这个网址 http co

随机推荐

  • Python_观察者模式

    观察者模式 又叫发布 订阅模式 定义了一种一对多的依赖关系 让多个观察者对象同时监听一个主题对象 当这个主题对象的状态发生变化时通知所有的观察者对象 让他们自动更新自己的状态 俗话说 蚂蚁搬家蛇过道 明日必有大雨到 现在我们反过来 大雨将要
  • linux查看我的所有文件夹,Linux查看所有子文件夹及文件的数量

    find命令查看 推荐 所有子目录的数量 root localhost find afish type d wc l 158 root localhost find afish type d wc l 158 root localhost
  • Jenkins自动化部署

    Jenkins自动化部署 原理 需要环境 环境搭建 linux 配置参考 环境配置 springboot项目部署配置 1 新建文件夹 2 新建maven 项目 运行脚本 创建视图 图片上传麻烦需要的的看 pdf 原理 外链图片转存失败 源站
  • 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐 它包括SpringMVC SpringBoot Spring Cloud Spring Cloud Dataflow等解决方案 有人亲切的称之为 Spring 全家桶 很多研发人员把s
  • 【golang】12、gin 源码解析

    文章目录 快速使用 返回响应 路由匹配 path query Multipart Urlencoded Form 解析请求 MultipartFrom MiddleWare github com gin gonic gin 是 golang
  • 盗版网课有多猖狂?原价上万,只卖5元

    燃财经 ID rancaijing 原创 作者 孟亚娜 编辑 周昶帆 金玙璠 学而思三年全套数学课程50元 送猿辅导高一数学 需要吗 新冠肺炎疫情期间 在线教育行业火爆为头部品牌打响了知名度 相关的低价盗版课也顺水推舟 再次猖獗起来 动辄上
  • Kubernetes之配置与自定义DNS服务

    本文解释如何为kubernetes集群配置及自定义DNS服务 从kubernetes1 11版本开始 coreDNS插件被包含在GA发行版中 并且被kubeadm默认安装 详情 Configuring CoreDNS and Using C
  • 深度学习中的Epoch,Batchsize,Iterations深刻理解

    嵌牛导读 Epoch Batchsize Iterations 这三个都是深度学习训练模型时经常遇到的概念 你一定有过这样的时刻 面对这几个词傻傻分不清楚 这三个概念究竟是什么 它们又有什么区别 嵌牛鼻子 深度学习 梯度下降 Epoch B
  • IDEA 自动补全代码快捷键设置

    IDEA 自动补全代码快捷键设置 个人喜好 一 自动补全 快速生成方法返回值 gt 原始快捷键 ctrl alt v gt alt enter file gt settings gt Keymap gt Main Menu gt Refac
  • 基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)

    目录 一 什么是Selenium 二 自动化测试框架 三 自动化框架的设计和实现 四 需要改进的模块 五 总结 总结感谢每一个认真阅读我文章的人 重点 配套学习资料和视频教学 一 什么是Selenium Selenium是一个基于浏览器的自
  • Android接入三方登录——QQ

    facebook错误1 feature unavailable facebook login is currently unavailable for this app since we are updating additional de
  • 记 ReactiveWebServerFactory bean defined in the context. 导致的异常

    异常内容 APPLICATION FAILED TO START Description Web application could not be started as there was no org springframework bo
  • chatgpt赋能python:Python多行注释

    Python 多行注释 在 Python 中 我们经常需要写注释来解释代码或者用于调试 Python 的注释分为单行注释和多行注释 本文主要介绍 Python 中如何多行注释 单行注释 在 Python 中 单行注释以符号 开头 可以写在代
  • Windows的密码生成算法——NTLM算法破解

    文章目录 方法一 Python代码暴力破解 方法二 hashcat工具破解 NTLM CDABE1D16CE42A13B8A9982888F3E3BE hint 密码长度不超过5 数字和符号组成 Windows下NTLM Hash生成原理
  • mysql5.7 免安装版配置

    文章目录 my ini 安装为服务 启动服务命令 移除服务命令 修改 root 账号的密码 初始化数据 my ini 复制 my default ini 或者新建 client port 3306 default character set
  • <mirrorOf>标签用于指定哪些仓库或仓库组需要使用该镜像源

    在Maven配置镜像源时 确实会使用到mirrorOf
  • 使用内核API函数找到I2C和串口控制器发送数据

    我们一般操作I2C或者串口都是编写应用程序调用内核硬件提供的设备节点操作这些硬件的 但是在某个项目中 需要在shutdown的时候往i2c和tty发送数据 发送数据给外置的mcu mcu几秒内就会给cpu断电 所以 这个动作无法在应用层中完
  • 靠谱的车 算法

    靠谱的车 程序员小明打了一辆出租车去上班 出于职业敏感 他注意到这辆出租车的计费表有点问题 总是偏大 出租车司机解释说他不喜欢数字4 所以改装了计费表 任何数字位置遇到数字4就直接跳过 其余功能都正常 比如 23再多一块钱就变为25 39再
  • Amazon S3 REST方式获取Object

    Amazon S3 用REST方式获取文件 具体参见API http docs aws amazon com AmazonS3 latest API RESTObjectGET html 利用C 构建下面的请求 GET ObjectName
  • MSCAN:Learning Deep Context-aware Features over Body and Latent Parts for Person ReID阅读笔记

    Learning Deep Context aware Features over Body and Latent Parts for Person Re identification 作者 DangWei Li等人 CVPR 2017 1