行人重识别(ReID)基础知识入门

news2025/1/19 3:21:24

这里写目录标题

    • 1、ReID技术概述
      • 1.1 基本原理
      • 1.2 实现流程
      • 1.3 重识别存在的技术挑战
    • 2、训练数据格式介绍

1、ReID技术概述

1.1 基本原理

ReID,全称Re-identification,目的是利用各种智能算法在图像数据库中找到与要搜索的目标相似的对象。ReID是图像检索的一个子任务,本质上是图像检索而不是图像分类。给定一个监控行人图像,检索跨设备下的该行人图像。
行人重识别(Person re-identification)主要目的是针对出现在监控摄像头内的某个目标行人,准确快速地从监控网络其他摄像头内的大量行人中将这个目标行人标识出来。如图所示一个区域有多个摄像头拍摄视频序列,ReID的要求对一个摄像头下感兴趣的行人,检索到该行人在其他摄像头下出现的所有图片。
在这里插入图片描述

人脸识别目前相对来说准确率是非常高的,但在这些场景中人脸识别可能会失效,不再适用,尤其是远距离监控,就算是拍到人脸,可能也是一张模糊的人脸,ReID看的是一个人的整体特征,包括衣着、配饰、体态等等一些特征,就好像是用我们自己的眼睛看一样。
行人重识别技术可以弥补目前固定摄像头的视觉局限,并可与行人检测、行人跟踪技术相结合。工程上,最简单的行人重识别的技术流程如下所示。

在这里插入图片描述

在这里插入图片描述

上面这张图展示了ReID的一个任务过程,首先要做的是Detection,也就是检测出行人。剩下的部分,就是要去训练一个特征提取网络,根据特征所计算的度量距离得到损失值,选用一个优化器去迭代找到loss最小值,并不断更新网络的参数达到学习的效果。在测试的时候,用将要检索的图片(称为query或者probe),在底库gallery中,根据计算出的特征距离进行排序,选出最TOP的几张图片,来达到目标检索的目的。下面两张图分别是训练阶段和测试阶段的示意图:
   1.训练示意图

2.测试示意图

1.2 实现流程

1.行人检测:通过目标检测模型提取当前帧的行人图像。
2.特征提取:基于特征提取模型,项目中现使用预训练的特征提取模型提取行人区域图片的特征向量。
3.单镜头行人跟踪:结合行人区域特征,通过deepsort等算法进行行人跟踪。
4.跨镜头行人跟踪:基于深度学习的全局特征和数据关联实现跨镜头行人目标跟踪。
5.向量存储与检索:对于给定的行人查询向量,与行人特征库中所有的待查询向量进行向量检索,即计算特征向量间的相似度(计算余弦距离等方法)。

在以上步骤中,特征提取是最关键的一环,它的作用是将输入的行人图片转化为固定维度的特征向量,以用于后续的目标跟踪和向量检索。好的特征需要具备良好的相似度保持性,即在特征空间中,相似度高的图片之间的向量距离比较近,而相似度低的图片对的向量距离比较远。通常用于训练这种模型的方式叫做度量学习。
注解:

  • 全局特征:每一张图片的全局信息进行一个特征抽取,全局特征没有任何的空间信息。
  • 局部特征:对图像的某一个区域进行特征提取,最后将多个局部特征融合起来作为最终特征。
  • 度量学习:将学习到的特征映射到新的空间,表现为同一行人的不同图片间的相似度大于不同行人的不同图片(即相同的人更近,不同的人更远)。
  • 图像检索:根据图片特征之间的距离进行排序,返回检索结果。

1.3 重识别存在的技术挑战

ReID 在实际应用场景下的数据非常复杂,由于不同摄像设备之间的差异,同时行人兼具刚性和柔性的特性 ,外观易受穿着、尺度、遮挡、姿态和视角等影响,所以,对跨镜追踪(ReID)算法的要求也更高。
实际应用中常常出现:

  1. 无正面照
  2. 服装更换
  3. 遮挡
  4. 图像分辨率低
  5. 光线差异
  6. 室内室外场景变化
    在这里插入图片描述

2、训练数据格式介绍

  • 通过人工标注或者检测算法得到的行人图片
  • 数据集分为训练集,验证集,query以及gallery
  • 在训练集上进行模型的训练,得到模型后对query与gallery中的图片特征提取特征计算相似度,对于每个query在gallery中找出前N个与其相似的图片
  • 训练,测试中人物身份不重复

常用的几种数据集:
1)Market-1501:Person Re-Identification Meets Image Search
链接:https://pan.baidu.com/s/1ntIi2Op

2015年,论文 Person Re-Identification Meets Image Search 提出了 Market 1501 数据集,现在 Market 1501 数据集已经成为行人重识别领域最常用的数据集之一。 Market 1501 的行人图片采集自清华大学校园的 6 个摄像头,一共标注了 1501 个行人。其中,751 个行人标注用于训练集,750个行人标注用于测试集,训练集和测试集中没有重复的行人 ID,也就是说出现在训练集中的 751 个行人均未出现在测试集中。

训练集:751 个行人,12936 张图片
测试集:750 个行人,19732 张图片
query 集:750 个行人,3368 张图片

query 集的行人图片都是手动标注的图片,从 6 个摄像头中为测试集中的每个行人选取一张图片,构成 query 集
测试集中的每个行人至多有 6 张图片,query 集共有 3368 张图片。
网络模型训练时,会用到训练集;测试模型好坏时,会用到测试集query 集。此时测试集也被称作 gallery集。因此实际用到的子集为,训练集gallery 集query 集

2)MARS: A Video Benchmark for Large-Scale Person Re-identification(基于视频)
链接:https://pan.baidu.com/s/1XKBdY8437O79FnjWvkjusw 提取码: ymc5

考虑了视频中的人员再识别(reid)问题,本文介绍了一个新的视频reid数据集,名为运动分析和重新识别集(MARS),是Market-1501的datase数据集的视频扩展。
MARS是迄今为止最大的视频reid数据集,它包含1,261个id和大约20,000个tracklet,与基于图像的数据集相比,它提供了丰富的视觉信息。

3)DukeMTMC-reID:Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro
链接:https://drive.google.com/open?id=1jjE85dRCMOgRtvJ5RQV9-Afs-2_5dY3O

它的行人数据来源于论文 Performance Measures and a Data Set for Multi-Target,
Multi-Camera Tracking 提出的行人追踪 DukeMTMC 数据集,DukeMTMC-reID 是 DukeMTMC数据集的一个子集。需要注意的是,该数据集存在隐私泄露问题,作者已在官方渠道下架数据集。目前部分顶会文章仍在使用。

DukeMTMC 数据集采集自 Duke 大学的 8 个摄像头,数据集以视频形式存储,具有手动标注的行人边界框。DukeMTMC-reID数据集从 DukeMTMC 数据集的视频中,每 120 帧采集一张图像构成 DukeMTMC-reID数据集。原始数据集包含了85分钟的高分辨率视频,采集自8个不同的摄像头。并且提供了人工标注的bounding box。从视频中每120帧采样一张图像,得到了 36411张图像。一共有1404个人出现在大于两个摄像头下,有408个人只出现在一个摄像头下。所以作者随机采样了 702个人作为训练集,702个人作为测试集。在测试集中,采样了每个ID的每个摄像头下的一张照片作为 查询图像(query)。剩下的图像加入测试的搜索库(gallery),并且将之前的 408人作为干扰项,也加到 gallery中。最终,DukeMTMC-reID 包含了16522张训练图片(来自702个人), 2228个查询图像(来自另外的702个人),以及 17661张图像的搜索库(gallery)。并提供切割后的图像供下载。

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

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

相关文章

阿里开源大模型 Qwen-72B 私有化部署

近期大家都知道阿里推出了自己的开源的大模型千问72B,据说对于中文非常友好,在开源模型里面,可谓是名列前茅。 千问拥有有强大的基础语言模型,已经针对多达 3 万亿个 token 的多语言数据进行了稳定的预训练,覆盖领域、…

《微信小程序开发从入门到实战》学习六十七

6.6 网络API 部分小程序服务端不是用云开发技术实现,而是由开发人员使用后端开发语言实现。 在小程序用网络API与(开发人员使后端开发语言建设的)服务端进行交互,可与服务端交换数据、上传或下载文件。 6.6.1 服务器域名配置 …

C#使用条件语句判断用户登录身份

目录 一、示例 二、生成 利用条件语句判断用户登录身份,根据用户登录身份的不同,给予相应的操作权限。 一、示例 主要用if语句及ComboBox控件。其中,ComboBox是窗体中的下拉列表控件,在使用ComboBox控件前,可以先向…

Spring6入门

1、入门 1.1、环境要求 JDK:Java17(Spring6要求JDK最低版本是Java17)Maven:3.6Spring:6.1.2 1.2、构建模块 (1)构建父模块spring6 在idea中,依次单击 File -> New -> Proj…

Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由 嵌套路由 &#xff1a;就是一个组件内部还希望展示其他的组件&#xff0c;使用嵌套的方式实现页面组件的渲染。 就像 根组件 通过路由渲染 普通组件一样&#xff0c;嵌套路由也是一样的道理。 嵌套路由的相关关键配置 1、<router-view> 标签 声明 被嵌套组…

乒乓球廉价底板及套胶评测4

球拍找到适应自己的不容易&#xff0c;因为初学者或者说业余爱好者无法确定是按打法特点选拍还是按拍子练打法特点&#xff0c;所以有时候就要孤注一掷&#xff0c;想想练球的初衷&#xff0c;不用被打的好的对手所左右。我和朋友打球的时候发现大家借力的能力越来越强&#xf…

三巨头对决:深入了解pnpm、yarn与npm

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 三巨头对决&#xff1a;深入了解pnpm、yarn与npm 前言包管理器简介npm&#xff08;Node Package Manager&#xff09;&#xff1a;Yarn&#xff1a;pnpm&#xff08;Performant Npm&#xff09;&#…

FL Studio 21.2.2官方中文版重磅发布

纯正简体中文支持&#xff0c;更快捷的音频剪辑及素材管理器&#xff0c;多样主题随心换&#xff01; Mac版新增对苹果M2/1家族芯片原生支持。 丰富的主题换肤 现在大家可以通过控制色调、饱和度、亮度、文本、仪表和步进序列器的颜色来改变你的DAW外观&#xff0c; DAW“情绪…

Docker 概述以及整体架构

文章目录 一、Docker概述1.1 什么是 Docker1.2 Docker 如何工作1.3 底层技术 二、Docker架构2.1 Docker 整体架构2.2 Docker daemon2.3 Docker client2.4 Docker registries2.5 Docker objects2.6 Docker Desktop 参考资料 一、Docker概述 1.1 什么是 Docker Docker是一个用于…

JVM工作原理与实战(二):字节码编辑器jclasslib

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、字节码编辑器jclasslib介绍和安装 1.介绍 2.安装 3.IntelliJ IDEA 插件安装 二、字节码编辑器jclasslib的使用 1.使用jclasslib bytecode viewer打开字节码文件 2.使用Intell…

Spring 是如何解决循环依赖的

1.什么是循环依赖? 所谓的循环依赖是指&#xff0c;A 依赖 B&#xff0c;B 又依赖 A&#xff0c;它们之间形成了循环依赖。或者是 A 依赖 B&#xff0c;B 依赖 C&#xff0c;C 又依赖 A。它们之间的依赖关系如下&#xff1a; 2.通过手写代码演示理解Spring循环依赖 DEMO: pu…

模型性能评估简介

模型评估 混淆矩阵 Positive - 正例Negative (N) - 负例 结果: 预测为正类别 预测为负类别 真实为正类别 True Positive (TP) False Negative (FN) 真实为负类别 False Positive (FP) True Negative (TN)TP - 预测 P, 实际 P, 模型预测正确FP - 预测 P, …

Spring-5-切入点的高级使用

Spring提供了两个额外的Pointcut实现&#xff0c;分别是ComposablePointcut和ControlFlowPointcut,它们提供了所需的灵活性。 使用控制流切入点 由ControlFlowPointcut类实现的Spring控制流切入点类似于许多其他AOP实现中可用的cflow构造&#xff0c;尽管功能上没有那么强大。…

2023十大编程语言及未来展望

2023十大编程语言及未来展望 1. 2023年十大编程语言排行榜2. 十大编程语言未来展望PythonCCJavaC#JavaScriptPHPVisual BasicSQLAssembly language 1. 2023年十大编程语言排行榜 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量&#xff0c;并使用搜索引擎&a…

vivado CDC约束-约束总线偏移

CDC限制 关于CDC约束 时钟域交叉&#xff08;CDC&#xff09;约束适用于具有不同启动和捕获时钟。根据发布和捕获时钟关系以及在CDC路径上设置的定时异常。例如同步时钟之间但被错误路径约束覆盖的CDC路径不定时&#xff0c;并且因此被视为异步CDN。异步CDC路径可以是安全的&…

CentOS7安装部署Zookeeper

文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1&#xff09;主机名2&#xff09;Hosts文件3&#xff09;关闭防火墙4&#xff09;JDK 安装部署 3.单机部署1&#xff09;下载和解压2&#xff09;配置文件3&…

Vue: 事件修饰符, 键盘事件, 鼠标事件,计算属性

目录 事件修饰符 阻止默认事件 阻止冒泡 允许触发一次 捕获模式 self passive 键盘事件 keyup & keydown 按键别名 注意tab 注意系统按键 自定义按键 鼠标事件 简介 鼠标焦点事件 计算属性 差值语法实现 methods实现 computed实现 get() set() 总…

基于AM62x的ARM+FPGA+Codesys低成本软PLC解决方案

GPMC并口简介 GPMC(General Purpose Memory Controller)是TI处理器特有的通用存储器控制器接口&#xff0c;支持8/16bit数据位宽&#xff0c;支持128MB访问空间&#xff0c;最高时钟速率133MHz。GPMC是AM62x、AM64x、AM437x、AM335x、AM57x等处理器专用于与外部存储器设备的接口…

IP地理位置定位技术基本原理

IP地理位置定位技术的基本原理是基于IP地址的特性。每个IP地址在网络中都有一个与之对应的地理位置信息&#xff0c;这是通过IP地址数据库来确定的。这个数据库由ISP&#xff08;Internet Service Provider&#xff09;或其它一些机构维护&#xff0c;其中包含了每个IP地址的地…

openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅

文章目录 openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅179.1 发布179.2 订阅179.3 冲突处理179.4 限制179.5 架构179.6 监控179.7 安全性179.8 配置设置179.9 快速设置 openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅 发布和订阅基于逻辑复…