实践:基于深度学习的卫星图像超分辨率处理技术(一)
本文由北郵@愛可可-愛生活 老師推薦,阿里云云棲社區組織翻譯。
以下為譯文:
Yann Lecun曾將無監督學習比作蛋糕,將監督學習比作蛋糕上的糖霜,聲稱我們僅懂得如何做糖霜卻不知道怎樣才能做出蛋糕。在本篇文章中,我們提供了一份訓練無監督學習算法的“蛋糕”配方,用來增強衛星圖像。
本研究起源于新興商業航天行業中日益增多的低成本衛星圖像。在這個新興的行業中,傳感質量、回訪速率以及成本間存在著一種權衡。我們研究了高級圖像處理的特性,以減少這種權衡,并在相同成本情況下改善低質量傳感器返回的圖像。
圖1:使用飛機、商業衛星與空間站進行遠程遙感。本圖意在表示不同遠程遙感活動間潛在的交叉,并不代表實際的交叉程度。航空遙感可用于增強精密商業衛星圖像。而精密商業衛星圖像又可用于增強低分辨率的衛星圖像。
我們在深度神經網絡(DNN)中嵌入高分辨率圖像的圖像細節,并在增強地理相似圖像時抽取這些細節。作為本研究的一部分,我們引入了適合圖像增強任務的擾動層,為深度神經網絡開發了一種新型架構。
超分辨率技術
圖像增強的方式有很多,如降噪和色彩調整。對于衛星圖像而言,地面采樣距離(GSD)是一種常見的衡量圖像質量的方法,其表示圖像中單個像素表示的實際物理距離。本文提到的圖像增強是指降低(優化)衛星圖像中的地面采用距離,即超分辨率技術。超分辨率技術通過合成圖像中的子像素信息,提高圖像分辨率。常見的合成方法包括:
- 圖像中相鄰像素間插值
- 影像中相鄰幀間插值
- 頻域濾波,降低噪聲
在本研究中,我們對上述方法進行了擴展,在處理地理相關圖像時應用深度學習技術。
圖2:超分辨率技術。為了將超分辨率技術從不適定優化問題轉換為適定逆問題,我們必須從高分辨率圖像出發,降低圖像質量,然后優化超分辨率技術,從降質圖像中復原出原始圖像。我們使用峰值信噪比評估原始圖像與復原圖像間的差異。
為量化增強方法的效果,我們比較了圖像增強前后的峰值信噪比(PSNR)。此外,針對后續的分析,我們還展示了圖像中峰值信噪比的地域分布以及相關性。
PSNR是衡量超分辨率算法生成能力的必然選擇。我們未來將發表一篇文章,使用生成對抗網絡為超分辨率技術學習一種更好的代價函數。
含擾動層的完全卷積神經網絡
在直接展示結果前,我們先討論下為執行超分辨率處理流程而開發的框架。標準的深度神經網絡,如AlexNet、 ResNet、 VGG與GoogLeNet,都是對低分辨率圖像進行圖像分類與目標檢測的框架,在輸出空間達到指數級大小的超分辨率圖像場景下并不適用。
考慮到超分辨率技術本質上是低分辨率圖像的一種擾動,我們受到ResNet的啟發,決定設計一種新的、由恒等映射擾動序列構成的深度神經網絡。這種網絡通過優化前一層與當前層的凸組合來擴展自身結構,每次僅擴展一層,并產生可訓練參數(旁路參數),衡量新層次對最終輸出的貢獻。
圖3:本文提出的凸擾動層與ResNet層的比較。兩種架構均包含卷積層與恒等函數的組合。凸擾動使得這種組合能夠訓練達到最優。隨著β值減小,層次對增強效果的貢獻也隨之降低。
這種結構有以下好處:
- 這種網絡架構很適合包含跳躍連接和隨機深度的極深神經網絡的訓練,符合現代訓練策略
- 旁路參數評估每一層的貢獻,就網絡應達到的深度給出反饋
- 每一層均執行近似恒等變換,使用不同結構增強圖像
每個擾動層至少包含兩個卷積層,每個卷積層間還包含一個非線性ReLU層。擾動層中更多的卷積層提高了擾動層增強圖像的能力,但訓練收斂也變得更加困難。另外,額外的擾動層具有類似的圖像增強潛力,且不存在收斂問題。
圖4:含擾動層的深度神經網絡
旁路參數就每個擾動層的影響提供了直接的反饋。這些反饋有助于解答神經網絡的深度應達到多少的問題。
圖5:模型訓練時的旁路參數。本圖繪制了訓練過程中旁路參數的權值。對于這個特殊的訓練算法,每一層包括兩個訓練階段:首先,訓練各層參數;其次,結合所有以前訓練過的參數與新層次進行優化。旁路參數隨著網絡層數的增長而減小。最終,新層次不再改變增強圖像中各像素的積分數值(不會與其它層聚合)——這正是子像素閾值的定義。
實驗
我們初步進行的實驗使用了巴拿馬運河3波段的GeoTIFF降質圖像,通過增強降質圖像來評估深度神經網絡的圖像增強能力。我們在實驗中使用了兩張由DigitalGlobe提供的GeoTIFF圖像(非常大的衛星圖像):一張用于訓練,另一張用于測試。在一次深度神經網絡計算中,我們并沒有選擇增強整張圖像,相反,我們每次增強一個27x27像素大小的圖像區域。由于GeoTIFF圖像非常大,抽取27x27像素區域的方法能夠為我們的深度神經網絡提供充足的訓練數據。更多的訓練圖像或許可以提高實驗效果。但在下面的實驗中,我們使用這兩張GeoTIFF圖像訓練深度神經網絡:
- 這兩張GeoTIFF圖像的大小進行了調整,已有效地降低了圖像分辨率
- 采用隨機抽樣的方法,從第一張GeoTIFF圖像中獲取樣本,訓練深度神經網絡,每次訓練僅訓練模型中的一層。我們訓練深度神經網絡中的權值,最大化深度神經網絡輸出的PSNR值
- 深度神經網絡用于增強兩張降質的GeoTIFF圖像
- 實驗結果將與基于插值的圖像增強算法進行比較
我們在一臺2015年推出的裝有4塊Titan X顯卡的NVIDIA Devbox機器上,使用TensorFlow來創建、訓練、推斷深度神經網絡,但是在實際訓練時,僅使用1塊顯卡用于訓練。為訓練神經網絡,我們采用了最優化算法ADAM,ADAM關聯了能夠影響訓練時間和收斂速度的參數。我們并未充分探索ADAM參數的最優選擇,但仍然花費大約12個小時(使用一塊Titan X顯卡)的時間來訓練每個擾動層。旁路參數的收斂速率(如圖5所示)為我們選擇ADAM參數乃至后續的訓練時間上提供了幫助。
實驗結果
在本次實驗中,我們使用了兩張關于巴拿馬運河的GeoTIFF圖像,一張用于訓練,另一張用于測試。
圖6:巴拿馬運河衛星圖像。這是深度神經網絡中的原始訓練圖像。
首先是通過GeoTIFF降質圖像來創建訓練數據。通過調整GeoTIFF圖像的大小,最終生成的降質圖像在GSD與分辨率上實現了有效的降低。使用線性插值作為起點,我們可以繪制PSNR在整張降質圖像上的分布。
圖7:深度神經網絡輸入圖像中的PSNR分布。深度神經網絡的輸入是一張重新調整大小(通過線性插值擴大2倍)的降質衛星圖像,與原始GeoTIFF圖像的大小相匹配。本圖顯示了在降質過程中引入的噪聲位置。藍色區域在降質時引入的噪聲較多,紅色區域引入的噪聲較少些。藍色區域通常表示含精細結構(如船只)的區域,而紅色區域通常表示具有更粗糙特征(如開放水域)的區域。
圖7表明,僅一個表示PSNR的數字并不足以描述衛星圖像中的噪聲。在降質圖像中,具有更多結構的區域,例如船只,相比于自身結構較少的區域,如水域,具有更低的PSNR值。當我們訓練超分辨率算法來增強降質圖像時,我們想要增強我們關注的區域,而這通常是含有結構的區域。
圖8:使用深度神經網絡增強后,圖像的PSNR收益。我們使用未用于深度神經網絡訓練的測試圖像繪制PSNR收益的分布。圖像中的大部分區域得到了增強。藍色區域對應原始圖像中噪聲明顯較少的一般區域。PSNR的增強效果通過與初始線性插值方法比較得到。
圖9:與雙三次插值相比的PSNR收益。在GeoTIFF測試圖像上,我們與雙三次差值方法進行比較,繪制了在PSNR上的差異。初始噪聲較多的區域也同樣能受益。
圖10:與線性插值和雙三次插值相比,基于深度神經網絡的增強方法的PSNR變化。PSNR變化由整張GeoTIFF圖像與GeoTIFF圖像中含船只的子區域計算得到。包含精細結構的區域的增強效果明顯高于水域區域。
圖10中的結果表明,基于深度神經網絡的增強方法能夠明顯改善含更多結構的區域。盡管測試圖像與訓練圖像具有相同的GSD,但不同的大氣條件與云層覆蓋也影響著增強的效果,這在一定程度上解釋了測試圖像性能優化高于訓練圖像的原因。圖像清晰度也會影響到含船只區域的標記,不準確的標記可能含有更多的水域,進而降低在該區域的收益。避免了這些干擾的實驗超出了本篇文章的討論范圍。
圖11:水域中船只的增強示例。本圖展示了對降質船只圖像的增強效果。由于此區域大部分為水域,其PSNR值小于僅含船只的區域。
其他研究方向
包括SRCNN在內的一些示例,將超分辨率技術應用于非衛星圖像,并在ImageNet上訓練時取得了類似的增強效果。這些方法用于衛星圖像增強或許是可行的,但我們提出的方法具有一個根本優勢:圖像的位置信息。此外,基于以下幾點,我們提出的方法是不同與現有方法的:
- 衛星圖像往往是許多基于深度神經網絡的機器學習算法應用的極端情況
- 過度訓練并不一定不利于我們的算法,我們可以得到更具多樣性的圖像數據集
- 擾動層提供了關于深度神經網絡需達到的深度以及增加網絡深度預期的邊際性能改善的信息
- 除了紅色、綠色和藍色,GeoTIFF圖像能夠包含更多的顏色通道,針對額外的顏色通道(例如8波段圖像),我們的方法只需進行簡單地修改就可使用
最后,我們對擾動層中卷積層的數量進行了實驗,增加每個擾動層中卷積層的數量,并查看提高的性能。我們將在第二部分展示這些實驗結果,這些實驗基于8波段圖像和SpaceNet數據集。
數十款阿里云產品限時折扣中,趕緊點擊領劵開始云上實踐吧!
文章原標題《Super-Resolution on Satellite Imagery using Deep Learning, Part 1》,作者:Patrick Hagerty
文章為簡譯,更為詳細的內容,請查看原文:The official blog of CosmiQ Works in Medium
總結
以上是生活随笔為你收集整理的实践:基于深度学习的卫星图像超分辨率处理技术(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2_C语言中的数据类型 (二)进制
- 下一篇: 骚多浪荡。