高 祿,曹佳寧,卞 通,王花花,鄭志遠(yuǎn)
(中國地質(zhì)大學(xué)(北京)數(shù)理學(xué)院,北京 100083)
鬼成像(Ghost Imaging,GI)是一種不同于傳統(tǒng)光學(xué)成像方式的非定域成像方式。目前的研究證明,GI方案既可以利用糾纏雙光子源實(shí)現(xiàn)[1],也可以通過經(jīng)典的非相干光源實(shí)現(xiàn)[2]。針對GI 物理本質(zhì)的爭論至今仍然在持續(xù),但是這并沒有妨礙該項(xiàng)技術(shù)在實(shí)際應(yīng)用中的推廣。GI包含兩個(gè)空間分離的光路,分別是信號光路和閑置光路。在信號光路中,光直接照射被測物體,經(jīng)由物體散射或者透射的光被一個(gè)桶測量器收集;在閑置光路中,光束自由傳播到具有空間高分辨率的面陣探測器;隨后將兩路光信號的光場強(qiáng)度進(jìn)行關(guān)聯(lián)測量即可重構(gòu)出物體的圖像[3]。在計(jì)算鬼成像(Computational Ghost Imaging,CGI)中,通過仿真計(jì)算獲得隨機(jī)圖樣,從而對非相干熱光源的散斑場進(jìn)行模擬,隨機(jī)圖樣分布可以作為閑置光路的光源場,而不再需要物理上的閑置光路,信號光路中則需要將隨機(jī)分布的光場照射被測物體,然后經(jīng)由桶探測器進(jìn)行測量。進(jìn)而將信號光路和閑置光路的光場強(qiáng)度進(jìn)行關(guān)聯(lián)測量則可重構(gòu)出被測物體的圖像[4]。
CGI通常需要大量的隨機(jī)圖樣來抑制噪聲漲落,從而獲得高對比度的圖像,這導(dǎo)致數(shù)據(jù)獲取非常耗時(shí),也是限制CGI 在實(shí)際應(yīng)用中進(jìn)一步推廣的最主要的原因。針對這一問題,標(biāo)準(zhǔn)化鬼成像[5]和微分鬼成像[6]先后被提出以提高成像效率。Gerchberg-Saxton算法和壓縮感知鬼成像(Compressive Sensing Ghost Imaging,CSGI)將GI 視作一個(gè)優(yōu)化問題,可以大幅降低隨機(jī)采樣的數(shù)量以提高成像效率。Gerchberg-Saxton所提出的技術(shù)則充分考慮了傅里葉變換的積分性質(zhì),這為GI的重構(gòu)提供了一個(gè)不同的視角。
最近,深度學(xué)習(xí)(Deep Learning,DL)在圖像處理領(lǐng)域取得了廣泛的應(yīng)用,如圖像降噪、圖像修復(fù)和自然語言處理等[7]。DL在計(jì)算成像領(lǐng)域也得到了綜合應(yīng)用,如數(shù)字全息、無透鏡成像、散射介質(zhì)和渾濁介質(zhì)成像、光學(xué)加密和鬼成像。深度學(xué)習(xí)鬼成像(Ghost Imaging Using Deep Learning,GIDL)最早是由Lyu等提出[8],他們的研究證明GIDL 可以在極低的采樣率下高質(zhì)量地重構(gòu)二值圖像,GIDL通常需要將數(shù)以千計(jì)的GI圖片作為輸入,將待測物體的圖片作為目標(biāo)來訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)。這里,本文中所提到的GI圖像是表示通過傳統(tǒng)鬼成像重構(gòu)得到的圖片。GIDL可以從嚴(yán)重缺損的、幾乎難以辨認(rèn)的圖片中恢復(fù)出物體。在PSNR、SSIM 和RMSE 指標(biāo)的衡量下,GIDL取得了非常好的效果。同時(shí),GIDL所需的處理時(shí)間遠(yuǎn)少于沒有使用深度學(xué)習(xí)的方法所需的時(shí)間[9]。研究表明,基于深度學(xué)習(xí)的計(jì)算鬼成像方法能夠使用模擬數(shù)據(jù)進(jìn)行訓(xùn)練,這使得GIDL 更加具有實(shí)用性。
GIDL通常需要大量的待測物體圖像作為正確的標(biāo)注,接著它們被一系列隨機(jī)圖樣相乘得到相應(yīng)的GI圖像作為神經(jīng)網(wǎng)絡(luò)的輸入,然而,在目前所提出的大多數(shù)GIDL方案中,訓(xùn)練集和測試集均使用了相同的一組特定的隨機(jī)圖樣,這一做法會導(dǎo)致GIDL 在實(shí)際應(yīng)用中泛化能力被削弱。本文通過批處理優(yōu)化了GI 的仿真算法,引入了不同的隨機(jī)圖樣,使獲得的數(shù)據(jù)集更接近真實(shí)物理情況。將優(yōu)化后的仿真算法應(yīng)用到GIDL中,使GIDL的泛化能力得到了顯著增強(qiáng)。進(jìn)一步,為了提高GIDL 的成像質(zhì)量,讓DNN 學(xué)習(xí)殘差圖像而非待測物體圖像。將GI的殘差分成兩部分,進(jìn)而提出了一個(gè)雙殘差(Double Residual,DR)架構(gòu)來分別學(xué)習(xí)這兩部分不同的殘差圖像。通過將DR架構(gòu)和UNet結(jié)合,提出了一個(gè)新的GIDL,即DRU-Net 方案。實(shí)驗(yàn)結(jié)果證明,基于DR 結(jié)構(gòu)U-Net 學(xué)習(xí)網(wǎng)絡(luò)的鬼成像的圖像質(zhì)量得到了明顯的提高,其圖像的SSIM 指標(biāo)是普通鬼成像的3 倍。
CGI的配置如圖1 所示。通過計(jì)算機(jī)仿真模擬生成一系列的隨機(jī)散斑圖樣(見圖1 左下方)后和待測物體圖像分布相乘,并且將每個(gè)像素的光強(qiáng)值作求和累加后得到一個(gè)光強(qiáng)數(shù)值,即信號光路中的“桶測量”值。通過對信號光路的桶測量值和閑置光路的隨機(jī)散斑圖樣進(jìn)行關(guān)聯(lián)測量獲得待測物體的圖像。計(jì)算鬼成像的過程方程如下所示:
圖1 計(jì)算鬼成像裝置示意圖
式中:Sm表示第m幀信號光路中桶測量的強(qiáng)度值;Im表示第m幀閑置光路的光強(qiáng)分布函數(shù);〈·〉代表多次測量的平均值。
通過仿真獲得贗熱光的隨機(jī)散斑圖樣來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。在樸素的串行仿真算法中,圖像是一個(gè)接著一個(gè)地被處理,從而得到相應(yīng)的GI圖像。因此為每一張圖片生成一個(gè)不同的隨機(jī)圖樣集會產(chǎn)生巨大的輸入輸出(Input/Output,I/O)。鑒于DL 通常需要成千上萬的圖片作為數(shù)據(jù)集,使用樸素的串行仿真算法通常會花費(fèi)數(shù)十個(gè)小時(shí)。在以往的研究中,一個(gè)普遍使用的方法是針對不同的圖片采用相同的隨機(jī)圖樣來生成數(shù)據(jù)集。這樣可以減少生成隨機(jī)圖樣的時(shí)間和I/O 數(shù)據(jù),但是這也同時(shí)犧牲了數(shù)據(jù)的可靠性和神經(jīng)網(wǎng)絡(luò)的泛化能力。本文通過批處理優(yōu)化了仿真算法,從而實(shí)現(xiàn)了基于不同隨機(jī)圖樣的更可靠的數(shù)據(jù)。我們將隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)中“批”的概念引入到預(yù)處理階段來充分利用CUDA(Compute Unified Device Architecture,CUDA)。圖片被分成批,每一批中的所有圖片一起構(gòu)成一個(gè)3 維數(shù)組。每個(gè)3維數(shù)組作為最小處理單元。針對每個(gè)3 維數(shù)組生成一個(gè)不同的隨機(jī)圖樣。因此,同一批中的圖像分享相同的隨機(jī)圖樣,然而不同批之間的隨機(jī)散斑圖樣則不同。GI圖片通過3 維的物體分布數(shù)組和相應(yīng)的隨機(jī)圖樣之間的點(diǎn)乘得到。將“批”的尺寸設(shè)置為256、512 或者更大的數(shù),優(yōu)化仿真算法顯著減少了I/O。GI 仿真數(shù)據(jù)標(biāo)準(zhǔn)化公式為
式中,TGImin和TGImax分別表示鬼成像圖像中最小和最大的光強(qiáng)值。
通過這種方式,GIDL 的泛化能力得到顯著提升,所設(shè)計(jì)的優(yōu)化算法不僅可以處理二值圖,還可以處理灰度圖。樸素的串行仿真算法和優(yōu)化后的仿真算法都是通過Python 中的PyTorch 機(jī)器學(xué)習(xí)庫實(shí)現(xiàn)的。PyTorch針對矩陣進(jìn)行優(yōu)化,因此矩陣運(yùn)算的大多數(shù)運(yùn)算時(shí)間可以被節(jié)省下來。在普通的PC機(jī)上,對于128×128 像素圖片的訓(xùn)練集,樸素的串行算法需要近28小時(shí)來處理,而優(yōu)化后的算法僅需23 min,計(jì)算效率提高了70 倍。
在現(xiàn)有的GIDL中,待測物體圖像是從GI圖像端到端生成的,該過程可以被表達(dá)為
式中:O代表神經(jīng)網(wǎng)絡(luò)的輸出;F{·}代表將GI 圖片映射到相應(yīng)待測物體圖片的神經(jīng)網(wǎng)絡(luò)。具體的訓(xùn)練過程可以被表示為
式中:Θ表示神經(jīng)網(wǎng)絡(luò)參數(shù)的集合;L(·)是用來度量神經(jīng)網(wǎng)絡(luò)輸出和相應(yīng)待測物體圖像之間差距的損失函數(shù);上標(biāo)i表示第i個(gè)輸入輸出對。取i=1,2,…,K,枚舉全部K個(gè)輸入輸出對;W(θ)代表參數(shù)正則項(xiàng),防止過擬合。
目前,殘差學(xué)習(xí)在圖像處理領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用[10]。受DnCNN的啟發(fā),讓DNN學(xué)習(xí)殘差圖像而非待測物體圖像。在GIDL 中,用Res表示殘差,定義為
DnCNN是目前最有效的一個(gè)深度殘差網(wǎng)絡(luò),它能夠處理各種圖像降噪任務(wù),包括高斯噪聲、SISR 和JPEG圖像去塊。用來表示DnCNN,訓(xùn)練過程方程為
通過這種方法,重構(gòu)后的圖像可以被表示為
殘差映射通常要比原始映射更容易優(yōu)化,因?yàn)闅埐顖D像和待測物體圖像相比有著更小的像素值。極限情況下,如果恒等映射是最優(yōu)的,神經(jīng)網(wǎng)絡(luò)直接將殘差變成0 要比適合恒等映射更簡單,但是GI 是個(gè)例外,它的殘差在數(shù)值上太大了導(dǎo)致它非常難以學(xué)習(xí)。以圖2(b)為例,關(guān)聯(lián)測量會導(dǎo)致圖像呈現(xiàn)出平均的感覺而變得模糊。圖2(a)和(b)之間的殘差達(dá)到了-209~145,區(qū)間長度甚至超過了灰度值的上限,殘差比待測物體圖像更加復(fù)雜,導(dǎo)致殘差學(xué)習(xí)不適用于GI。為此,提出了將殘差分為上殘差和下殘差的方法,通過減少像素值的區(qū)間長度使其適應(yīng)殘差學(xué)習(xí)的特性,并且將殘差分成兩部分也會使學(xué)習(xí)過程變得更加簡單,圖2(c)和(d)分別為上殘差和下殘差圖像。DR 架構(gòu)的主體包含兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN),雙殘差的卷積神經(jīng)網(wǎng)絡(luò)即記作DRUNet。U-Net是一個(gè)U形的深度CNN,其中最大池化層和上采樣層對稱出現(xiàn)。U-Net最初是為了圖像分割問題設(shè)計(jì)的,后來的研究證明該網(wǎng)絡(luò)也可以被用來處理鬼成像的去噪問題。U-Net 的變體ResU-Net-在遙感數(shù)據(jù)方面獲得了很成功的應(yīng)用[11]。
圖2 待測物體和鬼成像圖像
如圖3 所示,一個(gè)CNN 用上殘差圖像訓(xùn)練;另一個(gè)用下殘差圖像訓(xùn)練。DRU-Net 反映了GI 的統(tǒng)計(jì)特性,使得GI 的殘差變得足夠簡單,易于學(xué)習(xí)。DRUNet不僅重構(gòu)出了豐富細(xì)節(jié)的高質(zhì)量圖片,還在測試集上展示出很強(qiáng)的泛化能力,取得了比U-Net 和DnCNN更好的效果。
圖3 雙殘差網(wǎng)絡(luò)(DRU-Net)示意圖
DRU-Net由上CNN 和下CNN 構(gòu)成,分別學(xué)習(xí)上殘差圖片和下殘差圖片,將其定義為
將負(fù)值轉(zhuǎn)換為0 使其更加適合卷積運(yùn)算,并將高度污損的GI圖片作為神經(jīng)網(wǎng)絡(luò)的輸入并分別使用兩個(gè)殘差作為學(xué)習(xí)目標(biāo)。在這種情況下,訓(xùn)練過程可以被寫為:
式中:Rup表示上CNN;Rdown表示下CNN。這里浮點(diǎn)數(shù)被轉(zhuǎn)換成了整數(shù),這樣就可以在明顯損失的情況下將殘差作為圖片保存。重構(gòu)的圖片表達(dá)式為
使用MSRA10K 數(shù)據(jù)集[12]作為待測物體圖像訓(xùn)練上述3 種神經(jīng)網(wǎng)絡(luò),并且直接采用U-Net 和DnCNN模型。選擇了5 120 張圖片并將它們的尺寸調(diào)整為128 ×128 像素,并將它們分成批,通過優(yōu)化仿真算法獲得了相應(yīng)的GI圖像。由方程(8)和(9)可以計(jì)算出上、下殘差圖像并與其對應(yīng)的GI 圖像配對,來訓(xùn)練DRU-Net。訓(xùn)練過程中,Adam優(yōu)化器[13]用來最小化均方誤差。訓(xùn)練集的批大小取為16,學(xué)習(xí)率設(shè)定為0.000 02,權(quán)重的衰減率設(shè)定為0.000 3。使用了PyTorch 1.3.1 和NVIDIA GTX 1080M 顯卡訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
圖4 展示了不同GIDL重構(gòu)結(jié)果之間的差異。第1 列是4 張沒有被包含在訓(xùn)練集中的待測物體圖像;第2 列是GI 仿真得到的圖像;第3、4、5 列分別是DnCNN、U-Net 和DRU-Net 處理得到的結(jié)果。圖4 中展示了U-Net和DnCNN相對于傳統(tǒng)的GI都不同程度地提高了成像質(zhì)量。相比較于U-Net 和DRU-Net,DnCNN處理圖像的結(jié)果并不理想,這是因?yàn)镚I 的殘差信息量過大,導(dǎo)致DnCNN并不適用。DRU-Net明顯取得了比其他兩種方法更好的效果。DnCNN、U-Net和DRU-Net 恢復(fù)的圖像參數(shù)如表1 所示。PSNR、SSIM越高,RMSE 越低,表示圖像質(zhì)量越高。在PSNR和SSIM指標(biāo)中,DRU-Net取得了最高值,而在RMSE指標(biāo)下,DRU-Net 取得了最小值。SSIM 指標(biāo)比PSNR能夠更精確地衡量圖像的質(zhì)量。GI、DnCNN、U-Net和DRU-Net的平均SSIM 分別為0.176、0.395、0.518 和0.555,數(shù)據(jù)表明DRU-Net圖像的平均SSIM 指標(biāo)達(dá)到了傳統(tǒng)GI方案的3 倍。
圖4 GI、DnCNN、U-Net和DRU-Net圖像處理結(jié)果
表1 GI、DnCNN、U-Net 和DRU-Net 的PSNR、SSIM 和RMSE數(shù)據(jù)表
將“批”的概念引入預(yù)處理階段并優(yōu)化了GI 的仿真算法,使得短時(shí)間內(nèi)獲取大量不同隨機(jī)圖樣的可靠數(shù)據(jù)成為可能,優(yōu)化后的仿真算法增強(qiáng)了GIDL 的泛化能力。針對GI的統(tǒng)計(jì)性質(zhì),將GI的殘差分成上、下殘差實(shí)現(xiàn)了進(jìn)一步的算法優(yōu)化,提出了新的GIDL 架構(gòu)——DRU-Net。通過仿真實(shí)驗(yàn)將DnCNN、U-Net 和DRU-Net進(jìn)行了圖像處理對比,結(jié)果顯示DRU-Net 相較現(xiàn)有的GIDL 具有顯著的優(yōu)勢,獲得了更好的鬼成像的圖像重構(gòu)效果。DRU-Net 恢復(fù)出的圖像的平均SSIM指標(biāo)可以達(dá)到傳統(tǒng)GI 方案的3 倍。目前,大多數(shù)GIDL都采用了監(jiān)督學(xué)習(xí),同時(shí)GI 過程也被視作一個(gè)降噪過程。在未來的研究中,鑒于顯著的信息丟失已經(jīng)不能被視作降噪問題,我們擬實(shí)施非監(jiān)督學(xué)習(xí)的方法,如圖像修復(fù)算法[14-15],來“猜”出圖像丟失的信息。