用于物体识别和跟踪的下游任务自监督学习-2-(计算机视觉中的距离度量+损失函数)

本文主要是介绍用于物体识别和跟踪的下游任务自监督学习-2-(计算机视觉中的距离度量+损失函数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2.4 计算机视觉中的距离度量

在深度学习和计算机视觉中,距离度量通常用于比较图像、视频或其他数据的特征或嵌入。根据具体任务和数据属性,可以使用不同类型的距离度量。下面介绍了深度学习和计算机视觉中使用的一些常见类型的距离度量。

余弦相似性距离:余弦相似性测量向量空间模型(VSM)中两个向量之间的距离。余弦相似性Sc(τa,τp)和两个向量τa和τp之间对应的余弦距离Dc(τa、τp)可以定义如下2.6式子

 软余弦相似距离是自然语言处理中提出的传统余弦距离[61]的修改版本,它考虑了余弦距离中两个特征向量之间的相似性。

 如果τai和τpj之间没有相似性,则对于i 6=j和sii=1,sij=0,这减少到传统的余弦相似距离Dc(等式2.6)

 Mahalanobis距离:Mahalano比斯距离测量点和分布之间的距离。与欧几里得距离不同Mahalanobis 30距离考虑了变量之间的相关性。在这个度量中,每个变量根据其相关性对距离做出贡献。x∈Rp和p变量分布fx(.)的平均值µ=E(x)之间的马氏距离D(x,µ)可以定义为

对于单位协方差矩阵,Mahalanobis距离变为欧几里得距离。

豪斯多夫距离(Hausdorff Distance):豪斯多夫距离度量测量两组点之间的相似性,并定义为一组点中任意点与另一组点之间最接近点之间的最高距离。两组点τa和τp之间的有向豪斯多夫距离[62]可以定义为每个点x∈τa与其最近邻居y∈τp

其中||*||是欧几里得距离函数。由于~H(τa,τp)6=~H(σp,τa),豪斯多夫距离也被定义为两个方向上有向豪斯多夫距离的最大值,即。

Frechet距离:Fréchet距离[63,64]测量两条曲线之间的相似性。它被定义为两条曲线上对应点之间的最大距离在两条曲线的所有可能对齐上的最小值。

其中,两条2D多边形曲线τa和τp之间的Fréchet距离F(τa,τp)是τa(αt)和τp(βt)之间所有欧几里得距离的最大值的所有α,β的下确界(最大下界)。这里,t∈[0,1]表示当我们计算两个曲线点之间的距离时的时间实例。为了解决O(n2-log(n2))的计算复杂度,在[65]中提出了离散Frèchet距离,其计算复杂度为O(n2)。离散Frèchet距离经常被用作图像配准、对象识别和计算几何中的相似性度量。

2.5损失函数

损失函数是用于在训练期间优化模型的机器学习模型中的误差或损失的度量。在深度学习和计算机视觉中,目标通常是最小化成本函数,以提高模型在给定任务上的性能。根据具体任务和数据特征,有许多不同的成本函数可用于深度学习和计算机视觉。下面介绍了一些最常见的成本函数。

 

这篇关于用于物体识别和跟踪的下游任务自监督学习-2-(计算机视觉中的距离度量+损失函数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217394

相关文章

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

kotlin的函数forEach示例详解

《kotlin的函数forEach示例详解》在Kotlin中,forEach是一个高阶函数,用于遍历集合中的每个元素并对其执行指定的操作,它的核心特点是简洁、函数式,适用于需要遍历集合且无需返回值的场... 目录一、基本用法1️⃣ 遍历集合2️⃣ 遍历数组3️⃣ 遍历 Map二、与 for 循环的区别三、高