LoG算子与DoG算子相似性数学推导

1. 推导动机

\qquad 在学习图像尺度不变特征点检测的过程中(sift算法),我们总是习惯用DoG算子来替代LoG算子计算图像尺度不变特征点以提高运行效率,很多讲解blog都提到这一点,但很少有博主对两者为何可以相互替代进行完整严谨的数学推导,当然这个结论是对的,但是在学习的过程中,我们总想做到知其然并知其所以然,本篇blog将对两个算子进行详细地讲解,并数学推导出二者之间的关系。

2. 高斯核函数

\qquad 在进行LoG算子介绍前,我们首先对高斯核函数进行介绍,我们知道一般的一维高斯函数可定义成如下形式: f ( x ) = a e − ( x − b ) 2 2 c 2 f(x)=ae^{-{(x-b)^2 \over 2c^2}} fx=ae2c2(xb)2 b = 0 , c = σ b=0,c=\sigma b=0,c=σ,则 f ( x ) f(x) fx变形为 f ( x ) = a e − x 2 2 σ 2 f(x)=ae^{-{x^2 \over 2\sigma^2}} fx=ae2σ2x2将该函数在 ( − ∞ , + ∞ ) (-\infty,+\infty) (,+)区间内积分得(具体积分过程请参考《高等数学》) ∫ − ∞ + ∞ f ( x ) = 2 π ∣ σ ∣ a \displaystyle \int _{-\infty}^{+\infty} f(x)={\sqrt{2\pi} |\sigma|}a +fx=2π σa而高斯函数用于给数据不均匀加权时,我们希望所有权重之和为1,即 ∫ − ∞ + ∞ f ( x ) d x = 2 π ∣ σ ∣ a = 1 \displaystyle \int _{-\infty}^{+\infty} f(x)dx={\sqrt{2\pi} |\sigma|}a=1 +fxdx=2π σa=1,从而我们得出 2 π ∣ σ ∣ a = 1 , a = 1 2 π ∣ σ ∣ {\sqrt{2\pi} |\sigma|}a=1,a= {1 \over{\sqrt{2\pi} |\sigma|}} 2π σa=1a=2π σ1即归一化的高斯核函数为 f ( x ) = 1 2 π ∣ σ ∣ e − x 2 2 σ 2 f(x)= {1 \over {\sqrt{2\pi} |\sigma|}}e^{-{x^2 \over 2\sigma^2}} fx=2π σ1e2σ2x2当我们希望用高斯函数进行图像模糊处理时,很显然一维高斯核函数并不能满足我们的需求,我们需要对一维高斯核函数进行拓展,获得二维高斯核函数,定义归一化二维高斯核函数为: g ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 g(x,y)= {1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} gx,y=2πσ21e2σ2x2+y2该函数在 x ∈ ( − ∞ , + − ∞ ) , y ∈ ( − ∞ , + − ∞ ) x\in(-\infty,+-\infty),y\in (-\infty,+-\infty) x(,+),y(,+)上进行积分得 ∬ D g ( x , y ) d x d y = ∫ − ∞ + ∞ 1 2 π ∣ σ ∣ e − x 2 2 σ 2 d x ∫ − ∞ + ∞ 1 2 π ∣ σ ∣ e − y 2 2 σ 2 d y = 1 \displaystyle \iint _Dg(x,y)dxdy= \displaystyle \int _{-\infty}^{+\infty}{1 \over {\sqrt{2\pi} |\sigma|}}e^{-{x^2 \over 2\sigma^2}}dx\displaystyle \int _{-\infty}^{+\infty}{1 \over {\sqrt{2\pi} |\sigma|}}e^{-{y^2 \over 2\sigma^2}}dy=1 Dgx,ydxdy=+2π σ1e2σ2x2dx+2π σ1e2σ2y2dy=1 \qquad 图像去噪过程中,我们经常使用均值进行图像滤波,对像素点x邻域内的所有像素的像素值相加除以像素的数量获得该点x的最终像素值达到去除噪声的目的,此时邻域内所有像素点的权重是一样的,即邻域内每一个像素点对该x点的影响是相同的,显然这样的滤波并不科学,我们更希望离该点x近的像素对该点影响大,离该点远的像素点对该点影响小,此时用高斯核函数与图像进行卷积可达到该效果。

3. LoG算子

\qquad 图像中的边缘,角点,拐点都可以称之为图像的特征点,那么如何求出这些点的位置呢,Laplacian算子利用求图像的二阶微分极值点来获得图像的边缘,二阶微分定义如下: Δ = ∇ 2 = ∂ 2 ∂ x 2 + ∂ 2 ∂ y 2 \Delta=\nabla^2={\partial^2\over \partial x^2}+{\partial^2\over \partial y^2} Δ=2=x22+y22 \qquad 但是由于laplacian算子对噪声敏感,因此我们首先利用二维高斯核函数对图像进行模糊去噪,然后求二阶微分极值点来获得图像中边缘位置,得 I ′ ( x , y ) = g ( x , y ) ∗ I ( x , y ) = ∬ D g ( x − u , y − v ) I ( u , v ) d u d v I'(x,y)=g(x,y)*I(x,y)=\displaystyle \iint _Dg(x-u,y-v)I(u,v)dudv I(x,y)=g(x,y)I(x,y)=Dgxu,yvI(u,v)dudv Δ ∣ I ′ ( x , y ) ∣ = Δ ∣ g ( x , y ) ∗ I ( x , y ) ∣ = ∂ 2 ∬ D g ( x − u , y − v ) I ( u , v ) d u d v ∂ x 2 + ∂ 2 ∬ D g ( x − u , y − v ) I ( u , v ) d u d v ∂ y 2 \Delta |I'(x,y)|=\Delta |g(x,y)*I(x,y)|={\partial^2\displaystyle \iint _Dg(x-u,y-v)I(u,v)dudv\over \partial x^2}+{\partial^2\displaystyle \iint _Dg(x-u,y-v)I(u,v)dudv\over \partial y^2} ΔI(x,y)=Δg(x,y)I(x,y)=x22Dgxu,yvI(u,v)dudv+y22Dgxu,yvI(u,v)dudv Δ ∣ I ′ ( x , y ) ∣ = ∬ D ∂ 2 g ( x − u , y − v ) ∂ x 2 I ( u , v ) d u d v + ∬ D ∂ 2 g ( x − u , y − v ) ∂ y 2 I ( u , v ) d u d v \Delta |I'(x,y)|=\displaystyle \iint _D{\partial^2g(x-u,y-v)\over \partial x^2}I(u,v)dudv+\displaystyle \iint _D{\partial^2g(x-u,y-v)\over \partial y^2}I(u,v)dudv ΔI(x,y)=Dx22gxu,yvI(u,v)dudv+Dy22gxu,yvI(u,v)dudv Δ ∣ I ′ ( x , y ) ∣ = ∂ 2 g ( x , y ) ∂ x 2 ∗ I ( x , y ) + ∂ 2 g ( x , y ) ∂ y 2 ∗ I ( x , y ) \Delta |I'(x,y)|={\partial^2g(x,y)\over \partial x^2}*I(x,y)+{\partial^2g(x,y)\over \partial y^2}*I(x,y) ΔI(x,y)=x22gx,yI(x,y)+y22gx,yI(x,y)根据卷积结合律得, Δ ∣ I ′ ( x , y ) ∣ = ( ∂ 2 g ( x , y ) ∂ x 2 + ∂ 2 g ( x , y ) ∂ y 2 ) ∗ I ( x , y ) ( 1 ) \Delta |I'(x,y)|=({\partial^2g(x,y)\over \partial x^2}+{\partial^2g(x,y)\over \partial y^2})*I(x,y) \qquad(1) ΔI(x,y)=(x22gx,y+y22gx,y)I(x,y)(1) \qquad 由(1)式可知,对图像进行高斯核函数卷积再求二阶微分等价于对高斯核函数先求二阶微分核后再用该核与图像进行卷积。我们定义LoG算子为二阶微分后的高斯核函数 L o G = Δ ∣ g ( x , y ) ∣ = ∂ 2 g ( x , y ) ∂ x 2 + ∂ 2 g ( x , y ) ∂ y 2 ( 2 ) LoG=\Delta|g(x,y)|={\partial^2g(x,y)\over \partial x^2}+{\partial^2g(x,y)\over \partial y^2} \qquad(2) LoG=Δg(x,y)=x22gx,y+y22gx,y(2) = ∂ 2 ( 1 2 π σ 2 e − x 2 + y 2 2 σ 2 ) ∂ x 2 + ∂ 2 ( 1 2 π σ 2 e − x 2 + y 2 2 σ 2 ) ∂ y 2 ={\partial^2({1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}})\over \partial x^2}+{\partial^2({1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}})\over \partial y^2} =x22(2πσ21e2σ2x2+y2)+y22(2πσ21e2σ2x2+y2) = ( x 2 σ 4 − 1 σ 2 ) 1 2 π σ 2 e − x 2 + y 2 2 σ 2 + ( y 2 σ 4 − 1 σ 2 ) 1 2 π σ 2 e − x 2 + y 2 2 σ 2 =({x^2 \over \sigma^4}-{1\over \sigma^2}){1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} +({y^2 \over \sigma^4}-{1\over \sigma^2}){1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} =(σ4x2σ21)2πσ21e2σ2x2+y2+(σ4y2σ21)2πσ21e2σ2x2+y2 = ( x 2 + y 2 σ 4 − 2 σ 2 ) 1 2 π σ 2 e − x 2 + y 2 2 σ 2 ( 3 ) =({x^2+y^2 \over \sigma^4}-{2\over \sigma^2}){1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} \qquad (3) =(σ4x2+y2σ22)2πσ21e2σ2x2+y2(3) \qquad 我们知道归一化二维高斯核 g ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 g(x,y)= {1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} gx,y=2πσ21e2σ2x2+y2该函数对 σ \sigma σ进行求导得 ∂ g ( x , y ) ∂ σ = ∂ ( 1 2 π σ 2 e − x 2 + y 2 2 σ 2 ) ∂ σ {\partial g(x,y)\over \partial \sigma}= {\partial({1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}})\over \partial \sigma} σgx,y=σ(2πσ21e2σ2x2+y2)
= 1 2 π σ 2 e − x 2 + y 2 2 σ 2 x 2 + y 2 σ 3 + − 2 2 π σ 3 e − x 2 + y 2 2 σ 2 = {1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}}{x^2+y^2 \over \sigma^3}+ {-2 \over {2\pi\sigma^3 }}e^{-{x^2+y^2 \over 2\sigma^2}} =2πσ21e2σ2x2+y2σ3x2+y2+2πσ32e2σ2x2+y2 = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 ( x 2 + y 2 σ 3 − 2 σ ) ( 4 ) = {1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}}({x^2+y^2 \over \sigma^3}- {2 \over {\sigma }})\qquad (4) =2πσ21e2σ2x2+y2(σ3x2+y2σ2)(4)观察(3)式与(4)式,我们发现其在结果上只相差一个常数 σ \sigma σ即, σ L o G = ∂ g ∂ σ ( 5 ) \sigma LoG={\partial g\over \partial \sigma}\qquad (5) σLoG=σg(5)

4.DoG算子

二维高斯核函数的定义为 g ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 g(x,y)= {1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} gx,y=2πσ21e2σ2x2+y2显然,其也是关于 σ \sigma σ的函数,正如我们前面对其关于 σ \sigma σ求导一样,因此我们将其写成如下形式: g ( x , y , σ ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 g(x,y,\sigma)= {1 \over {2\pi\sigma^2 }}e^{-{x^2+y^2 \over 2\sigma^2}} gx,y,σ=2πσ21e2σ2x2+y2此时,我们给出DoG算子的定义公式为: D o G = g ( x , y , k σ ) − g ( x , y , σ ) DoG=g(x,y,k\sigma)-g(x,y,\sigma) DoG=gx,y,kσgx,y,σ下图为函数导数的定义图1
由导数的定义我们可以得到如下结果 ∂ g ( x , y , σ ) ∂ σ = lim ⁡ k → 1 g ( x , y , k σ ) − g ( x , y , σ ) k σ − σ {\partial g(x,y,\sigma)\over \partial \sigma}=\lim_{k \to 1}{g(x,y,k\sigma)-g(x,y,\sigma)\over k\sigma-\sigma} σgx,y,σ=k1limkσσg(x,y,kσ)g(x,y,σ)故而对于给定的常数 k k k,我们有如下近似 ∂ g ( x , y , σ ) ∂ σ ≈ g ( x , y , k σ ) − g ( x , y , σ ) k σ − σ {\partial g(x,y,\sigma)\over \partial \sigma}\approx{g(x,y,k\sigma)-g(x,y,\sigma)\over k\sigma-\sigma} σgx,y,σkσσg(x,y,kσ)g(x,y,σ)而由(5)式可知 σ L o G ≈ g ( x , y , k σ ) − g ( x , y , σ ) k σ − σ \sigma LoG\approx{g(x,y,k\sigma)-g(x,y,\sigma)\over k\sigma-\sigma} σLoGkσσg(x,y,kσ)g(x,y,σ) σ 2 ( k − 1 ) L o G ≈ D o G \sigma^2(k-1) LoG\approx DoG σ2k1LoGDoG故而我们得出结论:LoG算子与DoG算子的形状相似,只在数值上相差常数 σ 2 ( k − 1 ) \sigma^2(k-1) σ2k1,而DoG算子的运行速度远远快于LoG算子,故而可以用DoG算子替代LoG算子求取图像的边缘信息。
以上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值