張 幸,王 旭,趙文倉
(青島科技大學 自動化與電子工程學院,山東 青島 266061)
現(xiàn)階段基于深度學習的傳統(tǒng)圖像生成方法大多采用編碼器到解碼器(enconder-to-decoder)結構的變分自動編碼器VAE[1]對高維圖像的特征向量或特征矩陣進行編碼和解碼,或采用生成對抗網(wǎng)絡GAN[2]通過生成器和鑒別器做對抗學習,一方面提高鑒別器對真假圖像的判別能力,另一方面提升生成器的生成能力。上述兩種方法在一定程度上受訓練樣本的制約,很難生成與輸入樣本風格不一的圖像,常用于傳統(tǒng)的圖像到圖像生成任務中。
2017年,陳啟峰等[3]提出一種名為級聯(lián)細化網(wǎng)絡(cascaded refinement networks,CRN)的基于語義布局的圖像生成方法,該方法采用監(jiān)督訓練的方式,給定語義標簽,通過端到端(end-to-end)結構生成接近真實場景的圖片。網(wǎng)絡采用從低級到高級堆疊精細化模塊的方式從語義標簽中先生成低分辨率圖像,再通過層層級聯(lián)的精細化模塊將分辨率提高。相比VAE、GAN 等以真實圖像作為訓練樣本的方式,CRN 結構簡單,無需編碼解碼和對抗訓練。模型能夠從語義布局中學習圖像生成,由于語義標簽只需存儲圖像的布局信息,相比RGB 彩色圖像,有占用內存小,樣本簡單,易獲取的優(yōu)勢。只需在任意數(shù)據(jù)集做簡單語義分割即可獲得,獲取渠道廣,通過真實RGB圖像或藝術作品都能得到語義布局標簽。因此可以借助CRN 通過動畫、游戲場景的語義布局生成貼近真實場景的照片級圖像,為數(shù)據(jù)增強提供了新思路。尤其在自動駕駛領域,基于駕駛員視角的真實場景訓練圖像存在獲取成本高、樣本量少的困境,通過競速游戲截取圖像的語義標簽生成貼近真實場景的駕駛圖像,為豐富自動駕駛數(shù)據(jù)集提供了幫助。該模型內部通過卷積神經(jīng)網(wǎng)絡提取和處理特征,由于卷積網(wǎng)絡存在局部連接,生成圖像中語義目標有模糊失真的現(xiàn)象。
2017年,何愷明等[4]在非局部神經(jīng)網(wǎng)絡(nonlocal neural networks)中提出用于卷積神經(jīng)網(wǎng)絡的自注意力機制(self-attention),以加強卷積網(wǎng)絡輸出多維特征之間的全局一致性。2018年,IAN 等[5]將自注意力機制引入到GAN 圖像生成模型,提出自注意力生成對抗網(wǎng)絡(self-attention generative adversarial networks,SAGAN),克服了卷積神經(jīng)網(wǎng)絡局部連接導致的圖像到圖像生成任務中語義目標模糊失真的現(xiàn)象。
受自注意力生成對抗網(wǎng)絡通過注意力機制加強多維特征的全局一致性,提升生成圖像中語義目標清晰度和真實性的啟發(fā),本文提出一種應用于端到端結構CRN 圖像生成模型的監(jiān)督注意力機制。通過建立注意力方程將第一級精細化模塊的輸出結果與語義標簽內的高級語義特征建立聯(lián)系,由模型淺層輸出的全局性較好的低分辨率大感受野特征和語義標簽內的高級語義特征聯(lián)合得到帶有全局信息的注意力特征,指導網(wǎng)絡從全局信息中生成真實感圖像,提升了模型由語義標簽生成圖像任務中語義目標的清晰度和真實性。
級聯(lián)細化網(wǎng)絡以如圖1所示的精細化模塊(refinement module)為主體結構,以語義布局標簽L∈{0,1}m×n×c為訓練樣本生成真實感圖像,其中m×n表示語義標簽的分辨率,c 為語義標簽的通道,表示其中語義類別的數(shù)量。與傳統(tǒng)圖像生成模型VAE和GAN 由RGB圖像作為訓練樣本生成圖像的方式不同,級聯(lián)細化網(wǎng)絡采用歸一化的c 通道語義布局標簽為樣本,樣本中不包含原始RGB圖像的底層紋理信息,占用內存小,節(jié)省了圖像生成任務中樣本數(shù)據(jù)集的存儲空間。
圖1 精細化模塊結構Fig.1 Structure of refinement module
如圖1所示,精細化模塊是一種卷積神經(jīng)網(wǎng)絡結構,由輸入層、中間層和輸出層組成,其內部結構如圖2所示,包括兩層卷積層、兩層歸一化層和兩層非線性激活層。精細化模塊的輸入層通過卷積層1接收語義布局標簽L 和上一級模塊的輸出特征Fi-1作為輸入,經(jīng)中間歸一化層和非線性激活層,在最后的輸出層得到該級模塊的輸出特征Fi。以Mi表示模型中第i 個精細化模塊,每一個精細化模塊輸出一個固定分辨率的特征圖,通過對特征圖做雙線性插值上采樣,逐步提升圖像生成的分辨率。
圖2 精細化模塊內部結構Fig.2 Internal structure of refinement module
通過級聯(lián)精細化模塊,級聯(lián)細化網(wǎng)絡由語義標簽從低分辨率到高分辨率生成真實感圖像,模型結構如圖3所示。
圖3 級聯(lián)細化網(wǎng)絡模型Fig.3 Model of cascaded refinement networks
自注意力GAN[5]模型通過引入自注意力機制,取代傳統(tǒng)全連接層及全卷積結構,在無需為網(wǎng)絡模型引入過多學習參數(shù)的情況下,幫助卷積網(wǎng)絡實現(xiàn)了多維特征的全連接,從而獲取了特征圖的全局特征信息,提升了由圖像生成圖像任務中語義目標的清晰度和真實性。
與自注意力GAN 僅在生成的初始階段通過鑒別器接收訓練樣本,中間層不再引入樣本只接收輸入特征的圖像生成方式不同,級聯(lián)細化網(wǎng)絡模型通過語義標簽生成真實感圖像,在第一級精細化模塊之后級聯(lián)的每一級模塊都同時接收上采樣的輸出特征以及下采樣的語義標簽。采用自注意力機制,在上一級輸出特征中引入自身特征,難以保證該特征與語義標簽中高級語義信息的全局匹配能力。本研究結合級聯(lián)細化網(wǎng)絡輸入特性,對語義標簽內的語義布局和幾何結構特征同第一級精細化模塊輸出的多維特征做特征融合,通過語義標簽指導第一級精細化模塊輸出特征在后續(xù)模塊內生成更高分辨率的特征圖。
級聯(lián)細化網(wǎng)絡是一種由低分辨率到高分辨率漸進式生成圖像的模型,由于特征圖低分辨率下具有大感受野,語義目標之間分布比較聚集,邊緣目標被拉到了較近的特征列中表示,特征全局性較好。在第一級精細化模塊輸出的特征圖后通過注意力機制引入語義標簽與輸出特征圖的融合特征,能夠保證多維特征較好的全局一致性。由于通過注意力機制對特征進行融合的過程,同時使用了輸出特征本身和語義標簽,類似由樣本和標簽進行訓練的有監(jiān)督訓練方式,故本研究將這種注意力稱為監(jiān)督注意力(supervised attention)。
由于精細化模塊內部卷積層的作用,語義標簽L 相比第一級精細化模塊輸出特征F0,維度發(fā)生了改變,本研究通過network in network(NIN)模型[6]提出的1×1卷積分別作用于語義標簽L 與輸出特征F0,對語義標簽升維的同時對輸出特征降維,使二者維度保持一致。卷積神經(jīng)網(wǎng)絡GoogleNet模型[7]曾將1×1卷積加入Inception模塊,對來自底層網(wǎng)絡的特征降維,再傳入后續(xù)串聯(lián)的卷積核。這種1×1單核卷積的優(yōu)勢在于只改變特征圖像的通道,而不對特征進行縮放,即不改變特征圖像的分辨率。相比于傳統(tǒng)全連接層的方式,1×1卷積大幅減少了模型的參數(shù)量。
以d0表示輸出特征F0的維度,通過1×1卷積,將語義標簽L 的維度由c 升維至d0//8,同時輸出特征F0降維至d0//8,以保證注意力層兩個輸入特征的通道維度相等,使二者可做矩陣相乘,保證在合理通道下計算注意力。過少的通道可能會導致輸出特征丟失細節(jié)使圖像失真,過多的通道則需要引入更多參數(shù),浪費GPU 內存。
在上述維度匹配過程,與 NIN 模型和GoogleNet模型不同,本研究僅采用1×1卷積完成升降維,并不將卷積之后的特征映射非線性激活,未引入激活函數(shù),結構簡單。
以批量大小、通道、寬、高四維張量表示語義標簽L 和輸出特征F0,令L∈[1,c,w,h],F0∈[1,d0,w0,h0],即每次訓練采用一張c 維通道,分辨率為w×h 的語義標簽,該語義標簽經(jīng)第一級精細化模塊M0得到d0通道,分辨率為w0×h0的輸出。如圖4所示為監(jiān)督注意力模塊框圖。
圖4 監(jiān)督注意力模塊框圖Fig.4 Framework of supervised attention module
首先,將語義標簽L 下采樣至分辨率為w0×h0,得到L0∈[1,c,w0,h0],L0和特征F0經(jīng)1×1卷積分別映射到兩個特征空間l0∈[1,d0//8,w0,h0]和f0∈[1,d0//8,w0,h0],可得到監(jiān)督注意力函數(shù):
βl,f表示語義標簽和第i 個精細化模塊聯(lián)合構成的監(jiān)督注意力,其中N =w0×h0為每通道的像素點數(shù)量,矩陣sl,f表示由語義標簽L 生成圖像的過程中,M0輸出特征F0對L 的關注程度。為方便計算,將l0和f0的每通道像素在一維展開,有l(wèi)0∈[1,d0//8,N],f0∈[1,d0//8,N],則sl,f∈[1,N,N],經(jīng)Softmax函數(shù)得到同維度監(jiān)督注意力βl,f∈[1,N,N],相較于M0輸出特征F0∈[1,d0,w0,h0],βl,f維度發(fā)生較大改變,無法直接傳入下級精細化模塊,還需對輸出監(jiān)督注意力維度還原。
將M0輸出特征F0∈[1,d0,w0,h0]每通道像素點在一維展開,有F0∈[1,d0,N],本研究利用F0∈[1,d0,N]同監(jiān)督注意力βl,f∈[1,N,N]矩陣相乘進行維度還原,得到監(jiān)督注意力輸出特征Fattn=F0βl,f,Fattn∈[1,d0,N],將一維表示的像素點還原至二維分辨率形式,有Fattn∈[1,d0,w0,h0]。
為使網(wǎng)絡逐步適應全局特征輸入,通過可學習的縮放參數(shù)α 增強帶有注意力的輸出特征Fattn。
其中:α 表示可學習的縮放因子,訓練階段初始化為0,經(jīng)反向傳播α 數(shù)值更新,逐漸增加,即網(wǎng)絡初始訓練階段只學習簡單任務,處理M0輸出特征F0,隨訓練進行,再逐漸增加任務復雜度,學習全局特征,使網(wǎng)絡逐步適應監(jiān)督注意力。綜上,得到監(jiān)督注意力算法:
輸入:語義標簽L0,第一級精細化模塊M0輸出特征F0;
輸出:監(jiān)督注意力βl,f,監(jiān)督注意力特征Fattn,可學習監(jiān)督注意力特征Fout;
1)維度匹配:l0←conv2d(L0,20,128,kernel_size=1,stride=1,padding=0);f0←conv2d(F0,1 024,128,kernel_size=1,stride=1,padding=0);
2)構建監(jiān)督注意力函數(shù):sl,f←,βl,f←Softmax(sl,f);
3)輸出監(jiān)督注意力特征:Fattn←F0βl,f;
4)輸出可學習監(jiān)督注意力特征:Fout←αFattn+F0。
本工作通過監(jiān)督注意力機制在第一級精細化模塊M0的輸出之后引入了語義標簽,通過語義標簽同M0輸出的每一維特征做特征融合,以此得到帶有標簽內語義布局、幾何結構信息和每一維輸出特征信息的全局監(jiān)督注意力特征,保證了第二級精細化模塊M1的輸入特征是全局一致的。將本該下采樣輸入至第二級精細化模塊的語義標簽輸入到監(jiān)督注意力層,同M0輸出做特征融合,提升了多維特征的全局一致性。為避免特征重復輸入,本研究在第二級精細化模塊M1中只輸入通過雙線性插值上采樣的全局可學習監(jiān)督注意力特征,不再單獨輸入下采樣的語義標簽,直接將上采樣至分辨率8×16的1 024維可學習監(jiān)督注意力輸入到第二級模塊。監(jiān)督注意力級聯(lián)細化網(wǎng)絡模型見圖5。
圖5 監(jiān)督注意力級聯(lián)細化網(wǎng)絡模型Fig.5 Model of supervised attention CRN
第一級精細化模塊M0內第一層卷積接收來自數(shù)據(jù)集提供的下采樣語義標簽,經(jīng)中間層作用輸出包含局部特征的多維特征圖F0,F0輸入到監(jiān)督注意力層,同下采樣語義標簽做全局特征融合,得到帶有包含語義標簽中高級語義特征的全局監(jiān)督注意力特征,經(jīng)雙線性插值上采樣,傳入第二級精細化模塊M1,通過該模塊卷積層、歸一化層和非線性激活層的作用,輸出特征圖F1,對F1上采樣分辨率加倍與下采樣至同分辨率的語義標簽分別傳入第三級精細化模塊M2,經(jīng)后續(xù)級聯(lián)的精細化模塊內部卷積層、歸一化層、非線性激活層以及雙線性插值做分辨率加倍的作用,最后經(jīng)1*1卷積層降通道得到3通道RGB彩色生成圖像。此過程同原始級聯(lián)細化網(wǎng)絡模型相同,仍舊遵循端到端結構,中間沒有引入編解碼器和反饋,結構簡單。
本研究基于監(jiān)督注意力級聯(lián)細化網(wǎng)絡由語義標簽生成真實感圖像的實驗,在Linux 內核Ubuntu 16.04 系統(tǒng)下進行,采用一張顯存為11 GB 的NVIDIA GTX 1080 Ti GPU 加速訓練,編程語言基于Python 3.6.5,在Py Torch 1.0.1深度學習框架下進行。實驗數(shù)據(jù)集選用Cityscapes數(shù)據(jù)集[8]和GTA 5數(shù)據(jù)集[9],訓練在Cityscapes訓練集2 975張精細標注的語義標簽上進行,通過Cityscapes驗證集[8]和GTA 5數(shù)據(jù)集[9]的語義標簽測試。
級聯(lián)更多精細化模塊能夠生成更高分辨率的圖像,但同時將帶來更多參數(shù),占用更高的GPU 存儲空間,受GTX 1080 Ti顯存限制,實驗通過語義標簽生成分辨率為256×512的真實感圖像。實驗前,將Cityscapes訓練集、驗證集精細標注語義標簽和真實圖像縮放至256×512。實驗初始化第一級精細化模塊M0從4×8分辨率條件下開始生成圖像,初始化M0輸出特征通道d0=1 024,精細化模塊內卷積層采用步長為1的3×3卷積結構,歸一化層采用對紋理信息魯棒性較好的實例歸一化IN[10],以保證模型能夠較好生成紋理特征。采用LeakyRe-LU 作為激活層,為網(wǎng)絡引入非線性,防止因線性運算帶來模型中間層失效。優(yōu)化采用Adam 算法[11],學習率設置為0.000 1,一階矩估計指數(shù)衰減始化為0.9,二階矩估計指數(shù)衰減初始化為0.999,分子穩(wěn)定參數(shù)設置為1×10-8,不添加權重衰減。損失優(yōu)化階段對真實圖像和生成圖像進行特征提取的卷積網(wǎng)絡采用19層的VGG-19[12]。
模型訓練采用單批量,遍歷Cityscapes訓練集200次,模型評估標準采用定性和定量3種評估方法:1)在Cityscapes驗證集和GTA 5數(shù)據(jù)集語義標簽上定性對比原始級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡生成結果;2)定量對比級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡訓練階段損失曲線變化;3)通過PSPNet[13]對級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡三種模型的生成圖像做語義分割,通過平均像素精度和語義分割平均掩碼交并比(mIoU)精度判斷圖像生成的真實度。
按照上述實驗評估標準,定性對比原始級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡在Cityscapes驗證集語義標簽上的圖像生成結果,如圖6所示。
圖6 Cityscapes驗證集語義標簽圖像生成結果Fig.6 Images generated results in Cityscapes validation dataset
由圖6,自注意力和監(jiān)督注意力級聯(lián)細化網(wǎng)絡模型生成圖像中的語義目標從視覺上與真實圖像更為接近,語義目標相對清晰、完整。原始級聯(lián)細化網(wǎng)絡模型未對特征做全局處理,僅通過最后的全連接依靠像素矩陣簡單地將局部特征圖拼接組合在一起,導致生成圖像中出現(xiàn)語義目標模糊在一起及局部語義特征丟失的現(xiàn)象,圖像生成質量較差。原始級聯(lián)細化網(wǎng)絡模型生成的相鄰在一起的汽車出現(xiàn)了明顯的模糊重影現(xiàn)象。引入注意力機制的自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡模型生成的汽車克服了這種失真。并且監(jiān)督注意力級聯(lián)細化網(wǎng)絡生成結果相比自注意力模型在幾何結構上更完整,目標更清晰,更貼近真實場景。
定性對比原始級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡在GTA 5數(shù)據(jù)集語義標簽上的圖像生成結果,如圖7所示。
圖7 GTA 5數(shù)據(jù)集語義標簽圖像生成結果Fig.7 Images generated results in GTA 5 dataset
由圖7,GTA 5數(shù)據(jù)集圖像來自游戲引擎渲染和Cityscapes圖像風格差異較大,但是通過在Cityscapes數(shù)據(jù)集訓練得到的CRN 模型、self-attention CRN 模型和supervised attention CRN 模型可以從GTA 5數(shù)據(jù)集的語義標簽上生成與Cityscapes相同風格的圖像。引入注意力機制的自注意力模型和監(jiān)督注意力模型由GTA 5語義標簽生成的真實感圖像,相比原始級聯(lián)細化網(wǎng)絡,語義目標更清晰、完整,并且監(jiān)督注意力級聯(lián)細化網(wǎng)絡的生成結果相比自注意力模型結果在幾何結構上更好,極大程度地避免了語義目標的模糊重影。
根據(jù)訓練階段損失曲線變化衡量級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡訓練生成圖像對真實圖像的偏離度,見圖8。如圖8(a)、(b)、(c)所示分別為級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡、監(jiān)督注意力級聯(lián)細化網(wǎng)絡遍歷cityscapes訓練集200次得到的訓練損失曲線對比。
圖8 訓練損失曲線對比Fig.8 Comparison of training loss
由于引入了注意力機制,對全局特征進行了調整,自注意力模型和監(jiān)督注意力模型相比原始級聯(lián)細化網(wǎng)絡,經(jīng)過較少次訓練即可達到良好的生成效果,損失曲線收斂更快且收斂于更小值。并且由于監(jiān)督注意力級聯(lián)細化網(wǎng)絡整合了更豐富的包含語義標簽內語義布局和幾何特征在內的全局特征,相比自注意力模型在訓練階段生成圖像對真實圖像的偏離度更小。
通過語義分割模型PSPNet[13]分別測試驗證集生成圖像的像素語義分割精度(生成圖像分割掩碼同語義標簽的像素對比)及語義目標掩碼的平均交并比精度(mIo U,對生成圖像做語義分割得到的掩碼和真實語義標簽掩碼在0.5到0.95增量為0.05的10種交并比條件下計算掩碼分割精度并取算術平均),若生成圖像接近真實圖像,語義分割模型能將生成圖像中的語義群體分割出來,并能得到較高的像素精度和mIo U 精度。表1所示為級聯(lián)細化網(wǎng)絡、自注意力級聯(lián)細化網(wǎng)絡和監(jiān)督注意力級聯(lián)細化網(wǎng)絡在Cityscapes驗證集語義標簽上生成的圖像及真實圖像基于PSPNet-50[13]的語義分割結果對比。
表1 生成圖像語義分割結果對比Table 1 Comparison of semantic segmentation results of generated images
在級聯(lián)細化網(wǎng)絡模型中引入自注意力機制,生成圖像的語義分割像素精度相比原始級聯(lián)細化網(wǎng)絡提升了6.2%,mIo U 精度提升了22.3%。由于引入了語義標簽中語義特征的幾何結構信息,監(jiān)督注意力級聯(lián)細化網(wǎng)絡在Cityscapes驗證集語義標簽上生成圖像的像素精度達到了82.0%,mIo U 精度達到了70.3%,在自注意力機制的基礎上像素精度提升了2.4%,mIo U 精度提升了4.4%。相比原始級聯(lián)細化網(wǎng)絡,生成圖像的語義分割平均像素精度提升了8.6%,mIo U 精度提升了26.7%。監(jiān)督注意力級聯(lián)細化網(wǎng)絡生成圖像的語義分割結果在兩種評判標準下都更接近真實圖像,生成語義目標更真實。
結合圖像語義標簽改進了自注意力,提出一種應用于級聯(lián)細化網(wǎng)絡端到端圖像生成的監(jiān)督注意力機制,采用有監(jiān)督訓練的方式,將淺層網(wǎng)絡輸出低級紋理特征同語義標簽內的高級語義特征結合,構建全局注意力特征。提升了級聯(lián)細化網(wǎng)絡全局信息處理能力,較大地提高了圖像生成質量。無需對抗訓練,可簡單方便地從任意語義標簽中生成真實感圖像,通過為游戲截圖做語義標注即可為自動駕駛數(shù)據(jù)集做大量數(shù)據(jù)增強,協(xié)助訓練復雜自動駕駛模型。