田 敏,劉名果,陳立家,韓宗桓,蘭天翔,梁 倩
河南大學 物理與電子學院,河南 開封 475000
隨著人工智能的發(fā)展,全監(jiān)督語義分割領域發(fā)展迅速。全監(jiān)督語義分割網(wǎng)絡是將圖像中的每一個像素進行分類,得到像素化密集分類結果的網(wǎng)絡。自2007年以來,語義分割一直作為機器視覺中的一部分,直到2015年,Long等人[1]首次使用全卷積網(wǎng)絡(fully convolution network,F(xiàn)CN)對圖像進行端到端分割,語義分割產生了重大突破,之后一些較好模型的架構都是在此架構的基礎上進行的改進;2015年,Ronneberger等人[2]構建了U-Net模型,構建了一套完整的編碼解碼器。2017年,Badrinarayanan等人[3]提出SegNet模型,將最大池化轉換為解碼器來提高分辨率;RefineNet[4]使用了殘差網(wǎng)絡降低了內存的使用量,同年的DeepLabv1和DeepLabv2,再到現(xiàn)在的DeepLab v3+[5-7],語義分割精度在不斷地得到提升。隨著語義分割網(wǎng)絡的快速發(fā)展,該網(wǎng)絡逐步應用于工業(yè)生產中,但在應用過程中,因為標簽制作較為困難,用于訓練的樣本數(shù)據(jù)較為匱乏等,使得相關研究面臨著挑戰(zhàn)。一方面,采用傳統(tǒng)方法進行樣本采集(拍照、手機掃描等手段)和標簽的制作,人力、物力成本較高,尤其要花費大量時間制作標簽,效率較為低下;另一方面用于訓練的數(shù)據(jù)樣本較少,直接進行語義分割訓練容易出現(xiàn)過擬合。為了避免在訓練過程中出現(xiàn)過擬合現(xiàn)象,往往采用數(shù)據(jù)增強的方法,變換原有數(shù)據(jù)生成新的數(shù)據(jù)來擴大數(shù)據(jù)集。常用的擴充樣本方法[8]有翻轉、旋轉、裁剪、平移、添加高斯噪聲、對比度變換等。雖然這些方法在一定程度上提升了網(wǎng)絡的性能,但并不能從根本上解決制作數(shù)據(jù)集時的人工時間耗費問題。
針對全監(jiān)督語義分割網(wǎng)絡訓練樣本標簽制作困難的問題,尤其是對于特定工業(yè)應用場景,無公開的樣本庫,需要自制標簽的情況,提出基于改進型循環(huán)生成對抗網(wǎng)絡(CycleGAN-AD)的樣本擴充方法。利用計算機生成虛擬樣本圖像,再通過本文提出的網(wǎng)絡將虛擬樣本遷移成真實樣本的風格[9]。由于計算機生成的虛擬樣本的標簽無需手工標注,所以省去了人工標定的工作量。CycleGAN[10]在生成式對抗網(wǎng)絡(generative adversarial network,GAN)[11]基礎上實現(xiàn)了圖像風格雙域轉換,解決了生成圖片不清晰、訓練數(shù)據(jù)不成對無法訓練的問題。但是在特定工業(yè)場景中,CycleGAN進行風格遷移時對圖片中一些細節(jié)處理不足,背景轉換能力欠缺。本文中提出的CycleGAN-AD網(wǎng)絡針對上述問題做出的改進及創(chuàng)新如下:
(1)在CycleGAN的生成器中添加了注意力機制(attention mechanism)[12]。選用通道注意力機制,通道注意力機制主要由最大池化層、平均池化層與全卷積網(wǎng)絡層構成,網(wǎng)絡訓練過程中通過提取圖片中的有效信息,提升了風格遷移結果。
(2)使用密集連接卷積網(wǎng)絡(dense convolutional network,DenseNet)[13-14]代替CycleGAN中的殘差網(wǎng)絡(residual neural network,ResNet)[15]。DenseNet網(wǎng)絡中,每一層都由前面幾層相加構成,網(wǎng)絡層之間連接更為緊密,保證原始圖片的細節(jié)不因卷積網(wǎng)絡層太深而被破壞。
(3)一方面提出將自帶標簽的計算機模擬圖片風格遷移生成真實圖片,將生成圖片與真實圖片一起構成數(shù)據(jù)集,改善了語義分割效果;另一方面因在有監(jiān)督訓練中,真實圖片標簽制作困難且耗時長,為了減少制作真實圖片標簽,即使在少量真實圖片標簽情況下,利用模擬圖片風格遷移生成的圖片進行實驗也能保證語義分割結果可以用于工業(yè)應用當中。
實驗結果表明,CycleGAN-AD網(wǎng)絡對圖像細節(jié)處理較好,生成的圖片更加清晰。在石墨電極鋼印字符語義分割實驗中,在原真實樣本中加入CycleGAN-AD網(wǎng)絡產生的樣本,相較于未添加樣本前,其MIoU值有了顯著提升,最高可達0.826 0。
本文利用圖像風格遷移的方法實現(xiàn)樣本擴充,主要分為兩部分。如圖1所示,第一部分為源域(模擬樣本)風格遷移得到目標域(真實樣本)。源域圖片比較容易獲得,并且自帶標簽,得到的目標域圖片標簽與源域標簽相同。第二部分分為兩組:第一組只將生成的目標域圖片與自帶標簽送入語義分割網(wǎng)絡,測試其分割結果,屬于無監(jiān)督語義分割;第二組,生成目標域與目標域及標簽送入語義分割網(wǎng)絡,訓練并測試其結果,屬于有監(jiān)督語義分割。文中主要對第一部分中的風格遷移網(wǎng)絡進行了改進,提高風格遷移圖像質量,第二部分主要用于測試改進網(wǎng)絡是否對語義分割結果有所提升。與人工制作標簽進行語義分割的原始方法相比較,引入風格遷移網(wǎng)絡,節(jié)省了人工標注樣本的時間,減少了工作量,并且將生成樣本與真實樣本一起組成訓練樣本,擴充了數(shù)據(jù)集,避免了過擬合的發(fā)生。
圖1 本文方法主要流程Fig.1 Main process of proposed method
進行風格遷移的網(wǎng)絡采用改進的循環(huán)生成式對抗網(wǎng)絡CycleGAN-AD。CycleGAN結構如圖2所示,本質上是兩個鏡像對稱的生成式對抗網(wǎng)絡GAN構成的一個環(huán)形網(wǎng)絡,GAN網(wǎng)絡由生成器(generator)與判別器(discriminator)組成。模擬圖像Input_X經過生成器GeneratorX2Y生成圖像Generated_Y,Generated_Y與真實圖像Input_Y共同輸入判別器Discriminator_Y。判別器判別輸入圖像真假,同時生成器也在不斷優(yōu)化,兩者通過博弈,圖片Generated_Y與真實圖像Input_Y越來越相似,同時再經過生成器GeneratorY2X生成與Input_X相似的圖片Cyclic_X。Input_X與Cyclic_X之間存在循環(huán)重構損失函數(shù),通過網(wǎng)絡訓練與優(yōu)化,兩者之間圖像數(shù)據(jù)分布越來越接近,由Input_Y到Input_X亦是如此。CycleGAN作為圖像風格遷移網(wǎng)絡,生成的風格圖像已滿足基本需求,但本文需要將模擬圖像風格遷移生成的圖像應用于語義分割網(wǎng)絡,對細節(jié)的處理要求較高。為此,需對CycleGAN進行改進,提高圖像生成質量。
圖2 CycleGAN結構圖Fig.2 CycleGAN structure diagram
1.1.1 生成器結構
生成器整體結構如圖3所示,主要由編碼器、轉換器、解碼器三部分構成。其中,編碼器由卷積網(wǎng)絡層構成,轉換器由殘差網(wǎng)絡構成,解碼器由反卷積網(wǎng)絡層構成。本文主要對生成器進行了兩點改進:
(1)引入注意力機制。為了保持模擬圖像中的重要細節(jié),提高生成圖像質量,將注意力機制加入到編碼器中。圖4中,注意力機制選用通道注意力[16],通道方向的注意力建模的是各個特征通道的重要程度,針對不同任務抑制或增強不同的通道。經過編碼器生成的特征圖輸入到通道注意力網(wǎng)絡,它同時使用最大池化(MaxPooling)和均值池化(AvgPooling)算法,然后經過多層感知機(multilayer perceptron,MLP)[17]獲得變換結果,將結果分別應用于兩個通道,使用Sigmoid函數(shù)得到通道注意力特征圖,最后將通道注意力特征圖與原輸入特征圖進行元素相乘的卷積操作。
圖3生成器結構圖Fig.3 Generator structure diagram
圖4通道注意力機制Fig.4 Channel attention mechanism
(2)替換轉換器。轉換器由原殘差網(wǎng)ResNet結構改進為具有密集連接的卷積神經網(wǎng)絡DenseNet。由圖5可以看出,DenseNet任兩層之間都有直接的連接,每一層的輸入都是前面所有層輸出的并集并且該層所學習的特征圖也會被直接傳給其他后面所有層作為輸入。DenseNet相較于ResNet來說,在一定程度上緩解了梯度消失,加強了特征傳遞,更有效地利用了特征,在模擬樣本特征得到有效保留的前提下學習到了真實樣本的風格。
圖5 ResNet與DenseNet連接機制對比Fig.5 Comparison of connection mechanism between ResNet and DenseNet
1.1.2 判別器
判別器由一值輸出改進為矩陣輸出。圖6中,判別器采用PatchGAN[18]結構,原始GAN中的判別器的輸出值只有一個,單值判定輸入判別器的圖像是真實圖像還是生成圖像。但是本文中PatchGAN的輸出為一個N×N的矩陣,矩陣中的每個點都需要做出判斷,一個點代表原始輸入圖像中的一個區(qū)域,將矩陣中判斷得到的值取平均值。由原來的一個值去判定輸入圖像真假變成現(xiàn)在N×N的矩陣來判定圖像真假,后者可以判定更多的區(qū)域,得到關鍵區(qū)域信息,提升訓練速度。
圖6 判別器結構圖Fig.6 Discriminator structure diagram
GAN作為CycleGAN的基礎,GAN工作的過程可以看作是生成器和判別器相互博弈的過程,生成器G負責生成假的圖片,假圖與真圖輸入到判別器D中,判別器D判斷輸入圖片的真假,生成器G生成越來越接近真圖的假圖,判別器D逐漸不能判斷輸入圖片的真假,通過兩者的相互博弈,達到納什均衡。GAN中的對抗損失函數(shù)如式(1):
其中Pdata為真實的數(shù)據(jù)圖像分布,PG為生成器生成的數(shù)據(jù)圖像分布,E為數(shù)學期望。固定生成器G,訓練判別器D,對于真實分布,D()x盡可能大,接近于1,對于生成式分布,D()x要接近于0;固定判別器D,訓練生成器G,G在訓練過程中,來自于生成分布中的x變化使得D()
x接近于1。CycleGAN在原始GAN的基礎上做出了一個逆向過程,即由X轉換為Y后再從Y轉換回X,損失函數(shù)也是在原始GAN的損失函數(shù)基礎上多了逆向的GANloss,此外還添加了針對X和Y的L1loss,整體損失函數(shù)為式(2):
式中LGAN(G,DY,X,Y)表示生成器G和判別器DY的生成對抗損失函數(shù),LGAN( F,DX,Y,X)表示生成器F和判別器DX的生成對抗損失函數(shù),在本文中生成器F與生成器G結構相同。Lcyc( G ,F)表示重構損失中的循環(huán)重構損失函數(shù),λ為循環(huán)重構損失相對于對抗損失的權重比例超參數(shù)。原始生成對抗損失函數(shù)表達式如式(3)、(4):
但因為采用對數(shù)作為損失函數(shù)會導致判別器訓練不穩(wěn)定,影響生成效果,所以最終的對抗損失函數(shù)為均方誤差損失函數(shù),表達式為式(5)、(6):
在無監(jiān)督圖像風格遷移的任務中,需要保留源域圖像特征和目標域圖像風格,僅存在對抗損失函數(shù)不能保證兩者特性共同存在,所以在此基礎上添加循環(huán)損失函數(shù)。目標變量與預測變量之間的絕對誤差,保證源域特征結構不發(fā)生變化,循環(huán)損失函數(shù)如下式:
實驗在服務器中進行,使用語言為Python3.7.3,深度學習框架為tensorflow1.13,服務器系統(tǒng)為Windows sever 2012,內存為32 GB,GPU為Tesla K40,顯存為12 GB。實驗數(shù)據(jù)集分為模擬樣本數(shù)據(jù)集和真實樣本數(shù)據(jù)集。模擬數(shù)據(jù)集為計算機制作SG-1500數(shù)據(jù)集,制作過程簡單,并且自帶標簽,共有1 500張。真實數(shù)據(jù)集為采集的石墨電極鋼印字符圖片,GE-1650數(shù)據(jù)集,共有1 650張。其中,訓練集1 300張,測試集350張,標簽為人工標注標簽。
本文選用U-Net與DeepLabv3+作為語義分割訓練網(wǎng)絡,因本實驗是對字符進行二分類語義分割,與其他語義分割網(wǎng)絡相比,選用U-Net與DeepLabv3+網(wǎng)絡作為訓練網(wǎng)絡,其訓練速度較快,生成結果較好,常用于工業(yè)生產當中。使用像素精度(pixel accuracy,PA)、均相素精度(mean pixel accuracy,MPA)、均交并比(mean intersection over union,MIoU)作為實驗中語義分割結果的評價指標。像素精度是圖像分割中評價分割網(wǎng)絡好壞的最簡單的評價指標,計算被正確分類的像素個數(shù)和總像素數(shù)之間的比例,式(8)中,表示正確分類像素數(shù),表示總像素數(shù);均像素精度是像素精度的一種簡單提升,計算每個類內被正確分類像素數(shù)的比例,之后求所有類的平均,在式(9)中,pii為每一類中的正確分類像素數(shù)為每一類的像素總數(shù),然后各個類相加,最后取平均值。
均交并比為語義分割的標準度量,計算兩個集合的交集和并集,在語義分割問題中,這兩個集合為真實值(ground truth)和預測值(predictedseg mentation)。這個比例可以變形為正真數(shù)(intersection)比上真正、假負、假正(并集)之和,在每個類上計算IoU,之后平均,在式(10)中,G表示真實值,P為預測值,pii為正真像素數(shù),表示真正與假負的像素數(shù)之和,-pii表示假正像素數(shù)。
風格遷移實驗共兩個,一個選用CycleGAN常用horse2zebra數(shù)據(jù)集進行實驗,另一個為本文中的石墨電極鋼印字符實驗。實驗中批量大小batchsize設置為1,訓練過程中,每100個epoch變化一次學習率,基礎學習率為2E-4,采用Adam算法進行梯度下降訓練優(yōu)化,Adam中的參數(shù)beta1為0.5,循環(huán)一致性損失函數(shù)中的λ大小為15。選用圖像質量評估指標FID(fréchet inception distance)來判斷圖像生成質量。FID從原始圖像的計算機視覺特征的統(tǒng)計方面來衡量兩組圖像的相似性,計算真實圖像與生成圖像特征向量之間的距離。FID數(shù)值越小代表生成圖片與目標圖像更相似,生成圖像質量越高。
實驗1為了驗證改進網(wǎng)絡CycleGAN-AD對風格遷移結果有所提升,選用horse2zebra數(shù)據(jù)集,將馬風格遷移成為斑馬。其中,訓練集,馬圖片有1 067張,斑馬圖片有1 334張;測試集,馬圖片122張,斑馬圖片140張。輸入輸出圖像大小設置為256×256。實驗結果如圖7所示。
圖7中,CycleGAN生成的斑馬圖片仍保留一些馬的特征,其背景也保留原圖片的色彩;改進網(wǎng)絡CycleGAN-AD生成的圖片中,斑馬輪廓與條紋更加明顯,背景也更接近于目標圖片風格。
圖7 馬與斑馬風格遷移結果Fig.7 Results of style transfer between horse and zebra
實驗2將計算機模擬樣本生成石墨電極鋼印字符的風格遷移實驗中,輸入輸出圖片大小設置為128×512。
由圖8石墨電極風格遷移結果可知,本文改進的CycleGAN-AD生成的目標域圖像與原始CycleGAN生成圖像相比較,圖像背景更加清晰,顏色更接近于目標域背景。目標字符模擬真實自然場景(光照、對比度等)有所提高,并且CycleGAN生成的圖像出現(xiàn)較多復雜線條噪點,改進網(wǎng)絡后,線條噪點得到了減少。
圖8 石墨電極風格遷移結果Fig.8 Results of style transfer of graphite electrode
由表1可知,改進網(wǎng)絡的FID數(shù)值在兩個數(shù)據(jù)集上相較于CycleGAN都有所減小,說明改進網(wǎng)絡生成的圖像質量更好,改進網(wǎng)絡更優(yōu)。
表1 FID指標數(shù)值對比Table 1 Comparison of FID index values
將實驗2中的CycleGAN生成樣本與CycleGAN-AD生成樣本作為語義分割網(wǎng)絡訓練樣本,對照語義分割結果是否有所提升,驗證改進網(wǎng)絡是否有效。
實驗分為兩組,第一組,將風格遷移生成的圖片樣本和其標簽送入語義分割網(wǎng)絡進行訓練,用真實測試集圖片進行測試,原CycleGAN與改進的CycleGAN-AD測試結果進行比較。圖9中,U-Net與DeepLab v3+為原網(wǎng)絡測試結果,AD-U-Net與AD-DeepLabv3+為改進網(wǎng)絡測試結果。
圖9 語義分割測試結果對比Fig.9 Comparison of semantic segmentation test results
由圖9可以看出,CycleGAN生成圖片進行語義分割,字符不夠清晰,存在無法分辨的字符;改進網(wǎng)絡生成圖片語義分割后,網(wǎng)絡字符清晰度有所提升,尤其是利用U-Net網(wǎng)絡訓練測試產生的語義分割字符,清晰度提高明顯。
對比表2中的各項指標,除了U-Net測試中的PA指標改進后的網(wǎng)絡比改進前的有所下降外,另外兩種指標都得到了提高,并且改進網(wǎng)絡再進行U-Net語義分割結果最好。說明改進網(wǎng)絡在一定程度上提高了語義分割精度。
表2 語義分割各項指標Table 2 Semantic segmentation indicators
第二組,對真實樣本數(shù)據(jù)集進行樣本擴充。改進的CycleGAN-AD生成圖片與真實圖片共同送入語義分割網(wǎng)絡進行訓練,與只有真實樣本進行訓練的分割結果進行比較,測試評價指標是否有所提升。圖10與表3中,U-Net與DeepLabv3+為未擴充樣本的結果,RG-U-Net與RG-DeepLabv3+為擴充樣本結果。其中,1∶1是指將模擬生成樣本與采集的全部真實樣本共同作為數(shù)據(jù)集,兩者比例為1∶1;逐漸減少真實樣本數(shù)量,兩者比例為2∶1、3∶1、4∶1。
表3 樣本擴充后語義分割各項指標Table 3 Indicators of semantic segmentation after sample expansion
通過圖10可以看出,未擴充數(shù)據(jù)集的兩種方法中,U-Net對字符5、9分割不夠清晰,存在噪點,字符發(fā)生了變形,DeepLabv3+對字符5、8分割不夠清晰完整;對全部真實樣本擴充后,字符分割較為完整清晰;逐漸減少真實樣本后,雖然整體清晰度有所下降,但每個字符分割完整,未出現(xiàn)變形現(xiàn)象。
圖10 樣本擴充后語義分割結果對比Fig.10 Comparison of semantic segmentation results after sample expansion
表3中,經過擴充樣本后,兩種語義分割網(wǎng)絡測試結果的各項評價指標都得到了提高。其中樣本擴充后的U-Net分割結果的各項指標為最高,MIoU值最高達到了0.826 0。雖然減少數(shù)據(jù)集中的真實樣本后,各項指標有所下降,但結合表中數(shù)據(jù)與分割結果圖,分析發(fā)現(xiàn),分割字符清晰完整,未出現(xiàn)字符變形,適當減少真實樣本數(shù)量可以應用于工業(yè)生產當中。
經過上面幾組實驗可以得出結論,將圖像風格遷移用于樣本擴充,不僅在構建數(shù)據(jù)集方面減少了人力,節(jié)約了時間,并且在一定程度上提升了語義分割結果的質量,更有利于語義分割網(wǎng)絡應用于工業(yè)生產當中。
本文對基本CycleGAN網(wǎng)絡進行改進,提出了CycleGAN-AD網(wǎng)絡。通過所提出的網(wǎng)絡,將計算機生成的虛擬樣本遷移成真實樣本風格,對原始樣本進行擴充。實驗結果表明,使用風格遷移擴充后的訓練樣本,能夠顯著提升語義分割的精度,表明本文所提方法有望為無監(jiān)督語義分割提供新的解決思路和方案。