skimage.registration
#
影像配準演算法,例如,光流或相位互相關。
粗到細光流估計器。 |
|
粗到細光流估計器。 |
|
透過互相關進行有效率的次像素影像平移配準。 |
- 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_mask
或moving_mask
的任何一個不是 None,則不使用此參數。- space字串,可以是「real」或「fourier」,選用
定義演算法如何解釋輸入資料。「real」表示資料將進行 FFT 以計算相關性,而「fourier」資料將繞過輸入資料的 FFT。不區分大小寫。如果
reference_mask
或moving_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_mask
或moving_mask
其中之一不為 None 時使用。- normalization{“phase”, None}
要應用於互相關的正規化類型。當提供遮罩(
reference_mask
和moving_mask
)時,此參數未使用。
- 傳回值:
- shiftndarray
將
moving_image
與reference_image
對齊所需的平移向量(以像素為單位)。軸的順序與輸入陣列的軸順序一致。- errorfloat
reference_image
與moving_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