高 祿,曹佳寧,卞 通,王花花,鄭志遠
(中國地質大學(北京)數理學院,北京 100083)
鬼成像(Ghost Imaging,GI)是一種不同于傳統光學成像方式的非定域成像方式。目前的研究證明,GI方案既可以利用糾纏雙光子源實現[1],也可以通過經典的非相干光源實現[2]。針對GI 物理本質的爭論至今仍然在持續,但是這并沒有妨礙該項技術在實際應用中的推廣。GI包含兩個空間分離的光路,分別是信號光路和閑置光路。在信號光路中,光直接照射被測物體,經由物體散射或者透射的光被一個桶測量器收集;在閑置光路中,光束自由傳播到具有空間高分辨率的面陣探測器;隨后將兩路光信號的光場強度進行關聯測量即可重構出物體的圖像[3]。在計算鬼成像(Computational Ghost Imaging,CGI)中,通過仿真計算獲得隨機圖樣,從而對非相干熱光源的散斑場進行模擬,隨機圖樣分布可以作為閑置光路的光源場,而不再需要物理上的閑置光路,信號光路中則需要將隨機分布的光場照射被測物體,然后經由桶探測器進行測量。進而將信號光路和閑置光路的光場強度進行關聯測量則可重構出被測物體的圖像[4]。
CGI通常需要大量的隨機圖樣來抑制噪聲漲落,從而獲得高對比度的圖像,這導致數據獲取非常耗時,也是限制CGI 在實際應用中進一步推廣的最主要的原因。針對這一問題,標準化鬼成像[5]和微分鬼成像[6]先后被提出以提高成像效率。Gerchberg-Saxton算法和壓縮感知鬼成像(Compressive Sensing Ghost Imaging,CSGI)將GI 視作一個優化問題,可以大幅降低隨機采樣的數量以提高成像效率。Gerchberg-Saxton所提出的技術則充分考慮了傅里葉變換的積分性質,這為GI的重構提供了一個不同的視角。
最近,深度學習(Deep Learning,DL)在圖像處理領域取得了廣泛的應用,如圖像降噪、圖像修復和自然語言處理等[7]。DL在計算成像領域也得到了綜合應用,如數字全息、無透鏡成像、散射介質和渾濁介質成像、光學加密和鬼成像。深度學習鬼成像(Ghost Imaging Using Deep Learning,GIDL)最早是由Lyu等提出[8],他們的研究證明GIDL 可以在極低的采樣率下高質量地重構二值圖像,GIDL通常需要將數以千計的GI圖片作為輸入,將待測物體的圖片作為目標來訓練深度神經網絡(Deep Neural Network,DNN)。這里,本文中所提到的GI圖像是表示通過傳統鬼成像重構得到的圖片。GIDL可以從嚴重缺損的、幾乎難以辨認的圖片中恢復出物體。在PSNR、SSIM 和RMSE 指標的衡量下,GIDL取得了非常好的效果。同時,GIDL所需的處理時間遠少于沒有使用深度學習的方法所需的時間[9]。研究表明,基于深度學習的計算鬼成像方法能夠使用模擬數據進行訓練,這使得GIDL 更加具有實用性。
GIDL通常需要大量的待測物體圖像作為正確的標注,接著它們被一系列隨機圖樣相乘得到相應的GI圖像作為神經網絡的輸入,然而,在目前所提出的大多數GIDL方案中,訓練集和測試集均使用了相同的一組特定的隨機圖樣,這一做法會導致GIDL 在實際應用中泛化能力被削弱。本文通過批處理優化了GI 的仿真算法,引入了不同的隨機圖樣,使獲得的數據集更接近真實物理情況。將優化后的仿真算法應用到GIDL中,使GIDL的泛化能力得到了顯著增強。進一步,為了提高GIDL 的成像質量,讓DNN 學習殘差圖像而非待測物體圖像。將GI的殘差分成兩部分,進而提出了一個雙殘差(Double Residual,DR)架構來分別學習這兩部分不同的殘差圖像。通過將DR架構和UNet結合,提出了一個新的GIDL,即DRU-Net 方案。實驗結果證明,基于DR 結構U-Net 學習網絡的鬼成像的圖像質量得到了明顯的提高,其圖像的SSIM 指標是普通鬼成像的3 倍。
CGI的配置如圖1 所示。通過計算機仿真模擬生成一系列的隨機散斑圖樣(見圖1 左下方)后和待測物體圖像分布相乘,并且將每個像素的光強值作求和累加后得到一個光強數值,即信號光路中的“桶測量”值。通過對信號光路的桶測量值和閑置光路的隨機散斑圖樣進行關聯測量獲得待測物體的圖像。計算鬼成像的過程方程如下所示:

圖1 計算鬼成像裝置示意圖

式中:Sm表示第m幀信號光路中桶測量的強度值;Im表示第m幀閑置光路的光強分布函數;〈·〉代表多次測量的平均值。
通過仿真獲得贗熱光的隨機散斑圖樣來訓練神經網絡。在樸素的串行仿真算法中,圖像是一個接著一個地被處理,從而得到相應的GI圖像。因此為每一張圖片生成一個不同的隨機圖樣集會產生巨大的輸入輸出(Input/Output,I/O)。鑒于DL 通常需要成千上萬的圖片作為數據集,使用樸素的串行仿真算法通常會花費數十個小時。在以往的研究中,一個普遍使用的方法是針對不同的圖片采用相同的隨機圖樣來生成數據集。這樣可以減少生成隨機圖樣的時間和I/O 數據,但是這也同時犧牲了數據的可靠性和神經網絡的泛化能力。本文通過批處理優化了仿真算法,從而實現了基于不同隨機圖樣的更可靠的數據。我們將隨機梯度下降(Stochastic Gradient Descent,SGD)中“批”的概念引入到預處理階段來充分利用CUDA(Compute Unified Device Architecture,CUDA)。圖片被分成批,每一批中的所有圖片一起構成一個3 維數組。每個3維數組作為最小處理單元。針對每個3 維數組生成一個不同的隨機圖樣。因此,同一批中的圖像分享相同的隨機圖樣,然而不同批之間的隨機散斑圖樣則不同。GI圖片通過3 維的物體分布數組和相應的隨機圖樣之間的點乘得到。將“批”的尺寸設置為256、512 或者更大的數,優化仿真算法顯著減少了I/O。GI 仿真數據標準化公式為

式中,TGImin和TGImax分別表示鬼成像圖像中最小和最大的光強值。
通過這種方式,GIDL 的泛化能力得到顯著提升,所設計的優化算法不僅可以處理二值圖,還可以處理灰度圖。樸素的串行仿真算法和優化后的仿真算法都是通過Python 中的PyTorch 機器學習庫實現的。PyTorch針對矩陣進行優化,因此矩陣運算的大多數運算時間可以被節省下來。在普通的PC機上,對于128×128 像素圖片的訓練集,樸素的串行算法需要近28小時來處理,而優化后的算法僅需23 min,計算效率提高了70 倍。
在現有的GIDL中,待測物體圖像是從GI圖像端到端生成的,該過程可以被表達為

式中:O代表神經網絡的輸出;F{·}代表將GI 圖片映射到相應待測物體圖片的神經網絡。具體的訓練過程可以被表示為

式中:Θ表示神經網絡參數的集合;L(·)是用來度量神經網絡輸出和相應待測物體圖像之間差距的損失函數;上標i表示第i個輸入輸出對。取i=1,2,…,K,枚舉全部K個輸入輸出對;W(θ)代表參數正則項,防止過擬合。
目前,殘差學習在圖像處理領域已經得到了廣泛的應用[10]。受DnCNN的啟發,讓DNN學習殘差圖像而非待測物體圖像。在GIDL 中,用Res表示殘差,定義為

DnCNN是目前最有效的一個深度殘差網絡,它能夠處理各種圖像降噪任務,包括高斯噪聲、SISR 和JPEG圖像去塊。用來表示DnCNN,訓練過程方程為

通過這種方法,重構后的圖像可以被表示為

殘差映射通常要比原始映射更容易優化,因為殘差圖像和待測物體圖像相比有著更小的像素值。極限情況下,如果恒等映射是最優的,神經網絡直接將殘差變成0 要比適合恒等映射更簡單,但是GI 是個例外,它的殘差在數值上太大了導致它非常難以學習。以圖2(b)為例,關聯測量會導致圖像呈現出平均的感覺而變得模糊。圖2(a)和(b)之間的殘差達到了-209~145,區間長度甚至超過了灰度值的上限,殘差比待測物體圖像更加復雜,導致殘差學習不適用于GI。為此,提出了將殘差分為上殘差和下殘差的方法,通過減少像素值的區間長度使其適應殘差學習的特性,并且將殘差分成兩部分也會使學習過程變得更加簡單,圖2(c)和(d)分別為上殘差和下殘差圖像。DR 架構的主體包含兩個卷積神經網絡(Convolutional Neural Network,CNN),雙殘差的卷積神經網絡即記作DRUNet。U-Net是一個U形的深度CNN,其中最大池化層和上采樣層對稱出現。U-Net最初是為了圖像分割問題設計的,后來的研究證明該網絡也可以被用來處理鬼成像的去噪問題。U-Net 的變體ResU-Net-在遙感數據方面獲得了很成功的應用[11]。

圖2 待測物體和鬼成像圖像
如圖3 所示,一個CNN 用上殘差圖像訓練;另一個用下殘差圖像訓練。DRU-Net 反映了GI 的統計特性,使得GI 的殘差變得足夠簡單,易于學習。DRUNet不僅重構出了豐富細節的高質量圖片,還在測試集上展示出很強的泛化能力,取得了比U-Net 和DnCNN更好的效果。

圖3 雙殘差網絡(DRU-Net)示意圖
DRU-Net由上CNN 和下CNN 構成,分別學習上殘差圖片和下殘差圖片,將其定義為

將負值轉換為0 使其更加適合卷積運算,并將高度污損的GI圖片作為神經網絡的輸入并分別使用兩個殘差作為學習目標。在這種情況下,訓練過程可以被寫為:

式中:Rup表示上CNN;Rdown表示下CNN。這里浮點數被轉換成了整數,這樣就可以在明顯損失的情況下將殘差作為圖片保存。重構的圖片表達式為

使用MSRA10K 數據集[12]作為待測物體圖像訓練上述3 種神經網絡,并且直接采用U-Net 和DnCNN模型。選擇了5 120 張圖片并將它們的尺寸調整為128 ×128 像素,并將它們分成批,通過優化仿真算法獲得了相應的GI圖像。由方程(8)和(9)可以計算出上、下殘差圖像并與其對應的GI 圖像配對,來訓練DRU-Net。訓練過程中,Adam優化器[13]用來最小化均方誤差。訓練集的批大小取為16,學習率設定為0.000 02,權重的衰減率設定為0.000 3。使用了PyTorch 1.3.1 和NVIDIA GTX 1080M 顯卡訓練神經網絡。
圖4 展示了不同GIDL重構結果之間的差異。第1 列是4 張沒有被包含在訓練集中的待測物體圖像;第2 列是GI 仿真得到的圖像;第3、4、5 列分別是DnCNN、U-Net 和DRU-Net 處理得到的結果。圖4 中展示了U-Net和DnCNN相對于傳統的GI都不同程度地提高了成像質量。相比較于U-Net 和DRU-Net,DnCNN處理圖像的結果并不理想,這是因為GI 的殘差信息量過大,導致DnCNN并不適用。DRU-Net明顯取得了比其他兩種方法更好的效果。DnCNN、U-Net和DRU-Net 恢復的圖像參數如表1 所示。PSNR、SSIM越高,RMSE 越低,表示圖像質量越高。在PSNR和SSIM指標中,DRU-Net取得了最高值,而在RMSE指標下,DRU-Net 取得了最小值。SSIM 指標比PSNR能夠更精確地衡量圖像的質量。GI、DnCNN、U-Net和DRU-Net的平均SSIM 分別為0.176、0.395、0.518 和0.555,數據表明DRU-Net圖像的平均SSIM 指標達到了傳統GI方案的3 倍。

圖4 GI、DnCNN、U-Net和DRU-Net圖像處理結果

表1 GI、DnCNN、U-Net 和DRU-Net 的PSNR、SSIM 和RMSE數據表
將“批”的概念引入預處理階段并優化了GI 的仿真算法,使得短時間內獲取大量不同隨機圖樣的可靠數據成為可能,優化后的仿真算法增強了GIDL 的泛化能力。針對GI的統計性質,將GI的殘差分成上、下殘差實現了進一步的算法優化,提出了新的GIDL 架構——DRU-Net。通過仿真實驗將DnCNN、U-Net 和DRU-Net進行了圖像處理對比,結果顯示DRU-Net 相較現有的GIDL 具有顯著的優勢,獲得了更好的鬼成像的圖像重構效果。DRU-Net 恢復出的圖像的平均SSIM指標可以達到傳統GI 方案的3 倍。目前,大多數GIDL都采用了監督學習,同時GI 過程也被視作一個降噪過程。在未來的研究中,鑒于顯著的信息丟失已經不能被視作降噪問題,我們擬實施非監督學習的方法,如圖像修復算法[14-15],來“猜”出圖像丟失的信息。