【論文紀錄】EfficientDeRain高速去雨算法

想要解決的問題

many real-time applications that are efficiency sensitive and critical, (e.g., vision-based autonomous driving or navigation), being able to perform deraining efficiently on-chip is of great importance.

近年來的輔助駕駛系統越來越盛行,在各種品牌的車幾乎都成了基本配備,而輔助駕駛的判斷經常受到天氣的影響,尤其時在雨天的時候影響最為劇烈。EfficientDeRain這篇論文主要提出一個有效率把一張下雨的圖去除的算法。

方法

論文提出的主要核心有以下兩點:

  1. Kernel Prediction network
  2. predict multi-scale kernels

依照過往的方式在除雨的算法中大部分是透過比較大的模型end-to-end的方式去雨,但這種方式往往會花比較多的時間,因此這篇作者提出了用無模型的方式並以像素級別的過濾來處理。

EfficientDeRain算法流程

上面這張圖其實滿好理解整體的流程,首先對原圖用moving window的方式滑過整張圖的過程中用簡單的DNN方式去預測每個窗格的filter kernel,也因為雨滴有大有小,如果只用一個尺寸的kernel的話就會對整體的適應性不佳,譬如3×3的kernel可能就沒辦法有效處理範圍有9×9的雨滴大小,因此預測出的kernel有四種不同尺度的大小,這些kernel對原圖做卷積之後最後再經由另一個3×3的kernel作合成,得到預測出的去雨圖。

Data Augmentation: RainMix

論文中提到了以往大部分的算法所跑出來的數據大多都是對於合成出來的雨圖有很好的效果,但對於真實的雨圖常常就無法有效去雨,也就是說無法套用在現實生活的場景中。

這篇論文解決這個的方式是用在2006年Garg以及Nayar所製作的雨的資料集,這個資料集裡面的雨是利用類似在黑暗中打光的方式所拍出來真實的雨,再經由一些常見的資料擴增如旋轉、縮放或移動等方式配上權重的調整去產生出更多雨圖。

訓練方式

Loss Function

Loss Function很好理解,簡單的L1 loss以及SSIM項,這裡論文給出的λ=0.2。

方法好壞評估標準

好壞評估的度量標準有兩種:

  1. PSNR
  2. SSIM

以上兩者的值都是越大表示方法越好。

PSNR (Peak Signal-to-Noise Ratio)峰值訊噪比

PSNR是在影像壓縮中常見的評估標準,以亮度的方式評估兩張圖片是否相似,以MSE的方式by pixel去計算兩張圖的差再取Log,MAX是像素的最大值,以大部分情形來說就是255,計算出來的PSNR單位是dB。

下面從維基百科抓了幾張變化不同程度的圖,可以感受一下在不同dB的失真程度。

圖片來源:維基百科
圖片來源:維基百科

SSIM (Structural SIMilarity) 結構相似性

以PSNR評估的話有一個很大的缺點是其對於亮度非常敏感,只要有一點亮度的變化對於PSNR來說變化就會相當大,而SSIM考慮地更加全面一些,除了單純只比較亮度之外還多了亮度的變化(對比)與亮度的分布(結構),公式如下:

這裡稍微解釋一下最後一項亮度的分布(結構),當兩張圖的分布相同時Cov(x,y)為零,σxy就會與σxσy相等,此時結構s這項就會是最大的1。

結果

論文作了滿多的實驗,但這邊簡單紀錄一下,相比於原本的SOTA,也就是CVPR2020的RCDNet,這篇論文的方法有差不多的效果,然而在速度上有80倍的提升,他們使用的GPU是NVIDIA Quadro P6000,去除一張雨的圖片可以在10ms之內達成,可以說是遠超Realtime運算的時間內。

另外也有使用真實的雨圖來比較與RCDNet以及使用RainMix Augmentation的前後差異,可以看到有明顯的差別。

結論

最後整理一下整篇論文比較重要的幾點

  • 透過訓練不同尺度的Kernel來對雨圖作Pixel-wise的過濾以達到去雨的效果。
  • 使用真實的雨圖並用常見的Augmentation手法搭配不同權重的調配去生成不同雨圖作為訓練的資料。
  • 相比於SOTA RCDNet有差不多的效果卻有80倍的速度優化。

作者與論文資料

作者:Q. Guo, J. Sun, F. Juefei-Xu, L. Ma, X. Xie, W. Feng, Y. Liu
論文網址:https://arxiv.org/abs/2009.09238
Source Code:https://github.com/tsingqguo/efficientderain

參考資料

  1. 維基百科
  2. CSDN
  3. 陳阿白
  4. 知乎
下面的按鈕可以直接分享🐹

歡迎留言分享你/妳的看法唷😀