skimage.registration#

影像配準演算法,例如,光流或相位互相關。

optical_flow_ilk

粗到細光流估計器。

optical_flow_tvl1

粗到細光流估計器。

phase_cross_correlation

透過互相關進行有效率的次像素影像平移配準。


skimage.registration.optical_flow_ilk(reference_image, moving_image, *, radius=7, num_warp=10, gaussian=False, prefilter=False, dtype=<class 'numpy.float32'>)[原始碼]#

粗到細光流估計器。

迭代 Lucas-Kanade (iLK) 解算器應用於影像金字塔的每個層級。iLK [1] 是一種快速且穩健的 TVL1 演算法替代方案,雖然在呈現平坦表面和物件邊界時準確度較低(請參閱 [2])。

參數:
reference_imagendarray,形狀 (M, N[, P[, …]])

序列的第一張灰階影像。

moving_imagendarray,形狀 (M, N[, P[, …]])

序列的第二張灰階影像。

radiusint,選用

考量每個像素周圍的視窗半徑。

num_warpint,選用

移動影像扭曲的次數。

gaussianbool,選用

若為 True,則使用高斯核心進行局部整合。否則,使用均勻核心。

prefilterbool,選用

是否在每次影像扭曲前預先篩選估計的光流。若為 True,則會沿著每個軸應用視窗大小為 3 的中值濾波器。這有助於移除潛在的離群值。

dtypedtype,選用

輸出資料類型:必須是浮點數。與雙精度相比,單精度可提供良好的結果並節省記憶體使用量和計算時間。

傳回值:
flowndarray,形狀 (reference_image.ndim, M, N[, P[, …]])

每個軸的估計光流分量。

註解

  • 實作的演算法在 [1]表 2 中描述。

  • 不支援彩色影像。

參考文獻

[1] (1,2)

Le Besnerais, G., & Champagnat, F. (2005, September). Dense optical flow by iterative local window registration. In IEEE International Conference on Image Processing 2005 (Vol. 1, pp. I-137). IEEE. DOI:10.1109/ICIP.2005.1529706

[2]

Plyer, A., Le Besnerais, G., & Champagnat, F. (2016). Massively parallel Lucas Kanade optical flow for real-time video processing applications. Journal of Real-Time Image Processing, 11(4), 713-730. DOI:10.1007/s11554-014-0423-0

範例

>>> from skimage.color import rgb2gray
>>> from skimage.data import stereo_motorcycle
>>> from skimage.registration import optical_flow_ilk
>>> reference_image, moving_image, disp = stereo_motorcycle()
>>> # --- Convert the images to gray level: color is not supported.
>>> reference_image = rgb2gray(reference_image)
>>> moving_image = rgb2gray(moving_image)
>>> flow = optical_flow_ilk(moving_image, reference_image)

使用光流進行配準

使用光流進行配準

skimage.registration.optical_flow_tvl1(reference_image, moving_image, *, attachment=15, tightness=0.3, num_warp=5, num_iter=10, tol=0.0001, prefilter=False, dtype=<class 'numpy.float32'>)[原始碼]#

粗到細光流估計器。

TV-L1 解算器應用於影像金字塔的每個層級。TV-L1 是由 Zack 等人 [1] 引入的熱門光流估計演算法,在 [2] 中進行了改進,並在 [3] 中詳細說明。

參數:
reference_imagendarray,形狀 (M, N[, P[, …]])

序列的第一張灰階影像。

moving_imagendarray,形狀 (M, N[, P[, …]])

序列的第二張灰階影像。

attachmentfloat,選用

附件參數(\(\lambda\)[1] 中)。此參數越小,傳回的結果就會越平滑。

tightnessfloat,選用

緊密度參數(\(\theta\)[1] 中)。它應該具有較小的值,以維持對應的附件和規則化部分。

num_warpint,選用

移動影像扭曲的次數。

num_iterint,選用

固定點迭代的次數。

tolfloat,選用

根據 (u, v) 的兩個連續值之間的 L² 距離用作停止條件的容差。

prefilterbool,選用

是否在每次影像扭曲前預先篩選估計的光流。若為 True,則會沿著每個軸應用視窗大小為 3 的中值濾波器。這有助於移除潛在的離群值。

dtypedtype,選用

輸出資料類型:必須是浮點數。與雙精度相比,單精度可提供良好的結果並節省記憶體使用量和計算時間。

傳回值:
flowndarray,形狀 (image0.ndim, M, N[, P[, …]])

每個軸的估計光流分量。

註解

不支援彩色影像。

參考文獻

[1] (1,2,3)

Zach, C., Pock, T., & Bischof, H. (2007, September). A duality based approach for realtime TV-L 1 optical flow. In Joint pattern recognition symposium (pp. 214-223). Springer, Berlin, Heidelberg. DOI:10.1007/978-3-540-74936-3_22

[2]

Wedel, A., Pock, T., Zach, C., Bischof, H., & Cremers, D. (2009). An improved algorithm for TV-L 1 optical flow. In Statistical and geometrical approaches to visual motion analysis (pp. 23-45). Springer, Berlin, Heidelberg. DOI:10.1007/978-3-642-03061-1_2

[3]

Pérez, J. S., Meinhardt-Llopis, E., & Facciolo, G. (2013). TV-L1 optical flow estimation. Image Processing On Line, 2013, 137-150. DOI:10.5201/ipol.2013.26

範例

>>> from skimage.color import rgb2gray
>>> from skimage.data import stereo_motorcycle
>>> from skimage.registration import optical_flow_tvl1
>>> image0, image1, disp = stereo_motorcycle()
>>> # --- Convert the images to gray level: color is not supported.
>>> image0 = rgb2gray(image0)
>>> image1 = rgb2gray(image1)
>>> flow = optical_flow_tvl1(image1, image0)

使用光流進行配準

使用光流進行配準

skimage.registration.phase_cross_correlation(reference_image, moving_image, *, upsample_factor=1, space='real', disambiguate=False, reference_mask=None, moving_mask=None, overlap_ratio=0.3, normalization='phase')[原始碼]#

透過互相關進行有效率的次像素影像平移配準。

此程式碼在計算時間的一小部分內,以減少的記憶體需求提供與 FFT 上採樣互相關相同的精確度。它透過 FFT 獲得互相關峰值的初始估計,然後僅透過矩陣相乘 DFT [1] 在該估計值的小鄰域內對 DFT 進行上採樣來精煉移位估計。

參數:
reference_image陣列

參考影像。

moving_image陣列

要配準的影像。必須與 reference_image 具有相同的維度。

upsample_factorint,選用

上採樣因子。影像將在像素的 1 / upsample_factor 內進行配準。例如,upsample_factor == 20 表示影像將在 1/20 個像素內進行配準。預設值為 1(無上採樣)。如果 reference_maskmoving_mask 的任何一個不是 None,則不使用此參數。

space字串,可以是「real」或「fourier」,選用

定義演算法如何解釋輸入資料。「real」表示資料將進行 FFT 以計算相關性,而「fourier」資料將繞過輸入資料的 FFT。不區分大小寫。如果 reference_maskmoving_mask 的任何一個不是 None,則不使用此參數。

disambiguatebool

由於傅立葉轉換的週期性本質,此函式傳回的移位僅精確到影像形狀的模數。如果將此參數設定為 True,則會針對每個可能的移位計算空間互相關,並傳回重疊區域內具有最高互相關的移位。

reference_maskndarray

reference_image 的布林遮罩。遮罩應在有效像素上評估為 True(或 1)。reference_mask 的形狀應與 reference_image 相同。

moving_maskndarray 或 None,選用

用於 moving_image 的布林遮罩。遮罩在有效像素上應評估為 True (或 1)。moving_mask 的形狀應與 moving_image 相同。如果為 None,將使用 reference_mask

overlap_ratiofloat,選填

圖像之間允許的最小重疊比例。對於重疊比例低於此閾值的平移,其相關性將被忽略。較低的 overlap_ratio 會導致較小的最大平移,而較高的 overlap_ratio 則可提高對遮罩圖像之間小重疊造成的偽匹配的穩健性。僅當 reference_maskmoving_mask 其中之一不為 None 時使用。

normalization{“phase”, None}

要應用於互相關的正規化類型。當提供遮罩(reference_maskmoving_mask)時,此參數未使用。

傳回值:
shiftndarray

moving_imagereference_image 對齊所需的平移向量(以像素為單位)。軸的順序與輸入陣列的軸順序一致。

errorfloat

reference_imagemoving_image 之間與平移無關的正規化均方根誤差。對於遮罩互相關,此誤差不可用,並返回 NaN。

phasedifffloat

兩個圖像之間的整體相位差(如果圖像是非負數,則應為零)。對於遮罩互相關,此相位差不可用,並返回 NaN。

註解

使用互相關來估計圖像平移的歷史悠久,至少可以追溯到 [2]。「相位相關」方法(由 normalization="phase" 選取)最早在 [3] 中提出。[1][2] 等出版物使用未正規化的互相關(normalization=None)。哪種形式的正規化更好取決於應用。例如,相位相關方法在不同光照下註冊圖像時效果良好,但對於雜訊的穩健性不高。在高雜訊情境下,未正規化方法可能更佳。

當提供遮罩時,將使用遮罩正規化互相關演算法 [5][6]

參考文獻

[1] (1,2)

Manuel Guizar-Sicairos, Samuel T. Thurman 和 James R. Fienup,“高效次像素圖像註冊演算法”,Optics Letters 33, 156-158 (2008)。DOI:10.1364/OL.33.000156

[2] (1,2)

P. Anuta,使用快速傅立葉轉換技術進行多光譜和多時態數位影像的空間註冊,IEEE Trans. Geosci. Electron., vol. 8, no. 4, pp. 353–368, Oct. 1970。 DOI:10.1109/TGE.1970.271435

[3]

C. D. Kuglin D. C. Hines。相位相關圖像對齊方法,IEEE 國際控制與社會會議論文集,pp. 163-165, New York, NY, USA, 1975, pp. 163–165。

[4]

James R. Fienup,“用於影像重建的不變誤差度量”,Optics Letters 36, 8352-8357 (1997)。DOI:10.1364/AO.36.008352

[5]

Dirk Padfield。傅立葉域中的遮罩物件註冊。IEEE Transactions on Image Processing, vol. 21(5), pp. 2706-2718 (2012)。DOI:10.1109/TIP.2011.2181402

[6]

D. Padfield。“遮罩 FFT 註冊”。在電腦視覺與模式辨識會議論文集中,pp. 2918-2925 (2010)。DOI:10.1109/CVPR.2010.5540032

圖像註冊

圖像註冊

遮罩正規化互相關

遮罩正規化互相關

使用極座標和對數極座標變換進行註冊

使用極座標和對數極座標變換進行註冊