關於Sift演算法中尺度空間的通俗理解
Sift演算法,我略知一二,無法仔細描述(剛也貼了2個最近的資料)。
當就尺度空間(scale space),我想,其在計算機視覺(Computer Vision)\影象的多解析度分析(尤其近年來小波的多解析度分析)是常見的概念。
人 類視覺捕捉景物的時候,先粗略(rough),後細節(fine)的習慣,被研究影象視覺的採用。2點取樣使用的情況,則整體影象被不斷的1/2邊長劃 分,不同的影象(矩陣)構成了不同解析度的尺度空間(我們理解為不同層面的矩陣),尺度,Scale,這裡就代表不同的空間比例。
我注意到David Lowe關於Sfit演算法,2004年發表在Int. Journal of Computer Vision的經典論文中,對尺度空間(scal space)是這樣定義的 :
It has been shown by Koenderink (1984) and Lindeberg (1994) that under a variety of
reasonable assumptions the only possible scale-space kernel is the Gaussian function. Therefore,
the scale space of an image is defined as a function, L(x; y; delta) that is produced from the convolution of a variable-scale Gaussian, G(x; y; delta), with an input image, I(x; y):
因此 ,一個影象的尺度空間,L(x,y,delta) ,定義為原始影象I (x,y)與一個可變尺度的2維高斯函式G(x,y,delta) 卷積運算。
關於圖象處理中的空間域卷積運算,可以參考經典的影象處理教材(比如 美國 岡薩雷斯的圖象處理,第二版,或者其 Matlab版,都有如何在離散空間進行運算的例子和說明)
注:原文中 delta為希臘字母,這裡無法表示,用delta代替。
Sift演算法中,提到了尺度空間,請問什麼是尺度和尺度空間呢?
在上述理解的基礎上,尺度 就是受delta這個引數控制的表示 。
而不同的L(x,y,delta)就構成了尺度空間( Space ,我理解,由於描述影象的時候,一般用連續函式比較好描述公式,所以,採用空間集合 ,空間的概念正規一些) ,實際上,具體計算的時候,即使連續的高斯函式,都要被離散為(一般為奇數大小)(2*k+1) *(2*k+1)矩陣,來和數字影象進行卷積運算。