多媒体信息处理-重点知识-3. Feature Indexing and Retrieval

news2025/1/16 8:09:59

Chap 3. Feature Indexing and Retrieval

什么是索引?
为了提高数据集的检索效率而生成的结构化信息

基于特征的相似度匹配是多媒体数据检索方法的基础
从多媒体对象中提取重要特征,将其转化成高维特征向量存储在数据库中

相似性度量:
两种查询任务:
在这里插入图片描述

相似性查询可以通过扫描数据库来实现,但代价非常高
过滤 精简模式: Filter & Refine
近似策略快速过滤,对筛选后的结果精确比较
过滤策略需要满足两个条件:
候选集不能丢失任何可能的对象( 保证召回率
候选集包含的对象不能比真实相关对象多太多( 保证精度

核心问题 :如何高效的基于特征向量计算多媒体对象之间的相似性或距离?
特征向量通常是高维的三维空间中的点、立方体、球
文本、音频、图像等多媒体特征数据
常用的线性匹配查询,在高维特征条件下速度非常慢,需要研究特殊的技术和数据结构来支持高效的相似性匹配
高维数据的特点:
具有复杂的结构:可能是一个点,也可能是更复杂的图形,难以对高维数据排序
思路 :特征空间结构化
有了结构才能进行高效的索引,每次查询只需要检索少数几个子空间
高维索引就是针对高维空间进行空间划分和检索的技术和数据结构
影响查询效率的关键因素是磁盘的 I/O 次数,利用索引技术可以有效减少 I/O 次数
树结构非常自然的适用于索引结构

多维索引法
R tree 及其变形、 kd tree 等
近似最近邻法
VA File 等
降维法
iDistance 等
基于聚类的索引方法
Clindex 等

▪ 基于B树的索引方法
▪ B树,即二叉搜索树,其特点包括
▪ 1. 所有非叶子节点至多拥有两个子节点
▪ Left和Right
▪ 2. 所有的节点存储一个关键字
▪ 3. 非叶子节点的左指针指向小于其关键字的子
树,右节点指向大于其关键字的子树
▪ 数据的多维性使得传统的B树索引不再适合
▪ B树在一个维度上比较数据间的关系
▪ 大于、小于、等于
▪ 需要研究能适应高维特性的空间索引方式

▪ R-tree
▪ R树是B树向多维空间发展的另一种形式,是一种动态索引结构
▪ 对象空间按范围划分,每个结点对应一个区域▪ 由中间节点和叶节点组成
▪ 非叶结点存储其所有子结点的区域范围,所有子结点的区域都落在它的区域范围之内▪ 叶结点中存储其区域范围之内的所有空间对象的最小外接矩形(MBR

▪ 每个结点所能拥有的子结点数目有上、下限
▪ 下限保证对磁盘空间的有效利用
▪ 上限保证每个结点对应一个磁盘页
▪ 当新增操作导致某结点需要的空间大于一个磁盘页时,将该结点一分为二
▪ R树是一种动态索引结构,即:它的查询可与新增或删除同时进行

▪ 最小外接矩形MBR是包围数据,且平行于X,Y轴的最小外接矩形(以二维为例)
▪ MBR有什么作用?
▪ 数据的分布是不规则的,而MBR是平行于X,Y轴的规则图形,针对这样的矩形进行几何上的任何判断更加简单
▪ R-tree是B树在高维数据空间的扩展
▪ 是一种高度平衡树
▪ 用原始数据的最小边界矩形表示数据
▪ 删除、更新等操作都类似B树
▪ 有效支持的数据维数20维以下
▪ 可以进行点查询和范围查询
▪ 影响查询效率的主要因素
▪ 重叠区域:导致查询时遍历多个路径
▪ 死空间:导致查询时遍历不必要的路径
▪ 在构建R-tree时要尽量减少重叠区域和死区域的面积
分裂的原则:尽量减少对分裂后的两个节点进行查询操作
▪ 两个子节点所覆盖的区域面积之和尽量的小
▪ R-tree算法主要问题:
▪ 节点存在重叠现象,导致查询时可能要遍历多条路径,甚至是全部路径
▪ 当数据维度增大时,重叠现象迅速恶化,导致查询性能急剧下降

▪ R±tree
▪ 基本结构与R-tree相同
▪ 兄弟节点之间的MBR不允许重叠
▪ 一个数据可以被分割存储在不同的叶子节点中
▪ R±tree具有更好的查询性能,但需要更多的存
储空间
▪ 新增和删除操作的效率较低

▪ k-d-tree
▪ 一种由二叉搜索树推广而来的用于多维检索的树的结构形式(k即为空间的维数),主要应用于多维空间关键数据的搜索
▪ 传统二叉树无法适应多维数据的需求
▪ 与二叉搜索树不同的是它的每个结点表示k维空间的一个点,用一个k-1维超平面将节点所表示的k维空间分成两个部分
▪ N mod k

▪ VA-File (Vector Approximation File)
▪ 一种针对高维空间中矢量(点数据)的快速近似查询方法
▪ 通过数据压缩,近似表示高维矢量数据,减少磁盘代价

▪ VA-File的K近邻查询
▪ 1. 根据查询矢量确定匹配范围的下界和上界
▪ 2. 对候选矢量计算与查询矢量间的距离并排序 得到K近邻结果
▪ 量化精度影响匹配效果
▪ 量化越精确,第一步过滤效果越好,但代价更高
▪ 反之会影响第一步的查询精度
▪ 需要一个折中策略来确定量化精度

▪ iMinMax(θ)
▪ 一种基于降维的高维索引方法
▪ 将高维空间的点用其在所有维上的最大值或最小值表示,即利用边界近似的方法将高维数据映射到一维,然后用B±tree进行索引
▪ 通过调整参数θ,使算法适应不同的数据分布

▪ 基于聚类的索引结构
▪ 高维数据的分布具有聚集的特点
▪ 存在的问题:
▪ 聚类算法复杂度较高
▪ 聚类效果不理想

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

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

相关文章

数据库|基于TiDB Binlog架构的主备集群切换操作手册

目录 一、具体操作过程 //1、停业务,待drainer追平主、备库数据 //2、使用sync-diff-inspector校验主从库数据是否一致 //3、关停主库到灾备库drainer同步链路后记录当前drainer同步TSO //4、使用dumpling/BR对灾备库进行数据全量备份(备份期间可继…

leetcode——异或运算—— 只出现一次的数字

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 : 输入&#xff…

【Web安全靶场】sqli-labs-master 21-37 Advanced-Injection

sqli-labs-master 21-37 Advanced-Injection 第一关到第二十关请见专栏 文章目录 sqli-labs-master 21-37 Advanced-Injection第二十一关-Cookie注入第二十二关-Cookie注入第二十三关-注释符过滤的报错注入第二十四关-二次注入第二十五关-过滤OR、AND双写绕过第二十五a关-过滤…

关于 Runes 协议及「公开铭刻」发行机制的拓展讨论

撰文:MiX 编辑:Faust,极客 web3 2024 年 3 月 2 日,Runes 生态基础设施项目 Rune alpha 的创始人,在 Github 的公开议题中,与 Runes 协议创始人 Casey 展开了讨论,双方对如何拓展 Runes 协议的…

【QT】事件分发器/事件过滤器/事件处理的介绍和使用

事件分发函数 event() 事件分发器:返回值 bool 如果返回时true,代表用户要处理事件,不再分发事件了。 事件对象创建完毕后,Qt 将这个事件对象传递给QObject的event()函数。event()函数并不直接处理事件,而是将这些事…

PS在图片上直线、虚线、曲线

使用钢笔工具和直线工具都可以画直线,

script的defer和async的理解

场景一 js阻碍了dom元素的渲染 场景二 加了defer,结果跟场景一一样,所以defer对script标签内的代码不期待延迟执行的作用 场景三 script标签没有defer属性,不敢是不是通过src引入代码,结果一样 场景四 加了defer,获…

搭建的svn 1.14.1,拉取代码时候没输入账户密码就报错 auth failed

这边在ubuntu里面搭的svn server,但是拉代码的是否一直报错 auth faield,一开始以为是有auth cache,去设置里面清楚了,windows 里面也清楚了,但是还是报错 问题原因 一直排查才发现,我新增用户的时候&…

SpringBoot中的异常处理器

我们在以上的开发中,统一使用Result返回固定的数据格式给到前端,但是由于程序可能会出现BUG等问题,会导致最终返回给前端的数据,在异常情况下就又不统一了 为了实现在异常情况出现时,也能正常给前端返回统一的数据格式,我们需要使用 异常处理器 定义异常处理器需要使用RestCo…

Mac系统:mysql+jdk+neo4j

mysql 指令 //启动MySQL服务 sudo /usr/local/mysql/support-files/mysql.server start//停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop //连接MySQL数据库,在进行这一步前要先关掉服务 mysql -u root -p //检查MySQL服务状态 sudo /us…

【Unity】ABB CRB 15000 外部引导运动

一、RobotStudio控制器的文件系统和配置参数 HOME:控制器文件系统的根目录或起始点。配置:机器人控制器的配置设置和参数。外件信息:连接到机器人的外部组件的信息。I/O 系统:输入/输出系统,管理机器人和外部设备之间的…

基于dashscope在线调用千问大模型

前言 dashscope是阿里云大模型服务平台——灵积提供的在线API组件。基于它,无需本地加载大模型,通过在线方式访问云端大模型来完成对话。 申请API key 老规矩:要想访问各家云端大模型,需要先申请API key。 对于阿里云&#x…

uniapp图片涂鸦插件(支持多种涂鸦方式,图片放大缩小)

工程地址https://gitee.com/geshijia/ct-graffiti ct-graffiti涂鸦组件使用说明 参考说明 参考链接:https://github.com/ylyuanlu/yl-graffiti 感谢作者的付出,给我提供了一些思路,并做了如下优化: 增加图片放大缩小移动功能添…

UML简述(项目立项、设计、需求整理必备)

UML目录 前言1、UML概述1.1、基本概念1.2、UML图类型说明1.3、UML的41视图 2、UML图详细图示2.1、类图2.2、对象图2.3、组件图2.4、部署图2.5、包图2.6、用例图2.7、状态图2.8、活动图2.9、时序图2.10、通信图(协作图)2.11、定时图(计时图&am…

08 |「Fragment 」

前言 实践是最好的学习方式,技术也如此。 文章目录 前言一、简介1、是什么2、为什么要有 Fragment3. Fragment 详细解释 二、Fragment 与 Activity 的直观理解三、Fragment 的创建1、Fragment 的创建方式2、Fragment 的增删替查1) 替换(常见&…

哪个牌子宠物空气净化器好?质量好的宠物空气净化器推荐

即使我们很爱自家的宠物,但我们也无法否认处理房间里飘荡的宠物毛发和皮屑,以及那些令人不快的气味(比如地毯上的意外和垃圾桶里的气味)的挑战。对于过敏患者来说,这几乎是无法忍受的。寻找有效的方法来减少这些问题对…

电子邮件怎么发送?如何发送匿名电子邮件?

电子邮件发送的详细步骤?电子邮件的发送方式有哪些? 掌握如何发送电子邮件,尤其是如何发送匿名电子邮件,对于保护个人隐私、进行安全交流具有重要意义。下面,AokSend就来详细探讨一下电子邮件的发送方法以及如何发送匿…

转录组总结

1. 软件安装 2.转录组分析步骤: ① 建立环境 #建立python2.7的环境,大部分的转录组信息都需要在Python2的环境下进行 conda create -n py2env python2.7 source activate py2env ② 获取fastqc报告 #单个报告 fastqc -t 15 /home/yinwen/biosoft/DN…

17-Java解释器模式 ( Interpreter Pattern )

Java解释器模式 摘要实现范例 解释器模式(Interpreter Pattern)实现了一个表达式接口,该接口解释一个特定的上下文 这种模式被用在 SQL 解析、符号处理引擎等 解释器模式提供了评估语言的语法或表达式的方式,它属于行为型模式 …

数据库(mysql)-新手笔记-基本知识点(1)

基本概念 数据库 Database :存储数据的容器 表 Table : 在数据库中存储的基本结构,它由行和列组成 行 Row : 表中的一条记录 列 Column : 表中的字段,定义了数据的类型和约束 数据类型 数据值 如 INT(整型),FLAOT(浮点型) ,DECIMAL (精确小数点) 字符串 如 VARCHAR(可变长度字…