行人重识别-度量学习

article/2025/11/10 20:12:58

行人重识别-度量学习

前言

和前面介绍到的表征学习一样,度量学习也是基于全局特征学习的一种方法,且被广泛用于图像检索领域。不同于表征学习通过分类或者验证的方式,度量学习目的在于通过网络学习两张图片的相似度。在行人重识别问题上,表现为同一行人的不同图片之间的相似度远大于不同行人的不同图片。

定义

定义如下一个映射:在这里插入图片描述
将图片从原始域映射到特征域(就是从真实图片提取特征的意思),之后再定义一个距离度量函数:在这里插入图片描述
来计算两个特征之间的的距离
注:这个距离度量函数并不唯一,只要是能够在特征空间描述特征向量的相似度的函数都可以作为距离度量函数。当然为了实现端到端训练的函数,度量函数应尽可能连续可导,常用的是归一化特征的欧氏距离或者特征的余弦距离
在这里插入图片描述

最后通过最小化网络的度量损失, 来寻找一个最优的映射f(x), 使得相同行人两张图片(正样本对)的距离尽可能小, 不同行人两张图片(负样本对)的距离尽可能大。而这个映射f(x), 就是我们训练得到的深度卷积网络。

度量损失

常用的度量学习损失方法包括对比损失、三元组损失、改进三元组损失、四元组损失。

传统度量损失

在这里插入图片描述传统的度量学习的方式如上图,对两张图片提取特征,按照上述公式计算,通过调整中间方阵的数值使得距离Dm尽可能小。当然,现如今大多都在使用深度度量学习的方法,因此不再赘述。

对比损失

在这里插入图片描述对比损失的输入是两张图片,这里两张图片可以是同一行人的图片(正样本),也可以是不同行人的图片(负样本)。通过将一对图片输入孪生网络进行训练,调节相应参数,最终使得正样本间的距离趋近于0,负样本的距离大于某个给定值α。
对比损失函数:在这里插入图片描述
解释一下这个函数,对于每一对训练图片,都会给一个标签y,y=1表示两张图片同属于一个人,此时激活该函数的前半部分,只有尽可能缩小a,b之间的距离,才能使得损失尽可能小;同理当y=0时,会激活函数的后半部分,此时前半部分为0,应保证a,b,也就是负样本之间的距离超过给定值α,才能使得损失尽可能小。

三元组损失

在这里插入图片描述三元组损失的输入是三张图片,包括原始图片Anchor(a),以及对应的正样本(p)和负样本(n),训练模型应使得正样本之间的距离+某个阈值仍然小于负样本之间的距离,如下:
在这里插入图片描述这种方式仅考虑了正负样本之间的相对距离,而并没有考虑正样本对之间的绝对距离:在这里插入图片描述为此提出了改进三元组损失:
在这里插入图片描述

四元组损失

顾名思义,四元组损失是一次输入四张图片,比三元组损失又多了一张负样本图片,如下图所示:
在这里插入图片描述固定图片为a,正样本图片p,负样本图片n1,n2,且n1,n2属于不同的行人ID,四元组的损失表示为:
在这里插入图片描述
α和β是手动设置的正常数,通常设置β小于α,前一项作为强推动,只考虑正负样本间的相对距离,共享了固定图片a,在推开负样本对a和n1影响的同时,也会直接影响a的特性,造成正样本对距离不好控制;第二项作为弱推动,第二项负样本对和正样本不共享ID,考虑的是正负样本的绝对距离,在推开负样本的同时不会影响a的特性。

Triplet loss with hard example mining (TriHard loss)

难样本挖掘

随机样本的挑选可能经常会挑选出一些容易识别的样本对组成训练批量(batch),导致网络泛化能力受限(和你天天算10以内加减法,时间长了,两位数的加减法你都得想半天是一个道理)。
那么如何挑去难样本呢?
即挑选出一个训练Batch中特征向量距离比较大(非常不像)的正样本,以及和特征向量距离比较小的(非常像)的负样本对来训练网络。
使用这种技术可以明显改进度量学习方法的性能,加快网络的收敛,并且可以很方便地在原有度量学习方法上进行扩展。

实现(只考虑了极端样本的信息)

核心思想是:对于每一个训练batch挑选P个ID的行人,每个行人,随机挑选K张不同的图片,即一个batch含有P×K张图片。之后对于batch中的每一张图片a,我们可以挑选一个最难的正样本和一个最难的负样本和a组成一个三元组。首先我们定义和a为相同ID的图片集为A,剩下不同ID的图
片集为B,则TriHard损失表示为:
在这里插入图片描述如下图,红色表示正样本,绿色表示负样本,挑选正样本的最大值和负样本的最小值:

在这里插入图片描述

自适应权重

自适应权重损失根据样本对之间的距离计算自适应权重,对于正样本对,距离越大,权重越大;对于负样本对,距离越大,权重越小:
在这里插入图片描述在这里插入图片描述

总结

度量学习可以近似看作为样本在特征空间进行聚类, 表征学习可以近似看作为学习样本在特征空间的分界面. 正样本距离拉近的过程使得类内距离缩小, 负样本距离推开的过程使得类间距离增大, 最终收敛时样本在特征空间呈现聚类效应. 度量学习和表征学习相比, 优势在于网络末尾不需要接一个分类的全连接层, 因此对于训练集的行人 ID 数量并不敏感, 可以应用于训练超大规模数据集的网络. 总体而言, 度量学习比表征学习使用的更加广泛, 性能表现也略微优于表征学习. 但是目前行人重识别的数据集规模还依然有限, 表征学习的方法也依然得到使用, 而同时融合度量学习和表征学习训练网络的思路也在逐渐变得流行.


http://chatgpt.dhexx.cn/article/Vr8B7VSi.shtml

相关文章

度量学习方法 - KISSME

KISSME(keep it simple and straightforward metric), 属于有监督的线性度量学习方法,本质上还是学习马氏距离中的矩阵M. 推导 首先,认为对于样本对,它们之间的差异程度(dissimilar)可以通过似然…

论文 基于度量学习的小样本学习研究 阅读心得

论文主要工作: 本文提出带间隔的小样本学习, 提升了所学习嵌入表示的质量。 为引入间隔, 本文根据小样本场景特点提出了多路对比损失, 使得小样本学习模型可以学习到一个更加具有判别性的度量空间,同时泛化误差可以减小…

度量学习1

度量学习: 度量学习作为小样本学习中主要方法之一,在解决小样本问题上应用较广,本篇博客主要介绍几篇metric learning的基础文献。 分别是: (1)Siamese Neural Networks for One-shot Image Recognition &a…

度量学习DML之Circle Loss

度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structure Loss_程大海的博客-CSDN博客 度量学习DML之Circle Loss_程大海的博客-CSDN博客 度量学习DML之Cross-Batch Memory_程大海的…

度量学习DML之MoCO

度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structure Loss_程大海的博客-CSDN博客 度量学习DML之Circle Loss_程大海的博客-CSDN博客 度量学习DML之Cross-Batch Memory_程大海的…

【ReID】表征学习和度量学习

文章目录 1.表征学习1.1分类损失1.2验证损失1.3表征学习总结 2.度量学习2.1 Introduction2.2 对比损失2.3 三元组损失2.4 改进三元组损失2.5 四元组损失2.6 TriHard loss2.7 Triple loss with adaptive weights2.8 度量学习总结 3. 总结 表征学习和度量学习是行人重识别最基本的…

度量学习---综述

introduction 度量学习的对象通常是样本特征向量的距离,度量学习的目的是通过训练和学习,减小或限制同类样本之间的距离,同时增大不同类别样本之间的距离。 度量学习 (Metric Learning) 距离度量学习 (Distance Metric Learning&#xff0…

Deep metric learning 深度度量学习 总结

最近的工作用是深度度量学习的改进,这里将DML进行一个总结。 根据个人的理解,开篇用一句话介绍一下度量学习: “不同于分类学习,度量学习是通过学习数据之间的相似性程度来获得一个更有意义或者说更具可分性的特征空间。” Tra…

度量学习方法总结

目录 一.距离度量 闵可夫斯基距离 欧式距离(Euclidean Distance): 标准化欧氏距离 (Standardized Euclidean distance ) 曼哈顿距离(ManhattanDistance) 切比雪夫距离(Chebyshevdistance) 马氏距离 马氏距离代…

度量学习

度量学习(Metric Learning) 度量(Metric)的定义 在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。一个具有度量的集合被称为度量空间。 度量学习(Metric Learni…

度量学习(Metric learning、损失函数、triplet、三元组损失、fastreid)

定义 Metric learning 是学习一个度量相似度的距离函数:相似的目标离得近,不相似的离得远. 一般来说,DML包含三个部分, 如下图.。 1)特征提取网络:map embedding 2)采样策略:将一个mini-batch里的样本组合成很多个sub…

度量学习Metric Learning

度量学习 (Metric Learning) 距离度量学习 (Distance Metric Learning,DML) 相似度学习 度量学习 是指 距离度量学习,Distance Metric Learning,简称为 DML,是人脸识别中常用传统机器学习方法,由Eric Xing在NIPS 2…

度量学习(Metric Learning)基础概念

一、什么是度量学习? 度量学习 (Metric Learning) 距离度量学习 (Distance Metric Learning,DML) 相似度学习。 在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。一个具有度量的集合被称为度量空…

度量学习——总结

传统方法 User guide: contents — metric-learn 0.6.2 documentation 深度学习 基于深度学习的度量学习方法大都由两个部分组成:特征提取模块和距离度量模块。距离度量模块的任务是使同一类样本间的距离更靠近,而不同类样本间的距离更远离。这一模块…

ffmpeg命令分析-r

本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 之前的文章分析 FFMpeg 工程的 do_video_out() 函数的时候,建议不关注 delta0,delta,nb0_frames,nb_frames 等变…

使用FFmpeg命令处理音视频

文章目录 前言一、ffprobe相关命令1.使用ffprobe查看音频文件的信息2.使用ffprobe查看视频文件的信息 二、ffplay相关命令1.基本的ffplay命令2.音视频同步命令 三、ffmpeg相关命令1.ffmpeg通用参数2.ffmpeg视频参数3.ffmpeg音频参数4.ffmpeg示例 总结 前言 FFmpeg是一套可以用…

ffmpeg-命令行详解

前言 ffmpeg是一个多媒体开发库,提供了关于音频和视频的工具。这个项目的官网是这里。 下载地址 ffmpeg提供了方便地控制台命令,可以在下载页面下载。三个平台(windows,linux,macos)都有打包好的可执行文…

ffmpeg命令分析-b:v

本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的。a.mp4下载链接:百度网盘,提取码:nl0s 。 命令如下:…

FFmpeg命令详解

命令格式 功能 FFmpeg命令是在ffmpeg.exe可执行文件环境下执行,ffmpeg.exe用于音视频的转码,加水印,去水印,视频剪切,提取音频,提取视频,码率控制等等功能。 最简单的命令 ffmpeg -i input.a…

FFmpeg命令行转码

本文主要了解FFmpeg进行音视频编码转换。主要学习如下几个知识点: FFmpeg使用libx264进行H,264(AVC)软编码,使用libx265进行H.265(HEVC)软编码使用FFmpeg在MacOS环境下硬编码了解音频编码,MP3,AAC的参数设置编码 FFmpeg软编码H.…