7-SIFT 尺度不变特征变换

SIFT(尺度不变特征变换)

Sift(尺度不变特征变换),全称是Scale Invariant Feature Transform

Sift提取图像的局部特征,在尺度空间寻找极值点,并提取出其位置、尺度、方向信息。
Sfit的应用范围包括物体辨别、机器人地图感知与导航、影像拼接、3D模型建立、手势识别、影像追踪等。

Sift特征的特点:

  1. 对视角变化、噪声等也存在一定程度的稳定性;
  2. 独特性,信息量丰富,适用于在海量特征数据中进行快速,准确的匹配;
  3. 多量性,即使少数几个物体也可以产生大量的Sfit特征向量;

注意SIFT有专利!

SIFT特征提取和匹配具体步骤

  1. 生成高斯差分金字塔(DOG金字塔),尺度空间构建
  2. 空间极值点检测(关键点的初步查探)
  3. 稳定关键点的精确定位
  4. 稳定关键点方向信息分配
  5. 关键点描述
  6. 特征点匹配
    —概念—

尺度空间,即,试图在图像领域中模拟人眼观察物体的概念与方法。

图像金字塔--》高斯金字塔--》DOG金字塔--》尺度空间

高斯金字塔:

在这里插入图片描述

  1. 在同一组内,不同层图像的尺寸是一样的,后一层图像的
    高斯平滑因子σ是前一层图像平滑因子的k倍;
  2. 在不同组间,后一组第一个图像是前一组倒数第三个图像
    的二分之一采样,图像大小是前一组的一半

DOG金字塔-高斯差分金字塔

差分金字塔,DOG(Difference of Gaussian)金字塔是在高斯金字塔的基础上构建起来的,其实生成高斯金字塔的目的就是为了构建DOG金字塔。
DOG金字塔的第1组第1层是由高斯金字塔的第1组第2层减第1组第1层得到的。以此类推,
逐组逐层生成每一个差分图像,所有差分图像构成差分金字塔。
概括为DOG金字塔的第o组第l层图像是由高斯金字塔的第o组第l+1层减第o组第l层得到的

尺度空间极值检测

特征点是由DOG空间的局部极值点组成的。为了寻找DoG的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。
如下图,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点
在这里插入图片描述
获得S层的极值点–》DOG就得有S+2层–》高斯金字塔得有L=S+3层
在这里插入图片描述
代码:

# -*- coding: utf-8 -*-
'''@Time: 2024/5/19 16:20

'''
import cv2
import numpy as np
img = cv2.imread("../lenna.png")
gray = cv2.imread("../lenna.png",0)

sift = cv2.xfeatures2d.SIFT_create()
keypoints,descriptor = sift.detectAndCompute(gray,None)
img = cv2.drawKeypoints(image=img,outImage=img,keypoints=keypoints,
                        flags=cv2.DrawMatchesFlags_DRAW_RICH_KEYPOINTS,
                        color=(51,163,236))
cv2.imshow('sift_keypoints',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
可以看出:关键点的尺度越大,越是轮廓(比如脸部),尺度越小,越是细节(比如头发,帽檐)。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值