SIFI 极值点拟合的详细推导过程

在获得高斯差分金字塔之后,我们可以根据邻近尺度和邻近像素一共 26 个像素点的灰度值和中心像素点的灰度值比较,如果中心像素点的值是最大或者最小的,则作为极值点保留下来。

但是我们知道像素是网格排布的,也就是说是离散的,如果我们想要获得更精确的极值点,就需要根据目前离散的点进行插值拟合,让数据连续起来,然后得到一个比较精确的极值点。

给我的感觉就是 SIFT 算法经历了一个从连续到离散,然后再回归连续的过程,首先是通过离散的高斯差分来近似表示拉普拉斯梯度,减少计算量,然后又对离散的高斯差分进行子像元级别的插值,获得一个连续的曲面,求真正的极值点。

首先,我们的高斯差分函数是通过通过不同尺度的高斯滤波得到的: D ( x , y , σ ) = [ G ( x , y , σ 1 ) − G ( x , y , σ 2 ) ] ∗ I ( x , y ) D(x, y, \sigma) = [G(x, y, \sigma_1 ) - G(x, y, \sigma_2 )] * I(x,y) D(x,y,σ)=[G(x,y,σ1)G(x,y,σ2)]I(x,y)其中, I ( x , y ) I(x, y) I(x,y) 是像素的灰度值。

然后在尺度 σ \sigma σ 下,我们要从离散的高斯差分插值到连续的曲面,需要用到泰勒展开,因为泰勒展开是一种将函数在某一点附近近似为多项式的方法,通过使用一阶和二阶导数来拟合函数。所以可以得到: D ( X ) ≈ D + ∂ D T ∂ X X + 1 2 X T ∂ 2 D ∂ X 2 X D(X) \approx D +\frac{ \partial D^T }{\partial X } X + \frac{1}{2}X^T\frac{\partial^2 D}{\partial X^2}X D(X)D+XDTX+21XTX22DX这个公式在别的文章很常见,但是我觉得不够直观,因为是尺度已经确定了是 σ \sigma σ 所以高斯差分函数目前是关于位置 x , y x, y x,y 的函数,上面的式子是一个矩阵的形式,因为要求极值,所以要对 D ( X ) D(X) D(X) 求导,并让其导数 ∂ D ∂ X = 0 \frac{\partial D}{\partial X} = 0 XD=0 ∂ D ∂ X = 0 + ∂ D T ∂ X + 1 2 ( ∂ 2 D ∂ X 2 + ( ∂ 2 D ∂ X 2 ) T ) X \frac{\partial D}{\partial X} = 0 + \frac{\partial D^T}{\partial X}+ \frac{1}{2}\left(\frac{\partial^2 D}{\partial X^2}+\left(\frac{\partial^2 D}{\partial X^2}\right)^T \right)X XD=0+XDT+21(X22D+(X22D)T)X考虑到 ∂ 2 D ∂ X 2 \frac{\partial^2 D}{\partial X^2} X22D 是 Hessian 矩阵,展开表达式如下: ∂ 2 D ∂ X 2 = ( ∂ 2 D ∂ x 2 ∂ 2 D ∂ x ∂ y ∂ 2 D ∂ x ∂ y ∂ 2 D ∂ y 2 ) \frac{\partial^2 D}{\partial X^2} = \begin{pmatrix} \frac{\partial ^2D}{\partial x^2} & \frac{\partial ^2D}{\partial x\partial y}\\ \frac{\partial ^2D}{\partial x\partial y} & \frac{\partial ^2D}{\partial y^2} \end{pmatrix} X22D=(x22Dxy2Dxy2Dy22D)可以看出来是对称矩阵,所以 ∂ 2 D ∂ X 2 = ( ∂ 2 D ∂ X 2 ) T \frac{\partial^2 D}{\partial X^2} = (\frac{\partial^2 D}{\partial X^2})^T X22D=(X22D)T,我们就可以得到求导之后的式子为: ∂ D ∂ X = ∂ D T ∂ X + ∂ 2 D ∂ X 2 X \frac{\partial D}{\partial X} = \frac{\partial D^T}{\partial X}+ \frac{\partial^2 D}{\partial X^2}X XD=XDT+X22DX让导数 ∂ D ∂ X \frac{\partial D}{\partial X} XD 为零可以得到: X ^ = ∂ D T ∂ X ( − ∂ 2 D ∂ X 2 ) − 1 \hat{X} = \frac{\partial D^T}{\partial X} \left (- \frac{\partial^2 D}{\partial X^2} \right )^{-1} X^=XDT(X22D)1这里的 X ^ \hat{X} X^ 就是我们要求的极值点偏移值,然后将其代入原式,就可以求得极值点的响应值: D ( X ) = D + 1 2 ∂ D T ∂ X X ^ D(X) = D + \frac{1}{2} \frac{\partial D^T}{\partial X} \hat{X} D(X)=D+21XDTX^

∂ ∂ X ( X T A X ) = ( A + A T ) X \frac{\partial }{\partial X}(X^T A X) = (A+A^T)X X(XTAX)=(A+AT)X

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

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

相关文章

PHP微信UI在线聊天系统源码 客服私有即时通讯系统 附安装教程

DuckChat是一套完整的私有即时通讯解决方案,包含服务器端程序和各种客户端程序(包括iOS、Android、PC等)。通过DuckChat,站点管理员可以快速在自己的服务器上建立私有的即时通讯服务,用户可以使用客户端连接至此服务器…

LeetCode(42)有效的字母异位词【哈希表】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 有效的字母异位词 1.题目 给定两个字符串 *s* 和 *t* ,编写一个函数来判断 *t* 是否是 *s* 的字母异位词。 **注意:**若 *s* 和 *t* 中每个字符出现的次数都相同,则称 *s* 和 *t* 互为字…

设计模式 【Adapter 模式】

Adapter 模式 1.什么是 Adapter 模式 用来填补现有的程序和所需的程序之间差异的设计模式就是 Adapter 模式。 Adapter 模式有两种: ● 类适配器模式,即使用继承的适配器 ● 对象适配器模式,即使用委托的适配器 2.使用继承的适配器示例…

TZOJ 1367 计算两点间的距离

答案&#xff1a; #include <stdio.h> #include<math.h> //引用数学的库函数 int main() {double x1 0.0, y1 0.0, x2 0.0, y2 0.0; //由于输入的是实数&#xff0c;实数包括小数&#xff0c;所以不能 用int类型&#xff0c;只能用double类型while (sc…

Vue性能优化方法

一、前言 1.1 为什么需要性能优化 用户体验&#xff1a;优化性能可以提升用户体验&#xff0c;降低加载时间和响应时间&#xff0c;让用户更快地看到页面内容。SEO优化&#xff1a;搜索引擎更喜欢快速响应的网站&#xff0c;优化性能可以提高网站的排名。节约成本&#xff1…

ubuntu16.04部署gitlab-runner触发gitlab流水线

环境&#xff1a;ubuntu16.04 gitlab服务器&#xff1a;192.168.1.12 runner服务器&#xff1a;192.168.1.11 1.下载 环境&#xff1a;192.168.1.11 cd /usr/local/srcwget https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.debsudo dpkg …

Pandas进阶:20个实用的Pandas函数的基本使用

1. ExcelWriter 很多时候dataframe里面有中文&#xff0c;如果直接输出到csv里&#xff0c;中文将显示乱码。而Excel就不一样了&#xff0c;ExcelWriter是pandas的一个类&#xff0c;可以使dataframe数据框直接输出到excel文件&#xff0c;并可以指定sheets名称。 df1 pd.Da…

人工智能在内容相关性Content Relevance方面的应用

许多公司在向客户和潜在客户提供内容服务时犯了一个错误&#xff0c;即定制性不足&#xff0c;内容过于通用&#xff0c;可能与每位目标客户都不相关。谈及内容相关性时&#xff0c;人们希望获得有用的信息和问题解决方法&#xff0c;或具有娱乐性和参与性的内容。 为客户提供…

对话式数据需求激增,景联文科技提供高质量多轮对话数据定制采集标注服务

大模型的快速发展使得数据服务需求激增&#xff0c;产品整体处于供不应求状态。对话式数据集成为当下需求热点&#xff0c;人们对于更复杂、更真实的多轮对话数据需求不断增加&#xff0c;定制化服务占据市场需求主流。 通过对多轮对话数据的训练&#xff0c;模型可以更好地理解…

Python Xorbits库:实现无限可能的编程旅程

概要 Python Xorbits是一个强大而多功能的开源Python库&#xff0c;为开发者提供了实现创新和复杂计算的能力。它提供了各种功能和工具&#xff0c;帮助开发者在编程旅程中探索无限可能。本文将详细介绍Python Xorbits的用途和使用教程&#xff0c;帮助读者了解和掌握这个令人…

GEE 23:基于GEE实现物种分布模型之随机森林法

基于GEE实现物种分布模型之随机森林法 1.物种分布数据2.研究区绘制3.预测因子选择 1.物种分布数据 根据研究目的和需要导入物种数据&#xff1a; // Load presence data var Data ee.FeatureCollection("users/************736/Distribution"); print(Original da…

中级会计师资料分享

阿里云盘 中级会计师 https://www.alipan.com/s/nW9AxjiFdHw 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需下载极速在线查看&#xff0c;视频原画倍速播放。 2022年中级电子档&#xff08;比网盘群快&#xff09; https://www.…

web和微信小程序设置placeholder样式

文章目录 一、场景二、web2.1、概念2.2、用法2.3、样式 三、小程序四、最后 一、场景 在页面布局时经常会用到input输入框&#xff0c;有时为了提示用户输入正确的信息&#xff0c;需要用placeholder属性加以说明。 二、web 2.1、概念 placeholder 是HTML5 中新增的一个属性…

cocos creator-碰撞检测

碰撞检测文档 刚体自行选择&#xff0c;刚体正常设置分组、tag&#xff0c;tag用于区分是哪个物体被碰撞了 正常在一个node下挂载脚本就行 注意&#xff1a;Builtin 2D 物理模块只会发送 BEGIN_CONTACT 和 END_CONTACT 回调消息。ccclass(TestContactCallBack) export class …

NoSql非关系型数据库

前言&#xff1a;Nosql not only sql&#xff0c;意即“不仅仅是sql”&#xff0c;泛指非关系型数据库。这些类型的数据存储不需要固定的模式&#xff08;当然也有固定的模式&#xff09;&#xff0c;无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处…

A*算法学习

系列文章目录 前言 在总结 2023华为软件精英挑战赛——全赛段思路分享与总结 - 知乎 (zhihu.com)时&#xff0c;发现自己还有很多技术细节没搞懂&#xff0c;这里看静态全局路径规划最常见的A*算法&#xff0c;这个博主讲得很好&#xff1a; A-Star&#xff08;A*&#xff0…

基于谷歌Flutter的媒体资讯APP的设计与实现

基于谷歌Flutter框架媒体资讯App的设计与实现 摘要&#xff1a; 当今社会&#xff0c;随着经济和科技的发展&#xff0c;人们的生活节奏也愈来愈快&#xff0c;人们生活的阅读时间也越来越少&#xff0c;越发的流行碎片化阅读&#xff0c;而同样的对于互联网的客户端开发者&am…

目标检测常用评价指标

1 基本概念 1.1 IOU(Intersection over Union) 1.2 TP TN FP FN 2. 各种率 3. PR曲线 4. mAP的计算 4.1 AP的计算 4.2 mAP 4.3 mAP0.5和mAP0.5:0.95 1.1 IOU(Intersection over Union) 1.2 TP TN FP FN TP(Truth Positive)&#xff1a; 预测正类&#xff0c;实际正类&#x…

代码随想录 435. 无重叠区间

题目 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后&#xff0c;剩下的区间没有重叠。 示…

文件重命名:如何删除文件名中的下划线,特殊符号批量删除

在日常的工作中&#xff0c;经常会遇到文件名中包含特殊符号的情况&#xff0c;例如&#xff0c;一些文件名可能包含下划线、空格或其他特殊符号&#xff0c;这些符号可能会干扰我们的文件搜索和识别。此外&#xff0c;一些文件名可能包含无法识别的非标准字符&#xff0c;这可…