1. 程式人生 > >Single Image Reflection Removal

Single Image Reflection Removal

以下分析來源:Seeing Deeply and Bidirectionally: A Deep Learning Approach for Single Image Reflection Removal

這篇文章說它提出了級聯深度神經網路(cascade deep netural network),儘管每個深度學習都是這種網路。來估計背景圖片和反射圖片。

首先是構造有反射的圖片,對反射圖片用高斯噪聲核進行卷積,已達到模糊反射圖片的效果。然後與背景圖片進行融合。得到反射圖片I

級聯深度神經網路,不是直接訓練網路,直接從有反射的圖片中提取出背景圖片。作者發現估計圖片B和R可以顯著提升去反射的質量。

該網路首先通過vanilla generayor 產生一個粗略的背景圖片,然後通過H網路,產生反射圖片的估計值,然後利用反射圖片和原圖作為輸入,經過g1生成真正的背景圖片。

這麼搭網路的理由是什麼呢?即使用以上雙向評估網路的理由。作者覺得去反射依賴於反射圖片和背景圖片的共同作用。如果能夠提供一個好的反射圖片估計,那麼背景圖片的估計也會變得更加容易.

g0,h,g1三個網路均使用u-net的變體來實現,詳見圖3。其中g1有14層,h和g1有10層。包含一個編碼部分和一個解碼部分。

編碼部分:所有的卷積層除了第一個外都進行了BN處理,然後經過leaky-relu啟用函式,斜率用0.2。

解碼部分:使用步長為2的反捲積。輸出最後在經過一個tanh啟用函式。

網路中,所有感受野的大小都是4*4。然後第i層網路輸出tensor去和第n-i層網路的輸出tensor進行級聯。這種跳步級聯能夠整合不同層的資訊,低階的資訊可以在輸入和輸出同時被使用。跳步連線的使用讓解碼網路的輸入通道加倍。

對於h和g1網路的輸入,我們則把兩張圖整合到一起,變成6通道的資訊圖

關於網路的訓練函式,第一個就是mse最小,第二個有點意思,用了對抗生成神經網路的判別器來對輸出進行訓練。這個挺創新的。

作者對於訓練方法也進行了探討,最後發現三個網路放在一起訓練,最後得到的效果最佳