MeshFlow Video Denoising
代碼地址:https://github.com/AlbusPeter/MeshFlow_Video_Denoising_OpenCV310
論文地址:http://www.liushuaicheng.org/ICIP/2017/Ren.pdf
Abstract
我們提出了一種有效的視頻去噪方法,利用最近提出的用於攝像機運動補償的meshflow運動模型生成干凈的視頻。meshflow是一個空間光滑的稀疏運動場,運動矢量位於網格頂點。該模型具有輕量級、非參數化、空間變形體等內在特征,能夠有效地實現多幀圖像的去噪。具體來說,meshflow是在相鄰幀之間進行估計的,這些幀用於在一個滑動時間窗口內對齊幀。一個去噪的幀是由幾幀在空間和時間的方式與離群拒絕融合產生的。各種具有挑戰性的例子證明了該方法的有效性和實用性。
1. Introduction
在弱光環境下拍攝的視頻,強噪聲常常會影響嚴重降低視頻質量的。圖像/視頻去噪方法[1,2,3,4,5]旨在去除或抑制噪聲,提高視頻質量。一些方法探索小波域內多分辨率表示法的稀疏性[6,7]或利用非局部測量進行恢復[8,9]。一般情況下,多幅圖像去噪優於單幅圖像去噪,因為提供了更多的觀測值。視頻幀通常包含互補信息,可以融合這些信息進行強去噪[10,11]。在這項工作中,我們的目標是用手持攝像機拍攝的視頻去噪。請參考項目頁面的視頻和結果。
通常,在實際的視頻去噪方面有兩個挑戰,即攝像機運動補償和瞬時像素融合過程中離群點的處理。前者是指相鄰視頻幀之間的圖像配准。由於相機在捕捉過程中不是靜止的,精確的運動估計可以提高各種應用程序的性能,如HDR[12]、視頻去模糊[13]和視頻穩定[14]。后者可以抑制由未對齊引起的偽影(如重影),這可能是由各種原因引起的,包括動態對象、遮擋和對運動模型的描述不足(如單一單應性)。
Liu等人提出了一種多幀去噪方法,該方法將多個手機突發模型捕獲的圖像合並到一個干凈的去噪圖像[15]中。提出了一種用於圖像序列比對的參數金字塔同倫流運動模型。采用基於多尺度的時空融合和一致像素驗證相結合的方法,對去噪結果進行了綜合。最近,Liu等人提出了一種用於視頻穩定[16]的meshflow運動模型。meshflow是一種非參數運動模型,它由分布在網格頂點上的稀疏運動矢量組成。
受這兩篇文章的啟發,我們提出使用meshflow運動模型進行視頻去噪。與多尺度同類流相比,網格流的估計不需要層次結構和逐層優化,效率更高,更方便,即使不是更優的結果,也具有可比性。在meshflow的基礎上,我們利用像素輪廓的概念[17,18],而不是采用真實的運動軌跡,來進行有效的運動積累和一致的像素識別。通過結合多種新穎的方法,我們提出了一種視頻去噪框架,與目前最先進的技術相比,該框架不僅可以高效地運行,而且可以產生高質量的結果方法: BM3D[5]、VBM3D[19]、BM4D[20]、VBM4D[21]、Burst[15]。
2. MeshFlow Denoising
圖1顯示了我們的思路。對於給定的輸入噪聲視頻,我們估計相鄰幀之間的meshflow (Sec. 2.1)。為了對一幀去噪,我們沿着視頻移動一個時間窗口,半徑為5幀。根據meshflow估計的運動,窗口內的幀向中心幀翹曲(第2.2節)。在本地窗口中,所有的幀都與中心幀對齊,我們將它們融合以消除中心幀的噪聲。融合包括離群點的識別。在圖1(c)中,綠色和紅色圓點表示離群點和離群點像素。關於細節一致性檢查和融合過程將在第2.3節中討論。窗口每次向前移動一幀,視頻逐幀去噪。
2.1 MeshFlow Motion Model
meshflow是一個稀疏運動場。它通常用於估計相鄰幀之間的運動,這最初是在[16]中提出的。為了完整起見,我們將在本節中介紹meshflow。
豐富的功能。我們檢測快速的圖像特征[22],並通過KLT[23]對其進行相鄰幀的跟蹤。meshflow估計更傾向於均勻而密集的特征覆蓋。因此,針對不同的圖像區域,檢測閾值是局部自動調整的。有關豐富的功能修剪的更多細節可以在[24]中找到。
運動傳播。每個匹配的特征對產生如圖2(a)所示的運動向量。在我們的實現中,我們計算當前幀與前一幀之間的運動。在當前幀上放置一個規則的網格,將特征點的運動復制到附近的網格頂點,如圖2(b)所示。值得注意的是,有些頂點可能接收來自不同特征點的多個運動矢量。
中位數過濾器。每個網格頂點應該只有一個唯一的運動向量,它是由一個中值濾波器從每個頂點的候選運動中挑選出來的。在空間上應用另一個中值濾波來剔除由不匹配的特征和動態對象引起的運動異常值。為此,我們得到了一個平滑變化的稀疏運動場。更多的討論可以在[16]中找到。
符號。當我們反向計算運動時,坐標系 \(t\) 處的meshflow表示為 \(F_t\),運動從坐標系 \(t\) 指向坐標系 \(t−1\)。第一幀的meshflow設置為0。
2.2 Motions Accumulation
圖3顯示了一個運動跟蹤和運動積累的示例。為了去除幀t(圖3的紅色邊框),我們需要將相鄰的幀(圖3的藍色邊框)向中心幀 \(t\) 彎曲。例如,我們想要將幀 \(t−2\) 彎曲到幀 \(t\)。一個解決方案是直接估計它們之間的meshflow。但由於引入了額外的特征檢測和跟蹤,因此效率不高。我們的解決方案是使用之前估計的相鄰meshflow \(F_t\)來近似非相鄰跳轉。
有兩種選擇。直觀地,我們應該跟蹤運動路徑,形成一個運動軌跡(圖3紅色方塊)。然而,也有一些問題,如軌道可以移出框架。此外,我們需要檢查軌道的值來決定后續的位置,這是低效的。我們的解決方案是采用像素配置策略[17]。像素輪廓沿時間在一個固定的空間位置收集運動矢量(圖3綠色方塊)。從[17]中可以看出,像素輪廓處的運動是對應運動軌跡的很好的近似。配置文件可以帶來一些優勢,比如完全覆蓋(沒有邊界問題)和並行計算(每個像素位置都是獨立計算的)。因此,對於非相鄰幀,我們采用輪廓來累積相鄰幀的運動:
其中 \(s\) 和 \(t\) 為幀索引,\(P^t_s\)為指向 \(s\) 到 \(t\) 的網格流,其中對稀疏運動場進行累加。我們根據該網格流由一個基於網格的圖像翹曲。為此,本地窗口內的所有幀都被扭曲到中心幀。
2.3 Fusing
在所有幀與目標幀對齊的情況下,我們對同一空間位置的像素進行平均去噪。有些像素不能平均,如果他們對應的未對齊,閉塞或動態對象。這些不一致像素的融合會導致嚴重的“重影”效果。對於每個像素位置,我們將目標幀的像素強度與相關候選像素進行比較。像素強度差異小於一個經驗閾值 \(\tau= 20\) (強度范圍為0∼255)被視為一致的像素。在[15]中還探索了其他的策略。在這里,我們保持我們的方法簡單而有效。
3. Experiments
通過幾個方面的實驗,驗證了設計的有效性。
像素的一致性。圖4顯示了去噪結果與有一致性驗證和無一致性驗證的對比。請注意移動的人用紅色箭頭高亮顯示的重影效果。
運動積累。圖5顯示了第2.2節中討論的直接運動計算和運動累積的比較。這兩種方法都能產生相似的結果。然而,直接計算需要額外的特征檢測和非相鄰幀之間的跟蹤。
平移和行走我們在各種相機運動類型測試我們的性能。在平移和行走過程中拍攝的視頻比那些沒有大鏡頭移動的視頻更具挑戰性。因為由於場景的變化,在局部窗口中可以注冊的幀數更少。實驗結果表明,該方法能夠較好地處理相機運動。
4. Results
我們在Intel i7 4.0GHz CPU和16G RAM上運行我們的方法。我們的未優化c++實現平均可以處理260ms分辨率為1920×1080的幀。具體來說,我們的方法分別需要27ms、21ms、38ms、25ms和149ms來跟蹤特征、估計網格流、累積運動、檢查一致性和融合像素。該方法還可以通過GPU進一步加速,特別是對於具有高度並行性的融合。
我們將我們的方法與BM3D[5]、VBM3D[19]、BM4D[20]、VBM4D[21]和Burst[15]方法進行了比較。所有這些方法都很慢。他們通常需要超過一分鍾的時間來處理一個幀,除了突發的去噪[15],它報告的速度為480ms處理一個幀在類似的圖像分辨率。圖6給出了一些結果。在比較的例子中仍然可以觀察到殘余噪聲。請注意第一個例子中電線的缺失。比較例子的時間問題可以在伴隨視頻中查看。
我們從突發去噪[15]的項目頁面中收集了一些數據進行比較。圖7給出了兩個例子。突發式去噪方法以圖像去噪為目標,其中10幅噪聲圖像作為系統的輸入,1幅干凈圖像作為系統的輸出。我們使用與[15]相同的輸入生成結果。我們的方法可以產生類似的結果。值得注意的是,[15]的像素一致性策略傾向於拒絕移動的對象,這在輸出為單一圖像時可能是合理的。然而,我們的視頻去噪必須保持如圖7所示的動態對象。
5. Conclusion
提出了一種利用網格流運動模型進行視頻去噪的方法。通過運動累積和像素一致性驗證,我們的方法可以在非常快的速度下獲得較強的去噪效果。我們的方法對不同類型的攝像機運動和場景類型具有魯棒性。各種具有挑戰性的案例證明了該方法的有效性。
References
[1] P. Chatterjee, N. Joshi, S. Kang, and Y. Matsushita, “Noise suppression in low-light images through joint denoising and demosaicing,” in Proc. CVPR, 2011, pp. 321–328.
[2] J. Chen, C. Tang, and J. Wang, “Noise brush: interactive high quality image-noise separation,” ACM Trans. Graph., vol. 28, no. 5, pp. 146, 2009.
[3] K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian, “Color image denoising via sparse 3d collaborative filtering with grouping constraint in luminancechrominance space,” in Proc. ICIP, 2007, vol. 1, pp. I–313.
[4] X. Chen, B. Sing, J. Yang, and J. Yu, “Fast patch-based denoising using approximated patch geodesic paths,” in Proc. CVPR, 2013, pp. 1211–1218.
[5] K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian, “Image denoising by sparse 3-d transform-domain collaborative filtering,” IEEE Trans. on Image Processing, vol. 16, no. 8, pp. 2080–2095, 2007.
[6] E. Balster, Y. Zheng, and R. Ewing, “Combined spatial and temporal domain wavelet shrinkage algorithm for video denoising,” IEEE Trans. on Circuits and Syst. for Video Tech., vol. 16, no. 2, pp. 220–230, 2006.
[7] V. Zlokolica, A. Pizurica, and W. Philips, “Waveletdomain video denoising based on reliability measures,” IEEE Trans. on Circuits and Syst. for Video Tech., vol. 16, no. 8, pp. 993–1007, 2006.
[8] A. Buades, B. Coll, and J. Morel, “A non-local algorithm for image denoising,” in Proc. CVPR, 2005, vol. 2,
pp. 60–65.
[9] A. Buades, B. Coll, and J. Morel, “A review of image denoising algorithms, with a new one,” Multiscale Modeling & Simulation, vol. 4, no. 2, pp. 490–530, 2005.
[10] J. Chen and C. Tang, “Spatio-temporal markov random field for video denoising,” in Proc. CVPR, 2007, pp. 1–8.
[11] N. Kalantari, E. Shechtman, C. Barnes, S. Darabi, D. B Goldman, and P. Sen, “Patch-based high dynamic range video,” ACM Trans. Graph., vol. 32, no. 6, pp. 202, 2013.
[12] M. Granados, K. Kim, J. Tompkin, and C. Theobalt, “Automatic noise modeling for ghost-free hdr reconstruction,” ACM Trans. Graph., vol. 32, no. 6, pp. 201, 2013.
[13] F. Tan, S. Liu, L. Zeng, and B. Zeng, “Kernel-free video deblurring via synthesis,” in Proc. ICIP, 2016, pp. 2683–2687.
[14] S. Liu, L. Yuan, P. Tan, and J. Sun, “Bundled camera paths for video stabilization,” ACM Trans. Graph., vol. 32, no. 4, pp. 78, 2013.
[15] Z. Liu, L. Yuan, X. Tang, M. Uyttendaele, and J. Sun, “Fast burst images denoising,” ACM Trans. Graph., vol. 33, no. 6, pp. 232, 2014.
[16] S. Liu, P. Tan, L. Yuan, J. Sun, and B. Zeng, “Meshflow: Minimum latency online video stabilization,” in Proc. ECCV, 2016, pp. 800–815.
[17] S. Liu, L. Yuan, P. Tan, and J. Sun, “Steadyflow: Spatially smooth optical flow for video stabilization,” in Proc. CVPR, 2014, pp. 4209–4216.
[18] S. Liu, M. Li, S. Zhu, and B. Zeng, “Codingflow: Enable video coding for video stabilization,” IEEE Trans. on Image Processing, vol. 26, no. 7, pp. 3291–3302, 2017.
[19] K. Dabov, A. Foi, and K. Egiazarian, “Video denoising by sparse 3d transform-domain collaborative filtering,” in In Proc. European Signal Process. Conf. EUSIPCO, 2007.
[20] M. Maggioni, V. Katkovnik, K. Egiazarian, and A. Foi, “Nonlocal transform-domain filter for volumetric data denoising and reconstruction,” IEEE Trans. on Image Processing, vol. 22, no. 1, pp. 119–133, 2013.
[21] M. Maggioni, G. Boracchi, A. Foi, and K. Egiazarian, “Video denoising, deblocking, and enhancement through separable 4-d nonlocal spatiotemporal transforms,” IEEE Trans. on Image Processing, vol. 21, no.
9, pp. 3952–3966, 2012.
[22] M. Trajkovic and M. Hedley, “Fast corner detection,” ´ Image and vision computing, vol. 16, no. 2, pp. 75–87, 1998.
[23] J. Shi and C. Tomasi, “Good features to track,” in Proc. CVPR, 1994, pp. 593–600.
[24] H. Guo, S. Liu, T. He, S. Zhu, B. Zeng, and M. Gabbouj, “Joint video stitching and stabilization from moving cameras,” IEEE Trans. on Image Processing, vol. 25, no. 11, pp. 5491–5503, 2016.