家有琴童-读书简记 千脑智能-读书简记 笔记的方法-读书简记 心经抉隐-读书简记 刷新:重新发现商业与未来-读书简记 认知觉醒-读书简记 真希望我父母读过这本书-读书简记 模仿欲望-读书简记 蛤蟆先生去看心理医生-读书简记 十分钟冥想-读书简记 当我谈跑步时,我谈些什么-读书简记 乔布斯、禅与投资-读书简记 掌控习惯-读书简记 金钱心理学-读书简记 被讨厌的勇气-读书简记 身心合一的奇迹力量-读书简记 零极限-读书简记 投资最重要的事-读书简记 语言学的邀请-读书简记 更富有、更睿智、更快乐-读书简记 管理的常识-读书简记 卡片笔记写作法-读书简记 纳瓦尔宝典-读书简记 卓有成效的管理者-读书简记 贪婪的多巴胺-读书简记 清醒的活-读书简记 像哲学家一样生活:斯多葛哲学的生活艺术-读书简记 你是你吃出来的-读书简记 你可以跑的更快-读书简记 丹尼尔斯经典跑步训练法-读书简记 非暴力沟通-读书简记 异类-读书简记 稀缺-读书简记 为什么要睡觉-读书简记 事实-读书简记 世界上最快乐的人-读书简记 病毒学概览-读书简记 免疫学概览-读书简记 内观-读书简记 沟通的艺术-读书简记 你的生命有什么可能-读书简记 演化的故事-读书简记 经济学原理:宏观经济学分册-读书简记 经济学原理:微观经济学分册-读书简记 社会心理学-读书简记 追寻记忆的痕迹-读书简记 情绪-读书简记 远见:如何规划职业生涯3阶段-读书简记 存在主义心理治疗-读书简记 P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 我的阅读书单 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记
家有琴童-读书简记 千脑智能-读书简记 笔记的方法-读书简记 心经抉隐-读书简记 刷新:重新发现商业与未来-读书简记 认知觉醒-读书简记 真希望我父母读过这本书-读书简记 模仿欲望-读书简记 蛤蟆先生去看心理医生-读书简记 十分钟冥想-读书简记 当我谈跑步时,我谈些什么-读书简记 乔布斯、禅与投资-读书简记 掌控习惯-读书简记 金钱心理学-读书简记 被讨厌的勇气-读书简记 身心合一的奇迹力量-读书简记 零极限-读书简记 投资最重要的事-读书简记 语言学的邀请-读书简记 更富有、更睿智、更快乐-读书简记 管理的常识-读书简记 卡片笔记写作法-读书简记 纳瓦尔宝典-读书简记 卓有成效的管理者-读书简记 贪婪的多巴胺-读书简记 清醒的活-读书简记 像哲学家一样生活:斯多葛哲学的生活艺术-读书简记 你是你吃出来的-读书简记 你可以跑的更快-读书简记 丹尼尔斯经典跑步训练法-读书简记 非暴力沟通-读书简记 异类-读书简记 稀缺-读书简记 为什么要睡觉-读书简记 事实-读书简记 世界上最快乐的人-读书简记 病毒学概览-读书简记 免疫学概览-读书简记 内观-读书简记 沟通的艺术-读书简记 你的生命有什么可能-读书简记 演化的故事-读书简记 经济学原理:宏观经济学分册-读书简记 经济学原理:微观经济学分册-读书简记 社会心理学-读书简记 追寻记忆的痕迹-读书简记 情绪-读书简记 远见:如何规划职业生涯3阶段-读书简记 存在主义心理治疗-读书简记 P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记

图像特征点匹配之KD-Tree

2015年09月25日

写在前面


图像特征点匹配就是找到两幅图像中对应的特征点,在两幅图像中分别提取特征点并用描述子进行描述后,后面的问题就是如何找到一一对应的点对,也就是找到两组特征点集合中两两距离最近的特定点匹配对。在特征点输了不大的情况下(点集合大致小于2500对),进行简单的穷举搜索就可以,但当点对数量很大维度较高时,穷举的效率就回大打折扣,KD-Tree就是用来解决此种情形下的匹配问题。下面对KD-Tree的构建,KD-Tree的最近邻查询算法,改进的最近邻查询——BBF(Best Bin First)查询算法分别进行讨论。

KD-Tree的构建


KD-Tree是对数据点在k为空间划分的一种二叉树数据结构,每个节点表示的一个数据空间范围。它的构建过程是一个循环迭代的过程,假设数据的维度是D维,每次选择D维数据中方差最大的维度,以中间的数据进行划分(左子空间,右子空间),直到数据空间中只包含一个数据点。它的构建流程图如下:

下面结合一个简单的例子加深理解,假设我们有6个二维数据点:$\{X,Y\}=\{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)\}$,我们首先计算两个维度上的方差$(39,26.83)$。可见x维度上的方差大,方差越大说明此维度越容易区分,所以第一步是以x为分割域进行分割。将6个数据按x维度排序,选取中值数据$(7,2)$作为第一个分裂点对数据进行划分(x维度小于7的划到左边,大于等于的划到右边),得到两个子空间,然后对子空间按照上述步骤进行迭代划分,直到每个数据都划到根节点(节点数据空间只含有一个数据点)。示意图如下:

最近邻查询算法


在KD-Tree中进行数据查询是特征匹配的重要环节,目的是检测在KD-Tree中与查询点距离最近的数据点。查询过程可分为两步:二叉树搜索及回溯两步。

下面用文字简单下描述整个过程:

一、二叉树搜索

顺着路径找到最近邻的近似点,也就是与待查询点处于同一子空间的叶子节点(搜索过程可以概况为:比较待查询点与分裂点在分裂维度上的值,小于则划到左子空间,大于等于划到右子空间,迭代直至花到叶子节点)。

二、回溯

得到最邻近的近似点后(找到的叶子节点不一定是最近邻),沿上述搜索路径反向考察是否有距离查询节点更近的数据点(最近邻点肯定位于与查询点为圆心且通过最近邻近似点的园域内),直至回溯到根节点。K近邻查询类似最紧邻查询,只是将最近变为K个最近。

改进的最近邻查询——BBF查询算法


从上述标准的KD-Tree最近邻查询过程可以看出,起搜索过程的回溯是由搜索路径来决定,并没有考虑查询路径上数据点本身的一些性质。改进的查询算法——BBF(Best Bin First),通过将查询路径上的节点进行排序(如按各自分割超平面,也称Bin,与查询点的距离排序),优先回溯优先级最高(Best Bin)的节点来确保优先检索包含最近邻节点可能性更高的空间。BBF设置了一个运行超时限定,定优先级队列中的所有节点都经过检查或者超出时间限制时,算法返回目标找到的最好结果最为最近邻。下图是BBF整个算法流程:

小注


一、最近邻查询算法一般要求数据规模需要满足$N \gg 2^{D}$条件才能达到高效搜索。

二、最近邻查询算法维度不应超过20维。

三、改进的最近邻查询算法——BBF,可适用于高维数据。

四、BBF是以精度为代价来获取速度,其找到的最近邻不一定是最佳的。

五、在点集合2500以下时,穷举搜索时间效率更高。

参考文献


[1] 图像局部不变性特征与描述.王永明 王贵锦. 国防工业出版社.


版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次