臧永盛,周冬明,王長城,夏偉代
(云南大學 信息學院,云南 昆明 650504)
由于大多數數碼成像系統的景深有限,往往只有在景深范圍內的目標是聚焦清晰的,而范圍以外的目標則容易失焦變得模糊,因此很難使所有目標都聚焦在一幅圖像中。多聚焦圖像融合技術其本質就是將同一場景具有不同聚焦區域的多幅源圖像整合成一個所有區域都聚焦的融合圖像。近年來,多聚焦融合技術已經被廣泛應用在很多領域當中,例如醫學成像、數碼成像和視頻監控等應用領域[1]。目前,針對多聚焦融合問題,大量的融合算法相繼被提出,這些融合方法主要可以歸納成3類:基于變換域、基于空間域和基于深度學習。
基于變換域的方法主要由變換、融合和逆變換這3個步驟組成。首先通過多尺度變換或稀疏特征矩陣分解等方法將源圖像分解成不同頻帶的系數,然后根據相應的融合策略將分解系數進行融合,最終將這些融合后的系數進行逆變換得到融合圖像。基于不同的分解算法,變換域的代表方法主要有:交叉雙邊濾波(CBF)[2]、離散小波變換(DWT)[3]和非下采樣輪廓變換(NSCT)[4]等。與變換域方法不同的是,基于空間域的方法只包括兩個步驟:聚焦檢測和重構。該類方法大致又可以分為:基于像素、基于塊和基于區域這3種融合算法。基于像素的方法通過直接對單個像素值進行操作獲得融合結果,但得到結果往往容易出現聚焦和失焦邊界模糊以及像整體對比度下降等情況。目前,基于像素的代表方法主要有:引導濾波(GF)[5]、聯合雙邊濾波(MISF)[6]以及密集SIFT(DSIFT)[7]等融合方法。基于塊和區域的方法首先使用圖像分割技術或固定大小的滑動窗口把源圖像分割成塊和區域,然后再利用圖像梯度或空間頻率等聚焦測量方法檢測相應塊或區域的清晰度,最終選擇清晰的塊或區域組合成融合結果。盡管基于空間域的融合方法易于實現,但這些方法很難得到完全準確的分割邊界,因此最終的融合結果在分割邊界周圍往往會出現明顯的偽影。
目前,卷積神經網絡(CNN)因其擁有強大的特征提取能力,被廣泛用于醫學圖像融合[8],紅外與可見光圖像融合和多曝光圖像融合等多個視覺融合任務中。在多聚焦融合領域,劉宇等提出了基于監督訓練的CNN融合算法[9]。他們將多聚焦圖像融合任務視為一個二分類任務,為了模擬多聚焦圖像,他們首先制作了大量的圖片對,然后利用卷積神經網絡來進行決策圖的預測,最終根據得到的決策圖獲得融合圖像。另一種基于監督學習的融合算法是P-CNN[10],它通過在公共數據集Cifar-10[11]添加12種不同形狀的高斯濾波并制作聚焦、失焦和未知這3個不同等級的標簽。但和CNN不同的是,P-CNN模型輸出3種標簽的概率,這些概率被應用在融合權重圖中。除以上兩種方法外,最近提出的通用融合算法IFCNN[12],它通過在RGB-D數據集[13](NYU-D2)上生成大量真實融合圖像數據并以監督的方式直接進行融合。以上3種基于監督學習的融合算法雖然充分地利用了卷積神經神經網絡強大的提取特征能力,取得了比傳統方法更優秀的效果。但是它們都需要制作帶有標簽的大型數據集,由于標簽制作的好壞直接影響生成的決策圖的準確性,進一步影響到融合圖像的質量,使得算法很難獲得理想的融合圖像。
因此,針對上述問題,本文提出了一種無監督學習的卷積神經網絡算法,它由編解碼網絡和活動水平檢測優化模塊組成。首先,編解碼網絡被用來提取圖像特征,訓練過程中采用像素損失和結構相似性損失組成的函數作為損失函數,以無監督的方式在現有的數據上訓練編解碼網絡。此外,為了進一步提升網絡的性能,我們還在網絡中引入了雙重注意力機制。活動水平檢測優化模塊則是通過利用改進的拉普拉斯能量和(SML)[14]對編碼部分輸出的深層特征進行活動水平檢測以生成準確的決策圖。最后,根據最終的決策圖實現圖像融合。與傳統方法相比,本文方法生成的融合結果能保有更多的源圖像細節特征,在失焦與聚焦邊界處也不會產生偽影。本文方法既充分的利用卷積神經網絡強大的特征提取能力,又不需要制作新的數據集,與基于監督學習的方法相比更容易實現,節約更多的成本,融合結果毫不遜色甚至更甚一籌。
圖1中顯示了本文提出的多聚焦融合算法的整體結構。如圖1所示,在訓練階段,本文使用編碼模塊和解碼模塊組成的網絡來對源圖像進行特征提取和重建,未進行融合操作。在測試階段,訓練好網絡并固定參數后,本文丟棄解碼模塊,對編碼模塊獲得的深層特征使用SML計算活動水平來獲得粗略的決策圖,然后對決策圖進行一系列形態學操作得到更準確的決策圖,最終根據優化后的策圖獲得融合的結果圖。

圖1 提出的網絡結構
如圖1所示,特征提取模塊主要包含兩個殘差模塊,殘差模塊由一個卷積層和雙重注意力模塊組成。首先,本文采用一個卷積層從輸入圖像中提取淺層特征,卷積通道數由1變成64。令Iin表示輸入的源圖像,淺層特征表示為
F0=Conv(Iin)=δ(Ww×Iin+B)
(1)
式中:Conv(.)表示卷積操作,B表示偏置項,δ表示激活函數ReLU,Ww表示卷積核權重。但是對于CNN來說,隨機初始化的卷積核權重容易導致網絡模型不穩定,而利用預訓練好的模型參數遷移到本文中可以很好地解決此問題。因此,在本文中,采用Pytorch預訓練的VGG19模型[15]的第一個卷積層(CONV1)作為本文網絡中的第一個卷積,并在訓練模型時固定了Conv1的參數。在VGG19模型中,Conv1包含64個大小為7×7的卷積核,其在最大的自然圖像數據集(ImageNet)上訓練。因此,Conv1能有效地提取圖像特征。
此外,如圖1中所示,殘差模塊主要由通道注意力模塊、像素注意力模塊和跳過連接組成。注意力模塊通過對信道或空間特征自適應地進行重新校準,能有效地增強空間特征編碼。跳過連接可以繞過低頻信息,提高了信息流動能力,增強了網絡的穩定性。殘差模塊表示為
Fn=Hn(Fn-1)
(2)
式中:Hn表示第n個殘差模塊的作用,Fn-1和Fn表示第n個模塊的輸入和輸出。通道注意力和像素注意力模塊可以差異性地對待不同通道特征和像素特征,自適應地重新校準通道和像素特征,通過級聯這兩個注意力模塊,可以在處理不同類型的信息時提供額外的靈活性,擴展CNN的表示能力,提高網絡魯棒性。
通道注意力主要通過關注不同的通道的重要性,賦予不同的通道不同的加權信息來實現的。如圖2所示,首先,使用全局平均池化得到全局通道信息
(3)
其中,Fn-1是輸入特征,H,W分別表示圖像的高和寬,Xc(i,j) 是第c個通道上在位置(i,j)的像素值。HP(·)為全局池化函數。通過全局池化,特征圖的形狀從C×H×W變為C×1×1。為了獲得不同通道的權重,還需要經過兩個卷積核大小為1×1的卷積層和ReLU激活函數,最后通過Sigmod函數獲得范圍在0-1的不同權重
CAc=α(Conv(δ(Conv(gc))))
(4)
其中,δ(·) 代表激活函數ReLU,α(·) 表示Sigmod函數。最后,輸入特征與與加權過的通道權重逐像素相乘
Fc=CA?F
(5)
其中,CA為加權過的通道權重,Fc表示經過通道注意力的特征。

圖2 雙重注意力模塊
此外,還考慮到多聚焦圖像在不同位置上像素分布不均勻,提出了一種像素注意力模塊,使網絡關注不同位置的像素特征,例如,失焦區域和邊界區域。和通道注意力不同的是,像素注意力沒有使用全局池化函數,而是直接通過兩個卷積核大小為1×1的卷階層和激活函數ReLU,經過上述操作后,特征圖的大小從C×H×W變換到1×H×W,然后在通過Sigmod得到不同像素的權重。最后把加權過的像素權重和輸入特征進行逐像素相乘
PA=α(Conv(δ(Conv(F*))))
(6)
FPA=F?PA
(7)
為了準確重建原始圖像,本文使用損失函數L來訓練我們的網絡
L=λLSSIM+LP
(8)
L由像素損失和結構性損失組合而成,λ是一個常數,用于平衡兩個損失的重要性,在本次實驗中設置為10。像素損失用于描述輸入圖像和輸出圖像之間的距離,表示如下
(9)
其中,I表示輸入的圖像,O表示輸出的圖像。結構性損失用來描述輸入圖像和輸入圖像之間的結構差異,表示如下
LSSIM=1-SSIM(O,I)
(10)
(11)
其中,σO和σI分別表示輸出圖像O和輸入圖像I的標準差,σO,I表示輸出圖像O和輸入圖像I之間的協方差。而μO和μI則分別表示輸出圖像O和輸入圖像I的均值。C1,C2,C3是3個常數以防止LSSIM在訓練過程中分母出現為0的情況。
本文使用SML對特征梯度進行測量以獲得活動水平,而不是測量傳統的特征強度來獲得活動水平。特征提取模塊為源圖像中的每個像素提供了高維深度特征。但是,傳統的SML和是針對單通道的灰度圖像設計的。因此本文針對高維深度特征設計了SML計算方法。設Fe為特征提取模塊獲得的高維深度特征。Fe(x,y)是一個特征向量,(x,y)是這個向量在圖像中的坐標,通過以下公式計算SML
(12)
Fe(x,y)=|2Fe(x+a,y+b)-Fe(x+a-1,y+b)-Fe(x+a+1,y+b)|+ |2Fe(x+a,y+b)-Fe(x+a,y+b-1)-Fe(x+a,y+b-1)|
(13)
其中,r是核半徑,a和b分別表示核半徑范圍內每個坐標的取值區間,與傳統的SML不同的是,傳統是基于塊計算的,本文中的是基于像素計算的,在處理特征圖邊界處時使用和傳統一樣的填充方法。接下來比較兩幅原圖像的高維深度特征的SML,獲得粗略的決策圖
(14)
得到的初始決策圖雖然可以比較好地識別出聚焦區域的位置,但是決策圖中不可避免地存在著決策誤差。這是由于波動或成像系統生成圖像過程中存在的噪聲所引發的。在成像過程中,可能會出現高斯噪聲或椒鹽噪聲,這將嚴重影響改進拉普拉斯能量和的計算。因此,需要一些形態學操作來消除決策圖中不正確的聚焦像素。因此,實驗中采用一致性驗證方法對初始決策圖進行校正。首先使用形態濾波運算處理,其表示為RS(.)。通過利用帶有圓盤結構元素的形態學運算符進行開閉運算來去除偽影。開運算可以用平滑邊界,閉運算可以用來排除小型黑色區域
RD(x,y)=RS(D(x,y))
(15)
初步優化后的決策圖RD(x,y)還需要使用小區域刪除策略對決策圖中的小塊區域進行進一步的優化。SF(·) 表示小區域刪除操作,其原理是把小塊區域面積和設定的閾值S進行比較,如果小塊區域面積小于閾值S則判定該區域需要被刪除。其中閾值計算設置遵循S=0.1×H×W,H,W是原圖像的長和寬
SD(x,y)=SF(RD(x,y),S)
(16)
在獲得精確的決策圖之后,本文選擇加權融合規則得到最后的融合結果,融合結果表示如下
Fu(x,y)=SD(x,y)Img1(x,y)+(1-SD(x,y))Img2(x,y)
(17)
其中,Img1,Img2表示需要進行融合的2張源圖像,SD(x,y)表示經過形態學操作處理過的最終決策圖。
為了充分的訓練網絡提取特征的能力,實驗中所采用的數據集是MS-COCO2017[16],該數據集包含82 783張訓練圖像,40 504張驗證圖像。實驗中采用ADAM optimizer[17]作為優化器,其中設置β1=0.9,β2=0.999和ε=10-8。初始學習率設置為lr=0.0001,然后2個周期減少0.8。批大小設置為8,并訓練30個周期。在圖像預處理方面,首先對輸入的圖片進行灰度化,然后調整大小為256×256。根據實驗需求,我們采用深度學習框架Pytorch1.5實現網絡模型,使用Cuda10.0對網絡模型進行加速,該網絡的訓練和測試是在使用一個NVIDIA 2070Super GPU,總共16 GB內存的系統上進行的。
為了驗證本文提出方法的有效性,本實驗選擇Lytro[18]彩色多聚焦圖像數據集作為測試集,把本文算法和其它12種最近提出的先進算法,如SR[19]、DSIFT[6]、CNN[8]和DEEP_FUSE[20]等12種算法,從主觀和客觀兩方面進來了比較驗證。首先,從主觀視覺方面定性比較本文算法和其余算法之間的性能差異。多聚焦融合結果應該盡可能包含所有源圖像的清晰細節特征。為此,本文同時可視化了各種算法的融合結果與對應偽彩圖像,以便可以更好觀察到它們主觀視覺差異。
圖3展示了測試集中“潛水員”源圖像和各種算法的融合結果圖,此外,為了更方便觀察對比,將融合結果的局部進行放大并置于左下角。和圖3(a)源圖像比起來,圖3(c)中潛水器的輪廓沒有源圖像清晰。圖3(d)中鏡框下方在聚焦和失焦邊界存在小塊模糊,圖3(e)、圖3(i)和圖3(k)中潛水器和海水區域邊界存在著偽影。圖3(h)中整個圖像顏色和亮度都發生了改變。圖3(g)和圖3(n)整個圖像和源圖像比起來都呈現出模糊。在圖3(o)中既沒有出現模糊,也沒有在邊界處出現偽影,充分融合了源圖像中的各種細節特征。
此外,為了更好地觀察融合過程中的細節,實驗通過使用圖3的每個融合結果減去源圖像A產生的偽彩圖,在偽彩圖中,聚焦和失焦有清晰的邊界,且減去的部分沒有輪廓,在這里減去的部分就是人臉部分,說明融合效果越好,反之,若邊界周圍存在噪聲像素,則說明融合效果越差。在圖4中,可以觀察到,只有DSIFT、CNN、MWG和本文方法,人臉部分被減去,呈現出干凈的畫面,表明這4種方法在融合過程中充分利用了源圖像信息,沒有引入其它的噪聲,而其余的9種方法,在人臉部分就存在明顯的噪聲像素,則表示融合效果不佳。此外,對邊界位置進行局部放大,本文方法和DSIFT、CNN、MWG相比,本文方法在聚焦和失焦區域保存著完整且清晰的邊界輪廓,其余3種方法中,邊界周圍存在著很多噪聲像素,這些噪聲像素會很大程度影響融合圖像的質量,說明本文方法在邊界部分細節融合得更好。
圖5是測試集中“女孩”的源圖像和各種算法的融合結果圖,圖5(c)、圖5(d)和圖5(e)在建筑和女孩衣服的邊界處,沒有清晰的界限,出現小塊模糊,甚者在圖5(e)中有部分建筑覆蓋在女孩的衣服。圖5(j)和圖4(i)背景部分整體不夠清晰,圖5(i)和圖5(k)在女孩周圍存在一層偽影,這些區域都出現了對源圖像細節信息的嚴重丟失。圖5(h)整體圖像出現失真,光度偏亮的效果,對源圖像細節的丟失更加嚴重。圖5(o)不但沒有出現偽影,顏色亮度都保持和源圖像一致,成功融合了源圖像的所有細節。同樣地,根據圖5產生了對應算法的偽彩圖。如圖6所示,從圖中可以看出,在所有的融合算法中,只有CNN、DSIFT和本文的算法,小女孩部分被干凈地減去,在聚焦和失焦區域有明顯的分割邊界,其余算法的分割邊界都是模糊不清或者存在大量噪聲像素,而CNN和DSIFT算法的分割邊界周圍也有部分噪聲像素,只有本文的算法有干凈的分割邊界。

圖3 “潛水員”圖像融合結果

圖4 “潛水員”圖像各融合結果的偽彩

圖5 “女孩”圖像融合結果

圖6 “女孩”圖像融合結果的偽彩圖
圖7可視化了測試集中“猴子”圖像的各種算法融合結果。在圖7中,通過對猴子的帽子邊緣部分進行局部4倍放大,可以看出源圖像A中帽子部分是清晰的,而后面建筑物是模糊的,源圖像B中帽子是模糊的,后面的建筑物是清晰的。圖7(c)雖然帽子部分是清晰的,但是建筑物部分是模糊的,沒有較好融合源圖像B中的信息。圖7(d)、圖7(l)、圖7(n)和圖7(k)中帽子和建筑物都呈現出模糊的狀態,更糟糕的是圖7(k)中在帽子部分還有噪聲像素,這些融合算法都沒有很好融合兩幅源圖像中的信息。圖7(g)和圖7(m)帽子是模糊的,建筑物是清晰的,這兩種算法沒有更多融合源圖像A中的信息。只有圖7(i)和圖7(o)帽子和建筑物都是清晰的,但是圖7 (i)中帽子下邊緣存在偽影,因此只有圖7(o)充分的融合了源圖像A和源圖像B中的清晰部分的信息。相應地,圖8可視化了圖7對應的偽彩圖。從偽彩圖中可以看出,圖8(b)、圖8(g)和圖8(n)在清晰和模糊部分形成了明顯的邊界,對帽子和建筑物接觸位置進行局部4倍放大,根據局部放大圖可以看出,只有圖8(n)中的帽子還保持完成輪廓,其余兩種算法要么在帽子輪廓周圍存在噪聲像素要么已經丟失了帽子的基本輪廓。

圖7 “猴子”圖像融合結果

圖8 “猴子”圖像融合結果的偽彩圖
為了更全面評價不同算法的融合結果,除了以上的客觀評價,還需要對融合結果進行客觀指標的分析。近年來,針對融合圖像質量的評價指標,主要包括4個方面評價指標:①基于信息論的指標;②基于圖像特征的指標;③基于圖像結構相似性的指標;④基于感知的指標。本文采用了覆蓋以上4個方面的非線性相關信息熵(Qnice)、平均梯度(AVG)、標準差(STD)和Tsallis熵(Qte)等7個客觀指標對最近提出的14種算法生成的融合圖像客觀評價。這7個指標可以客觀地反映各種融合結果在視覺方面,結構方面以及細節方面的能力。對于這7個客觀指標,值越高,代表融合的圖像質量越好。
不同算法在Lytro測試集上20組圖像的客觀指標平均值見表1,每一項指標中加粗值表示最好的指標,加下劃線值表示第二好的指標。從表1中可以看出,7項指標中,本文算法有6項指標是最高的,在只有平均梯度指標排在第二。特別地,本文算法的VIFF值比SF算法提高了0.2593,AVG值也提高了3.1434,可以看出基于深層特征的聚焦檢測比直接在灰度圖片上進行聚焦檢測擁有更大的優勢。綜合所有算法在主觀和客觀上的表現,本文算法融合效果更加顯著,指標明顯領先于其余14種算法。

表1 Lytro數據集各方法評估指標
本文通過將編解碼模型和改進的拉普拉斯能量和相結合,實現了一種有效且新穎的多聚焦圖像融合算法,并取得不錯的融合效果。算法首先將注意力機制引入到編解碼模型之中增加網絡的魯棒性和特征提取能力,網絡通過無監督學習的方式進行訓練。然后再利用傳統方法中的改進的拉普拉斯能量和進行活動水平檢測獲得決策圖,并根據決策圖進行圖像融合。實驗結果表明,與目前的融合方法相比,提出的方法具有優越的融合性能。之后,會在本文方法基礎上探索更有效更靈活的活動水平檢測方法,以獲得更好的融合框架實現更好的融合性能。