KD树、SIFT+BBF算法

CSDN文章:https://blog.csdn.net/tianwaifeimao/article/details/48287159
原文链接:https://www.cnblogs.com/v-July-v/archive/2012/11/20/3125419.html

SIFT特征匹配算法

https://blog.csdn.net/weixin_38404120/article/details/73740612

KD树

kd树的创建过程:

输入:一组数据点集,n个数据点,每个点有m维

输出:k-d树的根结点指针

过程:(1)分别计算这n个数据点在m维中各个维度的方差,取方差最大的维度dim作为分割维度;

(2)把数据点集按照该维度中值的大小进行排列,选择具有中间值的点作为该树的根结点;

(3)前半部分点进行如(1)、(2)所示的递归操作,选出的递归子树的根节点作为(2)中得到的根节点的左孩子;

同理,后半部分也这样操作。如此一直递归,直到各个递归子树的数据点集为空则算法截止。

k-d树的查询:

(1)查询点与k-d树的根节点进行比较,比较两者在根节点划分时的维度的值的大小,若查询点在该维的值小,则进入根节点的左子树,否则进入右子树。依次类推,进行查找,直到到达树的叶子节点。

(2)设当前到达的叶子节点为目前的最近邻(注意:可能并非真正的最近邻),并且记录目前的最近邻距离。沿着来时的路向前回溯,让目前的最近邻距离与查找点与当前叶子节点的父节点形成的分割超平面的距离进行比较,若当前最近邻比较小,则不用遍历当前叶子节点的父节点的另一边,否则需要遍历查找以更新最近邻距离和最近邻节点。

(3)按照(2)中所说依次遍历,直到到达根节点为止,查询结束。

BBF算法

bbf的算法流程如下:

输入:kd树,查找点x

输出:kd树种距离查找点最近的点以及最近的距离

流程:(1)若kd树为空,则设定两者距离为无穷大,返回;如果kd树非空,则将kd树的根节点加入到优先级队列中;

(2)从优先级队列中出队当前优先级最大的结点,计算当前的该点到查找点的距离是否比最近邻距离小,如果是则更新最近邻点和最近邻距离。如果查找点在切分维坐标小于当前点的切分维坐标,则把他的右孩子加入到队列中,同时检索它的左孩子,否则就把他的左孩子加入到队列中,同时检索它的右孩子。这样一直重复检索,并加入队列,直到检索到叶子节点。然后在从优先级队列中出队优先级最大的结点;

(3)重复(1)和(2)中的操作,直到优先级队列为空,或者超出规定的时间,返回当前的最近邻结点和距离。

《统计学习方法》学习笔记2——KD树、SIFT+BBF算法相关推荐

  1. 统计学习方法 学习笔记(十):决策树

    这一个学习笔记将要了解决策树,在研一上机器学习这门课的时候,老师在讲到这一节的时候,举了一个例子我现在还能记得:你们坐在这里上课,就像这个决策树一样,在你人生中的每一个重要结点,你都做出了选择,经过多 ...

  2. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  3. 统计学习方法 学习笔记(五):支持向量机(下)

    通过支持向量机(上)和支持向量机(中)的介绍,对支持向量机应该有点感性的认识啦!在这个学习笔记中,来继续探寻带核函数的支持向量机(解决如下图所示的问题) 对解线性分类问题,线性分类支持向量机是一种非常 ...

  4. 统计学习方法 学习笔记(1)统计学习方法及监督学习理论

    统计学习方法及监督学习理论 1.1.统计学习 1.1.1.统计学习的特点 1.1.2.统计学习的对象 1.1.3.统计学习的目的 1.1.4.统计学习的方法 1.1.5.统计学习的研究 1.1.6.统 ...

  5. 特征匹配-NNDR策略,kd树,BBF算法

    特征匹配需要考虑匹配策略和如何更快的完成匹配. 一:以欧式距离为度量,有三种匹配策略:固定阈值.最近邻.最近邻距离比率(NNDR) 固定阈值:就是设定一个阈值,当距离大于阈值,判为不匹配,否则判为匹配 ...

  6. 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    原文出自:http://blog.csdn.net/v_JULY_v/article/details/8203674 前言 前两日,在微博上说:"到今天为止,我至少亏欠了3篇文章待写:1.K ...

  7. 【转】从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    最近在看<统计学习方法>,发现这么一篇好文章,与大家分享 转自:http://blog.csdn.net/v_july_v/article/details/8203674?reload 前 ...

  8. 【学习笔记】线段树详解(全)

    [学习笔记]线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来... [目录] [基础]作者:\((Silent\)_\(EAG)\) [懒标记 ...

  9. 统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))

    全部笔记的汇总贴:统计学习方法读书笔记汇总贴 逻辑斯谛回归 (logistic regression )是统计学习中的经典分类方法.最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(m ...

最新文章

  1. pycharm 格式化代码
  2. 如何运用python爬游戏皮肤_Python爬虫实战之 爬取王者荣耀皮肤
  3. (轉貼) Embedded System與System on Chip的差異 (IC Design)
  4. (转)php-cli模式学习(PHP命令行模式)
  5. 简单几招优化你的Go程序
  6. QT限制文本框输入的方法
  7. wordpress自定义页面
  8. IDEA 代码格式化插件Save Actions
  9. 计算机省vb二级试题,江苏省计算机二级VB试题及答案
  10. 3dmax一键展uv_3Dmax批量展开场景物体的第二套UV
  11. 当数据库新增字段后,接下来需要做的操作(备忘录)
  12. win10手动安装打印机驱动
  13. MyEclipse2020中JSP文件光标乱跳
  14. bzoj4011落忆枫音
  15. MODB:软体动物线粒体基因组数据库
  16. 团队如何提高执行力,总结以下几点:
  17. 我们软件开发常用的协作工具
  18. VS2005 设置DLL程序无入口点
  19. Linux如何终止D状态的进程
  20. 重新理了下思路一个人的孤独

热门文章

  1. 为什么ping不通网站 但是却可以访问该网站?
  2. scoop mysql_使用scoop包管理器
  3. 克隆模式java_java基础之----23种设计模式(克隆模式)
  4. 金融危机,既是危也是机!
  5. STM8L051F3_0b_开发环境搭建
  6. 智能优化算法(源码)—蜣螂优化算法(Dung beetle optimizer,DBO)
  7. 优普丰(CSM认证)2天的Certified Scrum Master培训学习笔记
  8. 修改openwrt默认的主题
  9. 看看一位清华计算机专业的学生怎么看LINUX与WINDOWS的! (转载)
  10. 计算机桌面的内存设置方法,电脑提示内存不足怎么办 虚拟内存设置方法【详解】...