目标跟踪基础:距离度量

news2024/9/24 1:19:20

本文来自公众号“AI大道理”

 ——————

距离度量在CV 、NLP以及数据分析等领域都有众多的应用。

距离度量可以当做某种相似度,距离越近,越相似。

在目标跟踪领域中,需要判断目标之间的距离或相似度,从而判断前后帧的目标是否是同一个目标。

1、距离

常见距离:

  • 欧式距离

  • 标准化欧式距离

  • 马氏距离

  • 曼哈顿距离

  • 切比雪夫距离

  • 闵氏距离

概率分布的距离度量:

  • KL散度

  • JS距离

  • MMD距离

  • Principal angle

  • HSIC

  • Earth Mover’s Distance

本文主要讲解常见距离。

常见距离

2、欧式距离

欧式距离是非常常见和常用的距离度量方式。

欧式距离表示在平面上两点之间直线最短,平面就暗含欧式距离适合二维的情况。

欧式距离是从这些点的笛卡尔坐标用勾股定理计算出来。

公式:

等距线:

正圆

缺点:

尽管欧几里德距离是一种常见的距离度量,但它不是尺度不变的,这意味着计算的距离可能是倾斜的,这取决于特征的单位。

此外,随着数据维度的增加,欧几里得距离就变得不那么有用了。

两大问题:

尺度、单位可能不统一问题:

如下图,A  与 B  相对于原点的距离是相同的。但是由于样本总体沿着横轴分布,所以B点更有可能是这个样本中的点,而A则更有可能是离群点。

特征之间很可能存在相关性,不是直角问题:

还有一个问题-----如果维度间不独立同分布,样本点一定与欧氏距离近的样本点同类的概率更大吗?

A  与 B  相对于原点的距离依旧相等,显然 A 更像是一个离群点。

3、标准化欧式距离

为了解决欧式距离尺度不一致的问题,引入了标准化欧式距离。

公式:

等距线:

正椭圆

在标准化欧式距离下,x和y可以不同的尺度,换句话说可以根据xy给不同的权重。

而欧式距离相当于xy权重是一样的,1:1的。

4、马氏距离

马氏距离是旋转变换缩放后的欧氏距离。

马氏距离将样本的协方差矩阵纳入距离度量计算,相当于对欧式距离的修正。

马氏距离完成正交,解决了特征间相关性的问题。

马氏距离内含标准化,解决了特征间尺度不一致的问题。

马氏距离可用于判断点到某个分布的距离。

马氏距离是表示数据的协方差距离,计算两个未知样本集的相似度的方法。

由主成分分析可知,由于主成分就是特征向量方向,每个方向的方差就是对应的特征值,所以只需要按照特征向量的方向旋转,然后缩放特征值倍就可以了,得到以下结果:

公式:

马氏距离是旋转变换缩放后的欧氏距离,所以马氏距离的计算公式可以由欧式距离推导而来。

协方差:

协方差矩阵:

如果协方差矩阵为单位矩阵,马氏距离就简化为欧式距离。

欧式距离两个分量的权值都是1,而马氏距离可以是其他值。

等距线:  

旋转椭圆

马氏距离,将变量按照主成分进行旋转,让维度间相互独立,然后进行标准化,让维度同分布。

计算样本数据的马氏距离分为两个步骤:

  • 坐标旋转

  • 数据压缩

坐标旋转的目标:使旋转后的各个维度之间线性无关,所以该旋转过程就是主成分分析的过程。
数据压缩的目标:所以将不同的维度上的数据压缩成为方差都是1的的数据集。

用途:

马氏距离用于异常检测:

马氏距离可用于异常检测,但它于聚类不同,需要先用正常数据计算得到距离数据中心的边界阈值,然后再判别某点距离该数据集中心的位置是否超过该阈值,超过则判定为异常点。

目标跟踪:

需要判断下一帧目标属于哪个目标,可以根据历史数据计算马氏距离判断这个点是不是同一个目标点。

马氏距离的问题:

协方差矩阵必须满秩。

里面有求逆矩阵的过程,不满秩不行,要求数据要有原维度个特征值,如果没有可以考虑先进行PCA,这种情况下PCA不会损失信息

不能处理非线性流形(manifold)上的问题。

只对线性空间有效,如果要处理流形,只能在局部定义。

5、曼哈顿距离

曼哈顿距离,通常称为城市街区距离,计算实值向量之间的距离。

想象描述均匀网格(如棋盘)上物体的向量。曼哈顿距离是指两个矢量之间的距离,如果它们只能移动直角。

在计算距离时不涉及对角线移动。

公式:

等距线:

旋转正方形

缺点:

尽管曼哈顿距离在高维数据中似乎可以工作,但它比欧几里得距离更不直观,尤其是在高维数据中使用时。

此外,由于它不是可能的最短路径,它比欧几里得距离更有可能给出一个更高的距离值。

6、切比雪夫距离

切比雪夫距离来源于国际象棋,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。

国王从一个格子走到另一个格子最少需要多少步?这个距离就叫切比雪夫距离。

切比雪夫距离定义为两个向量在任意坐标维度上的最大差值。

换句话说,它就是沿着一个轴的最大距离。

公式:

等距线:

正方形

圆心到线段的距离,这个距离代表直线上的其他点到圆心的距离。

即线段上的点距离圆心相等。

或者说取到xy轴的距离的最大值。

在实践中,切比雪夫距离经常用于仓库物流,因为它非常类似于起重机移动一个物体的时间。

另外想到的就是分数分段,各个分段的分数人数多少,看看大多数人集中在哪个分数段。

而看0分到100的总人数就失去了意义。

7、闵式距离

闵氏距离是一系列距离的集合。

公式:

p=1,城市街区距离

p=2,欧式距离

p=+∞,切比雪夫距离

等距线:

(灵魂拷问:闵氏距离p->∞,转变成切比雪夫距离。问题是上面的公式求极限,怎么就得出下面的max的呢?)

证明:

8、总结

空间:欧氏距离

路径:曼哈顿距离 国际象棋国王:切比雪夫距离 (以上三种的统一形式:闵可夫斯基距离)

加权:标准化欧氏距离

排除量纲和依存:马氏距离

向量差距:夹角余弦

编码差别:汉明距离

集合近似度:杰卡德相似系数与距离

相关:相关系数与相关距离

时间序列:DTW距离

 ——————

浅谈则止,细致入微AI大道理

扫描下方“AI大道理”,选择“关注”公众号

—————————————————————

 

—————————————————————

投稿吧   | 留言吧

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

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

相关文章

Redis实战案例13-集群下的并发安全问题

在解决一人一单的问题上面,采用了悲观锁的方案,但是这种方案只适合单机情况,在集群的模式下就不适用了; 覆盖yaml文件中的端口号 修改nginx中conf,这样就可以反向代理到两个节点上去,轮询的负载均衡规则&am…

git bash---打开当前路径所在文件夹

0 Preface/Foreword 在Windows操作系统中使用git bash时,可以通过命令直接打开当前路径下的文件夹,命令如下 explorer .

MS17-010漏洞复现

官方描述:Microsoft Security Bulletin MS17-010 - Critical | Microsoft Learn漏洞描述: Microsoft Windows SMB Server远程代码执行漏洞,Microsoft Server Message Block 1.0 (SMBv1)服务器处理某些请求时,在实现上存在远程代码…

Mockplus Cloud - June 2023crack

Mockplus Cloud - June 2023crack 添加便签以澄清情节提要上的任何设计概念。 新的流程图工具直接在情节提要上可视化任何设计流程和过程。 添加了在发布到Mockplus Cloud时删除RP页面的功能。 添加设计注释时包括图像和链接。 添加了一个新的提示,用于在断开互联网…

MySQL练习题(1)

1,创建如下学生表 mysql> create table student( -> id int, -> name varchar(20), -> gender varchar(20), -> chinese int, -> math int, -> english int -> ); 插入如图数据 1-- 查询表中所有学生的信息 select *from student;2-- 查询表中所有学…

mysql语句练习题,创建表,枚举中文字符集设置,修改(update)

作业: 1.创建表: 创建员工表employee,字段如下: id(员工编号),name(员工名字),gender(员工性别),salary(员工薪…

厄尔尼诺,“烤热”新能源汽车市场?

在高温极端天气中,买新能源汽车的人变多了还是变少了? 7月4日,世界气象组织宣布,热带太平洋七年来首次形成厄尔尼诺条件,这可能导致全球气温飙升、破坏性天气和气候模式的出现。 注:1月底至6月初&#xff…

【离散数学】实践二 Floyd– Warshall算法

文章目录 目标原理设计与实现(代码快照以及代码)运行界面和结果截图结语 目标 给定一个距离矩阵,利用 Floyd– Warshall 算法编程(C语言)求任意两点之间的最短距离。 原理 求取多源最短路径常用Floyd算法&#xff0c…

支持向量机SVM代码详解——多分类/降维可视化/参数优化【python】

篇1:SVM原理及多分类python代码实例讲解(鸢尾花数据) SVM原理 支持向量机(Support Vector Machine,SVM),主要用于小样本下的二分类、多分类以及回归分析,是一种有监督学习的算法。基本思想是寻…

腾讯云对象存储的创建和S3 Browser的使用

简述 想想第一次接触对象存储的时候还是很兴奋的,同时也是一脸懵逼;然后开始网上疯狂的找资料,但因为客户当时给的文档写的是关于Amazon S3之类的,所以自以为的就只有Amazon S3这一家,接着开始查资料,经过一…

Spark学习---2、SparkCore(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))

1、RDD概述 1.1 什么是RDD RDD(Resilient Distributed Dataset)叫弹性分布式数据集,是Spark中对于分布式数据集的抽象。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 1.2 RDD五大特性 1、一组分区&#xff0…

Pyecharts 绘制各种统计图的案例

Pyecharts 绘制各种统计图的案例 基础使用 from pyecharts import options as opts from pyecharts.charts import Bar, Line, Pie, Scatter from pyecharts.faker import Faker# 柱状图示例 def bar_chart():x_data Faker.choose()y_data Faker.values()bar (Bar().add_xa…

simulink实战 建模 简单车辆动力学模型

Gmg Discrete-TimeIntegrator 离散时间积分器

CentOS 7 搭建 Impala 4.1.2 + Kudu 1.15.0 测试环境

安装依赖 这部分不过于详细介绍,如果有现成环境也可以直接拿来使用。 Java 下载 java 安装包,需要登录 oracle,请自行下载。 cd /mnt tar zxvf jdk-8u202-linux-x64.tar.gz配置环境变量到 /etc/bashrc,并执行 source /etc/bas…

关于深度学习图像数据增广

数据增广方法在广义上可以按照产生新数据的方式分为数据变形和数据过采样。由于操作简单,同时数据量上的需求远比现在要低得多,早期对数据增广的应用多是数据变形类方法。对于图像数据,基本的图像变换操作都属于数据变形类增广方法&#xff0…

Jvm参数设置-JVM(八)

上篇文章说了逃逸分析和标量,代码实例解析了内存分配先从eden区域开始,当内存不足的时候,才会进入s0和s1,发生yangGC,之后大内存会放入old,因为我们昨天程序运行了一个45M的对象,于是小对象在ed…

详解------>数组笔试题(必备知识)

目录 本章将通过列题进一步了解sizeof 与strlen的区别,加强对数组的理解。 1:一维数组列题 2:字符数组列题 3:二维数组列题 首先在进行这些习题讲解之前我们需要知道的知识点 sizeof:是一个关键字,可以…

KMP--高效字符串匹配算法(Java)

KMP算法 KMP算法算法介绍代码演示: KMP算法 KMP算法是为了解决这一类问题,给定一个字符串str1,和一个字符串str2,如果str2属于str1d的字串,则返回字串第一个出现位置的下标,不存在返回-1. 注意: 子串是连续的. 举个例子 str1 “abc123abs” str1 长度假设m str2 “123”; str2…

pycharm汉化

安装pycharm 不多说了,直接下载安装即可 汉化 file -setting plugins 输入chinese进行搜索 点击 进行安装,等待安装完成 安装完成需要重启,点击重启,等待重启完成即可 出现上图,说明汉化成功了

【计算机视觉】YOLOv8的测试以及训练过程(含源代码)

文章目录 一、导读二、部署环境三、预测结果3.1 使用检测模型3.2 使用分割模型3.3 使用分类模型3.4 使用pose检测模型 四、COCO val 数据集4.1 在 COCO128 val 上验证 YOLOv8n4.2 在COCO128上训练YOLOv8n 五、自己训练5.1 训练检测模型5.2 训练分割模型5.3 训练分类模型5.4 训练…