【计算机视觉03】SIFT特征提取与检索

本文详细介绍了SIFT特征提取的过程,包括建立高斯差分金字塔、关键点位置确定、方向分配,以及匹配和RANSAC算法在去除误匹配中的应用。通过SIFT算法,实现了图像的旋转、尺度不变性,但在某些情况下,如图像纹理不深时,可能影响特征点的准确提取。
摘要由CSDN通过智能技术生成

本文参考博客:https://blog.csdn.net/fangjian1204/article/details/10522455

一、建立高斯差分金字塔

1.1 基本概念

高斯金字塔里有两个概念:组(Octave)和层(Level);
不同大小的图片是组;同样大小的图片,在内部是层;
在同一组内,不同层图像的尺寸是一样的;

1.2 构建高斯金字塔

高斯金字塔每层中的多幅图像,是通过对同一幅输入图像进行不同尺度的高斯卷积得来的。
高斯金字塔的组数为:
在这里插入图片描述
计算高斯模糊的系数σ:
在这里插入图片描述
σ为尺度空间坐标,s为每组中层坐标,σ0为初始尺度,S为每组层数(一般层数为3~5)。
根据公式推理可以得到,金字塔组内各层尺度以及组间各图像尺度关系:相邻两组的同一层尺度为2倍的关系

1.3 构建Dog金字塔

高斯金字塔相邻两层相减,便可以得到 DoG (Difference of Gaussian)金字塔。
后面Sift特征点的提取都是在DOG金字塔上进行的。
在这里插入图片描述

二、关键点位置确定

2.1 基本概念

如上图的金字塔,高斯尺度空间金字塔中每组有五层不同尺度图像,相邻两层相减得到四层DoG金字塔。关键点搜索就是在这四层DoG图像上寻找局部极值点。

2.2 DoG局部极值点

在这里插入图片描述
以中心点进行3X3X3的相邻点比较,就是和它同尺度的8个相邻点和上下相邻尺度对应的点进行比较;以确保在尺度空间和二维图像空间都检测到极值点。

2.3 去除边缘响应

除了DoG响应较低的点,DoG对图像中的边缘有较强的响应值,一些响应较强的点也不是稳定的特征点。我们需要剔除不稳定的边缘响应点。

三、关键点方向分配

为了实现图像旋转不变性,为每个关键点指定方向参数;
使用图像的梯度直方图法求关键点局部结构的稳定方向。
3.1 使用直方图统计邻域内像素对应的梯度方向和幅值
3.2 梯度方向直方图的横轴是梯度方向角,纵轴是剃度方向角对应的梯度幅值累加值。梯度方向直方图将0°~360°的范围分为36个柱,每10°为一个柱。下图是从高斯图像上求取梯度,再由梯度得到梯度方向直方图的例图。
在这里插入图片描述
3.3 直方图峰值代表该关键点的主方向,另一个相当于主峰值80%的峰值时,将这个方向认为是该关键点的辅方向;可以看出一个关键点可能检测得到多个方向,这可以增强匹配的鲁棒性.

四、关键点描述

4.1 现在已经为关键点赋予了图像位置、尺度以及方向,这三个参数称为一个特征区域。根据关键点周围的局部特性计算一个特征描述子,即一个特征向量。
4.2 首先将坐标轴旋转为特征点的方向,以保证旋转不变性。
在这里插入图片描述
旋转后区域内采样点新的坐标为:
在这里插入图片描述
4.3 对每个特征点使用4x4共16个种子点来描述,每个种子点有8个方向向量信息,每个特征点就有4x4x8=128个数据,即形成128维特征向量的特征描述符。
在这里插入图片描述
4.4 SIFT特征向量已去除了尺度变化、旋转等几何变形因素的影响。接下去对特征向量的长度归一化,可以去除光照变化的影响。
4.5 对于图像亮度的变化,每个像素值都会加上一个数值,这对计算的梯度是没有影响的。对于非线性的光线变化,梯度大小会受影响,但是梯度的方向不会有大的变化.在 128 维的单位向量中,滤除梯度大于某个值(经验值0.2)的梯度值,然后重新归一化。这样梯度大小的作用被虚弱了,而方向信息的作用被强化了。

五、匹配

以两个特征点描述符之间的欧式距离作为特征点匹配的相似度准则。

5.1 数据集

针对自己所处的环境,拍摄多张图片(注意要来自不同场景),构造出一个小的数据集
在这里插入图片描述

5.2 图片的SIFT特征提取

实现数据集中,每张图片的SIFT特征提取,并展示特征点
在这里插入图片描述
在这里插入图片描述
(这里不一一展示结果)

5.3 计算两张图片SIFT特征匹配结果

在这里插入图片描述

5.4 检索匹配

给定一张输入的图片,在数据集内部进行检索,输出与其匹配最多的三张图片

六、图像连接可视化

6.1 代码

 -*- coding: utf-8 -*-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值