行人重识别(REID)——原理方法

news2024/11/16 12:28:59

行人重识别:短时

  • 类内差异增大,类间差异减小

应用——行人跟踪

  1. 单摄像头单目标
  2. 单摄像头多目标
  3. 多摄像头多目标

行人重识别系统

行人重识别系统

  1. 特征提取

    学习能够应对在不同摄像头下行人变化的特征

  2. 度量学习

    将学习到的特征映射到新的空间使相同的人更近,不同的人更远

  3. 图像检索

    根据图片特征之间的距离进行排序,返回检索结果

评价模式

  • single query vs multi query

    Single query是指probe中每个人的图像为一张(N=1),而multi query是指probe中每个人的图像为N>1张图像,然后融合N张图片的特征(最大池化或者平均池化)作为最终特征。同样的Rank-k下,一般N越大,得到的识别率越高。

特征

全局特征

每一张图片的全局信息进行一个特征抽取,全局特征没有任何的空间信息。

  • 噪声区域会对全局特征造成极大的干扰
  • 姿态的不对齐也会使全局特征无法匹配

局部特征

对图像的某一个区域进行特征提取,最后将多个局部特征融合起来作为最终特征

水平切块 ★★★

  • 将图像进行水平方向的等分,每一个水平切块通过水平池化提取一个特征

  • Gate Siamese 和 AlignedReID 通过设计规则融合所有的局部特征计算距离

  • PCB,ICNN,SCPNet 对每一个局部特征计算一个 ReID 损失,直接将局部特征拼接起来

  • 联合局部特征和全局特征往往能够得到更好的结果

Gate Siamese

  • 每一块经过 CNN 网络得到特征,局部特征按顺序输入到 LSTM 网络,自动表达为图像最终的特征
  • 利用对比损失训练网络

AlignedReID

  • 主要解决姿态不对齐的问题

  • 骨架网络为 ResNet50

    动态对齐 (DMLI)
    • 假如输入图像为256×128,输出的特征图尺寸为 8×4×2048
    • 利用水平池化得到 8 个局部特征,并计算一个 8×8 的距离方阵
    • 对齐局部信息不能有跳连(从上到下)
    • 利用 shortest path 来找到最优的动态连接

PCB

  • 输入图像 384×128,分成 6 块
  • 利用 ResNet50 提取特征,最后 24×8 的 feature map
  • 每一行提取一个局部特征,连接一个 ReID loss
  • 使用的时候把 6 个局部特征 concatenate 起来

ICNN

ICNN≈PCB + global branch with triplet loss

SCPNet

利用 spatial part 特征连监督 channel group 特征,将 local feature 传给 global feature

姿态信息 ★★★

  • 利用一个姿态估计模型得到行人的(14个)关键姿态点
  • 根据姿态点得到具有语义信息的 part 区域
  • 对于每个 part 区域提取局部特征
  • 联合局部特征和全局特征往往能够得到更好的结果
  • 姿态点估计模型:Hourglass、OpenPose、CPM、AlphaPose
  • Part:通过一定规则手工设置一些矩形框区域
  • Attention:网络自动学习出的比较重要的任意形状区域

PIE

  • CRM 提取姿态点
  • 分成几个part,进行仿射变换对齐
  • 融合原图和仿射图的特征
  • 采用 ID 损失训练网络

Spindle Net

  • FFN 网络提取特征,FFN 网络层次性地融合特征

PDC

  • 利用姿态点信息分割为六个part
  • 改进 STN 网络为 PTN 网络,学习仿射变换参数得到 modified part image
  • 融合全局特征和局部特征
  • 计算三个 ReID 损失
  • 浅层网络共享,高层网络独立

GLAD

  • 分为头,上身,下身三个 part
  • 融合全局特征和三个 part 的特征

PABP

  • 利用 ReID 网络提取 feature map A
  • 利用 openpose 提取 feature map P
  • A 和 R 每个对应像素位置的向量进行外积,并向量化
  • 会激活对应位置的外观特征

分割信息 ★★

  • 图像语义分割是一种极精细的像素级别 part 信息
  • 图像分割分为粗粒度的行人前景分割和细粒度的肢体语义分割
  • 分割结果通常作为图像预处理的 Mask 或者 feature map 中的 attention 相乘
  • 目前基于分割的方法没有取得特别广泛的应用

前背景提取

SPReID

网格特征 ★

  • 网格特征是比较细粒度的物理区域特征
  • 早期工作将网格特征扩展为part特征计算两幅图像的特征图差
  • 近期利用网格特征解决 partial ReID 工作
  • 总体而言网格特征并不常用

IDLA

  • 骨干网络为 Siamese 网络计算
  • 两幅图 5x5 网格特征差值
  • 交换"主客"分别计算 K 和 K’
  • 计算二分类验证损失

PersonNet

DSR

  • 将一副图像的所有网格特征作为一个特征集合
  • 对两个特征集合进行稀疏重建得到集合距离

序列重识别

论文

  • 姿态变化丰富
  • 遮挡现象普遍
  • 总有几帧质量好,也有几帧质量差
  • 需要考虑如何融合各帧的信息

单帧 → 序列

  • 对每一帧图像都提取一个ReID特征
  • 直接通过平均池化或者最大池化来得到最终的ReID特征
  • 比较简单,性能依赖于单帧 ReID 的性能

CNN+LSTM

  • 类似于动作识别,利用 CNN 提取特征,然后利用 LSTM 提取时序特征

难点

  • 如何对多帧特征进行特征融合?
  • 如何对每帧图像进行质量判断?
  • 如何提取序列图像的运动特征?
  • 如何解决序列帧数不统一问题?
  • 如何提高序列 ReID 的运算效率?

学术尝试

AMOC

  • 帧与帧之间存在着运动(步态)特征,也有利于 ReID 任务
  • 包含空间子网络和运动子网络
    • 空间子网络提取单帧图像的内容特征
    • 运动子网络提取相邻两帧的运动特征
    • 融合内容特征与运动特征作为该帧的最终特征
  • 利用 RNN 网络融合所有帧的特征信息
  • 利用对比损失判断两个序列是否属于同一个行人ID

DFGP

  • 采用传统的 LOMO 特征提取序列每一帧图像的行人特征
  1. 利用 PCN 网络提取每一帧特征,之后平均池化得到序列特征,找到最稳定帧 MSVP
  2. 对 MSVP 提取 LOMO 特征,并与序列q计算特征距离,按照距离进行 softmin 归一化,得到每帧权重
  3. 特征×权重之后进行最大池化
  4. 融合池化后的序列特征和最稳定帧的特征作为最终特征

RQEN

  • 遮挡是序列重识别中非常普遍的一个问题,会造成特征分布不均匀
  1. 对每帧行人提取14个关键姿态点,并分为3个语义 part

  2. 当某个姿态点被遮挡之后,pose map 的响应值会非常低

  • 全局分支提取全局特征
  • 局部分支提取局部特征
  • 姿态分支对图像进行质量(遮挡)判断

基于 GAN 的方法

痛点

  • 数据不够用 → 生成图像
    • 政府限制监控数据的采集
    • 人工标注采集数据价格昂贵
    • 缺乏一些极难的极端样本
  • 数据有偏差 → 减小偏差
    • 姿态与姿态之间存在偏差
    • 相机与相机之间存在偏差
    • 地域与地域之间存在偏差

组成

  • 生成器:随机数 → 生成样本
  • 判别器:判断生成样本是否真实

代表方法

GAN+LSRO

利用 GAN 网络随机生成行人图片,利用 LSRO 技术平滑 ID 标签,训练交叉熵损失

  • 照片随机生成,ID 信息不可靠

CamStyle

利用 CycleGAN 来实现任意两个相机之间的风格转换

  • 原始样本计算ID损失,生成样本利用平滑标签计算交叉熵损失

PTGAN

不同场景下采集的数据存在明显的偏差

  • 利用 PSPNet 分割行人前景 mask
  • 利用 CycleGAN 的思想进行图像风格转换
  • 计算mask区域生成损失,保持行人前景尽可能不变
  • 联合风格损失与生成损失

SPGAN

与 PTGAN 类似,利用 source domain 的数据生成 target domain,解决不同场景下采集的数据间的明显偏差

PNGAN

利用 GAN 来生成固定姿态样本

  • 利用 GAN 生成目标姿态的样本
  • 原图和生成图分别进入两个 ReID 网络
  • 融合原图和生成图的特征作为最终特征,融合方式使用max池化

对比

算法GANCycleGANPTGANSPGANPNGAN
基础GANCycleGANCycleGANCycleGANInfoGAN
额外标签平滑标签平滑前景分割孪生网络姿态估计
目标数据增广相机偏差数据域偏差数据域偏差姿态偏差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一练】谷歌面试题:用JAVA翻转二叉搜索树

文章目录 前言题目分析实战演示1、创建一颗搜索二叉树2、中序遍历二叉搜索树3、根据题意创建二叉搜索树并展示4、算法增加二叉树翻转方法5、根据题意测试翻转二叉树结果6、完整代码 前言 很多同学应该都能够模拟出一个二叉树,那么又有多少同学能够写出翻转二叉树呢…

2d俯视视角游戏,可以切换多种枪械

文章目录 一、 介绍二、 人物移动、鼠标控制转向三、子弹脚本四、子弹随机抛壳五、 爆炸特效六、 发射子弹七、 子弹、弹壳对象池八、 散弹枪九、 火箭弹、发射火箭十、 下载工程文件 一、 介绍 2d俯视视角游戏。 人物视角跟随鼠标移动 多种枪械 抛壳效果 多种设计效果 对象池…

『python爬虫』10. 数据解析之xpath解析(保姆级图文)

目录 安装库xpath入门怎么快速得到xpath路径xpath节点的关系xpath方法小型实战总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 安装库 pip install lxmlxpath入门 怎么快速得到xpath路径 (相对路…

第三十章 Unity角色控制器 Character Controller

在我们之前的章节中,我们已经了解了碰撞体和刚体。但是,对于刚体这个组件来讲,有两种使用方式。其一就是用它来模拟现实世界的移动或碰撞效果(例如,门的开关);其二就是使用代码来控制物体移动或…

【网络进阶】HTTP服务器(一)

文章目录 1. HTTP简介2. HTTP工作原理3. HTTP注意事项4. HTTP消息结构5. 客户端请求消息6. 服务器响应消息7. GET传递数据实例8. HTTP请求方法9. HTTP响应头信息 1. HTTP简介 HTTP(超文本传输协议,Hypertext Transfer Protocol)是一种用于传…

Spring Cloud的五大组件你知道多少

前言 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。 Spring Clo…

瑞萨e2studio(25)----电容触摸配置(2)

瑞萨e2studio.24--电容触摸配置1 概述初始配置监控检测电容按键显示和测量标准差显示多个触摸按键曲线 概述 篇文档将在上篇文章基础上修改电容触摸配置。 初始配置 需要进入Debug模式才可以进行电容触摸配置。 监控检测电容按键 从电容触摸主界面(QE&#xf…

解决Xshell安装时错误代码-1603的问题

安装流程 官网下载:家庭/学校免费 - NetSarang Website 填写姓名,邮箱,申请下载,就能在邮箱收到下载链接 点击链接即可自动开始下载; 下载完成后进行安装即可 问题描述 安装进行到最后一步时,出现下图…

CCED2000后,中文编程软件再次脱颖而出,系出金山

WPS抗衡微软,CCEDE却被淹没? DOS代,我们用WPS来进行文字编辑,CCED来做表格,两者在那个时代可以称得上是国产办公领域的“必装软件”。 如今,30年过去了,WPS一步一步成长为抗衡微软office的国产…

4d毫米波雷达聚类检测和追踪

待整理和写代码,准备先用dbcan聚类,用激光那一套做做看看效果 流程 4D雷达毫米波聚类跟踪流程如下图: 预处理主要包括标定、坐标转换和动静分离。 标定使用水平仪、角反,采集数据分析,得到水平和俯仰偏角。 坐标转…

nssctf web (3)

[HUBUCTF 2022 新生赛]checkin <?php show_source(__FILE__); #将当前文件的代码显示到页面 $username "this_is_secret"; #给username赋值 $password "this_is_not_known_to_you"; #给password赋值 include("flag.php");//here I ch…

MySQL数据管理

一、MySQL数据库管理 1、库和表 行&#xff08;记录&#xff09;&#xff1a;用来描述一个对象的信息 列&#xff08;字段&#xff09;&#xff1a;用来描述对象的一个属性 2、常用的数据类型 int &#xff1a;整型 float &#xff1a;单精度浮点 4字节32位 double &…

《网络安全审查办法》

1发展历程 2020年4月27日&#xff0c;12部门联合发布《网络安全审查办法》&#xff0c;2020年6月1日起实施。 2021年7月10日&#xff0c;国家互联网信息办公室发布关于《网络安全审查办法&#xff08;修订草案征求意见稿&#xff09;》公开征求意见的通知。11月16日国家互联网信…

【C++入门】你知道为什么C++有函数重载而C语言没有函数重载吗?

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

《最强Android书 架构大剖析》读书笔记

文章目录 第一章 Android 体系结构的变革之路1.2 Android系统源码目录与Linux的异同Android的框架原生二进制可执行文件Android 的原生库核心(core)库用以支持框架的库硬件抽象层Linux内核不带上层 UI界面的Android 第二章 Android 的分区和文件系统2.1 分区架构实验:从设备中获…

ffmpeg学习日记513-源码-configure_filtergraph()函数分析及功能

Date: 12/04/2023 Hours: Details:template_tags 文章目录 源码版本实现文件函数原型参数释义函数功能函数分析filtergraph_is_simple函数 总结参考 源码版本 ffmpeg-4.1.10 实现文件 fftools/ffmpeg_filter.c 函数原型 int configure_filtergraph(FilterGraph *fg)参数释…

重识三只松鼠:“二次创业”的新变革,“深蹲起跳”的新动能

“羚羊明白它必须跑得比狮子快&#xff0c;不然它会被狮子吃掉&#xff1b;每天早晨狮子醒来&#xff0c;狮子也明白它必须赛过跑得最慢的羚羊&#xff0c;不然它会活活饿死。不论你是狮子还是羚羊&#xff0c;都不重要……重要的是每天旭日东升&#xff0c;你就得开始奔跑&…

突破经典网格特征?AutoFocusFormer: Image Segmentation off the Grid 论文阅读笔记

突破经典网格特征&#xff1f;AutoFocusFormer: Image Segmentation off the Grid 论文阅读笔记 一、Abstract二、引言三、相关工作视觉 Transformer Backbones基于聚类的注意力自适应下采样点云网络 四、方法4.1 聚类和区域4.1.1 平衡聚类4.1.2 聚类的区域 写在前面 这一周赶上…

【五一创作】Visual Studio常用调试技巧的温习

当你在编写C程序时&#xff0c;难免会遇到代码出现错误的情况。这时候就需要用调试工具来定位问题并解决它。以下是一些在Visual Studio中使用调试器时常用的技巧&#xff0c;权当作温故总结罢~ 1. 断点 断点是调试中最为基本但也最常用的技巧之一。通过在需要定位的代码行上打…

一文搞懂 x64 IA-64 AMD64 Inte64 IA-32e 架构之间的关系

想要搞清楚 x64、IA64、AMD64 指令集之间的关系&#xff0c;就要先了解 Intel 和 AMD 这两家公司在生产处理器上的发展历史。 x86 处理器 1978年 Intel 生产了它的第一款 16bit 处理器8086&#xff0c;之后几款处理器名字也都以86结尾&#xff0c;包括80186&#xff0c;80286&a…