崔雨涵,劉 瓊,張世卓
(北京信息科技大學 自動化學院,北京 100192)
圖像描述生成的目標是將視覺信息轉化為文字或某種語言的單詞序列,屬于多模態(tài)學習的典型問題,可應用于圖像檢索[1]、圖文自動轉換等領域,幫助視障人士還原視覺信息等,有效推動社會和諧與智能化的發(fā)展。
隨著深度學習技術的發(fā)展和公開數(shù)據(jù)集的發(fā)布,圖像描述算法發(fā)展迅速,研究者們在一定程度上解決了傳統(tǒng)方法中的一些弊端,如生成句子結構單一、語義不足和理解偏差等等。目前主流的模型是端到端的訓練方法。Wu等[2]借鑒機器翻譯任務中的“編碼器-解碼器”思想將其引入圖像描述生成任務中,首先采用多層深度卷積神經(jīng)網(wǎng)絡對圖像進行建模,把圖像的特征信息編碼,然后將循環(huán)神經(jīng)網(wǎng)絡(recurrent neural networks,RNN)作為解碼器,將文本信息與圖像信息映射在一個循環(huán)神經(jīng)網(wǎng)絡中,輸出描述句子。此外,Aneja等[3]用卷積神經(jīng)網(wǎng)絡作解碼器,緩解RNN的梯度消失問題。
高質量的圖像描述語句需要滿足:語句通順,符合人類表述習慣;描述準確,能真實地反映圖像內(nèi)容;描述細致,能完整地反映圖像中的重要信息。要得到高質量的圖像描述語句,關鍵之處在于讓圖像特征可以表示更多的圖像信息,通過捕捉圖像中所要描述的對象及其屬性特征,并與自然語言相對應,減小圖像信息和文本信息之間的異構鴻溝。最常見的方法是利用注意力機制模擬人類觀察、理解圖像的過程,提升圖像特征的描述能力。
Xu等[4]受人類大腦的啟發(fā),首次將注意力機制引入,對“編碼器-解碼器”模型進行改進,大大提高了模型的效果。基于注意力機制的研究不斷涌現(xiàn),推動了圖像描述生成模型的發(fā)展。Hu等[5]提出了一種基于通道關系的注意力模型,用平均池化對圖像特征進行空間聚合,建模通道之間的相互依賴關系。通道維度的權重,可以表示圖像中對象或屬性之間的依賴關系,也可以表示圖像的哪一部分更值得關注。但是,僅用平均池化對圖像特征進行空間聚合會損失大量空間信息,導致最終的描述語句不精確,在圖像復雜的情況下容易出現(xiàn)錯誤。
為了更精確細致地描述圖像,本文提出一種新型的通道注意機制,用平均池化、最大池化、隨機池化分別對圖像特征進行空間聚合特征提取,可以得到具有豐富空間信息的通道特征。通過建模通道之間的相互依賴關系,挖掘不同通道對注意力機制的貢獻差異,自適應地重新校準通道方向的特征響應。比如,當圖像中有多個描述對象時,通過通道注意機制,可以把多個對象在圖像特征圖中所對應的通道進行關聯(lián),學習它們之間的關系;當一個對象有多個屬性時,通道注意機制也可以表示多個屬性之間的關系。通過學習圖像特征圖的通道維度的權值,進一步發(fā)揮注意力機制在圖像特征提取網(wǎng)絡中的作用,以減小圖像信息和文本信息之間的異構鴻溝。實驗結果顯示,與傳統(tǒng)方法相比,本文方法生成的圖像描述細節(jié)精致、語句通順。
眾所周知,注意力在人類視覺感知中起著重要作用,而注意力機制就是通過模仿人類視覺感知的工作模式設計的[6-7]。在圖像描述生成任務中,注意力機制可以模仿人眼在觀察圖像時對不同區(qū)域的關注度差異,重點學習感興趣的區(qū)域特征,大大提高圖像特征的表達能力,減小圖像信息到文本信息轉換的異構鴻溝。與傳統(tǒng)注意力機制不同,本文單獨從圖像特征的通道維度進行研究,通過校準特征的通道維度,得到新的圖像特征圖。與傳統(tǒng)的三維圖像特征相比,從單一維度進行建??梢詼p小參數(shù)量和計算量。
通道信息的計算過程如圖1所示,通過空間聚合和激勵兩個步驟得到通道特征描述符,然后再與原始圖像特征融合,得到校準后的特征。
圖1 通道信息的計算過程
輸入的圖像特征圖為X∈RC×H×W,輸出的圖像特征圖為X′∈RC′×H′×W′,⊙表示原始特征圖X與通道特征描述符沿通道維度的乘法。通過空間聚合操作Fsq,把空間維度H×W縮小至1×1,將全局空間信息壓縮到一個通道描述符中,得到一個z∈RC的統(tǒng)計向量,可以計算出z的權值大?。?/p>
z=Fsq(X,W1)=δ(W1X)
(1)
式中:δ為ReLU函數(shù);W1為共享層,W1∈RC/r×C。
在空間聚合之后進行激勵操作Fex,得到權重系數(shù)s,其目的是最大程度捕捉通道之間的相互依賴關系:
s=Fex(z,W2)=σ(W2δ(W1X))
(2)
式中:σ為一個Sigmoid函數(shù);W2為共享層,W2∈RC×C/r。為了限制模型的復雜度并且提高模型的泛化能力,在非線性層采用兩個全連接層,設置一個門控機制,其中,r為降維層的減速比。最終,用權重系數(shù)s對圖像特征圖X的通道維度進行重新加權,通過乘法操作Fscale,得到具有通道信息的圖像特征圖X′:
X′=Fscale(s,X)=sX
(3)
圖2 C-Att模塊結構
s=savg+smax+ssto=
(4)
本文采用“編碼器-解碼器”模型作為基礎結構,在Aneja等[3]的CNN+CNN架構的基礎上進行改進,加入了C-Att模塊。在編碼階段,本文采用VGG16提取圖像特征信息,通過C-Att模塊對圖像特征信息的通道權值重新校正,再用CNN門控線性單元(gated linear unit,GLU)作為解碼器,生成描述性句子。模型總體結構如圖3所示。
圖3 模型總體結構
對于圖像描述任務,當指定一個輸入圖像I,則生成一系列單詞y=(y1,y2,…,yN)??赡艹霈F(xiàn)在生成語句中的單詞yi∈Y,而Y的容量很容易達到幾千。給定一個訓練集D={(I,y*)},其中,I是輸入的圖像,y*是與I相對應的原始描述句子。將y*進行編碼生成向量用以訓練。通過訓練得到參數(shù)w,使pw(y1,y2,…,yN|I)最大化。
本文算法的整體訓練過程和參數(shù)更新算法如下,其中步驟3、4是為了得到總的輸入特征向量:
1) 輸入:訓練集D={(I,y*)}
2) 輸出:網(wǎng)絡參數(shù)w
3) 設置:批量大小N,預訓練網(wǎng)絡參數(shù)wp,迭代次數(shù)epochs,學習率α,dropout
4) 迭代步驟:①初始化;②循環(huán)開始itert = 1 to epochs;③通過編碼層計算輸入的單詞特征向量;④得到輸入圖像的特征向量,并與步驟③得到的單詞特征向量拼接,得到總的輸入特征向量;⑤輸入融合注意力模塊的CNN解碼器模型;⑥根據(jù)下文式(5) 計算單詞分布;⑦計算pi,w(yi|y
主要步驟的詳細操作如下:
1) 輸入特征向量。本文基于VGG16提取圖像特征圖,VGG16是在ImageNet數(shù)據(jù)集上預訓練得到的。將圖像輸入VGG16網(wǎng)絡進行圖像特征提取,將網(wǎng)絡中的Fc-7層輸出,得到1×1×4 096的特征向量,再通過一個線性層進行維度變換,得到一個1×1×512維度的圖像特征向量。
在訓練時,首先將原始的描述句子y*通過編碼層進行獨熱編碼(One-hot Encoding)以及將|Y|=9 221嵌入512維的向量中,得到輸入句子向量。把得到的圖像特征向量和輸入語句向量拼接,得到1 024維度的向量,作為解碼器模型中總輸入特征向量;在測試時模型生成一個長度為15起始句子全零向量。通過編碼層進行獨熱編碼以及將|Y|=9 221通過嵌入層嵌入512維的向量中,得到起始句子輸入向量。把得到的圖像特征向量和起始句子輸入向量拼接,得到1 024維度的向量作為解碼器模型中總起始的輸入特征向量。
2) CNN解碼器。解碼器模型是基于卷積機器翻譯模型[9]。使用一個簡單的前饋深度網(wǎng)絡fw建模pi,w(yi|I),預測的單詞yi依賴于過去的單詞y
pi,w(yi|y
(5)
本文使用屏蔽的卷積層,只對過去的數(shù)據(jù)進行操作,防止使用未來單詞標記信息。推理開始后,通過前饋網(wǎng)絡生成p1,w(y1|Θ,I),以此從|Y|中得到句子的第一個單詞y1。把y1反饋回前饋網(wǎng)絡,生成p2,w(y2|Θ,I),再從|Y|得到句子的第二個單詞y2。以此類推,一直到推理結束或者達到最大步數(shù)。
在解碼過程中,執(zhí)行3層掩膜卷積,將卷積后的句子表示向量特征維度保持在512維。并使用門控線性單元(GLU)來對每一個CNN層進行激活。
3) 分類層。使用一個線性層將解碼器模型中得到的512維句子表示向量編碼為256維的向量,再通過一個全連接層上采樣到9 221維,通過Softmax函數(shù)輸出最大概率的單詞yi,最后生成句子y。
4) 注意力模塊。把注意力模塊添加到每層的單詞嵌入中,為每個單詞計算單獨的注意參數(shù)和單獨的注意向量。注意力模塊的輸入為VGG16網(wǎng)絡Conv5層的輸出特征X,其中,X=(x1,x2,…,xi,…,x512),i∈{1,2,…,512},xi∈R512×7×7為X的第i個維度的空間特征。第j個單詞在圖像特征X的第i個維度上的注意參數(shù)aij為
(6)
式中:W0為用于挖掘通道信息的通道注意機制;dj為CNN模塊中第j個單詞嵌入;W為應用于dj的線性層。
最后得到的第j個單詞對應的注意特征向量為∑iaijxi。
本文實驗中使用基于Linux- 4.15.0-29-generic內(nèi)核的Ubuntu 16.04操作系統(tǒng),CPU為Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10 GHz,GPU為NVIDIA GTX 1080 Ti,使用PyTorch-0.4.1深度學習框架,基于Python2.7語言實現(xiàn)。
本文在MS COCO(Microsoft Common Object in Context)2014數(shù)據(jù)集[10]上進行實驗。MS COCO由微軟發(fā)布,是當前最流行的圖像描述數(shù)據(jù)集。該數(shù)據(jù)集包括82 783張訓練圖像和40 504張驗證圖像,每幅圖像由5人注釋說明。實驗過程中,使用113 287張圖像用于訓練,5 000張圖像用于驗證,5 000張圖像用于測試。
本文使用交叉熵損失來訓練CNN模塊和嵌入層,經(jīng)過8輪訓練,對VGG16網(wǎng)絡進行微調。使用RMSProp 算法進行優(yōu)化,初始學習率為5e-5,每15輪訓練后學習率衰減0.1,總共經(jīng)過30輪訓練,然后評估驗證集上的指標,選擇最佳的模型。輸入詞嵌入向量為512維,輸入圖像特征向量為512維,總的輸入特征向量為1 024維,每一層的CNN的輸出維度是512。為了防止過擬合,采用dropout機制,參數(shù)設置為0.5。
基于CNN+GLU模型,不加注意力機制的模型(no-Att)、加入不含通道信息的注意力機制的模型(Att)和加入含通道信息的注意力機制的模型(C-Att)在MS COCO 2014測試集上的得分如表1所示,C-Att模型和Att模型在部分圖片中生成的描述句子效果對比如圖4所示。
可以看出,在評分指標上,本文方法生成的圖像描述在Bleu_1、ROUGE_L、METEOR、CIDEr、SPICE[11]指標上的得分均比傳統(tǒng)的Att模型有提高。
表1 不同模型在MS COCO 2014測試集上的得分對比
圖4 C-Att模型和Att模型效果在部分圖片中的描述結果對比
從句子描述的豐富度和準確性來看,C-Att模型生成的圖像描述也優(yōu)于傳統(tǒng)的Att模型。如圖4(a)所示,在C-Att模型生成的描述中,“dog”被細化為“brown and white dog”,增加了對象的顏色屬性;在圖4(b)中,C-Att模型生成的描述中,可以用“man”具體地描述是什么樣的人,而不是用籠統(tǒng)的“person”表示;在圖4(c)中,圖像包含多個對象,傳統(tǒng)的Att模型不能正確地生成相關描述,但C-Att模型生成的描述可以準確地涵蓋圖像中的對象,如:“cat”和“stuffed animal”;在圖4(d)、(e)、(f)中,當一副圖像中出現(xiàn)兩個相同的對象時,用傳統(tǒng)的Att模型生成的描述中,不能準確地表示圖像中對象的數(shù)量,而用C-Att模型生成的描述中包含了“對象的數(shù)量”這個屬性。通過以上例子可以說明,C-Att模型通過挖掘通道之間的相互依賴關系,可以捕捉到圖像中關于描述對象的屬性信息,可以學習到復雜圖像中的對象,可以學習圖像中相同對象的數(shù)量。
BLEU是一種基于精確度的相似性度量方法,用于分析生成語句和標準語句(“ground truth”)中n元組共同出現(xiàn)的程度。它的思想是計算生成的單詞在“ground truth”中出現(xiàn)的頻率。從表1可以看出,在Bleu_2、Bleu_3、Bleu_4這3個評價指標上,C-Att模型的得分沒有較大提升,但在Bleu_1、ROUGE_L、METEOR、CIDEr、SPICE指標上,C-Att模型的得分均優(yōu)于no-Att模型和Att模型。簡單來講,生成描述的句子中的單詞在標注句子(ground truth)中出現(xiàn)過的個數(shù)越多,BLEU得分越高。以圖4(a)為例,這張圖像的一個標注句子是“a large dog retrieving the frisbee for his owner”。在C-Att模型生成的描述中,多了“brown”、“and”、“white”這3個單詞,并且這3個單詞在標注句子中也沒有出現(xiàn)。根據(jù)BLEU的計算規(guī)則,由于C-Att生成的句子更加細致,出現(xiàn)了“ground truth”中未出現(xiàn)的單詞,導致了BLEU的得分未能提高。雖然得分沒有提高,但C-Att模型生成的描述更為細致準確,更符合人類的表述習慣。
本文對注意力機制進行深入研究,提出了應用于圖像描述生成任務的Channel-Att模型。模型在原有注意力機制的基礎上加入了通道信息,采用平均池化、最大池化、隨機池化分別對圖像特征進行空間聚合,得到通道特征,最大程度地減少在空間聚合過程中的信息損失。通過建模通道之間的依賴關系,重新校正圖像特征的通道維度的權值大小。實驗結果表明,與傳統(tǒng)的不含通道信息的注意力機制的模型相比,加入通道信息的注意力機制模型在Bleu_1、ROUGE_L、METEOR、CIDEr、SPICE指標上的得分均有提高,生成的描述細致、準確,更符合人類的描述習慣。