范新剛
(廣州城建職業學院,廣東 廣州 510925)
傳統的圖形學及視覺的研究主要是基于數學和物理的方法。近年來,深度學習在視覺領域取得了很大突破。視覺領域的研究主要集中在深度學習方面,特別是在圖像編輯和圖像生成方面,已實現多種場景的應用。
圖像補全介于圖像編輯和圖像生成之間,最初是一個傳統圖形學的問題。問題本身很直觀:在一幅圖像上挖一個洞,然后利用破損區域之外的信息將之補全,并且無法肉眼識別。這個問題對人類來說似乎很容易,例如一些有缺陷的圖像,人的大腦會自動聯想圖像缺失的部分,如果有一些繪畫天賦,就能憑著想象把缺失的部分補充完整。但是這個任務對于計算機來說顯得格外困難。首先,問題的解決辦法不唯一;其次,破損區域之外的信息如何利用、如何判斷補全后的圖像是否完全還原是需要解決的問題。
以深度學習為代表的機器學習,正在逐漸席卷整個圖形學研究領域。研究者們逐漸發現,當傳統的基于物理的模型發展遇到瓶頸時,機器學習的方法也許有助于解釋復雜的數理模型。畢竟只有理解了圖像的深層結構,才能更好地指導圖像的生成和處理。
人工神經網絡(Artificial Neural Network,ANN)是一個數學模型,是對動物神經網絡的模擬,比較適用于分布式信息處理。神經網絡通過大量的內部節點達到信息處理的目的。自我學習能力和自適應能力是ANN的基本特征。通過分析預設的輸入和輸出數量,可找出兩者之間的對應規則,然后利用這些規則,用新的輸入推導出輸出數據,這種分析的過程稱為“訓練”。
在ANN中,神經元處理單元可以代表不同的對象,如特征、字母、概念或一些有意義的抽象圖案[1]。網絡中處理單元的類型分為3類:輸入單元、輸出單元和隱藏單元。研究表明,輸入單元接收來自外部世界的信號和數據;輸出單元實現系統處理結果的輸出;隱藏單元是一個單元,位于輸入和輸出單元之間,不能從系統外部查看。神經元之間的連接強度通過連接權重反映,而網絡單元的連接關系則反映了信息的表示和處理[2]。
一般情況下,如果只有一個神經元,就算有再多的輸入也是不夠的。所以,一般需要5~10個神經元,以并行的方式運算,這些神經元被稱為“層”。
1.1.1 單層神經網絡
由S個神經元構成的單層神經網絡如圖1所示。單層神經網絡通過權值矩陣W,因此,輸入向量p的每一個分量都可以連接到每一個神經元。因為每一個神經元都有含有一個偏置值b、一個累加器、一個傳輸函數f,所有這些輸出共同構成了輸出向量a[3]。

圖1 具有S個神經的單層神經網絡
1.1.2 多層神經網絡
第一層的輸入為R,有S1個神經元,第二層有S2個神經元,以此類推,第n層就有Sn+1個神經元。每一層的輸出即下一層的輸入。三層網絡如圖2所示。

圖2 三層網絡
1.1.3 學習方式
(1)監督學習。監督學習是將訓練好的數據作為神經網絡的輸入對比期望值和實際輸出,得到誤差,然后控制差值信號調整權值大小,快速適應新場景。
(2)非監督學習。非監督學習不需要訓練后的數據,直接把神經網絡放到新環境,通過提取數據特征進行學習。
深度學習源于ANN研究的發展,這一概念在2006年被提出。基于深可信網絡(Deep Belief Net‐works,DBN),提出了一種無監督的逐層訓練算法,解決深層結構相關優化問題。卷積神經網絡由拉科納提出,是真正意義上的多層結構學習算法,它利用空間相關關系來減少參數的數量,提高訓練性能[4]。
深度學習的目的是模擬人腦學習,建立神經網絡,是機器學習的新領域,通過模仿人類大腦的機制來解釋圖像、聲音和文本等數據。
深度學習的代表算法是卷積神經網絡,是一種包含卷積計算且具有深度結構的前饋神經網絡,能夠平移且不變分類,因此,被稱為“平移不變人工神經網絡”。
卷積神經網絡可以進行監督學習和非監督學習,其中,隱含層內的卷積核參數共享和層間連接的稀疏性使得卷積神經網絡能夠以較小的計算量對格點化特征,例如像素和音頻進行學習,有穩定的效果而且對數據沒有額外的特征工程要求[5]。
卷積神經網絡從結構上分為輸入層和輸出層,其中,輸入層可以處理多維數據。很多研究一般都預先假設三維輸入數據,即平面上的二維像素點和RGB通道。
輸入層又包含卷積層、池化層和全連接層[6]。其中,卷積層完成輸入數據的特征提取,產生的特征圖傳遞至池化層進行處理,卷積神經網絡中的全連接層相當于前饋神經網絡中的隱含層,通常構建在隱含層的最后,并只向其他全連接層傳遞信號。特征圖會在全連接層中失去三維結構,被展開為向量并通過激勵函數傳遞至下一層。
很多圖像應用程序需要高分辨率圖像,即像素密度很高,可以提供更豐富的細節信息。提高分辨率,像素尺寸將減小,光通量將降低。因此,噪聲會嚴重影響圖像質量。
像素尺寸的減小不是無限的,因此,增大芯片的尺寸是另外一種提高分辨率的方法,但效率較低,因為大容量耦合的耦合系數很難提高。另外,高精度光學和圖像傳感器一般價格高昂,因此,為了克服傳感器和光學制造技術的局限性,采用信號處理的方法,從多個低分辨率圖像獲取高分辨率,分辨率增強技術成為熱門研究領域,稱為“超分辨率”。
信號處理方法的優勢是成本低廉,可充分利用現有的低分辨率圖像。在醫學成像、衛星圖像和視頻領域存在大量的低分辨率圖像,因此,超分辨率圖像恢復技術大有可為。
在分辨率提高技術中,通過同一場景獲取多個低分辨率的細節圖像,每個細節圖像代表同一場景的不同側面。如果各個低分辨率圖像之間都有像素偏移,那么它們可提供不同的信息用于高分辨率圖像恢復。
實驗環境為NVIDIA云計算平臺,客戶端為Win‐dows10系統,工具為Python-3.7.2-amd64,本團隊進行了大量的圖像訓練,訓練次數達到600 000次。在訓練過程中,嘗試使用了線性插值以凸顯圖片特征,但是整個過程中需要大量的插值操作,對于經過幾十上百萬次訓練的卷積神經網絡來說,幾乎不可能完成。
后來發現,增加卷積層的數量,可以提高模型的性能,因此,實驗將卷積層數量設定為10。
本次實驗準備了4張打碼的圖像,如圖3所示,經過十幾個小時的訓練模型建立,最終修復的圖像如圖4所示。
本次實驗同時進行了馬斯克去除測試,準備了若干帶有馬賽克的圖像,訓練模型建立后,測試結果如圖5所示(左邊為去除之前)。

圖3 打碼的圖像

圖4 修復的圖像

圖5 測試結果
文章探討了深度學習、卷積神經網絡、超分辨率重建等相關理論,利用NVIDIA云計算平臺進行大量的深度學習,建立修復模型,同時,通過增加卷積層數量,提升了學習訓練效率;實驗對比可知,圖像修復達到了一定效果。但是,尚有許多不足和需要改進的地方,例如訓練次數不夠。因此,圖像修復效果不盡如人意,這是以后繼續努力的方向。
(責任編輯 顧培培)