搜索
您的当前位置:首页梯度和梯度算子(Roberts,Sobel,Laplace)

梯度和梯度算子(Roberts,Sobel,Laplace)

来源:飒榕旅游知识分享网

机器学习和深度学习中,梯度是一个很重要的概念。在大部分机器学习优化问题中都可以通过梯度下降法处理。要介绍梯度就必须了解导数(derivative),偏导数(partial derivative)和方向导数(directional derivative)

这些概念在高等数学中都有介绍,也可以参考百度和维基百科,这里我们就只做简单回忆:

  • 导数

导数反映函数

  • 偏导数

导数和偏导数性质一致,但偏导数指多元函数中函数在某点沿坐标轴(x1,x2,xn)正方向变化率。也可以理解为,导数是自变量只有一个时的函数沿正方向变化率,而偏导数则是函数自变量大于一个时,每个自变量的变化率。

  • 方向导数

导数和偏导数的定义中,都是沿坐标轴正方向讨论函数变化率,而方向导数则是:函数上某点沿某一方向上的导数值(方向可选择)。

梯度

那么引出梯度的定义:

函数在某点梯度是一个向量,它的方向与取得最大方向导数的方向一致,而它的模则为方向导数的最大值可以理解为梯度是函数在某点最大的方向导数,函数沿梯度方向有最大的变化率。

梯度的求法也很简单,对于函数

梯度算子

图像的梯度计算可以通过使用不同的梯度算子实现,具体实现的过程是通过用梯度算子进行卷积运算的到,不了解卷积的同学可以自行百度。。。

这里介绍几种常用的梯度算子:

  • Roberts交叉梯度算子

Roberts交叉梯度算子(Roberts Cross Edge Detector)很好理解,就是对目标进行一个2*2的卷积核的卷积计算。卷积核有两个,分别用来计算垂直方向和水平方向,卷积核如下所示:

梯度幅值可以表示为:

为了方便计算,也可以这样计算:

梯度角度则可以表示为:

  • Sobel算子

Sobel梯度算子(Sobel Edge Detector)和Roberts算子类似,只不过引用了两个3*3的卷积核,分别用来计算垂直方向和水平方向,卷积核如下所示:

梯度幅值和梯度角度也可以通过上面介绍的式子求得

Sobel算子计算速度较慢于Roberts算子,但3*3的卷积核在更大程度上平滑了输入图像,使得图像对噪声的敏感性降低

  • Prewitt算子

Prewitt算子与Sobel算子类似,卷积核如下所示:

  • Laplace算子

以上介绍的Roberts算子,Sobel算子和Prewitt算子都是一阶算子,而Laplace属于二阶算子。Laplace算子对噪声敏感,所以一般在降噪后的图像上使用。卷积核如下所示:

由于一阶算子的原理是计算目标点的一阶导数,由导数定义可知,x点导数可通过以下公式计算:

那么二阶算子则是计算目标点的二阶导数,可通过以下公式计算:

这也等同于(上式变量减1):

在图像中就可以表示为:

这就是上图第一个Laplace算子的由来。为了让该算子在45度方向上也有方向性,对该算子进行扩展得到上图第二个Laplace算子。

 

上述算子也可用于图像的边缘检测,边缘检测和检测算子及优缺点将在接下来的文章中介绍。

 


参考:

 

 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top