尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

实际方案:DoG#

实际方案:DoG#
📅 发布时间:2026/7/7 3:43:57

LoG 的理论很好,但就和 Harris 为什么要对结构张量进行工程优化一样,其计算代价相当高。
因此,我们在实际工程中使用的是其近似版本:高斯差分(Difference of Gaussian,DoG)
对于尺度空间:

如果取两个相邻尺度:

和

直接做差:

看起来只是简单相减,但根据尺度空间理论可以证明:

也就是说:

它实际上近似于尺度归一化后的 LoG,这也是 SIFT 中真正使用的方法,在下面的具体步骤中,我们就可以看到它的位置。

5. SIFT 特征点检测#

下面就开始 SIFT 的实际构建了,这部分逻辑十分复杂,步骤也较多,但可以说是最标准化的流程,后续的几个出名算法其实本质上就是针对不同目标对 SIFT 的简化改进。

5.1 DoG 金字塔#

一个很明显的道理是尺度空间不可能无限大,如果一直增大 ,图像最终会被模糊成一团灰色,继续计算没有意义。

因此 SIFT 采用了一个方法:

当尺度增大到一定程度后,不再继续增大 ,而是直接缩小图像。

一个需要注意的是原论文中,原始图像在开始处理前会先通过插值放大一倍来进行更密集的采样,而随着现代成像技术的提升,这点并不强制了。

回到主线,假如尺寸为 1024×1024 的初始图,在处理中会逐渐减小到 512×512,再到 256×256、128×128 等。而这样做的效果其实与继续增大尺度非常接近。

假设图像中有一个半径 的圆斑,在初始图中它占据很大面积,但如果直接缩小图像一半,那么圆斑半径也变成 ,相当于目标自动变小了。

其核心逻辑是:

目标变小与检测器变大,本质上都是在改变二者的相对尺度。

这便形成了 SIFT 的金字塔结构,其中存在两个核心设计:Octave和Interval。

SIFT 将尺度空间划分成多个组,每个组称为一个Octave(八度)。
每经过一个 Octave,图像尺寸缩小一半:

这样整个尺度空间被分解成多个层级,小尺度特征主要在前几个 Octave 中检测,而大尺度特征则在后几个 Octave 中检测。

但仅有 Octave 还不够,因为同一个 Octave 内仍然需要搜索最佳尺度,所以每个 Octave 内还会划分多个Interval(尺度间隔)。

原论文中设:

注意:这里的 并不是后面马上要提到的 Gaussian 层数或者 DoG 层数,而是和下一部分检测有关,它是指:

一个 Octave 中真正参与尺度搜索的 Interval 数量。

展开来说,为了让一个 Octave 恰好覆盖尺度翻倍:

我们定义一个尺度倍率:

当 时:

因此尺度会按照如下方式增长:

例如初始尺度取 ,则对应:

层号
01.60
12.02
22.54
33.20

这样便定义出了一个 Octave 中的尺度划分方式。

接下来需要构建对应的高斯图像:

如果只考虑这 3 个 Interval,那么理论上只需要生成对应尺度的 Gaussian 图像即可。

但后面还需要构建 DoG 图像,并进行三维尺度空间极值检测,因此SIFT 会额外生成若干高斯层作为边界缓冲。

最终每个 Octave 实际会生成:

个 Gaussian 图像。

当 时,生成结果就如下:

Gaussian层作用
1.60有效尺度层
2.02有效尺度层
2.54有效尺度层
3.20有效尺度层,达到 ,也是下一 Octave 的起始来源
4.03边界缓冲层,用于构建 DoG
5.08边界缓冲层,用于构建 DoG 与极值检测

最终,多个 Octave 的 Gaussian 图像共同组成高斯金字塔(Gaussian Pyramid)。

得到高斯金字塔后,在每个 Octave 内对相邻 Gaussian 图像做差:

例如:

Gaussian层Gaussian尺度DoG层DoG对应尺度
--

一般情况下:

个个

而这些 DoG 图像会共同组成DoG 金字塔(Difference of Gaussian Pyramid)。

之所以需要额外生成两层 DoG,是因为后面寻找极值点时,需要同时比较当前层、上一层和下一层总计 的三维邻域。
最顶层和最底层 DoG 无法参与极值检测,只能作为边界层存在,这样以来,最终真正参与尺度空间搜索的 DoG 层数恰好为:

这也正好对应最开始设定的 Interval 数量,这样,我们就完成了极值检测的所有准备。

5.2 尺度空间极值检测#

这一步相对简单,得到 DoG 金字塔后,其最顶层和最底层 DoG 不参与检测,假设当前考察点位于:

现在,这个点周围有当前层 8 个邻居、上一层 9 个邻居以及下一层 9 个邻居,总计26个邻居。

SIFT 要求:

当前点必须同时大于(或小于)全部 26 个邻居。

遍历整个金字塔,这样的点才能被保留。这一步就是:尺度空间极值检测(Scale Space Extrema Detection)

也就是说:只有中心点同时成为空间和尺度两个方向上的极值,才能成为候选关键点。

此时得到的结果已经包含了 ,前两维说明位置显著,第三维说明尺度显著,并且,我们还可以通过尺度系数和检测器大小的关系,估计出特征尺寸。

到这里,我们已经成功提取出了候选关键点,但 SIFT 仍然还有相当一部分内容,我们继续。

5.3 关键点精确定位#

现在,我们已经获得了一批候选关键点,但这里有一个问题:

DoG 金字塔本质上是离散采样的尺度空间,而真实极值点的位置并不一定刚好落在采样网格上。

比如某个位置附近的 DoG 响应如下:

相关新闻

  • 【JAVA毕设源码分享】基于springboot小学数学错题管理及推荐系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 具身智能真机实训:60台实体机器人一周高强度实战
  • OpenRocket火箭仿真:从零开始的完整指南,让航空航天设计变得简单有趣 [特殊字符]

最新新闻

  • Rust 智能指针选型:Box、Rc、Arc 什么时候该用哪一个
  • Copilot上下文感知提醒:基于Graph API的工作流驱动机制
  • 一站式可观测新选择:OpenObserve 深度对标 ELK / Grafana+Prometheus / Netdata,附Docker一键部署实战
  • Fable 5降本新招:pxpipe将上下文转图片,token输入成本最多省70%!
  • 科辉荣盛小程序定制开发,多重保障安心数字化
  • 潮汛网快讯:英国GEO公司geoSurge完成1200万美元种子轮融资

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号