当前位置: 首页 > news >正文

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

相关文章:

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

在获得高斯差分金字塔之后,我们可以根据邻近尺度和邻近像素一共 26 个像素点的灰度值和中心像素点的灰度值比较,如果中心像素点的值是最大或者最小的,则作为极值点保留下来。 但是我们知道像素是网格排布的,也就是说是离散的&…...

Kontakt v7.7.2(音频采样器)

Native Instruments Kontakt 7是一款强大的软件采样器,它允许用户从各种来源采样音频并进行编辑和处理。它包含大量预设采样库,包括乐器、合成器、鼓组和声音效果等。此外,Kontakt 7还允许用户创建自己的采样库,以便根据自己的需要…...

Drawer抽屉(antd-design组件库)简单用法

1.Drawer抽屉 屏幕边缘滑出的浮层面板。 2.何时使用 抽屉从父窗体边缘滑入,覆盖住部分父窗体内容。用户在抽屉内操作时不必离开当前任务,操作完成后,可以平滑地回到原任务。 需要一个附加的面板来控制父窗体内容,这个面板在需要时…...

Android控件全解手册 - 多语言切换完美解决方案(兼容7.0以上版本)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…...

Android-P CameraSerivce

0 前言 本文重点分析Android-P的CameraService实现。 验证:Goldfish模拟器 1 定义 图1.1 CameraService ICameraServiceframeworks/av/camera/aidl/android/hardware/ICameraService.aidlBnCameraServiceout/soong/.intermediates/frameworks/av/camera/libcamera_client/an…...

21.Oracle的程序包(Package)

Oracle的程序包Package 一、Package的概述1、什么是Oracle11g的Package2、Package的作用是什么3、常见的系统内置Package 二、创建Package的相关语法1、Package的创建语法2、Package的删除3、具体案例4、Package的使用5、与Package相关的其他语法 三、常见内置程序包的使用1、…...

Spring 日志

日志的作用: 1.定位和发现问题 2.系统监控 3.数据采集 观察日志 先写一段打印日志的代码 日志内容 日志级别分类 默认日志级别是Info,级别一下的就不打印了 Spring 帮我们集成了日志框架,我们直接使用即可 我们测试一下用日志框架打印日志是如何 我们就会发现打印的结果跟…...

webpack如何处理浏览器的样式兼容问题postcss

一、准备工作 css/index.css添加样式 .word {color: red;user-select: none; } 为了兼容不同的浏览器我们需要添加前缀比如: -webkit-user-select: none; 这个工作可以通过postcss的插件postcss-preset-env处理 二、安装依赖 pnpm i -D postcss postcss-loader…...

idea方法注释模版设置

方法上面的注释模版: Template text: ** Description $desc$ $param$ $return$* Aauthor yimeng* date $DATE$ $TIME$ **/param: groovyScript("def result ;def params \"${_1}\".replaceAll([\\\\[|\\\\]|\\\\s], ).split(,).toLis…...

NX二次开发UF_CURVE_create_isocline 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_isocline Defined in: uf_curve.h int UF_CURVE_create_isocline(int face_cnt, tag_t faces [ ] , double direction [ 3 ] , const char * start_angle, const ch…...

从0开始学习JavaScript--JavaScript 模板字符串的全面应用

JavaScript 模板字符串是 ES6 引入的一项强大特性,它提供了一种更优雅、更灵活的字符串拼接方式。在本文中,将深入探讨模板字符串的基本语法、高级用法以及在实际项目中的广泛应用,通过丰富的示例代码带你领略模板字符串的魅力。 模板字符串…...

开源 vs 闭源:数字化时代的技术选择

开源 vs 闭源:数字化时代的技术选择 近期,特斯拉CEO马斯克的一番言论引起了广泛关注:OpenAI不该闭源,自家首款聊天机器人将开源。这引发了人们对于开源与闭源软件的辩论,这一话题在技术界一直是热门的讨论焦点。在数字…...

Spring Boot项目Service类单元测试自动生成

在Spring Boot项目中,对Service类进行单元测试对于开发工程师而言具有重大意义和作用: 验证业务逻辑的正确性和完整性 核心业务逻辑的准确实现:Service类通常包含核心业务逻辑。单元测试确保这些逻辑被正确实现,满足业务需求。处…...

Typescript中 interface 和 type 的区别是什么?

在 TypeScript 中,interface 和 type 都用于定义类型,但它们有一些区别。 1. 语法差异: interface 关键字用于声明接口,使用 interface 可以定义对象的形状、函数的签名等。 type 关键字用于声明类型别名,可以给一个…...

W2311294-万宾科技可燃气体监测仪怎么进行数据监测

万宾科技可燃气体监测仪怎么进行数据监测 燃气是现代城市之中重要的能源,它已经渗透到城市生活的方方面面,对燃气管网的管理也在考验着政府人员的工作能力。燃气管网的安全运行和城市的安全和人民的生活直接挂钩。为了及时掌握燃气管网的运行状态&#x…...

Elasticsearch:向量搜索 (kNN) 实施指南 - API 版

作者:Jeff Vestal 本指南重点介绍通过 HTTP 或 Python 使用 Elasticsearch API 设置 Elasticsearch 以进行近似 k 最近邻 (kNN) 搜索。 对于主要使用 Kibana 或希望通过 UI 进行测试的用户,请访问使用 Elastic 爬虫的语义搜索入门指南。你也可以参考文章…...

704 二分查找 day1

class Solution { public: int search(vector<int>& nums, int target) { int left 0; int right nums.size() - 1; // 定义target在左闭右闭的区间里&#xff0c;[left, right] while (left < right) { // 当leftright&#xff0c;区间[left, right]依然有效&…...

Python面试破解:return和yield的细腻差别

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享 Python面试破解&#xff1a;return和yield的细腻差别&#xff0c;全文3000字&#xff0c;阅读大约10钟。 在Python的函数编程中&#xff0c;return和yield是两个常用的关键词…...

云时空社会化商业 ERP 系统 service SQL 注入漏洞复现

0x01 产品简介 时空云社会化商业ERP&#xff08;简称时空云ERP&#xff09; &#xff0c;该产品采用JAVA语言和Oracle数据库&#xff0c; 融合用友软件的先进管理理念&#xff0c;汇集各医药企业特色管理需求&#xff0c;通过规范各个流通环节从而提高企业竞争力、降低人员成本…...

Vue3-Pinia

Pinia是什么 Pinia是Vue的最新状态管理工具&#xff0c;是Vuex的替代品 比Vuex更大的优势在于&#xff1a; 1.提供更加简单的API&#xff08;去掉了mutation&#xff09; 2.提供符合&#xff0c;组合式风格的API&#xff08;和Vue3新语法统一&#xff09; 3.去掉了modules…...

AI赋能5G核心网故障诊断:从PCAP解析到智能根因分析的工程实践

1. 项目概述&#xff1a;当AI遇见5G核心网故障诊断在5G核心网的运维与测试一线干了这么多年&#xff0c;最头疼的莫过于面对海量的PCAP抓包文件。一个复杂的信令流程下来&#xff0c;动辄几千甚至上万个数据包&#xff0c;工程师需要像侦探一样&#xff0c;逐帧审视协议交互&am…...

三步实现跨架构程序兼容:Box64高效架构转换指南

三步实现跨架构程序兼容&#xff1a;Box64高效架构转换指南 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 你是否曾在ARM64…...

智能体所有权与版权:AI Agent Harness Engineering 创造的作品归谁所有?

1. 标题选项 《AI Agent创作版权迷局破解:从Harness工程原理到所有权划分的完整指南》 《智能体作品归谁?AI Agent Harness Engineering场景下的版权规则深度拆解》 《告别权属纠纷:一文搞懂AI Agent生成内容的所有权、版权与收益分配规则》 《Harness工程视角下的AI创作权:…...

YOLOv8晶圆体缺识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)

摘要 晶圆制造过程中的缺陷检测是保证芯片良率的关键环节。本文基于YOLOv8目标检测算法&#xff0c;构建了一套针对晶圆表面9类典型缺陷的自动检测系统。所识别的缺陷类型包括&#xff1a;Center、Donut、Edge-Loc、Edge-Ring、Loc、Near-full、None、Random、Scratch。模型在…...

【数据结构与算法】数据结构基础——栈和队列

目录栈和队列1. 栈1.1 栈的概念1.2 栈的实现方式分析1.3 栈的实现1.3.1 栈的初始化与销毁1.3.2 入栈与出栈1.3.3 栈的判空与有效元素个数1.3.4 栈顶元素1.4 栈的扩展1.4.1 两栈共享空间2. 队列2.1 队列的概念2.2 队列的实现方式分析2.3 队列的实现2.3.1 队列的初始化与销毁2.3.…...

超低功耗电池电压监控电路设计:从LM324到LPV324的硬件方案优化

1. 项目概述与核心需求解析在捣鼓各种电池供电的电子设备时&#xff0c;无论是自己做的无线传感器节点、便携式小工具&#xff0c;还是给孩子改装的玩具&#xff0c;有一个问题总是绕不开&#xff1a;你怎么知道电池快没电了&#xff1f;总不能每次都等到设备彻底罢工&#xff…...

【RT-DETR实战】070、模型分析工具:PyTorch Profiler性能分析

上周在部署RT-DETR到边缘设备时遇到一个诡异现象:模型推理时延波动极大,有时30ms,偶尔突然跳到200ms。 盯着代码看了半天没发现逻辑问题,数据流也正常。这种时候,靠猜是没用的,必须上性能分析工具——PyTorch Profiler。 今天我们就来聊聊怎么用它揪出那些藏在细节里的…...

基于MAX78000的边缘AI语音识别:从模型训练到嵌入式部署实战

1. 项目概述与核心思路最近在捣鼓一个挺有意思的小项目&#xff0c;我把它叫做“声控转向控制器”。简单来说&#xff0c;这玩意儿能听懂你说的几个特定单词&#xff0c;比如“左转”、“右转”、“前进”、“后退”&#xff0c;然后控制对应的LED灯亮起。你可能会想&#xff0…...

为什么你明明很努力,领导却总看不到?问题出在这

许多测试同行在深夜加班排查Bug时&#xff0c;在凌晨赶写自动化脚本时&#xff0c;在对着海量数据做性能分析时&#xff0c;内心都会浮现一个共同的困惑&#xff1a;我明明已经这么拼了&#xff0c;为什么在领导眼里&#xff0c;我依然是个“找茬的”&#xff0c;而不是“创造价…...

如何用嘎嘎降AI处理金融学论文:金融学毕业论文降AI4.8元完整操作教程

如何用嘎嘎降AI处理金融学论文&#xff1a;金融学毕业论文降AI4.8元完整操作教程 第一次用降AI工具有很多不确定——传什么格式、选哪个模式、怎么验收。 这篇教程把金融学论文降AI教程的常见问题都覆盖了&#xff0c;主要基于嘎嘎降AI&#xff08;www.aigcleaner.com&#x…...