王帥,陳波
(華北理工大學電氣工程學院,唐山063210)
數字全息技術[1]憑借著無損傷、非接觸、高分辨率、實時性以及處理迅速等優(yōu)點,被廣泛應用于形貌形變測量[2]、生物醫(yī)學細胞成像分析[3]、粒子場測量[4]等領域。數字全息根據記錄光路不同可分為同軸全息和離軸全息。同軸全息,在現光波沿同軸方向傳播,其光路結構簡單,能充分有效的利用了相機的空間帶寬。缺點在于直透光、孿生像和原始像不可分離,可以通過多步相移技術[5]有效去除孿生像的干擾,但該方法會導致所謂的兩步重建過程,即相位恢復和聚焦,使得重建過程變的復雜。離軸全息圖,參考光以一定角度照射探測器,在現時直接將透射光與產生共軛像的衍射光分離,可通過單次曝光采集完成相位測量。而缺點在于,雖然數字全息相位重建技術是利用計算機數字計算完成相位在現,但傳統(tǒng)相位重建過程仍多采用人工方法選擇實像頻譜,限制了重建像質量和重建速度的提高。
近年來,深度學習[6]廣泛應用于圖像復原[7]、目標分類[8]、圖像超分辨率[9-10]等計算機視覺任務中。Yair Riv?enson等人用改進的卷積神經網絡對使用反向傳播算法得到的初步相位圖進行全息圖像重建[11-12];Ozcan等人提出基于多尺度卷積神經網絡的方法用以去除全息重構中的共軛像與零級像,實現了相位恢復和全息圖像重建[13];2018年,Ozcan等人提出了基于深度學習的自動聚焦和相位恢復在全息成像中的擴展景深[14];Wonseok Jeon等人利用多尺度卷積網絡實現對全息圖的去噪處理[15-17];2018年,Wang等人結合Ozcan網絡和U-Net網絡,提出了一種新型網絡結構eHoloNet網絡,該網絡將同軸數字全息圖和原始圖像進行端對端映射,然后利用這些特征重建圖像[18];2019年,Wang等人提出一種新型的Y-Net網絡結構,實現了數字全息重建方法一對二的深度學習框架,可同時重建出單個數字全息圖的強度信息以及相位信息[19]。為此本文通過數值仿真方法研究了基于深度學習的全息重建方法。相比于傳統(tǒng)的重建方法,經過充分訓練的卷積神經網絡能一步到位直接重建全息圖,無需任何預處理。
數字全息術利用CCD等光電探測器記錄全息圖,即目標光與參考光的干涉信號,然后利用數字信號處理方法模擬光學衍射重構出目標圖像。典型的全息光路如圖1所示,激光器發(fā)出的光束一路通過目標后,攜帶著目標信息作為目標光,另一路作為參考光,光電探測器記錄參考光和目標光的干涉信號:
其中R(x,y)和T(x,y)分別表示參考光和目標光在探測平面上的復振幅。
傳統(tǒng)的數字全息目標圖像重建方法是,采用數字信號處理方法模擬參照光通過全息圖I(x,y)的衍射傳播,即可得到目標圖像。對于離軸全息,通過合理選取目標光和參考光的夾角能夠消除孿生像的干擾,但是系統(tǒng)的空間帶寬積不能有效利用;對于同軸全息,則需要采用多步相移等方法消除孿生像和背景噪聲的干擾。為此,下面重點介紹基于深度學習的目標重建方法。
圖1 全息光路圖
基于深度學習的目標重建方法核心是構建和訓練神經網絡模型。神經網絡模型經過大量樣本的持續(xù)訓練,最終建立了輸入與輸出之間的非線性映射關系,即全息圖和目標圖之間的映射關系,可替代傳統(tǒng)算法應用于數字全息圖像重建工作。
卷積神經網絡能夠大幅減少計算量,從而節(jié)約計算資源,降低時間成本。因此,使用卷積神經網絡來建立我們的網絡結構,提出了如圖2(a)所示的CNN網絡模型,在如圖2(a)所示CNN網絡結構中主要有三種類型的功能層:卷積層、池化層和全連接層。如圖(b)所示為卷積層,它由卷積塊和激活函數組成,選用tanh激活函數。為了避免過擬合和梯度消失,我們在網絡模型中添加批量歸一化(BN)操作和值為0.5的神經節(jié)點丟失率(Dropout),以達到增加訓練速度和提高網絡泛化能力的目的。將全息圖以及對應的原強度圖輸入到網絡對網絡模型進行訓練,訓練過程中不斷調整網絡的超參數,對原有網絡進行優(yōu)化,從而得到更好的輸出結果。該網絡使用Tensorflow搭建深度學習框架,實現了CNN網絡模型。該模型訓練的硬件平臺為Intel i5-8300H,8GB RAM,NVIDIA GeForce GTX 1050Ti GPU的工作站,軟件為Windows10操作系統(tǒng),Python3.0的編譯環(huán)境。
圖2 CNN網絡模型
利用MATLAB數值仿真獲得全息圖和對應的原強度圖構建數據集,將全息圖像作為網絡輸入,對應的原強度圖作為網咯輸出。數據集分為訓練集和測試集兩部分,訓練CNN網絡過程中,網絡只會學習訓練集的內容,測試集用于對網絡的測試不參與訓練過程,當網絡模型訓練完成后,用測試集測試網絡效果,輸入測試集內的全息圖,CNN模型會迅速輸出對應的重建圖像。
在MATLAB中建立了離軸數字全息仿真模型,目標圖像大小為64×64像素,通過全息仿真模型得到對應目標的全息圖像,圖像大小為128×128像素。
利用卷積神經網絡來搭建網絡結構,如圖2所示。將全息圖輸入網絡模型,首先通過三個不同數量過濾器的卷積層(過濾器個數分別為16、32、64),它是由(3,3)大小的卷積核以及tanh激活函數組成,卷積核的移動步幅為(1,1)大小,用來提取圖像特征。每一卷積層之后都需要加上相同的池化層,池化步幅為(2,2)大小,并選用的是最大池化方法(Maxpooling)。在這之后,在分別經過兩個相同的池化層,通過池化來降低卷積層輸出的特征向量,同時改善輸出結果,防止過擬合。最后通過兩個全連接層(FC),使用兩組4096個神經元做全連接,神經元通過激活函數進行輸出。激活函數的作用是加入非線性因素,從而解決非線性函數擬合問題,在卷積神經網絡模型建立過程中,對比了sigmoid函數、tanh函數、Relu函數等常用的激活函數對損失函數的影響,選擇tanh函數作為輸入層和隱含層的激活函數。通過全連接層將前面經過多次卷積后高度抽象化的圖像特征進行整合,最終輸出重建結果。
我們通過數字全息仿真模型進行數據采集。共采集到全息圖與相對應的實際目標強度圖各8200張,將采集到的數據圖像分兩類,一類作為卷積神經網絡的訓練集用于網絡模型的特征學習,共8000張;一類作為卷積神經網絡的測試集用于對訓練好的網絡的測試,共200張。數據集中的全息圖,圖像尺寸大小為128×128像素,如圖3所示。利用全息圖所對應的原圖的強度信息制作標簽圖像,圖像尺寸大小為64×64像素,對應的標簽圖像如圖4所示。
圖3 全息實驗圖像
圖4 標簽圖像
我們將損失函數定義為均方誤差(MSE),并對網絡超參數進行一定的設置,具體網絡模型訓練超參數如表1所示。
表1 卷積網絡模型訓練參數
應用表1中的超參數對網絡進行訓練,我們采用MSEloss(均方誤差)作為訓練過程中的損失函數,訓練結果如圖5所示。圖5繪制了相對應的train-MSEloss和test-MSEloss隨循環(huán)迭代次數(epoch)的loss曲線。循環(huán)迭代次數為40次,最終穩(wěn)定在0.0017左右,訓練完畢。
圖5 網絡模型loss曲線
圖6 重建測試結果
從測試集中隨機選擇4組全息重建結果進行誤差分析,如圖6所示。第一列為實驗平臺采集的全息圖像,我們采用均方根的方法進行誤差對比,通過計算第二列原強度圖和對應的第三列CNN重建圖的均方根,來反映重建結果的好壞,得到4組重建誤差的均方根值分別為:0.0435、0.0299、0.0411、0.0537,結果說明基于深度學習的全息重建方法具有較高的重建精度,能夠端對端的一步到位而無需任何預處理,直接利用全息圖重建出物體的強度信息。
為了更直觀體現CNN網絡模型對單幅全息圖的重建效果,選用了經典傳統(tǒng)傅里葉變換全息重建方法來進行對比分析,重建結果如圖6第4列所示。從圖中通過CNN重建結果與傳統(tǒng)重建結果對比可以看出,卷積神經網絡重建結果優(yōu)于傳統(tǒng)重建結果,極大提高了重建效率,并且無需反向傳播處理,簡化了全息重建過程。
在這篇文章里,我們提出一種新的CNN網絡結構,即一種數字全息深度學重建方法,該方法大大減少了實驗所需數據量,使得數字全息重建效率顯著提升。該模型通過建立端對端的映射關系,學習圖像特征,實現全息重建,克服了傳統(tǒng)數字全息重建過程中孿生項、直流項的影響。通過使用CNN網絡模型,可以直接重建出物體的強度信息,并且重建是一個一步完成的過程,無需反向傳播。