【计算机视觉】局部图像描述子

一、图像特征匹配

1、图像特征点匹配

(1)同名点
同一目标点在不同像片上的构像点。
(2)同名点匹配
是图像拼接、三维重建、相机标定等应用的关键步骤。
(3)特征匹配的基本流程:在这里插入图片描述
①找点(找到左右边图像中比较显著的关键点)
②为每个关键特征点打上一个标签即一个身份,用向量表示,向量称为特征描述符
③有向量后,我们可以去右边图像中找到特征点看哪里与左边图像接近(找到匹配关系)

2、Harris角点检测

2.1角点介绍

角点:角点可以是两条线的交叉处,也可以是位于相邻的两个主要方向不同的事物上的点,即某方面特别突出的点。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配。
如图不同类型的角点:
在这里插入图片描述
角点特征
①局部窗口沿各方面移动,均产生明显变化的点
②图像局部曲率突变的点

角点检测算法如今可以归纳为3类:基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。

2.2Harris算法介绍

什么是好的角点检测算法?
①检测出图像中“真实的”角点
②准确的定位性能
③很高的稳定性
④具有对噪声的鲁棒性
⑤具有较高的计算效率
Harris角点检测:是特征点检测的基础,提出了应用邻近像素点灰度差值概念,从而进行判断是否为角点、边缘、平滑区域。
Harris角点检测原理:是利用移动的窗口在图像中计算灰度变化值,其中关键流程包括转化为灰度图像、计算差分图像、高斯平滑、计算局部极值、确认角点。
Harris角点检测基本思想
在窗口任意方向移动角点的图像灰度都会发生明显变化;
边缘区域只有在左右移动时变化明显,上下移动无变化;
平坦区域任意方向移动都无变化。如下图分别为平坦区域,边缘区域和角点时的变化情况。
在这里插入图片描述
Harris角点数学表达
将图像窗口平移[u,v]产生灰度变化E(u,v)
在这里插入图片描述
通过一元和二元泰勒产开后:
在这里插入图片描述
对于局部微小的移动量[u,v],可以近似得到下面的表达:
在这里插入图片描述
其中M是2*2的矩阵,可由图像的导数求得:
在这里插入图片描述

2.3Harris角点响应函数R

①矩阵M,将其对角化之后,特征值λ1, λ2 分别代表了X 和Y 方向的灰度变化率:
在这里插入图片描述

②通过M的两个特征值λ1, λ2的大小对图像点进行分类:
在这里插入图片描述
如图所示:
如果λ1, λ2都很小, 图像窗口在所有方向上移动都无明显灰度变化。
如果λ1, λ2都很大, 图像窗口在所有方向上移动都产生明显灰度变化。

③定义:角点响应函数R:
在这里插入图片描述
R只与M的特征值有关:
在这里插入图片描述
角点丰富的图中:R值为正值,因为角点丰富的图入1入2值都较大即detM值大,则R值大。
平坦的图中:R值为小数值,且平坦的图中含有边缘,因此R值也有负数值;因为在平坦的图中,入1入2值都很小,所以R值小。
边缘丰富的图中:入1和入2的值一方大一方小,所以R值为大值负数。

④角点响应函数R对于旋转具有不变性
对于图像的灰度变化具有部分不变性
对于图像尺度变化不具有不变性

2.4Harris角点检测代码实现

# -*- coding: utf-8 -*-
from pylab import *
from PIL import Image
from PCV.localdescriptors import harris

"""
Example of detecting Harris corner points (Figure 2-1 in the book).
"""

# 读入图像
im = array(Image.open(r'C:\Users\ltt\Documents\Subjects\大三下\计算机视觉(蔡国榕)\第二章\Cap2\1\gq.jpg').convert('L'))

# 检测harris角点
harrisim = harris.compute_harris_response(im)

# Harris响应函数
harrisim1 = 255 - harrisim

figure()
gray()

#画出Harris响应图
subplot(141)
imshow(harrisim1)
print (harrisim1.shape)
axis('off')
axis('equal')

threshold = [0.01, 0.05, 0.1]
for i, thres in enumerate(threshold):
    filtered_coords = harris.get_harris_points(harrisim, 6, thres)
    subplot(1, 4, i+2)
    imshow(im)
    print(im.shape)
    plot([p[1] for p in filtered_coords], [p[0] for p in filtered_coords], '*')
    axis('off')

show()

2.5结果

原图:
在这里插入图片描述
实验结果:
在这里插入图片描述
结论:
①该代码先代入一幅图像,将其转换成灰度图像,然后计算相响应函数,通过响应值选择角点。最后,将这些检测的角点在原图上显示出来。
②本次实验中,角点较多的区域是目标的轮廓和色彩比较深的区域。

2.6实验结论

增大threshold的值,将减小角点响应值R RR,降低角点检测的灵性,减少被检测角点的数量;减小threshold值,将增大角点响应值R RR,增加角点检测的灵敏性,增加被检测角点的数量。
Harris算法的主要特点是阈值决定检测点数量;
角点检测算子对亮度和对比度的变化不敏感;
具有旋转不变性,不具有尺度不变性;
harris算法中的阈值依赖于实际图像的属性,不具有直观的物理意义,具体值难确定。

3、SIFT特征提取与检测

3.1SIFT算子介绍

在之前的学习中,我们学习了角点的基本知识,并对Harris角点检测算法应用到了图像的角点检测。
当我们在观察图像中的物体时,物体所在的图像不论背景或者角度如何变换,我们依然能很快的识别出图像中的目标物体。对机器来说,则需要定义图像上的关键特征并且能够根据这些特征搜索到一张新的图片。
SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT)。是在计算机视觉任务中特征提取算法

3.2SIFT实现步骤简述

SIFT算法的实质可以归为在不同尺度空间上查找特征点(关键点)的问题。SIFT算法实现特征匹配主要有三个流程:
a.提取关键点;
b.对关键点附加详细的信息(局部特征),即描述符;
c.通过特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,建立景物间的对应关系。

3.3SIFT特征提取算法

①构建尺度空间,检测极值点,获得尺度不变性

  • 构建尺度空间——特征点的性质之一就是对尺度的变化保持不变性。因此寻找的特征点要在不同尺度下都能被检测出来.根据文献可知,变换到尺度空间唯一的核函数是高斯函数。因此一个图像的尺度空间定义为:L( x,y,σ)是由可变尺度的高斯函数G(x,y,σ) 与输入图像I(x,y卷积得到
    即: L(x,y,σ)=G(x,y,σ)∗I(x,y)
    ( x , y )是尺度坐标,σ大小决定图像的平滑程度,大尺度对应图像的概括特征,小尺度对应图像的细节特征,大的σ对应粗糙尺度(低分辨率),小σ对应高分辨率。为使计算相对高效,真正使用的是差分高斯尺度空间
    D(x,y,σ):在这里插入图片描述

  • 高斯模糊——降低图像中的噪点,强调了图像的重要特征。进行高斯模糊之和,纹理和次要细节将从图像中删除,并且保留形状和边缘之类的相关信息。
    在这里插入图片描述

  • 实现DOG——初始图像与不同σ值的高斯函数卷积,得到一垛模糊后图像,然后将这一垛图像临近两两相减得到对应的DOG。一副图像可以产生几组图像,一组图像包括几层图像。s为每组层数一般为3~5层,最后可以将s和k的关系确立为k=2^(1/s)
    在这里插入图片描述

  • 尺度空间检测极值点——DOG上某个像素要和本尺度的8个像素以及上下相邻尺度各9个相邻像素共26个像素值进行比较,以确定是否为局部最大或最小值。如果它是相邻像素中最高或者最低的像素,则确定该像素点是尺度空间的极值点之一。
    在这里插入图片描述

②筛选关键点,剔除不稳定的极值点
去掉对比度低的以及处于不理想边缘处的关键点,得到符合要求的特征关键点。

③在特征点处提取特征描述符,为特征点分配方向值
确定关键点的方向采用梯度直方图统计法,统计以关键点为原 点,一定区域内的图像像素点对关键点方向生成所作的贡献。

④生成特征描述符,利用特征描述符寻找匹配特征点
下图是一个SIFT描述子事例。其中描述子由2×2×8维向量表征,也即是
2×2个8方向的方向直方图组成。左

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值