(西安工業(yè)大學 電子信息工程學院,西安710021)
深度學習憑借強大的數(shù)據(jù)表征能力,在水下圖像識別檢測領域表現(xiàn)出優(yōu)異的能力,然而深度網絡模型較強的識別能力依賴于大規(guī)模帶標簽的數(shù)據(jù)[1]。水下圖像采集比較困難,獲得的數(shù)據(jù)質量不高,小樣本數(shù)據(jù)嚴重限制了水下目標檢測識別技術的發(fā)展。
為解決水下數(shù)據(jù)匱乏的問題,數(shù)據(jù)增強技術成為人們的重要研究方向[2]。目前,數(shù)據(jù)增強的方法主要是:①幾何變換類方法 包括旋轉、平移、翻轉、裁剪(ROI,region of interest)、旋轉、縮放變形等[3]。此類方法并沒有對數(shù)據(jù)集的目標特性進行實質性的改變,且生成的數(shù)據(jù)帶有很多的冗余信息,模型的預測能力受限于這種擴充方式。②圖像生成型模式 文獻[4]提出的生成對抗網絡GAN是一種生成式模型,從本質上分離傳統(tǒng)圖像增強時帶來的生成樣本相關性,實現(xiàn)數(shù)據(jù)增強,但該模型容易出現(xiàn)訓練不穩(wěn)定的問題;文獻[5]將卷積神經網絡CNN(convolutional neural networks)與GAN 結合在一起提出DCGAN,該網絡能夠有效緩解GAN 訓練不穩(wěn)定的問題,但對于低質量水下圖像數(shù)據(jù)該模型的魯棒性較差。故在此,提出了改進的深度卷積生成對抗網絡,以改善水下生成圖像的質量。
GAN的靈感來源于博弈論中的零和博弈[6],其模型結構如圖1所示。生成器捕獲真實數(shù)據(jù)樣本的內在分布生成新的數(shù)據(jù);鑒別器是一個分類器,它決定輸入是真實的還是生成的。這2個網絡不斷優(yōu)化自己的生成及辨別能力,直到兩者之間找到納什均衡。
圖1 GAN模型結構Fig.1 GAN model structure
DCGAN是在GAN的基礎上引入了卷積神經網絡來替換生成器和鑒別器結構,還采用部分技巧來提高網絡的收斂速度。其主要改進具體如下:①鑒別器使用卷積結構,生成器使用反卷積結構,刪除了網絡中的池化層;②網絡引入批量歸一化BN(batch normalization),防止梯度消失或爆炸,加快訓練速度;③生成器除了最后一層使用tanh 激活函數(shù),其他層均使用ReLU 激活函數(shù);④鑒別器的所有層使用LeakyReLU 激活函數(shù)。
在此,提取出水下圖像感興趣目標作為真實數(shù)據(jù)輸入到DCGAN 網絡。通過試驗可知,傳統(tǒng)的DCGAN 生成圖像質量較差,主要表現(xiàn)為每個批次生成的圖像較為相似,僅能勾勒出目標物的大致輪廓,缺少細節(jié)信息等。因此,需要根據(jù)數(shù)據(jù)特性來優(yōu)化模型,提高生成的水下圖像質量。
1.2.1 改進生成器結構
改進生成器結構如圖2所示。圖中“?”表示該值不固定。
圖2 改進生成器的結構Fig.2 Structure of improved generator
由圖可見,在傳統(tǒng)DCGAN 生成器上加入了特征融合部分,將生成網絡的h3層輸出的特征圖(數(shù)據(jù)分布)進行下采樣操作,改變形狀大小與h1層特征圖大小相同,再將其與h1層的輸出在最后一個維度上進行連接,組成新的特征圖一并輸入到h2層。為避免4倍下采樣造成過多有效數(shù)據(jù)丟失,先對h3 輸出特征圖進行一次卷積操作,然后再進行一次下采樣。下采樣使用雙線性插值法,可以起到數(shù)據(jù)平滑作用,有效地保留原始數(shù)據(jù)的信息。
在生成網絡中,越靠近輸出側的隱層,其數(shù)據(jù)分布越接近真實數(shù)據(jù)分布,而前邊層的分布就離真實數(shù)據(jù)分布較遠,但前邊層也越具有更多的多樣性的可能。將靠后特征層與前邊特征層相融合,即將后層的相似性與前層的多樣性相結合到一起,使得生成的圖像在相似性和多樣性上都具有良好表現(xiàn)。
1.2.2 網絡訓練策略設計
DCGAN的訓練實質上是一個交替進行的過程。生成網絡訓時,固定鑒別網絡D的參數(shù),更新生成網絡G的參數(shù)。生成器的任務就是希望G(z)通過網絡D 判別為真實數(shù)據(jù),所以其目標函數(shù)是最大化D(G(z)),即
鑒別網絡在訓練時,固定生成網絡G的參數(shù),更新鑒別網絡D的參數(shù)。網絡D的任務是較好地區(qū)分真假輸入——G(z)輸入數(shù)據(jù)判別為假,真實數(shù)據(jù)輸入判別為真。所以目標函數(shù)是最大化D(x)和最小化D(G(z)),即
生成器的能力往往受到鑒別器的影響,所以在訓練過程中,每訓練3次生成網絡,訓練1次鑒別網絡。這樣,可以使生成器擁有足夠多的訓練次數(shù),不斷更新?lián)p失函數(shù),更快地將損失函數(shù)降低到合理值。生成器和鑒別器的交替訓練結構如圖3所示。
圖3 D 和G 網絡交替訓練結構Fig.3 Interval training structure of D and G networks
鑒別網絡是一個二分類網絡。在此,將標簽平滑技術引入該分類器,以提升網絡的魯棒性。具體做法如下:在迭代時,并不直接將訓練樣本(xi,yi)放入訓練集,而是設置一個錯誤率ε,以1-ε的概率將(xi,yi)帶入訓練,以ε的概率將(xi,1-yi)帶入訓練。即
在此對鑒別器D的標簽進行平滑操作,即使用0.7~1.0之間的隨機值替代標簽1,用0~0.3之間的隨機值替代標簽0。這雖然減弱了DCGAN 中判別網絡的分類能力,但增強了2個網絡的訓練穩(wěn)定性。
DCGAN 生成的圖像僅為單個目標圖像,需要與背景圖像融合后才能作為有效訓練樣本。為符合實際的數(shù)據(jù)目標特性,目標與背景圖像融合的時候需要兩者盡量平滑,邊界值像素需要保持一致,同時融合的新目標不能覆蓋原始目標。
在此將背景圖像內隨機生成點作為生成圖像的中心融合點。為了避免生成目標與原始目標的重疊和近鄰邊界截斷問題,該中心融合點遵從以下約束條件:
式中:h,w分別為原始目標圖像的高、寬;h′,w′分別為生成目標圖像的高、寬;H,W分別為背景圖像的高、寬;i,j為原始目標圖像左上角像素點的位置;x,y為生成圖像的中心像素點位置,即隨機生成的中心融合位置點。其具體生成流程如圖4所示。
圖4 中心融合點生成流程Fig.4 Center fusion point generates flow chart
為滿足目標圖像與背景圖像的平滑融合,采用泊松融合進行無縫融合。相比于傳統(tǒng)的融合方法,泊松融合不僅能夠使邊界自然融合,而且可以通過局部的圖像編輯得到全局的融合效果,使目標整體適應背景圖像[7]。兩種方法生成圖像的對比如圖5所示。
圖5 兩種方法生成圖像的對比Fig.5 Comparison of two methods to generate images
由圖可見,傳統(tǒng)融合方法所生成的圖像中,目標圖像與背景明顯區(qū)分;泊松融合的圖像中,融合后生成目標圖像能夠很好地適應背景圖像,可以作為真實水下數(shù)據(jù)集進行模型的訓練。
在此所使用的數(shù)據(jù)集來自2019年水下機器人抓取大賽官方的水下海產品數(shù)據(jù)集。該數(shù)據(jù)集提供了4755 張真實海洋環(huán)境下拍攝的圖像,其中包含海參、海膽、扇貝和海星四類目標,部分圖像如圖6所示。
圖6 水下海產品數(shù)據(jù)集的部分圖像Fig.6 Partial image of subsea seafood data set
通過對該數(shù)據(jù)集的統(tǒng)計分析,發(fā)現(xiàn)存在嚴重的類不平衡問題,其各類目標數(shù)量比,如海膽∶海參∶扇貝∶海星,近似為3∶1∶1∶1。這一類不平衡問題勢必大大降低網絡對數(shù)量較少類別的識別精度,故在此使用DCGAN 來擴增數(shù)據(jù),提高數(shù)據(jù)集質量。
為使DCGAN 網絡能夠學習到更多目標物體的特征,生成更好的偽目標圖像,可以根據(jù)標簽文件提取原始數(shù)據(jù)中感興趣的目標圖像。在此以扇貝為例,通過人工篩選后,得到1335 張質量較好的圖像,作為此次DCGAN 網絡的真實數(shù)據(jù)輸入。所提取的部分扇貝圖像如圖7所示。
圖7 部分提取的扇貝目標數(shù)據(jù)Fig.7 Part of scallop target data extracted
試驗的軟硬件環(huán)境配置見表1。
表1 軟硬件配置環(huán)境Tab.1 Hardware/software configuration environment
對于DCGAN 網絡模型的參數(shù)配置,在此經過多次試驗并微調之后,具體參數(shù)設定如下:輸入圖像大小為96×96×3,截取圖像大小不一時輸入后會截掉部分信息,為了不損失圖像信息故提前采用resize進行尺寸調整;輸出圖像大小為48×48×3;批處理大小為64;輸入的z 采用均勻分布生成的噪聲;優(yōu)化器采用Adam,網絡D 和G 學習率均為0.0002,動量為0.5;訓練epoch 設定為5000。
3.3.1 灰度化生成圖像對比試驗
為消除水下圖像色偏現(xiàn)象(綠色和藍色)對生成圖像質量的影響,通過去色將目標圖像變成灰度圖,使得輸入圖像整體基調色一致。扇貝去色之后的灰度化圖像如圖8所示。
圖8 扇貝去色后圖像Fig.8 Image of scallop decolorized
傳統(tǒng)生成器生成的圖像如圖9所示。由圖可見,所生成的彩色圖像(如圖9a所示)基本符合兩種基調色的特性,但是生成的扇貝形狀、紋理等細節(jié)信息不夠突出;生成的灰度圖像(如圖9b所示),相比于圖9a,所生成的扇貝圖像具有更多的形狀和紋理,生成器將更多的注意力集中在細節(jié)信息方面,但仍存在生成圖像相似較多的情形。
圖9 傳統(tǒng)生成器生成的圖像Fig.9 Image generated by traditional generators
3.3.2 改進生成器生成圖像對比試驗
為研究改進生成器結構對生成高質量圖像的有效性,使用其對灰度化之后的扇貝圖像進行生成試驗。模型訓練過程中損失函數(shù)的變化如圖10所示。其中,圖10a,10b是鑒別器判斷樣本分別為假的、真的損失函數(shù);圖10c為鑒別器總的損失函數(shù),其值等于判別為假的損失和判別為真的損失之和;生成器損失函數(shù)的變化情況如圖10d所示。
由圖10可見,在前5000次迭代中,生成器損失一直處于較低的水平,此時生成器能夠快速生成與真實數(shù)據(jù)分布相近的圖像;在迭代約4000次所生成的圖像已經可以勾勒出扇貝的輪廓;在5000次迭代后,鑒別器損失下降,生成器損失略微上升,在5~6之間波動,此時隨著迭代次數(shù)的增加,生成的圖像也越來越清晰??傮w來看,2個函數(shù)震蕩變化,生成器與鑒別器這2個網絡結構在相互制約、平衡。
圖10 改進生成器訓練損失曲線Fig.10 Loss curves of improved generator training
改進生成器生成灰度圖像的結果如圖11所示。在訓練迭代20000次之后基本上滿足了生成圖像的要求,相比于圖9b可見,改進后的生成圖像在同批次中形狀較為豐富,紋理、輪廓等信息較為清晰,而且生成的圖像較為自然,可以用作目標圖像來進行識別。
在此,將生成的目標圖像經過篩選后與背景圖像融合生成2000 張可用訓練的數(shù)據(jù),然后基于YOLOv3 目標檢測算法,分別對未擴增和使用改進DCGAN 擴增之后的數(shù)據(jù)集進行訓練,其性能測試結果見表2。
圖11 改進生成器生成的灰度圖像Fig.11 Grayscale image generated by improved generator
表2 不同數(shù)據(jù)集的檢測結果Tab.2 Detection results of different data sets
由表可知,擴充之后的檢測精度較之前提升了2.5%,其中目標數(shù)量較少的類別提升較大,海參和扇貝分別提升了4.57%,4.53%。
為解決水下圖像數(shù)據(jù)不足、類不平衡問題,深入研究了圖像生成方法以實現(xiàn)數(shù)據(jù)擴增。對傳統(tǒng)DCGAN模型的生成器網絡進行了改進,同時設計了網絡的訓練策略,不僅改善了傳統(tǒng)DCGAN模型生成水下圖像的質量,也提高了網絡模型訓練的穩(wěn)定性。此外還設計了圖像融合點函數(shù)來進行訓練樣本的制作。對比試驗表明,擴增后的數(shù)據(jù)使得水下目標檢測的準確度提高了2.5%,該方法能夠有效改善水下圖像生成質量,提高目標識別精度。