SIFT特性点检测

[复制链接]
发表于 2025-9-19 04:00:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
刚看完了SIFT特性点检测的原理,阅读的是两篇csdn博客,一个全面和一个最全面,不得不说,你俩写的都很全面,这么专心奉献知识的博主是全人类的产业。
如今用我这张鸠拙的嘴先说一下我明白的流程
首先先将图像扩大一倍,David Lowe 使用了 双三次插值(Bicubic Interpolation) 来将原图像扩大一倍。
用不同标准的高斯查对这个扩大一倍的图像做平滑利用。将第1组倒数第三层图像作比例因子为2的降采样(隔点采样)(这里取倒数第三层大概由于倒数第三层可以大概检测到足够多的特性点,更恰当进行下采样)
   SIFT算法的目标是构建一个标准空间,用于检测标准稳定的特性点。标准空间通常由多个组(octave)和多个层(scale level)构成。每个组包罗一系列徐徐平滑的图像,每个层对应于不同的标准。
组(Octave):每个组的图像分辨率不同,通常通过降采样实现。
层(Scale Level):每个组内的图像通过高斯平滑实现不同标准的体现。

  然后将同一组的不同层的图像做差分,得到高斯差分金字塔(DOG)。特性点是由DOG空间的局部极值点构成的。为了探求DoG函数的极值点,每一个像素点要和它全部的相邻点比力,看其是否比它的图像域和标准域的相邻点大或者小,在高斯差分金字塔中探求极值点,除了思量x,y方向的点,还要思量σ(标准) 方向的点,以是判断一个像素点是否为极值点,要与四周的26个点(一组有六个层的话就天生五个差分图像,在中间三层中探求极值点,9*2+8=26)进行比力,找到极值点。
   局部极大值或极小值点代表了图像中的显着特性,如角点、边沿等。 这些特性点在不同标准下具有稳固的多少和强度特性,因此可以用于图像的匹配和辨认。
    注: ① 如果高斯差分金字塔每组有3层,则只能在中间1层图像寻 找极值点, 两端的图像不连续,没有极值点.
  ② 如果高斯差分金字塔每组有5层,则只能在中间3层图像探求极值点.
  

  

DoG图像中的局部极大值或极小值点。这些点是通过离散采样得到的,大概存在一定的偏差,泰勒睁开式可以将DoG函数在特性点附近睁开为一个二次多项式,从而得到特性点的准确位置。
然后
1.在关键点四周的一个邻域内(通常是 15σ 的范围),盘算每个像素的梯度方向和巨细。
2.将梯度方向分成若干个方向区间(通常为36个方向,每10度一个区间),统计每个方向的梯度巨细总和。选择梯度方向直方图中的最大值对应的方向作为关键点的主方向。
3.将关键点邻域旋转,使得主方向指向水平方向(通常是x轴方向)。如许,纵然图像本身旋转,形貌子仍然保持划一。
4.分别子地区
将关键点邻域分别为 4×4 的网格,每个网格对应一个子地区。通常以关键点为中央,取一个 16σ×16σ 的邻域。
子地区巨细:每个子地区的巨细为 4σ×4σ。
4.1 统计梯度方向直方图
在每个子地区内,盘算每个像素的梯度方向和巨细。
4.2 将梯度方向分成8个方向区间(每45度一个区间),统计每个方向的梯度巨细总和。每个子地区天生一个8维的梯度方向直方图。
4.3 天生形貌子
将 4×4 的子地区的梯度方向直方图归并,得到一个 4×4×8=128 维的特性向量。
5. 归一化:为了加强形貌子的鲁棒性,对特性向量进行归一化处置惩罚。
第一次归一化:将特性向量的长度归一化到1。
5.1 截断:将特性向量中大于0.2的值截断为0.2,以淘汰光照变革和边沿效应的影响。
5.2 第二次归一化:再次将截断后的特性向量归一化到长度为1。
   截断:将特性向量中大于0.2的值截断为0.2,进一步加强形貌子的鲁棒性。这是由于过大的梯度值大概由噪声或边沿效应引起,截断可以淘汰这些影响。
  目标的辨认是通过两点集内关键点形貌子的比对来完成。具有128维的关键点形貌子的相似性度量接纳欧式隔断。
匹配可采取穷举法完成,但所耗费的时间太多。以是一样平常接纳kd树的数据布局来完成搜索。搜索的内容是以目标图像的关键点为基准,搜索与目标图像的特性点最相近的原图像特性点和次相近的原图像特性点。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表