滕 旭,張 暉,楊春明,趙旭劍,李 波
(1.西南科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院,四川綿陽621010;2.西南科技大學(xué)理學(xué)院,四川綿陽621010)
迷彩偽裝是現(xiàn)代軍隊最常用的軍事偽裝技術(shù)之一,通過技術(shù)手段提取目標(biāo)的背景顏色、紋理圖案等特征,利用迷彩偽裝實現(xiàn)對己方設(shè)施的保護。然而,隨著光纖、激光、衛(wèi)星等先進偵測手段的大范圍使用,傳統(tǒng)迷彩由于不同斑塊之間邊緣平滑、顏色對比鮮明等特點逐漸不能滿足現(xiàn)代偵測手段下對偽裝的需要[1]。由傳統(tǒng)迷彩發(fā)展而來的數(shù)碼迷彩,利用像素點陣的視覺原理,將斑塊“馬賽克”化,使偽裝目標(biāo)的邊界模糊、破碎,能夠更好地融入背景之中,大大增強了偽裝效果。數(shù)碼迷彩偽裝如圖1所示。
由于數(shù)碼迷彩在軍事上的重要性,相關(guān)研究工作及算法具有一定的保密性,目前各國都沒有公布其具體使用的迷彩生成算法。絕大多數(shù)數(shù)碼迷彩生成算法都由三部分組成:提取背景圖片主色,將背景圖片斑塊化和生成數(shù)碼迷彩。傳統(tǒng)方法著重于單一背景的數(shù)碼迷彩生成,每一張迷彩都根據(jù)其對應(yīng)的背景圖像生成,無法根據(jù)自然環(huán)境的變化而實時生成數(shù)碼迷彩。因此,本文提出了一種根據(jù)背景環(huán)境實時生成數(shù)碼迷彩的方法,利用圖像翻譯[2]的原理,基于循環(huán)一致性生成對抗網(wǎng)絡(luò)(Cycleconsistent Generative Adversarial Network,CycleGAN)[3]自動學(xué)習(xí)到背景紋理與數(shù)碼迷彩之間的映射關(guān)系,利用多張背景圖像實時生成符合背景的數(shù)碼迷彩。
圖1 數(shù)碼迷彩及其偽裝效果Fig.1 Digital camouflage and its camouflage effect
自從數(shù)碼迷彩被提出以來,國內(nèi)外學(xué)者對如何利用計算機生成數(shù)碼迷彩做了大量研究。秦雷等[4]根據(jù)空間混色原理,結(jié)合歐氏距離提出了一種數(shù)碼斑點概率分布模型來量化數(shù)碼迷彩單元的分布;喻鈞等[5]根據(jù)目標(biāo)背景圖像,利用K 均值算法對顏色灰度直方圖聚類提取背景主色來生成數(shù)碼迷彩;賈其等[6]使用馬爾可夫隨機場和金字塔模型來構(gòu)建數(shù)碼迷彩設(shè)計體系,初步實現(xiàn)了數(shù)碼迷彩設(shè)計的自動化;徐英[7]利用HSI 顏色模型描述背景顏色特性,通過特殊量化方式對背景的顏色直方圖進行量化,使用閾值方法選取背景主色,進行非均勻化操作并完成數(shù)碼迷彩設(shè)計;Hu 等[8]使用人類視覺感知和空間顏色混合原理建立HSV 顏色模型,量化背景顏色,選擇背景的主色作為偽裝顏色,通過確定單元的尺寸來生成數(shù)字迷彩偽裝;Xue 等[9]提出一種點模板分布算法,逐步生成偽裝紋理。盡管這些算法在單一背景的迷彩生成上取得了成功,但是在面對復(fù)雜背景時,這些算法無法根據(jù)多幅圖像直接生成符合背景的數(shù)碼迷彩,仍需要重新進行采樣分析,降低了進行偽裝的效率。
Gatys 等[10]基于VGG-19[11]提出的神經(jīng)風(fēng)格遷移模型成功實現(xiàn)了兩個不同圖像域的風(fēng)格遷移。受他們工作的啟發(fā),本文提出采用CycleGAN 實時生成數(shù)碼迷彩。就筆者目前查詢所知,暫時還沒有相關(guān)工作采用深度學(xué)習(xí)技術(shù)來實時生成數(shù)碼迷彩。
本文研究的目的是使用多幅背景圖像訓(xùn)練數(shù)碼迷彩生成模型,通過學(xué)習(xí)背景圖像與數(shù)碼迷彩圖像的映射關(guān)系實現(xiàn)數(shù)碼迷彩的自動化生成。對于圖像生成問題,理論上生成對抗式網(wǎng)絡(luò)[12]能夠生成不同風(fēng)格的圖像,但是面對無監(jiān)督地從圖像域中提取特征、生成單幅圖像的問題,保持圖像結(jié)構(gòu)的穩(wěn)定變得很困難。CycleGAN 利用生成模型和判別模型之間的環(huán)狀對抗博弈,具有強大的學(xué)習(xí)能力,可以對多幅數(shù)據(jù)進行訓(xùn)練,完成跨域圖像生成的任務(wù);但是CycleGAN 在提取復(fù)雜紋理、處理幾何變換的任務(wù)上有所不足,生成圖像的色彩與原圖存在差異。針對實際背景圖像紋理復(fù)雜、細膩度不足的問題,考慮在生成模型中使用密集連接卷積網(wǎng)絡(luò)(Densely connected convolutional Network,DenseNet)[13]來提高圖像紋理的提取能力。首先,使用指數(shù)線性單元(Exponential Linear Unit,ELU)作為生成器的激活函數(shù),通過在正值區(qū)間取輸入x本身,以減輕梯度彌散[14]問題,提高對圖像細節(jié)的提取能力;針對背景圖像存在大量噪聲的情況,判別器中則使用縮放指數(shù)線性單元(Scaled Exponential Linear Unit,SELU)[15]作為激活函數(shù)來提高模型的魯棒性;而在生成圖像的色彩保持問題上,則增加了色彩保持損失函數(shù)來保證生成圖像與原圖色彩的一致性。模型整體結(jié)構(gòu)如圖2所示。
圖2 本文模型整體結(jié)構(gòu)Fig.2 Overall structure of the proposed model
本文研究的目標(biāo)是在背景圖像域X 和數(shù)碼迷彩圖像域Y之間學(xué)習(xí)映射函數(shù)G:X→Y,兩個圖像域之間的映射函數(shù)G 可以看作生成對抗網(wǎng)絡(luò)中的生成器。與傳統(tǒng)生成對抗網(wǎng)絡(luò)不同的是,本文方法的生成器的輸入不再是隨機噪聲,而是兩個域真實的圖像。生成器G 從X 中提取圖像紋理特征,通過編碼器將其編碼到較低的維度,利用傳輸模塊將特征傳輸?shù)浇獯a器,最后用解碼器解碼并生成圖像。對于生成的圖像,使用由5 層卷積層組成的判別器來判斷生成圖像的真實性。由于模型學(xué)到的映射函數(shù)應(yīng)該是循環(huán)一致的,對于圖像域Y 的每張圖像y,模型的循環(huán)轉(zhuǎn)換都能將y 還原為原始圖像。在數(shù)碼迷彩的生成問題上,生成的迷彩偽裝需要保持原有的色彩,因此在輸入圖像A和生成的遷移圖像B之間、輸入圖像A和重建圖像A′之間增加了色彩保持損失函數(shù)來實現(xiàn)生成圖像的色彩保持。
在卷積神經(jīng)網(wǎng)絡(luò)中,隨著網(wǎng)絡(luò)層數(shù)的增加,每一層提取的特征更加細致、抽象,使得整個網(wǎng)絡(luò)能夠提取出更具有語義信息的特征[16]。DenseNet 通過將所有密集神經(jīng)元塊直接連接,改善了塊與塊之間的通信,使更多的圖像特征能夠被卷積核利用,有效避免了梯度消失和網(wǎng)絡(luò)退化的問題。為了解決網(wǎng)絡(luò)變深造成的參數(shù)過多的問題,DenseNet 加入了1×1 的卷積核來減少參數(shù)個數(shù),因此DenseNet 在模型參數(shù)更少、計算成本更低的情況下實現(xiàn)了較深的網(wǎng)絡(luò)層數(shù)。用公式表示DenseNet第l層的輸出就是:
其中,Hl是一個非線性轉(zhuǎn)化函數(shù),它包括一系列的批標(biāo)準(zhǔn)化、線性整流單元(Rectified Linear Unit,ReLU)以及卷積操作。圖3 展示了生成模型的網(wǎng)絡(luò)結(jié)構(gòu),它由編碼器、傳輸模塊和解碼器組成。生成模型的層次細節(jié)如表1 所示,其中:Conv-Norm-ELU表示本層依次使用了卷積、歸一化以及ELU操作;k代表了每個Dense Block 卷積輸出的特征映射數(shù)量。判別模型使用了5層卷積層作為判別器網(wǎng)絡(luò),具體的層次細節(jié)如表2所示。
表1 生成模型網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 Network structure of generating model
表2 判別模型網(wǎng)絡(luò)結(jié)構(gòu)Tab.2 Network structure of discriminator model
為了學(xué)習(xí)兩個圖像域的映射關(guān)系,本文使用對抗性損失來保證生成與真實數(shù)據(jù)同分布的圖像。在映射函數(shù)G:X→Y和對應(yīng)的判別器DG上,對抗性損失函數(shù)表示為:
在這里,生成器G 的優(yōu)化目標(biāo)是最小化LGAN(G,DG),目的是生成與圖像域Y 中的圖像相似的圖像G(x),使判別器DG分辨不出哪張是生成器生成的假圖像;而判別器DG的優(yōu)化目標(biāo)是最大化LGAN(G,DG),二者在對抗中走向均衡,從而生成更加真實的圖像。
在數(shù)據(jù)集變大、網(wǎng)絡(luò)變深的情況下,單純使用對抗性損失會使源域的輸入圖像全部映射到目標(biāo)域的同一張圖像上,無法保證映射函數(shù)學(xué)習(xí)到符合目標(biāo)域圖像特征的輸出。為了防止學(xué)習(xí)到的映射相互矛盾,模型使用了循環(huán)一致性損失來保證圖片域中的每一張圖像經(jīng)過循環(huán)轉(zhuǎn)換后都能還原成原始圖像,實現(xiàn)了x →G(x)→F(G(x))≈x。循環(huán)一致性損失的優(yōu)化過程歸結(jié)如下:
由于生成的迷彩偽裝要與背景相融合以達到偽裝的目的,因此生成的數(shù)碼迷彩應(yīng)該保持與背景色彩相一致,本文提出了顏色保持損失來保證生成的數(shù)碼迷彩色彩不發(fā)生偏移。顏色保持損失如下:
本文將在后續(xù)實驗中探討顏色保持損失對生成數(shù)碼迷彩偽裝的影響。循環(huán)一致性損失可以看作是一種正則化過程,使用參數(shù)λ1來控制正則化的作用,使用參數(shù)λ2來控制色彩保持損失的效果。模型的全部損失是對抗性損失、循環(huán)一致性損失和色彩保持損失之和:
為了驗證所提出方法的有效性,采用由800 張圖像組成的數(shù)據(jù)集進行實驗,利用Canny 邊緣檢測算法和結(jié)構(gòu)相似性(Structural SIMilarity,SSIM)算法來評估生成迷彩偽裝的有效性;并將使用三組不同激活函數(shù)的模型生成的數(shù)碼迷彩與CycleGAN、神經(jīng)風(fēng)格遷移模型生成的數(shù)碼迷彩進行比較,對比增加色彩保持損失函數(shù)對生成效果的影響。
實驗圖片是從各類圖庫網(wǎng)站上搜集的400 張背景圖片和400 張數(shù)碼迷彩圖片,經(jīng)過預(yù)處理將其裁剪為256×256 的圖像,并通過數(shù)據(jù)增強的方法將數(shù)據(jù)集擴充至800 張背景圖像和800張數(shù)碼迷彩圖像。
本文模型使用了5 層DenseNet 進行特征抽取,在生成器和判別器中分別使用了ReLU+LReLU、ELU+LEeLU、ELU+SELU 的激活函數(shù)組合,選取了9 層ResNet 的CycleGAN 模型與神經(jīng)風(fēng)格遷移模型進行對比實驗。圖4 展示了3 組不同的激活函數(shù)對模型生成數(shù)碼迷彩效果的影響。從圖4 中可以看出,ELU+SELU 的激活函數(shù)組合生成的數(shù)碼迷彩偽裝效果最好。不同模型生成的數(shù)碼迷彩偽裝效果如圖5 所示,模型加入色彩保持損失函數(shù)后,在一定程度上保留了原圖色彩,偽裝效果也有所提升。
圖4 使用不同激活函數(shù)生成數(shù)碼迷彩偽裝Fig.4 Digital camouflages generated by using different activation functions
由于生成模型缺乏普遍接受且客觀的評價標(biāo)準(zhǔn),使得評估生成圖像的質(zhì)量變得比較困難。迷彩偽裝的目的是使偽裝區(qū)域與周圍背景在人眼與雷達探測中變得不可區(qū)分,生成的數(shù)碼迷彩偽裝應(yīng)該盡可能模糊偽裝區(qū)域的邊界,因此,本文利用邊緣檢測算法來評估生成的數(shù)碼迷彩偽裝的效果,表3 展示了三種邊緣檢測算法的比較結(jié)果。由于Canny 邊緣檢測算法能夠更準(zhǔn)確地判斷出圖形的邊緣,因此將其作為生成數(shù)碼迷彩偽裝的評估標(biāo)準(zhǔn)。
圖5 不同模型生成的數(shù)碼迷彩效果對比Fig.5 Effect comparison of digital camouflages generated by different models
表3 不同邊緣檢測算法的SSIM評分Tab.3 SSIM scores of different edge detection algorithms
圖6 是不同模型生成的數(shù)碼迷彩偽裝經(jīng)過Canny 邊緣檢測算法檢測的結(jié)果。在實驗過程中,三組激活函數(shù)均能使模型成功收斂,但是在偽裝效果上有所不同??梢钥吹?,與CycleGAN 使用的深度殘差網(wǎng)絡(luò)(Residual Neural Network,ResNet)相比,使用DenseNet的模型生成的數(shù)碼迷彩偽裝包含更少的規(guī)則圖案,圖像的邊緣與背景斑塊形狀相結(jié)合,能更好地融合到背景中,達到較好的偽裝效果。圖6 顯示,使用DenseNet 的模型邊緣檢測的效果比使用ResNet 的模型更好,成功隱藏了圖像的邊緣,而且加入了色彩保持損失的模型在保持色彩一致性的同時也有著較好的偽裝效果。
圖6 不同模型生成迷彩經(jīng)過Canny檢測的效果Fig.6 Results of camouflages generated by different models after Canny detection
數(shù)碼迷彩偽裝需要符合人類視覺系統(tǒng)(Human Visual System,HVS)[17]的評價,但是人工評價費時費力且主觀性強,因此采用能夠衡量圖像結(jié)構(gòu)相似性的SSIM 算法來評估生成數(shù)碼迷彩偽裝的效果。SSIM 主要通過以下三個方面對兩幅圖像的相似性進行評估,包括:Luminance(亮度)、Contrast(對比度)和Structure(結(jié)構(gòu))。
SSIM各部分計算公式如下:
總的計算公式如下:
由于迷彩偽裝的特殊性,與一般圖像相比,迷彩偽裝在保留背景原有紋理結(jié)構(gòu)的情況下,要盡可能地與周圍背景融為一體,輪廓邊界要盡可能模糊,而SSIM 評分越高說明兩幅圖像的輪廓越相似,這是不符合偽裝的要求的,因此,本文認(rèn)為SSIM評分越低說明迷彩偽裝越成功。表4展示了不同模型生成的數(shù)碼迷彩偽裝經(jīng)過歸一化之后的SSIM分?jǐn)?shù)。
表4 不同模型的SSIM得分Tab.4 SSIM scores for different models
結(jié)合表4與Canny邊緣檢測算法的結(jié)果,可以看到無論是在人眼觀感還是對輪廓的模糊化效果上,使用DenseNet 結(jié)構(gòu)和ELU+SELU 激活函數(shù)的改進模型都取得了更好的效果,SSIM 得分比CycleGAN 減少了35%,比神經(jīng)風(fēng)格遷移模型減少了33%。實驗結(jié)果表明,在加入了色彩保持損失后,參數(shù)λ=0.5時效果最佳,在SSIM 得分和人眼觀感上都取得了最好的效果。
為了充分利用圖像的紋理信息,根據(jù)背景自動生成數(shù)碼迷彩偽裝,本文提出了一種改進的CycleGAN 自動生成數(shù)碼迷彩的方法。該方法使用DenseNet 作為特征抽取器來提高生成器的生成質(zhì)量,使用ELU 和SELU 作為生成模型和判別模型的激活函數(shù)來獲得更好的抗噪能力,增強模型的魯棒性,并使用色彩保持損失保證生成圖像與背景顏色一致。針對生成模型生成圖像質(zhì)量難以評估的問題,根據(jù)數(shù)碼迷彩的特點提出利用Canny邊緣檢測算法和結(jié)構(gòu)相似性(SSIM)算法對生成的數(shù)碼迷彩進行偽裝效果評估,并在自制的數(shù)據(jù)集上將該模型與CycleGAN、神經(jīng)風(fēng)格遷移模型進行了對比。實驗結(jié)果表明,本文的改進模型生成數(shù)碼迷彩偽裝的質(zhì)量要優(yōu)于其他模型的生成質(zhì)量,驗證了所提出方法的有效性。在今后的研究中,要進一步研究數(shù)碼迷彩的特點,提高模型在復(fù)雜背景下的色彩提取能力,提高生成數(shù)碼迷彩的精細度。