SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解

在学习SIFT算法时,关于我们之所以构建高斯差分金字塔(DoG)的原因,我一直没有一个直观的理解,尤其无法理解高斯差分算子(DoG)为什么与高斯拉普拉斯算子(LoG)的近似。为了弄清这个问题,首先讲解什么是高斯拉普拉斯算子:

高斯拉普拉斯算子(LoG)

Laplace算子作为一种优秀的边缘检测算子,在边缘检测中得到了广泛的应用。该方法通过对图像求图像的二阶导数的零交叉点来实现边缘的检测,公式表示如下:
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解 在图像中,边缘可以看做是位于一阶导数较大的像素处,因此,我们可以求图像的一阶导数来确定图像的边缘,像sobel算子等一系列算子都是基于这个思想的。如下图a表示函数在边沿的时候关系,求导得b图,可知边沿就是函数的极值点,对应二阶导数为0处,如图c的二阶导数图像。后续我们进行DoG空间极值点检测时,就是等效于检测灰度图像的拉普拉斯算子的极值点(二阶导的极值点),从c图上可以看出,二阶导的极值点也是边缘点
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解
由于Laplace算子是通过对图像进行微分操作实现边缘检测的,所以对离散点和噪声比较敏感。于是,首先对图像进行高斯卷积滤波进行降噪处理,再采用Laplace算子进行边缘检测,就可以提高算子对噪声和离散点的鲁棒性,如此,拉普拉斯高斯算子Log(Laplace of Gaussian)就诞生了。
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解

DoG是如何与LoG近似的?

由于卷积的性质,对卷积的结果求梯度等效于先对任一求梯度再卷积,因此运算结果LoG(x,y)=▽2G(x,y)*I(x,y),因此LoG和DoG的近似等效于▽2G(x,y)和D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]的近似

在某一个尺度上对特征点的检测,可以通过对同一组内的两个相邻高斯尺度空间图像相减,得到一个DoG的响应值图像表示为:
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解
其中k为两相邻尺度空间倍数。

基于热传导理论的理解

然而,这与LoG又有何关系呢?在这里不得不跳跃性地提到热传导方程:
(https://blog.csdn.net/zhao_cq/article/details/86178779)
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解
u为温度值,t为时间,k为常量。在这里,我们把高斯核函数G(x,y,σ)看做平面上的温度函数,σ看做时间,σ越大,高斯核的大小越大,核中心的数值越低(高斯核越“散”)。这个过程可以类比为热量传导的过程。
由热传导方程可知:
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解

对上式进行有限差分运算,得到:
SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解
由于常数k-1并不会影响极值点的位置,DoG是对LoG的近似表示。

基于数值近似的理解

Lindeberg早在1994年就发现高斯差分方法DoG(Difference of Gaussian)是对高斯拉普拉斯方法LoG的一个近似,如图所示。

SIFT算法【1.3】尺度空间构建之关于高斯差分金字塔的一点理解
这是一个函数图像上的相似,因此我们用高斯差分来近似高斯拉普拉斯算子。