李寶奇 黃海寧 劉紀元 劉正君 韋琳哲
(中國科學院聲學研究所 北京 100190)
(中國科學院先進水下信息技術重點實驗室 北京 100190)
我國正處于從近海防御到遠海防御的過渡期,海洋裝備體系正朝著無人化、智能化的方向快速發(fā)展。光學成像具有信息豐富、分辨率高和成本低等優(yōu)點,是水下近距離環(huán)境感知的主要手段,廣泛用于水下目標確認、水下地形勘測、海底物種監(jiān)測、海底管道探傷、海底光纜鋪設、無人潛航器導航、定位、避障和目標識別等多種場合[1]。然而,與空氣介質相比,水體對于光的衰減作用更為嚴重,主要表現(xiàn)在對于光的選擇性吸收和強烈散射,尤其是在渾濁水體條件下,受多重散射的作用水下光學圖像的可視性會變得更差,增加了水下光學圖像的解釋難度。
圖像增強通過一定技術手段有選擇地突出圖像中感興趣的特征或者抑制圖像中某些不需要的特征,使圖像與視覺響應特性相匹配。Hitam等人[2]針對水下圖像增強而提出了一種混合對比度受限自適應直方圖均衡(Contrast Limited Adaptive Histogram Equalization, CLAHE)顏色模型。該方法通過在RGB和HSV顏色模型上執(zhí)行CLAHE算法,再使用歐幾里德范數(shù)將兩組結果結合在一起,來降低水下圖像噪聲和偽影。Ghani等人[3]提出一種雙圖像瑞利拉伸對比度受限自適應直方圖的新方法,該方法結合了全局和局部對比度校正,通過增加圖像細節(jié)改善水下圖像的可見度。Li等人[4]針對水下光線吸收和散射的影響導致的目標偏色與模糊問題,提出了一種基于顏色校正和水下圖像去霧的混合方法,以改善退化的水下圖像的視覺質量。Deng等人[5]提出了一種水下圖像增強算法RLSCD (Removing Light Source Color and Dehazing),RLSCD有效改善水下圖像偏色問題。雖然上述圖像增強算法可以實現(xiàn)一定渾濁度范圍下的圖像恢復,但是恢復后的圖像與低渾濁度下圖像存在明顯區(qū)別,無法恢復到同等畫質。
深度學習[6–8]的出現(xiàn)從根本上改變了人們處理復雜和不確定性問題的方法,與傳統(tǒng)的機器學習和信號處理方法相比,深度學習模擬人類視覺神經系統(tǒng)的層次體系,含有更多的隱含單元層,通過對原始數(shù)據(jù)逐層的非線性變換,可以得到更高層次的、更加抽象的特征表達,高層次的表達能夠強化輸入數(shù)據(jù)的區(qū)分能力,同時削弱不相關因素的不利影響[9,10]。Goodfellow等人[11]提出生成對抗網絡(Generative Adversarial Networks, GAN)。GAN由生成式模型和判別式模型組成,生成模型用于捕捉樣本數(shù)據(jù)的分布,判別模型用于判斷生成數(shù)據(jù)是否正確,GAN為獲取大量的樣本數(shù)據(jù)提供了非常好的解決思路。為了提高GAN模型的數(shù)據(jù)生成質量和穩(wěn)定性,Radford等人[12]提出了深度卷積生成對抗網絡(Deep Convolution Generative Adversarial Networks, DCGAN)。Arjovsky等人[13]提出WGAN(Wasserstein GAN)模型。WGAN使用Earth-Mover保證了生成樣本的多樣性。隨著GAN理論體系的完善[14,15],其研究成果促進了圖像增強的發(fā)展。Isola等人[16]提出了Pix2Pix模型。Pix2Pix實現(xiàn)了基于GAN的圖像遷移任務,但Pix2Pix要求的輸入必須是成對圖像。為了解決輸入圖像成對的限制,Zhu等人[17]基于GAN和對偶學習設計了循環(huán)一致性對抗網絡(CycleGAN)。CycleGAN利用雙重任務之間的反饋信號對模型進行訓練來實現(xiàn)非配對圖像遷移學習任務。在此基礎上,F(xiàn)abbri等人[18]提出了一種基于CycleGAN的水下圖像顏色校正方法,降低水下圖像的偏色和噪聲的影響。不過,CycleGAN生成器網絡特征提取層采用固定大小的卷積核容易造成圖像信息的丟失;另外,原始循環(huán)一致?lián)p失函數(shù)僅是對輸入圖像和重構圖像的顏色約束,無法滿足生成圖像與真實圖像結構上的相似。對生成器網絡而言,通常的做法是增加模型的深度[19]或者增加模型的尺度[20]。隨著對卷積神經網絡研究的深入,Li等人[21]提出了SKNet網絡模塊。SKNet在多尺度模塊的基礎上設計了一個特征選擇機制,即通過學習能保留最有價值的多尺度特征層,SKNet采用大小不同卷積核,顯然會增加生成器網絡的參數(shù)和計算量。為了保證生成圖像與輸入圖像的結構相似性,Huang等人[22]提出了基于SSIM (Structural Similarity index) 的循環(huán)生成對抗網絡SS-GycleGAN。SS-GycleGAN的引入會增加輸入圖像與重構圖像之間結構的相似性,進而提高生成圖像的質量。不過,SS-GycleGAN僅在一個尺度上對輸入圖像和重構圖像進行約束。
針對上述方法存在的問題,本文首先提出一種兼顧多尺度通道可選擇和計算量低的特征提取單元BSDK (Bottleneck Selective Dilated Kernel),并利用BSDK設計了一個新的生成器網絡BSDKNet。接著,提出了一種基于多尺度結構相似性的循環(huán)一致?lián)p失函數(shù)MLF (Multi-scale Loss Function),從多個尺度上保證輸入圖像(渾濁水體圖像)與生成圖像(清澈水體圖像)結構信息相似。最后,在Cycle-GAN框架內通過結合BSDKNet和MLF(BM-Cycle-GAN)實現(xiàn)渾濁水下目標圖像到清澈水下目標圖像快速、準確的遷移生成。
本文通過改進生成器網絡和循環(huán)一致?lián)p失函數(shù)來改善渾濁水體圖像增強的精度和速度。本節(jié)首先介紹渾濁水體圖像增強算法BM-CycleGAN網絡結構、多尺度損失函數(shù)MLF和訓練過程。接著介紹BSDK特征提取單元和BSDKNet生成器網絡結構。
BM-CycleGAN由一組對稱的生成器{G,F}、兩個判別器{DX,DY}和循環(huán)一致?lián)p失函數(shù)MLF組成,網絡結構如圖1所示。在BM-CycleGAN上路,渾濁圖像x經生成器G生成清澈生成圖像G(x),再經生成器F生成渾濁重構圖像F(G(x))。在BM-Cycle-GAN下路,清澈圖像y經生成器F生成渾濁生成圖像F(y), 再經生成器G生成清澈重構圖像G(F(y))。生成器 {G,F}的網絡結構一樣、將在2.2節(jié)做重點介紹。在BM-CycleGAN中路,判別器DX負責區(qū)分渾濁圖像x和渾濁生成圖像F(y)的 真假;判別器DY負責區(qū)分清澈圖像y和清澈生成圖像G(x)的真假。判別器{DX,DY}的網絡結構一樣,均采用PatchGAN結構[17]。在BM-CycleGAN上路和下路的外側,循環(huán)一致?lián)p失函數(shù)MLF通過減少輸入圖像與重構圖像的差異來引導模型的訓練。
圖1 BM-CycleGAN網絡結構
假定x~pdata(x),y~pdata(y) 代表X,Y兩個域中數(shù)據(jù)服從的概率分布。BM-CycleGAN生成器G:X →Y的單項損失函數(shù)為
將式(1)、式(2)與多尺度循環(huán)一致?lián)p失函數(shù)MLF合并可以得到BM-CycleGAN總損失函數(shù)為
BBB(Bottleneck Building Block)模塊、SK模塊、BSK模塊和BSDK模塊的關系如圖2所示。圖2(a)為CycleGAN采用的BBB模塊,它由兩個1×1 的卷積層和1個3 ×3的卷積層組成,第1個1×1卷 積層用于通道壓縮,第2個1 ×1卷積層用于通道擴張。圖2(b)為SK模塊,它由分裂層、多尺度卷積層、融合層和選擇層組成。輸入特征經分裂層送入多尺度分組卷積層,得到多個尺度的輸出特征;接著,在融合層對輸出特征進行相加融合;最后,在選擇層對多尺度特征進行篩選來提高提取特征的準確性。圖2(c)是BSK模塊,是SK模塊的BBB形式。輸入特征首先經過第1個 1 ×1的卷積層進行通道壓縮,然后經過SK模塊進行多尺度特征選擇,最后經過第2個 1×1的卷積層進行通道擴張。圖2(d)為BSDK模塊,它在圖2(c)結構的基礎上將分裂層替換成分割層,分割層實現(xiàn)輸入特征通道等分;另外,將大尺寸卷積核 (5×5和7×7) 替換為深度可分離空洞卷積[23],深度可分離空洞卷積首先將標準卷積分解成深度可分離卷積和點卷積[24],然后在深度可分離卷積中引入1個稱作空洞率[25,26]的新參數(shù),并利用擴張率控制卷積核處理數(shù)據(jù)時各值的間距;最后,利用拼接層實現(xiàn)多尺度特征通道拼接融合。
圖2 BSDK特征提取單元
對于一個任意的輸入特征T∈ΦH×W×M,其中H×W為輸入特征的尺寸,M為輸入特征的通道數(shù)。輸入特征T進入BSDK模塊的兩個支路網絡:左側支路負責多尺度特征提取和選擇;右側支路保持輸入特征T不變,并最后與左側支路網絡的輸出特征相加。對于左側支路網絡,輸入特征T首先經過壓縮層,其輸出特征的數(shù)學表達為
其中,Rrdf為該層RDF尺寸,R為該層卷積核尺寸,κ為該層空洞率大小。例如,一個卷積核尺寸為3 ×3, 空洞率2 的空洞卷積層,RDF的實際覆蓋范圍為Rrdf= 5。 增大空洞率κ可以擴大卷積層的感受野。因此,BSDK可以用更少的參數(shù)和計算量實現(xiàn)與BSK相當?shù)奶卣魈崛∧芰Α?/p>
接著,對K個多尺度深度可分離空洞卷積層的輸出Vk在通道項進行拼接融合,其輸出特征的數(shù)學表達式為
BSDKNet沿用CycleGAN原始生成器的網絡架構,包括編碼器、遷移器和解碼器組成,其網絡結構如圖3所示。編碼器由保持層(第1卷積層)和下采樣層(第2~5卷積層)組成,遷移器由BSDK模塊(第6 ~1 4 卷積層)組成,解碼器由上采樣層(第15~18卷積層)和輸出保持層(第19卷積層)組成。本文BSDK卷積核尺寸為3×3,設置4個不同空洞率的特征層,空洞率分別為1, 2, 3和4,分別對應SK模塊卷積3×3, 5×5, 7×7和9×9 4個尺度的卷積核。
圖3 生成器網絡BSDKNet結構
以BM-CycleGAN上路生成器G說明渾濁水體圖像在BSDK網絡中特征尺寸變化過程。渾濁水體圖像首先經輸出保持層,尺寸保持不變、通道數(shù)由3變?yōu)?4。接著,經過下采樣層,通道數(shù)逐層放大1倍、特征尺寸減少1倍,總共4個下采樣層,最終特征尺寸變?yōu)檩斎雸D像的1/16、通道數(shù)為256。然后,經過9個由BSDK堆疊組成的生成器,每一層的尺寸和通道數(shù)保持不變。隨后,經過上采樣層,通道數(shù)逐層減少1倍、尺寸增大1倍,總共4個上采樣層,最終輸出特征尺寸與輸入圖像相等、通道數(shù)為64。最后,經過輸出保持層,生成與輸入圖像通道數(shù)相同的清澈水下目標圖像。
為了驗證生成器網絡BSDKNet和循環(huán)一致?lián)p失函數(shù)MLF對CycleGAN性能的影響,實驗以分類準確率、生成器網絡參數(shù)大小和生成器運算時間作為模型的定量評價指標。設計實驗1,以原始Cycle-GAN模型為參考,比較分析BM-CycleGAN與其它模型之間的性能差異。設計實驗2,比較分析BSDKNet網絡和MLF損失函數(shù)對BM-CycleGAN的影響。設計實驗3,比較分析不同權重系數(shù)的MLF對BM-CycleGAN性能影響。設計實驗4,比較分析不同多尺度系數(shù)的BSDKNet對BM-CycleGAN性能影響。
為了更好地檢驗BM-CycleGAN對渾濁水體圖像的增強效果,我們搭建了一個渾濁水體和清澈水體環(huán)境,其中渾濁水體環(huán)境的光衰減系數(shù)大于0.6,清澈水體環(huán)境的光衰減系數(shù)小于0.2。通過水下攝像機對兩種水體下的目標進行圖像采集,并創(chuàng)建渾濁清澈水體數(shù)據(jù)集TC(Turbid and Clear)。數(shù)據(jù)集TC渾濁條件下的圓柱形目標和長方形目標的數(shù)量分別是72和63,清澈條件下的圓柱形目標和長方形目標的數(shù)量分別是79和65。圖像的尺寸為300像素× 300像素,剪裁至256像素× 256像素送入模型訓練和測試。
本實驗比較分析CycleGAN, SS-CycleGAN,BSK-CycleGAN和BM-CycleGAN之間的性能差異,其中CycleGAN表示原始循環(huán)一致生成對抗網絡;SS-CycleGAN的生成器網絡基于BBB模塊,循環(huán)一致?lián)p失函數(shù)采用文獻[22];BSK-CycleGAN的生成器網絡基于BSK模塊,循環(huán)一致?lián)p失函數(shù)采用文獻[17];BM-CycleGAN的生成器網絡為BSDKNet,循環(huán)一致?lián)p失函數(shù)為MLF。保存Cycle-GAN, SS-CycleGAN, BSK-CycleGAN和BM-Cycle-GAN迭代1000次時的生成模型,并生成清澈水下目標圖像。記錄4個模型的分類準確率、參數(shù)大小和運算時間,實驗結果如表1所示。
表1 渾濁水體圖像增強算法性能比較
從表1可以發(fā)現(xiàn),BM-CycleGAN 的分類準確率高于CycleGAN, SS-CycleGAN和BSK-CycleGAN,分別高3.27%, 2.54%和1.64%;參數(shù)比Cycle-GAN, SS-CycleGAN和BSK-CycleGAN 分別減少4.15MB, 4.15MB和11.39MB;運算時間比Cycle-GAN, SS-CycleGAN和BSK-CycleGAN分別降低0.107 s, 0.107 s和0.034 s。在參數(shù)和運算時間方面,CycleGAN和SS-CycleGAN的生成器基于BBB模塊(標準卷積),計算成本高;BSK-CycleGAN的生成器網絡基于BSK模塊(分組卷積),計算成本較低,不過BSK模塊每個多尺度特征層的輸入特征數(shù)量與BBB模塊相同,模型參數(shù)較大;BM-CycleGAN的生成器基于BSDK模塊,為深度可分離卷積,計算成本最低,同時BSDK多尺度特征層的輸入特征數(shù)量之和與BBB模塊相等,因此模型參數(shù)依然保持較低水平。綜合考慮分類準確率、參數(shù)大小和運算時間3個評價指標,BM-CycleGAN優(yōu)于其他模型。
為了更直觀地說明本文算法的性能,將原始圓柱形目標渾濁圖像(圖4(a))和原始長方形目標渾濁圖像 (圖4(c))分別送入訓練好的BM-CycleGAN的生成模型中,得到清澈圓柱形目標生成圖像(圖4(b))和清澈長方形目標生成圖像(圖4(d)),圖4(b)和圖4(d)與原始清澈目標圖像特性以及背景紋理非常接近,達到了假亂真的水平。
圖4 渾濁水體增強效果
本實驗比較BSDKNet生成器網絡和MLF損失函數(shù)兩個因素對BM-CycleGAN的影響。當兩個因素都不起作用時,記做CycleGAN(原始循環(huán)一致生成對抗網絡);當僅MLF損失函數(shù)起作用時,記做M-CycleGAN;當僅BSDKNet生成器網絡起作用時,記做B-CycleGAN;當兩個因素都起作用時,記做BM-CycleGAN(本文方法)。保存4種模型迭代1000次時的生成模型,并生成清澈水下目標圖像。記錄模型的分類準確率、參數(shù)大小和運算時間,實驗結果如表2所示。
從表2可以發(fā)現(xiàn),M-CycleGAN, B-CycleGAN和BM-CycleGAN比CycleGAN的分類準確率分別提高0.99%, 2.17%和3.27%,其中B-CycleGAN比M-CycleGAN的分類準確率提高1.18%。由此可見,BSDKNet生成器網絡和MLF損失函數(shù)兩個因素均能改善CycleGAN的性能。M-CycleGAN僅啟用MLF損失函數(shù),在MLF的約束下,分類準確率比CycleGAN提高0.99%,模型的參數(shù)大小和運算時間相同。B-CycleGAN僅啟用BSDKNet生成器網絡,在BSDKNet的作用下,分類準確率比Cycle-GAN提高2.17%,模型的參數(shù)大小減少4.15MB,運算時間降低0.107s。綜合考慮分類準確率、參數(shù)大小和運算時間3個評價指標,BSDKNet生成器網絡比MLF損失函數(shù)對CycleGAN的改善作用更大。此外,從表2也可以進一步發(fā)現(xiàn)和驗證,模型的參數(shù)大小和運算時間由生成器網絡決定,與循環(huán)一致?lián)p失函數(shù)無關。
表2 BSDKNet生成器網絡和MLF損失函數(shù)對BM-CycleGAN性能的影響
本實驗比較不同權重系數(shù)MLF對BM-CycleGAN的影響,生成器為BSDKNet,通過改變MLF權重系數(shù)得到不同條件下BM_CycleGAN模型,其中多尺度循環(huán)一致?lián)p失函數(shù)MLF權重系數(shù)分別為1, 2,3, 4, 5, 6, 7, 8和9。保存9種模型迭代1000次時的生成模型,并生成清澈水下目標圖像。由于改變MLF的權重系數(shù)不影響生成器的參數(shù)大小和模型的運算時間,本實驗僅記錄分類準確率,實驗結果如表3所示。
從表3可以發(fā)現(xiàn),BM-CycleGAN的分類準確率呈現(xiàn)先增大后減小的規(guī)律,在權重系數(shù)等于6的條件下,BM-CycleGAN的分類準確率最高等于98.37%。也就是說,合理的權重系數(shù)能提高BM-CycleGAN的性能。
表3 不同權重系數(shù)(1-9)MLF對BM-CycleGAN性能的影響
本實驗比較不同多尺度系數(shù)BSDKNet對BMCycleGAN性能的影響。循環(huán)一致?lián)p失函數(shù)為MLF,權重系數(shù)等于6。通過改變BSDKNet多尺度系數(shù)得到不同條件下的BM-CycleGAN模型,輕量化生成器BSDKNet的多尺度系數(shù)分別為1, 2, 4和8,保存4種模型迭代1000次時的生成模型,并生成清澈水下目標圖像,記錄分類準確率、參數(shù)大小和運算時間,實驗結果如表4所示。
從表4可以看出,BM-CycleGAN的分類準確率隨 BSDKNet多尺度系數(shù)增大而增加,模型參數(shù)保持不變,運算時間逐漸增大。可見,BSDKNet模塊在增大多尺度系數(shù)的條件下,模型的參數(shù)并沒有增加。計算時間的增加主要是由于算法在計算多尺度卷積時,采用的是逐個操作。本文兼顧分類準確率和運算時間,本文多尺度系數(shù)等于4。
表4 不同多尺度系數(shù)(1,2,4,8)條件下的BSDKNet對BM-CycleGAN性能的影響
CycleGAN為渾濁水體圖像增強提供了解決思路,實驗從分類準確率、參數(shù)大小和運算時間3個方面比較了本文渾濁水體圖像增強算法BM-Cycle-GAN與經典算法(CycleGAN)和最新算法(SS-Cycle-GAN和BSK-CycleGAN)性能上的差異,也進一步分析了生成器網絡和循環(huán)一致?lián)p失函數(shù)兩個因素及其參數(shù)選取如何影響B(tài)M-CycleGAN的性能。對于CycleGAN而言,優(yōu)化生成器網絡和循環(huán)一致?lián)p失函數(shù)都能改善渾濁水體圖像增強效果,不過循環(huán)一致?lián)p失函數(shù)不影響生成器網絡運算時間和參數(shù)大小,它只影響模型的訓練復雜度,實驗1和實驗2的結果也驗證了這一事實。BSDK模塊在BSK模型的基礎上,利用深度可分離卷積降低了模型參數(shù)和計算量,同時改進通融合方式提高了BSDKNet的特征提取能力,在性能上優(yōu)于BSK模塊。MLF通過引入多尺度結構相似性函數(shù),增加了生成圖像與原始圖像在結構上的相似性,使增強后的圖像與原始清澈水體圖像更相似。
渾濁水體圖像增強具有重要的理論研究和實際應用價值。在CycleGAN模型框架內,本文提出了一種新的生成器網絡BSDKNet和循環(huán)一致?lián)p失函數(shù)MLF,新的生成器網絡和循環(huán)損失函數(shù)有效提升了CycleGAN對渾濁水體圖像增強的精度和效率,經理論分析和仿真實驗證明了新方法的有效性。BM –CycleGAN可實現(xiàn)與低渾濁度下水下光學圖像相同畫質的圖像增強效果,增強后水下光學圖像具有更強的解釋性。
對渾濁水體增強任務,下一步的研究重點包括:(1) 研究具有先驗知識的渾濁水體圖像增強模型;(2) 研究更多種類的渾濁水體圖像增強模型。