今天打算看一看计算机视觉比较经典的一篇文章:SIFT
看的是站友翻译版,(得努力学会自己看英文文献了..........)
SIFT是计算机视觉中比较经典的特征点提取与描述算法,它由 角点检测和 特征点描述子构造两部分组成。也就是他不光能检测到特征点,还可以给他一个描述子向量,有了这个向量, 特征点就可以被计算机所理解。
尺度空间(scale-space)的概念在1983年Andrew P. Witkin的论文《SCALE-SPACE FILTERING:A New Approach To Multi-Scale Description》中被提出。这篇论文中提到:我们一般用极值和导数来描述 “信号” 的特征,计算这些描述的一个基本问题是尺度:导数必须在某个邻域内取得,但很少有原则性的依据来选择其大小。所以他们提出了尺度空间(scale-space)作为多尺度描述。
这一段中所谓的“信号”不是很懂是什么意思
查阅原文 ,发现原文用的确实是“signal”这个词,可是是指的特征点一类的东西吗? 带着这个疑问细看文章。
文中的信号指的是一种传递现象信息的函数,其实和我们正常理解的“信号”大差不差。
而文中所谓的“尺度”我认为就是“邻域”的一种说法。
以下为上图摘要的翻译:信号及其前几个导数的极值为许多种信号提供了有用的通用定性描述。计算这些描述的一个基本问题是尺度:导数必须在某个邻域内取得,但很少有原则性的依据来选择其大小。尺度空间滤波是一种定性地描述信号的方法,以有组织和自然的方式处理尺度的模糊性。信号首先通过与高斯掩模卷积来扩展到一系列大小。然后,这个“尺度空间”图像根据其定性结构折叠成一棵树,提供一个简洁而完整的定性描述,涵盖所有观察尺度。通过应用稳定性标准进一步细化描述,以识别在大尺度变化下持续存在的事件。
后文中提到了高斯卷积
在这里我查阅了3B1B的相关视频
这是原视频中给的一般定义,比较抽象
与原文中给出的卷积公式进行比较
对于两个数组做卷积我们可以得知其卷积过程为:
、
结果显而易见
从过程想来看就好似是[4,5,6]这个数组倒转过来,依次与数组[1,2,3]进行乘积(二者没有接触到的部分视作乘0)。
这看起来就好似[6,5,4]作为一个加权数组去依次与被卷积的数组进行运算。
原视频中给出的例子与我们类比的很相似,通过卷积我们可以将一个数组数值变化的过程平滑的展现出来 。
在图像处理的方向,卷积可以将图片模糊化
在 Andrew P. Witkin 的论文《SCALE-SPACE FILTERING: A New Approach To Multi-Scale Description》中,卷积的作用是通过与图像函数或其他滤波器进行卷积操作,来计算尺度空间函数 L(x,y,sigma)。具体来说,通过对图像函数 f(x,y) 与高斯核函数 G(x,y,sigma) 进行卷积操作,得到尺度空间函数 L(x,y,sigma):
L(x,y,\sigma) = G(x,y,sigma) * f(x,y)
其中 *表示卷积操作,G(x,y,sigma) 是高斯核函数,它与图像函数卷积后得到的结果是一个新的函数 $L(x,y,sigma),描述了图像在尺度为 sigma时的特征。
在尺度空间滤波中,通过改变高斯核函数的尺度参数 sigma的值,可以控制滤波的尺度,从而实现图像在不同尺度下的特征提取和描述。当 sigma 值较小时,高斯核函数比较锐利,可以保留图像中细节较多的部分;而当 \sigma 值较大时,高斯核函数比较模糊,可以平滑图像并且去除细节。因此,卷积操作是实现尺度空间滤波的关键步骤之一。
今日碎碎念:师哥可能要被导气走了,唏嘘..........