【计算机视觉】SIFT中LoG和DoG比较
《SIFT原理与源码分析》系列文章索引:http://www.cnblogs.com/tianyalu/p/5467813.html
在实际计算时,三种方法计算的金字塔组数noctaves,尺度空间坐标σ,以及每组金字塔内的层数S是一样的。同时,假设图像为640*480的标准图像。
金字塔层数:
其中o_min = 0,对于分辨率为640*480的图像N=5。
每组金字塔内图像数:
S=3,即在做极值检测时使用金子塔内中间3张图像。
对于LoG每组金字塔内有S+2张图像(S=-1,0,1,2,3),需要做S+1次高斯模糊操作(后一张图像由前一张做高斯模糊得到);而DoG每组金字塔有S+3张高斯图像,得到S+2张DoG图像。
尺度空间系数:
其中,S表示每组金字塔内图像层数,n为当前高斯层数,取0-4。DoG需要5个尺度系数得到6张GSS图像,而LoG只需要前4个尺度系数得到5张图像。
LoG
高斯核使用正太分布(高斯函数)计算模糊模版,N维空间正太分布方程为:
于是,二维高斯模板上的距离中心点为(x,y)的元素对应高斯计算公式为:
规范化的高斯拉普拉斯图像为
最终构造LoG金字塔有5层,每层有S+2=5张图像,每层金字塔内每张图像尺度是前一张的k倍,即构成的连续尺度序列:
其中o为当前金字塔层数,n为在当前金字塔层中图像张数。
由于卷积计算性质:
在计算时,通过对前一张图像做尺度系数为的卷积操作,可以减少卷积计算次数。故在金字塔每层内的S+2张图像,需要S+1次卷积操作,每次LoG核的尺度系数为:
DoG
即,
因此,LoG算子可以用高斯差分算子DoG(Difference of Guassians)表示。
于是通过高斯金字塔每层内相邻两张图像相减可以得到DoG金字塔。对于最后需要S张图像寻找极值点,需要S+2张DoG图像,S+3张高斯图像。具体关系如图2.所示。
图 2. 由高斯金字塔得到DoG金字塔及其对应的尺度空间系数示意图。
LoG & DoG
一个直观的比较结果,使用分别计算LoG和DoG,得到:
可以看到,LoG比DoG明显需要更多的加法运算和乘法运算。虽然DoG需要在每层金字塔多做一次高斯操作(即为了得到S+2张DoG图需要S+3张高斯模糊图),但通过减法取代LoG核的计算过程,显著减少了运算次数,大大节省了运算时间。
本文转自:http://blog.csdn.net/xiaowei_cqu/article/details/27692123