肖 雄, 徐偉峰, 王洪濤, 蘇 攀, 高思華
(1. 華北電力大學(保定) 計算機系, 河北 保定 071003; 2. 中國民航大學 計算機科學與技術學院, 天津 300300)
圖像內容描述與圖像標注、 圖像特征提取、 文本生成等技術密切相關, 是圖像和文本交叉融合的多模態任務[1-4], 不僅需要從圖像中識別出目標物體, 還需將識別出的目標物體與其語義信息相關聯以構成自然語言描述. 近年來, 關于圖像內容描述的研究取得了較大進展, 在圖像檢索[5]、 人機交互[6]、 視覺輔助[7]等領域有廣闊的應用前景.
早期圖像描述方法主要基于傳統機器學習, 在對象檢測過程中識別出目標物體和屬性, 將其填入預定義的模板以生成描述語句. 隨著深度學習在各領域的快速發展, 基于深度學習的圖像描述方法也得到快速發展. 深度圖像描述模型通常采用編碼器-解碼器結構[8], 一般使用卷積神經網絡(convolutional neural networks, CNN)作為編碼器, 循環神經網絡(recurrent neural network, RNN)作為解碼器. 其中, CNN編碼器通常用于提取圖像的全局特征生成圖像描述. 但這種網絡結構存在兩個問題: 1) CNN編碼器無法有效提取圖像的細粒度語義特征, 使模型生成的描述內容較廣泛, 不具體; 2) RNN(包括其變種門控循環單元(GRU)[9]等)在解碼時生成的詞十分依賴前面內容的語義信息, 隨著句子長度的增加, 新產生的詞與之前的詞之間相關性越來越小, 不利于生成長句描述. 圖1為數據集ICC圖片示例. 由圖1可見: 基于GRU解碼器不利于生成長句描述, 基于全局特征生成的內容傾向于描述場景, 而忽略了對象之間的關系; 在Transformer(無局部特征)模型生成的描述中, 只概括了“一群”對象, 并未描述目標對象的具體語義信息. 因此, 現有方法在圖像中文描述任務上無法實現細粒度語義特征的有效提取.

圖1 數據集ICC圖片示例1Fig.1 Picture example1 ofICC dataset
針對上述圖像描述現有方法不利于生成長句、 缺乏細節語義信息的問題, 本文提出一種具有細粒度語義特征的圖像中文描述模型. 為提升學習和表示長句的能力, 該模型基于Transformer實現, 其編碼器中, 使用預訓練的Inception-ResNet提取全局特征, 對于局部特征, 以預訓練的Faster R-CNN進行目標檢測, 映射到目標區域后, 再使用Inception-ResNet提取特征. 為增強圖像目標區域細粒度語義特征信息的表示, 編碼器中的全局特征和局部特征通過多頭注意力(multi-head attention, MHA)融合. 在解碼器中, 通過對編碼器輸出的具有細粒度語義信息特征解碼, 以生成圖像中文描述. 實驗結果表明, 多尺度特征的融合使圖像注意力傾向于圖像目標區域, 豐富了對目標物體的描述. 本文主要貢獻如下:
1) 使用自注意力融合全局特征和局部特征的方法, 提取圖像目標區域周圍具有細粒度語義信息的特征, 以此豐富目標物體的圖像描述;
2) 提出完全基于Transformer的圖像中文描述模型, 增強了對長句學習和表示的能力;
3) 在數據集ICC上采用多種評價指標進行驗證, 本文模型在各項指標上均有不同程度的提升, 此外, 為探索本文模型內部的可解釋性, 對融合后的多尺度特征進行了注意力可視化分析.
Xu等[10]在圖像描述模型中引入了注意力機制, 編碼器從較低的卷積層提取特征, 解碼器通過選擇所有特征向量的子集選擇性地關注圖像的某些部分, 但該模型僅在圖像特征和文本之間進行注意力學習, 并未關注到圖像中具體對象的細節信息. 文獻[11]提出了一種基于RNN的多級注意力圖像描述模型, 其中一級注意力通過融合圖像的局部特征和全局特征表示圖像, 二級注意力用于結合圖像特征和文本向量, 該模型雖然對圖像的語義特征有細粒度的表示, 但其表述長句的能力較差.
Lin等[12]使用雙線性池化(bilinear pooling)對圖像進行細粒度分類. 為獲得更多的隱藏特征信息, 其使用不同的CNN提取兩種不同尺度的特征, 提取的多尺度特征通過雙線性池化進行融合, 但該方法在每個特征位置都要進行大量的向量外積計算, 計算成本較高. Dai等[13]使用多尺度通道注意力模塊融合不同尺度的特征, 但該方法并未顯著提升圖像描述的性能.
Transformer[14]最早應用于自然語言處理, 近年也被廣泛應用于計算機視覺領域中, 并取得了較好的效果. 例如: Carion等[15]使用Transformer進行目標檢測時, 通過采用二維位置編碼(2-D positional encoding)將位置信息加入到圖像中; Dosovitskiy等[16]提出用Vit Transformer對圖像進行分類, 該模型將圖像分成若干小塊, 模仿文本序列作為Transformer的輸入.
本文在使用Transformer對圖像生成描述時, 對以上兩種方法的實驗結果表明, 使用二維位置編碼[15]的方式對圖像添加位置信息, 在與使用一維位置編碼的文本向量融合時可能存在耦合問題, 導致解碼圖像特征時無法有效預測; 而使用分塊輸入[16]方法, 在解碼時, 由于圖像輸入的語義信息不完整, 不能生成自然語義的描述. 因此, 本文在Transformer基礎上使用深度卷積網絡提取圖像特征作為輸入, 并使用一維位置編碼為圖像特征添加位置信息.
本文提出的模型基于Transformer結構生成圖像描述, 主要由N個編碼器和N個解碼器兩部分組成, 模型框架如圖2所示. 編碼器和解碼器內部又包含多個注意力頭, 其主要任務是對輸入的不同特征進行注意力學習. 其中, 編碼器主要任務是對圖像特征進行編碼, 學習到具有細粒度語義信息的圖像特征, 分別使用Inception-ResNet[17]和Faster R-CNN[18]提取全局特征和局部特征, 在加入位置編碼后, 通過MHA融合全局特征和局部特征. 解碼器對輸入的詞嵌入向量X添加位置編碼, 通過內部的MHA在詞嵌入向量和編碼器輸出的細粒度圖像特征之間建立映射關系, 最后經過一個全連接層輸出詞典中的概率分布, 取其中概率最大的索引生成描述語句.
2.1.1 全局特征
對于圖像的全局特征Hi,c(x), 使用預訓練的Inception-ResNet提取特征, 這是一個由多個卷積網絡堆積而成的深度模型. 為匹配Transformer網絡的維度, 將提取的1×1×1 536維特征向量通過一個全連接層和ReLU激活層[19]轉變為1×1×512維特征向量. 對于一張圖像, 其全局特征可表示為Hi,c(x)={x1,x2,…,xL}, 其中xi∈D,L表示特征向量的數量,D表示特征向量的維數.
2.1.2 局部特征
對于圖像的局部特征Ibox, 先使用預訓練的Faster R-CNN檢測目標區域, 將其映射到目標區域, 然后使用Inception-ResNet提取目標區域的局部特征, 同樣通過一個全連接層和ReLU激活層進行維度轉換. 對于一張圖像, 其局部特征可表示為Ibox={Ibox1,Ibox2,…,Iboxn}, 其中boxn表示特征向量的數量.

圖2 基于Transformer圖像中文描述模型框架Fig.2 Image Chinese caption model framework based on Transformer
2.2.1 多頭自注意力
在卷積網絡中, 使用多個卷積核提取不同的特征, 根據該思想, Transformer[14]提出了多頭注意力, 使得特征多樣化, 并且能并行運算.
多頭注意力中的點積注意力(attention,A)是在一組查詢(query,Q)、 鍵(key,K)、 值(value,V)之間的交互計算, 如圖3所示. 其中Q∈d,Kt∈d,Vt∈d,t∈{1,2,…,n}表示鍵-值對的個數,d表示所有輸入特征的維度, 通過計算Q和所有K的點積, 將每個值除以并通過Softmax函數[20]得到每個特征的注意力權重. 在實際應用中, 分別將所有的鍵-值對都打包成矩陣進行運算. 令K=(k1,k2,…,kn)∈n×d,V=(v1,v2,…,vn)∈n×d,Q=(q1,q2,…,qm)∈m×d, 則點積注意力的計算可表示為

(1)

圖3 點積注意力Fig.3 Dot-product attention

圖4 多頭注意力Fig.4 Multi-head attention
多頭注意力不僅執行這組查詢任務, 還包括多個點積注意力函數, 并行建模來自不同表示子空間的不同信息, 如圖4所示.多頭注意力包含h個平行的頭, 每個頭都有對應的獨立點積注意力函數, 可表示為
MHA(Q,K,V)=Concat(h1,h2,…,hh)Wo,
(2)

(3)

為使Transformer具有非線性, 增加一組前饋網絡(feed forward network, FFN), FFN將MHA的輸出特征作為輸入, 使用兩個全連接層進行變換, ReLU和Dropout[21]層的關系可表示為
FFN(x)=FC(Dropout(ReLU(FC(x,4d)),p),d),
(4)
其中輸入特征x∈d, 第一個全連接層將x變換成4d維, 第二個全連接層變換成d維, Dropout比例設為0.1, 即p=0.1.
因此, 多頭注意力模塊在兩個輸入特征之間進行交互計算, 前饋網絡進一步對特征進行非線性變換; 通過這兩個模塊的組合, 得到了一個深度可疊加的多頭注意力模塊.利用這種方式, 對圖像全局特征和局部特征、 圖像特征和文本序列進行自注意力學習.
2.2.2 位置編碼
由于Transformer沒有遞歸的輸入信息, 因此為使模型中的特征序列在學習過程中保留位置信息, 在序列中加入相對位置信息. 位置編碼和輸入特征具有相同的維數d, 可直接相加表示.本文使用正弦和余弦三角函數作為位置編碼函數, 可表示為
其中pos為當前序列位置,i是維度.這樣每個位置的編碼都對應三角函數曲線, 波長為2π到10 000×2π, 因此對于任何偏移量k,PEpos+k均可表示為PEpos的線性函數.
2.2.3 編碼器
不同圖像的局部特征數量可能不同, 為固定特征長度, 在局部特征輸入到編碼器之前用0 進行填充操作, 使每張圖片的局部特征數量相等.在訓練過程中, 為防止參數更新受填充特征的影響, 在Softmax操作前, 會添加一個掩碼(mask)覆蓋這些填充的值. 由于添加的mask值接近負無窮大, 因此在Softmax操作中這些位置的概率無限接近于0.

圖5 特征融合點積注意力Fig.5 Feature fusion dot-product attention
在編碼器中, 為在訓練過程中保留圖像特征的位置信息, 在其中加入一維位置編碼, 然后輸入到多頭注意力中. 不同于一般的MHA, 本文提出特征融合點積注意力,Q和K點積得到的注意力權重在局部特征向量的維度上求和, 然后與V交互計算.全局特征和局部特征通過多頭自注意力融合作為編碼器的輸出, 如圖5所示, 可表示為
其中Iboxi為當前圖像的第i個目標區域特征,Hi,c(x)為圖像的全局特征,Wq,Wk,Wv為模型學習的參數.
多頭注意力由一個殘差子層和一個標準化子層[22]連接, 最后用Zenc作為編碼器的輸出, 可表示為

(12)
其中Hi,c(x)表示圖像的全局特征,F(x)表示一個全連接層, Norm表示一個標準化操作, Dropout比例設為0.1, 即p=0.1.
2.2.4 解碼器
圖像描述生成是一個語言建模過程.每張圖像的描述語句在解碼器前進行預處理, 即添加開始標記〈s〉和結束標記〈e〉, 然后使用分詞工具進行分詞. 每個詞生成唯一編號, 整個文檔的詞根據編號構建成一個字典.
在訓練階段, 用構建的字典表將描述語句轉化成數字序列, 并去除結束標記〈e〉, 即{s,v1,v2,…,vn}.為固定特征大小, 將所有序列用0填充到最大長度, 然后通過一個嵌入層轉換成詞嵌入向量X輸入到解碼器中; 因為當前序列并未利用位置信息, 所以需在序列中添加位置編碼, 使其在訓練過程中保留位置信息; 此外需要注意, 當前輸入的是整個序列, 為在訓練時保有時序性, 需在多頭注意力中的序列添加一個上三角為1、 其余為0的掩碼, 用于遮擋當前時序中后續標記部分.
在測試推理階段, 將開始標記〈s〉為頭的起始序列輸入到解碼器, 與編碼器類似, 序列用作查詢, 編碼器輸出用作鍵和值, 在MHA層進行交互計算, 圖像和文本關聯映射后, 殘差子層和標準化子層連接到解碼器, 輸出一個d維的公共特征向量.一個全連接層使解碼器輸出轉換為一個概率向量Pvocab, 其中vocab表示當前數據集字典表的大小. 本文選擇概率最高的索引, 將字典表中索引的詞作為當前時間步的輸出, 將當前時間的輸出依次加入到解碼器輸入序列中, 直到輸出結束標記〈e〉, 最后轉換字典表中編號對應的輸出序列{s,v1,v2,…,vn,e}生成其圖像描述結果.


(13)

本文實驗所用數據來自數據集ICC[23], 該數據集包含30萬張圖像, 其中訓練集為21萬張圖像, 驗證集為3萬張圖像, 測試集為6萬張圖像, 每張圖像對應5句中文描述, 如圖6所示.

圖6 數據集ICC圖片示例2Fig.6 Picture example 2 of ICC dataset
本文實驗環境基于Tensorflow深度學習框架, 硬件平臺為Intel(R) Core(TM) i3-9100F CPU @ 3.60 GHz處理器, 運行內存31 GB, 配置GeForce RTX 2080 Ti 11 GB顯卡.
在提取圖像特征前, 對圖像進行預處理, 將數據集的原始圖像縮放至299×299像素大小. Transformer編碼器和解碼器分別設為6個, 使用8個注意力頭. 本文在20 000訓練集和1 000驗證集上進行實驗; 為避免過擬合, Droupout設為0.1; 使用Adam優化算法[24]優化模型參數, batch訓練大小設為8, 學習率設為0.000 02, 20輪訓練共進行約250 000次迭代訓練.
為評估模型的性能, 本文采用圖像描述算法中常用的評價指標BLEU(bilingual evaluation understudy)@N[25],METEOR(metric for evaluation of translation with explicit ordering)[26]和CIDEr(consensus-based image description evaluation)[27].
3.4.1 BLEU評價指標
通過計算生成描述和人工描述之間N元詞(N-gram)共現的程度, 衡量這兩個句子的相似程度, 加權平均后的相似度計算為
其中:Pn為準確度, 與句子長度有關;hk(ci)為N-gram在生成描述中出現的次數;hk(sij)為N-gram在人工描述中出現的次數;BP為懲罰因子;lc為生成描述ci的長度;ls為人工描述sij的長度; 本文取N={1,2,3,4},ωn=1/N.
3.4.2 METEOR評價指標
在計算兩個句子相似度的同時, 還要考慮同義詞的相關信息, 使用同義詞庫進行輔助計算. 本文采用Chinese Wordnet[28]作為中文同義詞庫, 計算生成描述在參考描述上的準確率和召回率的調和平均, 計算過程如下:
其中Fpenalty為懲罰因子,ch為描述中連續有序的塊,m為匹配上1-gram的個數,P和R分別為準確率和召回率.本文中取α=0.9,γ=0.5,θ=3.
3.4.3 CIDEr評價指標
通過對每個N-gram進行詞頻-逆文本頻率(term frequency-inverse document frequency, TF-IDF)權重計算, 衡量圖像描述的一致性. CIDEr主要應用場景為圖像描述任務, 計算過程如下:

在數據集ICC上進行測試, 測試結果示例如圖7(A)所示, 圖中的每張圖像都有8句中文描述, 前3句依次為GRU模型、 Transformer(無局部特征)模型以及本文模型生成的描述, 后5句為數據集中的人工描述. 由圖7(A)可見, 本文模型能捕捉到圖像場景中的細節, 對區域內目標物體的描述更具體, 更接近人工描述的結果. 為探索圖像特征在自注意力層內部的可解釋性, Abnar等[29]提出了分別取最大值、 平均值和最小值融合多頭注意力對其進行可視化. 為體現特征融合模塊對圖像表征的影響, 在本文編碼器中, 取最大值融合多頭注意力可視化視覺注意力, 結果如圖7(B)所示. 由圖7(B)可見, 融合局部特征后, 視覺注意力更容易關注于圖像的目標區域周圍, 豐富了目標物體的圖像描述.

圖7 圖像中文描述生成示例Fig.7 Image Chinese caption generation example
本文在數據集ICC上比較了GRU,Transformer(無局部特征)和本文模型的3種圖像描述生成方法, 評價指標采用BLEU@1,BLEU@2,BLEU@3,BLEU@4,METEOR和CIDEr, 測試結果列于表1. 由表1可見, 本文方法在BLEU@1,BLEU@2,BLEU@3,BLEU@4,METEOR和CIDEr評價指標上均有不同程度的提高.

表1 不同模型在數據集ICC上評價指標的對比
綜上所述, 針對傳統模型在圖像中文描述中存在的問題, 本文提出了一種基于Transformer具有細粒度語義特征的圖像中文描述生成方法, 該方法使用多頭注意力融合圖像的全局特征和局部特征. 通過多頭注意力多次聚焦學習圖像的目標區域, 在對注意力的可視化發現, 圖像的目標區域受到了更強的注意力, 豐富了對圖像目標對象的描述. 與其他模型的對比實驗結果表明, 本文模型能捕捉到圖像場景的細節, 更具體地對區域內的目標物體生成描述, 但可能受對場景或語義對象錯誤識別的影響.