行人重识别(ReID)基础知识入门
这里写目录标题
- 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.特征提取
:基于特征提取模型,项目中现使用预训练的特征提取模型提取行人区域图片的特征向量。
3.单镜头行人跟踪
:结合行人区域特征,通过deepsort等算法进行行人跟踪。
4.跨镜头行人跟踪
:基于深度学习的全局特征和数据关联实现跨镜头行人目标跟踪。
5.向量存储与检索
:对于给定的行人查询向量,与行人特征库中所有的待查询向量进行向量检索,即计算特征向量间的相似度(计算余弦距离等方法)。
在以上步骤中,特征提取是最关键的一环,它的作用是将输入的行人图片转化为固定维度的特征向量,以用于后续的目标跟踪和向量检索。好的特征需要具备良好的相似度保持性,即在特征空间中,相似度高的图片之间的向量距离比较近,而相似度低的图片对的向量距离比较远。通常用于训练这种模型的方式叫做度量学习。
注解:
全局特征
:每一张图片的全局信息进行一个特征抽取,全局特征没有任何的空间信息。局部特征
:对图像的某一个区域进行特征提取,最后将多个局部特征融合起来作为最终特征。度量学习
:将学习到的特征映射到新的空间,表现为同一行人的不同图片间的相似度大于不同行人的不同图片(即相同的人更近,不同的人更远)。图像检索
:根据图片特征之间的距离进行排序,返回检索结果。
1.3 重识别存在的技术挑战
ReID 在实际应用场景下的数据非常复杂,由于不同摄像设备之间的差异,同时行人兼具刚性和柔性的特性 ,外观易受穿着、尺度、遮挡、姿态和视角等影响,所以,对跨镜追踪(ReID)算法的要求也更高。
实际应用中常常出现:
无正面照
;服装更换
;遮挡
;图像分辨率低
;光线差异
;室内室外场景变化
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)。并提供切割后的图像供下载。
相关文章:

行人重识别(ReID)基础知识入门
这里写目录标题 1、ReID技术概述1.1 基本原理1.2 实现流程1.3 重识别存在的技术挑战 2、训练数据格式介绍 1、ReID技术概述 1.1 基本原理 ReID,全称Re-identification,目的是利用各种智能算法在图像数据库中找到与要搜索的目标相似的对象。ReID是图像检…...

【音视频 ffmpeg 学习】 跑示例程序 持续更新中
环境准备 在上一篇文章 把mux.c 拷贝到main.c 中 使用 attribute(unused) 消除警告 __attribute__(unused)/** Copyright (c) 2003 Fabrice Bellard** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated docu…...
前端axios与python库requests的区别
当涉及到发送HTTP请求时,Axios和Python中的requests库都是常用的工具。下面是它们的详细说明: Axios: Axios是一个基于Promise的HTTP客户端,主要用于浏览器和Node.js环境中发送HTTP请求。以下是Axios的一些特点和用法࿱…...
达梦数据库文档
1:达梦数据库(DM8)简介 达梦数据库管理系统是武汉达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统目前最新的版本是8.0版本,简称DM8。 DM8是达梦公司在总结DM系列产品研发与应用经验的基础上…...

CorelDRAW2024新功能有哪些?CorelDRAW2024最新版本更新怎么样?
CorelDRAW2024新功能有哪些?CorelDRAW2024最新版本更新怎么样?让我们带您详细了解! CorelDRAW Graphics Suite 是矢量制图行业的标杆软件,2024年全新版本为您带来多项新功能和优化改进。本次更新强调易用性,包括更强大…...

基于Mapify的在线艺术地图设计
地图是传递空间信息的有效载体,更加美观、生动的地图产品也是我们追求目标。 那么,我们如何才能制出如下图所示这样一幅艺术性较高的地图呢?今天我们来一探究竟吧! 按照惯例,现将网址给出: https://www.m…...

mxxWechatBot微信机器人V2版本文档说明
大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 先看这里 一、前言二、mxxWechatBot流程图三、怎么使用? 一、前言 经过不断地探索与研究,mxxWechatBot正式上线,届时全面开放使用。 mxxWechatBot&am…...

红队打靶练习:MISDIRECTION: 1
信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …...

Jmeter吞吐量控制器总结
吞吐量控制器(Throughput Controller) 场景: 在同一个线程组里, 有10个并发, 7个做A业务, 3个做B业务,要模拟这种场景,可以通过吞吐量模拟器来实现。 添加吞吐量控制器 用法1: Percent Executions 在一个线程组内分别建立两个吞吐量控制器, 分别放业务A和业务B …...

【XML】TinyXML 详解(二):接口详解
【C】郭老二博文之:C目录 1、XML测试文件(laoer.xml) <?xml version"1.0" standalone"no" ?> <!-- Hello World !--> <root><child name"childName" id"1"><c_child…...

【机器学习】人工智能概述
人工智能(Artificial Intelligence,简称AI)是一门研究如何使机器能够像人一样思考、学习和执行任务的学科。它是计算机科学的一个重要分支,涉及机器学习、自然语言处理、计算机视觉等多个领域。 人工智能的概念最早可以追溯到20世…...

flink 实时写入 hudi 参数推荐
数据湖任务并行度计算...

传统项目基于tomcat cookie单体会话升级分布式会话解决方案
传统捞项目基于servlet容器 cookie单体会话改造分布式会话方案 ##引入redis,spring-session依赖 <!--redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&…...
Unity 关于json数据的解析方式(LitJson.dll插件)
关于json数据的解析方式(LitJson.dll插件) void ParseItemJson(){TextAsset itemText Resources.Load<TextAsset>("Items");//读取Resources中Items文件,需要将Items文件放到Resources文件夹中string itemJson itemText.te…...

智能监控平台/视频共享融合系统EasyCVR海康设备国标GB28181接入流程
TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&…...
expdp到ASM 文件系统 并拷贝
1.创建asm导出数据目录 sql>select name,total_mb,free_mb from v$asm_diskgroup; 确认集群asm磁盘组环境 asmcmd>cd DGDSDB asmcmd>mkdir dpbak asmcmd>ls -l sql>conn / as sysdba create directory expdp_asm_dir as DGDSDB/dpbak; create directory expdp_l…...

【2023】通过docker安装hadoop以及常见报错
💻目录 1、准备2、安装镜像2.1、创建centos-ssh的镜像2.2、创建hadoop的镜像 3、配置ssh网络3.1、搭建同一网段的网络3.2、配置host实现互相之间可以免密登陆3.3、查看是否成功 4、安装配置Hadoop4.1、添加存储文件夹4.2、添加指定配置4.3、同步数据 5、测试启动5.1…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C) Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在NEOAPI SDK里通过函数获取相机帧率(C) …...

SpringBoot项目部署及多环境
1、多环境 2、项目部署上线 原始前端 / 后端项目宝塔Linux容器容器平台 3、前后端联调 4、项目扩展和规划 多环境 程序员鱼皮-参考文章 本地开发:localhost(127.0.0.1) 多环境:指同一套项目代码在把不同的阶段需要根据实际…...

WebGL以及wasm的介绍以及简单应用
简介 下面主要介绍了WebGL和wasm,是除了html,css,js以外Web标准所支持的另外两个大件 前者实现复杂的图形处理,后者提供高效的代码迁移以及代码执行效率 WebGL 简介 首先,浏览器里的游戏是怎么做到这种交互又显示不同的画面的? 试想用我们的前端三件套实现一下.好像可以…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...