【OpenCV-Python】教程:4-5 SURF (Speeded-Up Robust Features) 介绍

news2024/11/15 22:37:53

OpenCV Python SURF (Speeded-Up Robust Features) 介绍

【目标】

  • SURF的基础

【理论】

SURF 是 SIFT 的提速版本;

在SIFT中,Lowe用 DoG 近似 LoG;SURF 走的更远一点,用 box filter 近似 LoG 。下图显示了这种近似的演示。这种近似的一个很大的优点是,在积分图像的帮助下,可以很容易地计算 box filter 的卷积。它可以在不同的尺度上并行进行。此外,SURF还依赖于海森矩阵的行列式来确定尺度和位置。

在这里插入图片描述

SURF在水平方向和垂直方向上对大小为6的邻域使用小波响应进行方向分配。充分的高斯权值也应用于它。然后他们被绘制在一个空间,如下图所示。通过计算60度滑动方向窗口内所有响应的和来估计主方向。有趣的是,小波响应可以很容易地在任何尺度上用积分图像求出来。对于许多应用程序,旋转不变性是不需要的,因此不需要找到这个方向,这加快了过程。SURF提供了这样的功能,称为 Upright-SURF 或 U-SURF。它提高了速度,并且在±15最大限度下都是有效的。OpenCV支持这两种,取决于标志,upright。如果是0,则计算方向。如果是1,则不计算方向,速度更快。

在这里插入图片描述

对于特征描述,SURF使用水平和垂直方向上的小波响应(同样,使用积分图像使事情更容易)。大小为20sx20的邻域以关键点为中心,其中s为尺寸。它被分为4x4个子区域。对每个子区域分别取水平方向和垂直方向的小波响应,向量形式为 v = ( ∑ d x , ∑ d y , ∑ ∣ d x ∣ , ∑ ∣ d y ∣ ) v=(∑dx,∑dy,∑|dx|,∑|dy|) v=(dxdydxdy)。当表示为向量时,给出了总共64维的SURF特征描述符。降低了维数,提高了计算和匹配的速度,但提供了更好的特征显著性。

为了更加有区分性,SURF 特征描述符有一个扩展的128维版本。当 d y < 0 dy<0 dy<0 d y ≥ 0 dy≥0 dy0时, d x dx dx ∣ d x ∣ |dx| dx分别计算。类似地, d y dy dy ∣ d y ∣ |dy| dy的和根据 d x dx dx的符号被分割,从而使特征的数量翻倍。它不会增加太多的计算复杂度。OpenCV通过分别为 64-dim 和 128-dim 设置 0 和 1 扩展的标志值来支持这两种情况(默认是 128-dim )

另一个重要的改进是使用拉普拉斯符号(黑森矩阵迹)来表示潜在的兴趣点。它不会增加计算成本,因为它在检测时已经计算过了。拉普拉斯符号将黑暗背景上的明亮斑点与相反的情况区分开来。在匹配阶段,我们只比较具有相同类型对比度的特征(如下图所示)。这种最小的信息允许更快的匹配,而不会降低描述符的性能。

在这里插入图片描述

总之,SURF 在每一步中都增加了很多功能来提高速度。分析表明,它比SIFT快3倍,而性能与SIFT相当。SURF 擅长处理有模糊和旋转的图像但不擅长处理仿射变化和光照变化

【代码】

4.5.5 版本 暂不提供

【参考】

  1. OpenCV官方文档
  2. SURF: Speeded Up Robust Features

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

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

相关文章

文本生成公开数据集/开源工具/经典论文详细列表分享

这是一份由清华大学自然语言处理小组整理的文本生成相关的公开数据集/开源工具/经典论文列表&#xff0c;并且不断增加论文和持续修改名单&#xff0c;分享给大家。 源链接&#xff1a;https://github.com/THUNLP-MT/TG-Reading-List 目录 数据集 故事生成 文本生成 工具 经典…

开关电源环路稳定性分析(06)-功率级和控制级

大家好&#xff0c;这里是大话硬件。 根据上一篇文章的分析&#xff0c;开关电源系统主要分为3个部分&#xff0c;功率级&#xff0c;控制级&#xff0c;反馈级。今天这篇文章我们分析功率级和控制级的传递函数。 1.功率级传递函数 从功能框图上可以看出来&#xff0c;功率…

教材征订和下发系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Spring Cloud Alibaba Nacos Config - - - >配置中心

官方文档&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config 市面上比较有名的配置中心&#xff1a; Spring Cloud ConfigApolloSpring Cloud Alibaba Nacos Config Spring Cloud Config 大部分场景结合 git 使用&#xff0c;动态变更还需要依赖…

Python获取世界杯热搜榜,并制作脚本自动发送信息到邮箱

前言 现在正是卡塔尔世界杯激战正酣的时候&#xff0c;每天都有各种各样的新闻。而且&#xff0c;不同的球队&#xff0c;随着比赛的进程&#xff0c;关注的热度也会发生翻天覆地的变化。 今天我们就来获取卡塔尔世界的球队热搜榜&#xff0c;并制作自动发送邮件脚本&#xff…

深度优先搜索(DFS)剪枝:记忆化搜索(C++)

目录 一、基本思想 二、样例 三、程序 1、普通的深度优先搜索 2、分析 3、记忆化搜索 程序 四、实际速度样例 一、基本思想 今天我们来讲一下深搜的剪枝方法中的一个&#xff1a;记忆化搜索。 顾名思义&#xff0c;记忆化搜索就是让程序记住一些东西&#xff0c;然后可以…

Stimulsoft Dashboards.JS JavaScript 2203.1.0仪表板

Stimulsoft Dashboards.JS--Ω578867473 Dashboards.JS 是一个功能齐全的工具&#xff0c;用于为 JavaScript 平台创建仪表板。 JavaScript 仪表板 Dashboards.JS 是一个功能齐全的工具&#xff0c;用于为 JavaScript 平台创建仪表板。要生成和查看仪表板&#xff0c;您需要任何…

Qt扫盲-QAbstractButton 笔记总结

QAbstractButton使用总结一、概要1.显示内容2. 快捷键3. 对话框默认按钮4. 按钮状态5. 信号说明6. 自定义按钮QAbstractButton 类实现的是一个抽象按钮。主要是Button类具有的共性&#xff0c;但是处理用户的操作响应、并绘制不同按钮的形式是由子类来完成的。一、概要 QAbstr…

图文深度解析Linux内存碎片整理实现机制以及源码

图文深度解析Linux内存碎片整理实现机制以及源码。 物理内存是以页为单位进行管理的,每个内存页大小默认是4K(大页除外)。申请物理内存时,一般都是按顺序分配的,但释放内存的行为是随机的。随着系统运行时间变长后,将会出现以下情况: 在多道程序当中,如果要让我们的程…

深度解析车载域控制器

文章目录域控制器域控制器的组成ADAS域控制器智能座舱域HUD仪表盘IVI域控制器的发展域控制器对传统ECU的挑战域控制器 ​ 随着车辆的信息化程度的发展&#xff0c;车辆的ECU也越来越多&#xff0c;从引擎控制、转向助力、仪表、影音等&#xff0c;传统的汽车电子电气架构是分布…

基于Intel® Core™ i5 机器人控制器

XM-6815是一款基于Intel 11代酷睿i系列平台CPU壁挂式电脑&#xff0c;扩展内存槽&#xff0c;1mSATA&#xff0c;3千兆网口&#xff0c;6COM&#xff0c;4USB 3.0&#xff0c;4USB 2.0。该产品适合工业机器人控制器、机器视觉控制器等壁挂安装应用场景. 产品规格 产品类型Inte…

阿里巴巴内部不传之秘「十亿级并发系统顶级教程」GitHub一夜封神

何为超大流量&#xff1f; 超大流量是一个很容易理解的意思!举个例子&#xff1a;现在国内疫情反弹&#xff0c;每个小区都要做核酸那么如果同一时间下来一大批人一起做核酸&#xff0c;那么这就是大流量&#xff0c;然后志愿者将人员进行分配排队让医务人员处理的过来那么这就…

Qt5.6.1移植海思Hi3521d(二)

系列文章目录 Qt5.6.1移植海思Hi3521d&#xff08;一&#xff09; 前言 该篇讲解一下&#xff0c;使用海思交叉编译器arm-hisiv500-linux-gcc&#xff0c;编译qt5.6源码&#xff0c;搭建qt交叉编译环境 一、修改qmake.conf 打开文件~/Project/qt-everywhere-opensource-src-5…

Python制作简易版烟花,没资金买烟花就来做个电子版的吧

前言 听说有人说我很久没更新了&#xff0c;那今天来表演个粒子烟花 跨年倒计时20天&#xff1f;我已经开始整烟花了&#xff0c;虽然不是很好看吧&#xff0c;但是也能将就看看 &#x1f625; 这个的背景图&#xff0c;音乐&#xff0c;还有文字都是可以自己修改的哦 效果…

[附源码]JAVA毕业设计-心理健康管理-(系统+LW)

[附源码]JAVA毕业设计-心理健康管理-&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&a…

String 创建了几个对象?

问题一 String zy1 “小朱”; String zy2 “小朱”; 复制代码 问题二 String zy1 “小朱”; String zy2 “大朱”; 复制代码 问题三 String zy1 new String(“小朱”); String zy2 new String(“小朱”); 复制代码 问题四 String zy1 new String(“小朱”);…

09 - 主引导程序控制权的转移

---- 整理自狄泰软件唐佐林老师课程 文章目录1. BootLoader内存布局2. 通过FAT表加载文件内容3. 编程实验&#xff1a;Loader文件内容的加载4. 第一个Loader程序4.1 汇编小贴士&#xff1a;标志寄存器4.2 编程实验&#xff1a;控制权转移5. 小结1. BootLoader内存布局 2. 通过F…

你还不知道「并发下的三色标记」么?

引用计数算法 在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时 计数器值就加一;当引用失效时&#xff0c;计数器值就减一; 任何时刻计数器为零的对象就是不可能再被使用的。 引用计数算法的缺陷 如下面代码&#xff0c;两个对象互相引用导致无法回收♻️ 对…

【OpenCV学习】第12课:特征提取(高斯不同)

仅自学做笔记用,后续有错误会更改 理论 定义&#xff1a;就是把同一张图像在不同的参数下做高斯模糊之后的结果相减&#xff0c;得到的输出图像&#xff0c;称为高斯不同&#xff08;DOG&#xff09;高斯不同是图像的内在特征&#xff0c; 在灰度图像增强丶角点检测中经常用到…

【MySQL】深入分析 锁机制(一)行锁 加锁规则 之 等值查询

文章目录前言一、共享锁&#xff08;S&#xff09;和排它锁&#xff08;X&#xff09;二、行锁的3种算法Record LockGap LockNext-key Lock三、加锁规则 之 等值查询分析数据准备3.1 聚集索引有匹配索引无匹配索引3.2 唯一索引有匹配索引无匹配索引3.3 普通索引有匹配索引无匹配…