李康康,張 靜
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)
(*通信作者電子郵箱jingzhang@ecust.edu.cn)
圖像描述任務(wù)是圖像理解中的重要研究?jī)?nèi)容,它結(jié)合了計(jì)算機(jī)視覺和自然語(yǔ)言處理兩大任務(wù)。圖像描述需要利用計(jì)算機(jī)視覺相關(guān)的技術(shù)準(zhǔn)確地識(shí)別出圖像中的內(nèi)容,也需要利用自然語(yǔ)言處理中的文本生成的方法生成語(yǔ)法和語(yǔ)義上正確的句子。圖像描述任務(wù)的關(guān)鍵在于如何充分利用圖像特征以及如何有效地解碼。
近年來(lái)大多數(shù)圖像描述任務(wù)[1-2]都是基于編碼器-解碼器(Encoder-Decoder)的模型,編碼器部分利用VGG(Visual Geometry Group)[3]、ResNet[4]等卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)得到圖像的特征,然后利用長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)[5]對(duì)特征進(jìn)行解碼從而得到生成的語(yǔ)句。Vinyals 等[1]首先將機(jī)器翻譯[6]中的編碼器-解碼器結(jié)構(gòu)引入圖像描述任務(wù),他們首先利用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)得到圖像特征,并將其輸入到LSTM 的第一個(gè)時(shí)間步驟,然后依次輸入上一時(shí)間步驟生成的單詞,得到描述語(yǔ)句的每個(gè)單詞。但這種方式僅在第一個(gè)時(shí)間步驟輸入圖像特征,使得不是每個(gè)時(shí)間步驟都關(guān)注到圖像的重點(diǎn),而且圖像特征信息會(huì)隨著時(shí)間步驟的增加而逐漸減少。注意力機(jī)制[7]的使用使得解碼器在LSTM 的每個(gè)時(shí)間步驟都能關(guān)注到重要的信息,顯著提升了模型的有效性。一些工作[8-10]對(duì)編碼器部分作出改進(jìn),使用 Faster R-CNN(Faster Region-based Convolutional Neural Network)[11]提取對(duì)象特征或卷積神經(jīng)網(wǎng)絡(luò)的多層次特征;也有一些工作在解碼器部分使用了LSTM的變體[9,12],例如雙向LSTM(Bidirectional LSTM,Bi-LSTM)[13]、雙LSTM 等。然而現(xiàn)有工作缺乏將多層次結(jié)構(gòu)的編碼器和解碼器有效結(jié)合,且現(xiàn)有方法提取特征的方式單一。例如,DSEN(Dense Semantic Embedding Network)[9]使用了兩個(gè)雙向的LSTM 進(jìn)行特征解析,第一個(gè)LSTM 輸入為單詞,第二個(gè)LSTM 輸入為圖像特征和屬性,然而第二個(gè)LSTM要對(duì)圖像特征和屬性進(jìn)行同時(shí)解析,這在一定程度上限制了模型的能力,此外該模型的圖像特征僅為卷積神經(jīng)網(wǎng)絡(luò)最后一個(gè)卷積層輸出的特征,缺少對(duì)特征的再加工與提煉過程。與DSEN[9]類似,Bi-LSTM[13]的改動(dòng)在于在編碼部分對(duì)不同卷積層的特征進(jìn)行級(jí)聯(lián)作為第二個(gè)LSTM 的輸入,然而本質(zhì)上該模型仍然沒有將不同層次的特征進(jìn)行層次化解碼。DHEDN-3(Deep Hierarchical Encoder-Decoder Network)[14]使用了多個(gè)LSTM 進(jìn)行特征解析,該模型中使用的特征來(lái)自卷積神經(jīng)網(wǎng)絡(luò)最后兩個(gè)卷積層的輸出,很顯然該模型缺少對(duì)特征的再次提煉過程,且其第一個(gè)LSTM 僅輸入單詞,缺少使模型在初始時(shí)獲得圖像整體感知的過程。針對(duì)上述的問題,本文提出了一種基于注意力機(jī)制的多層次編碼和解碼的圖像描述模型MLED(Multi-Layer Encoding and Decoding model),如圖1 所示。該模型首先利用Faster R-CNN 提取對(duì)象特征,并使用Transformer[15]進(jìn)行高層次特征提取,Transformer 內(nèi)部的多頭注意力機(jī)制能夠建立起特征之間隱含的復(fù)雜聯(lián)系從而形成高層次特征,并同時(shí)能夠?qū)⑻卣饔成涞讲煌淖涌臻g。借鑒卷積神經(jīng)網(wǎng)絡(luò)中的特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)[16]模型,用高層次的特征依次和低層次特征融合得到新的特征,這將有助于改善低層特征的質(zhì)量。由于單個(gè)LSTM 解析能力有限,本文使用多個(gè)LSTM 的結(jié)構(gòu),將不同層次的特征分別輸入到對(duì)應(yīng)層次的LSTM 中層次化解碼,最終生成單詞。
圖1 本文模型框架Fig.1 Framework of proposed model
本文的工作主要如下:1)提出了新穎的層次化編碼方式,利用Transformer以及殘差的思想,得到不同層次的特征;2)將不同層次的特征以特征金字塔的方式進(jìn)行融合,有效提升了特征的準(zhǔn)確性;3)提出了層次化解碼的LSTM 結(jié)構(gòu)以及組合方式,對(duì)不同層次特征進(jìn)行有效解碼。
近年來(lái),基于編碼器-解碼器的框架被廣泛地應(yīng)用于圖像描述任務(wù)中。本章將主要從注意力機(jī)制、編碼器結(jié)構(gòu)、解碼器結(jié)構(gòu)三方面介紹圖像描述相關(guān)工作。
Xu 等[7]改進(jìn)了Vinyals 等[1]的工作,他們利用軟注意力機(jī)制,在每個(gè)時(shí)間步驟用LSTM 的隱藏層狀態(tài)對(duì)圖像特征加權(quán),將加權(quán)后的特征和單詞共同輸入LSTM 得到結(jié)果。由于LSTM的隱藏層狀態(tài)包含上下文信息,因此這種加權(quán)在一定程度上能夠選擇到當(dāng)前時(shí)間步驟的重要信息。Chen等[8]提出了一種空間和通道的注意力機(jī)制,它充分利用CNN 的空間和通道特征,以便在每個(gè)時(shí)間步驟進(jìn)行解碼??紤]到生成的單詞并不總是取決于視覺信息,Lu 等[12]提出了帶有視覺哨兵的自適應(yīng)注意力模型,該模型可以決定何時(shí)關(guān)注視覺信息和語(yǔ)言模型。
在編碼器方面,Zhang 等[17]提出了一種全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN),該網(wǎng)絡(luò)能夠生成細(xì)粒度網(wǎng)格化的注意力特征圖,從而得到更為精細(xì)的圖像特征。Yao等[18]提出了五種不同的模型來(lái)結(jié)合圖像及其屬性以探索圖像特征和屬性特征的結(jié)合方式。Wu等[19]不使用視覺特征,僅使用經(jīng)過預(yù)訓(xùn)練的特定檢測(cè)器提取圖像中的屬性,并將其輸入LSTM 中以生成描述。Yu等[20]提出了一種給定主題的圖像描述模型,主題是從訓(xùn)練的分類器中獲得。該模型從主題、描述和圖像中學(xué)習(xí)了一種跨模式的嵌入空間,在生成單詞時(shí)可從嵌入空間中檢索信息。
在解碼器方面,Anderson 等[21]提出了一種Bottom-up 模型,該模型包括Faster R-CNN和一個(gè)雙LSTM結(jié)構(gòu)。他們首先利用Faster R-CNN 提取圖像的對(duì)象特征,然后將其均值化后的特征和對(duì)象特征分別輸入到第一個(gè)語(yǔ)言LSTM 和第二個(gè)注意力LSTM。相較于單LSTM,這種雙LSTM 結(jié)構(gòu)有更好的解析能力。Xiao 等[14]建立了一個(gè)由三個(gè)不同的LSTM 組成的深層次的編解器-解碼器框架,最底層的LSTM 用于對(duì)單詞進(jìn)行編碼,中間的LSTM 和最頂部的LSTM 用于接收來(lái)自CNN不同卷積層的特征。Wu等[22]使用GridLSTM 在生成單詞時(shí)能夠有選擇地包含視覺特征,其中GridLSTM 由Temporal LSTM 和Depth LSTM 組成,Depth LSTM 能夠?qū)⒁曈X信息作為潛在的記憶保留,該解碼器能夠使得每一步動(dòng)態(tài)地接收視覺信息,且無(wú)需添加額外的參數(shù)。
受上述工作啟發(fā),本文提出了一種基于注意力機(jī)制的多層次編碼和解碼的圖像描述模型,通過多層次編碼得到不同層次的對(duì)象特征,并利用多層次LSTM分別解析。
本章將首先使用公式介紹圖像描述問題,并給出其目標(biāo)損失函數(shù),然后分別介紹本文所提出模型的編碼器和解碼器部分。
給定一張圖像I和其對(duì)應(yīng)描述單詞的序列Y={y1,y2,…,yn},生成序列的分布可由式(1)表示:
任務(wù)的目標(biāo)是最小化式(2)的損失函數(shù):
本文提出了一種基于注意力機(jī)制的多層次編碼和解碼的圖像描述模型MLED,該模型框架如圖1 所示,包括編碼層的Faster R-CNN、Transformer、金字塔特征融合以及解碼層的層次LSTM。
2.2.1 編碼器
Faster R-CNN[8]主要用于目標(biāo)識(shí)別,本文利用FasterR-CNN得到每張圖像N個(gè)感興趣區(qū)域(Region of Interest,ROI)特征,并將其轉(zhuǎn)化為N個(gè)2048維特征A={a1,a2,…,aN}。
如圖2 所示,為了得到復(fù)雜的高層次的特征,利用Transformer 隱含式地對(duì)特征進(jìn)行聚合,以此來(lái)得到更高層次的特征。
圖2 提取高層次特征的模型Fig.2 Model of extracting high-level features
Transformer 中的多頭注意力機(jī)制能夠讓模型關(guān)注到特征的不同位置,并將來(lái)自較低層的特征映射到不同的子空間。同時(shí)多個(gè)Transformer串聯(lián)使用,可以獲得不同層次的特征,高層次特征的語(yǔ)義性更強(qiáng),但包含的信息少,低層次的特征包含的信息內(nèi)容多,語(yǔ)義較弱。該過程可由式(3)~(5)表示:
其中:Q、K、V是特征A的三個(gè)獨(dú)立線性映射;fatt是由n=8 個(gè)fdot?att函數(shù)組成的多頭注意力函數(shù);d為常數(shù)。對(duì)于每對(duì)(Qi,Ki,Vi),模型都能將輸入映射到不同的子空間,多個(gè)Transformer 串聯(lián)又進(jìn)一步增加了不同子空間的組合,從而進(jìn)一步增強(qiáng)了模型的表達(dá)能力。深度學(xué)習(xí)網(wǎng)絡(luò)的問題之一是梯度消失,這會(huì)使網(wǎng)絡(luò)出現(xiàn)飽和現(xiàn)象,因此本文采用殘差和歸一化的方式,避免在Transformer 層出現(xiàn)梯度消失現(xiàn)象,特征A經(jīng)過一層Transformer后的輸出記為A',其過程如式(6)所示:
其中:LayerNorm為歸一化層;Transformer函數(shù)為式(3)~(5)所示。本文設(shè)置3 個(gè)不同的Transformer 層,根據(jù)上述公式,可依次得到維度為512的特征A'、維度為256的特征A″、維度為128的特征A?。與傳統(tǒng)的Transformer 只利用最后一層輸出不同,本文利用了多層Transformer的輸出,并且使用了殘差的思想,將Transformer 處理后的特征與輸入特征相融合,最后使用LayerNorm對(duì)特征進(jìn)行歸一化。使用式(6)的目的一方面在于使得梯度能夠直接回傳到原始輸入本身,使得網(wǎng)絡(luò)能夠更深,有更強(qiáng)的表現(xiàn)能力。另一方面歸一化的使用使得結(jié)果能夠落入非線性函數(shù)的線性區(qū),緩解梯度消失問題,以此使得模型更加穩(wěn)定,加速收斂過程。
在獲取到不同維度的高層次的特征后,本文使用金字塔型的多尺度特征融合方式對(duì)特征進(jìn)行有效的融合。這種自上而下的融合方式能夠使得高層特征得到加強(qiáng),低層特征得到補(bǔ)充,如圖1所示,該融合方式可由式(7)~(9)表示:
其中:W為參數(shù);b為偏置項(xiàng)。經(jīng)過融合后P'、P″、P?的維度均為512。低層特征P'在融合時(shí)僅使用A'和A″,而不加入A?的信息,一方面是防止與A'和A″的維度差異過大,導(dǎo)致升維效果不理想,使得模型表現(xiàn)能力受限;另一方面,A″中包含了A?部分信息,不添加A?在一定程度上能夠防止重復(fù)信息的疊加和信息冗余。
2.2.2 解碼器
為了對(duì)編碼器輸出的3 種不同層次的特征進(jìn)行有效解碼,本文使用層次LSTM 的結(jié)構(gòu)處理,該結(jié)構(gòu)包括3 層LSTM。其中低層LSTM 處理低層次特征,高層LSTM 處理高層次特征,這種結(jié)構(gòu)化的層次處理,其目的在于對(duì)不同層次的特征進(jìn)行遞進(jìn)式地解碼。此外,使用軟注意力機(jī)制,在每層特征輸入LSTM 之前,根據(jù)上下文信息對(duì)特征進(jìn)行加權(quán),關(guān)注當(dāng)前步驟應(yīng)該關(guān)注的重要信息。LSTM 的隱藏層狀態(tài)包含豐富的上下文信息,利用隱藏層狀態(tài)和特征得到特征的權(quán)重向量,并對(duì)特征做加權(quán),以此來(lái)獲得經(jīng)過加權(quán)的特征。
第一層LSTM 的輸入為前一時(shí)刻生成的單詞的詞嵌入向量xt -1和本層對(duì)應(yīng)的編碼器特征P',其中使用注意力機(jī)制對(duì)編碼器的特征進(jìn)行加權(quán)處理,該過程如式(10)~(13):
其中:W為參數(shù);b為偏置項(xiàng);t表示解碼器第t個(gè)時(shí)間步驟;i表示當(dāng)前圖像N個(gè)特征中的第i個(gè);是LSTM 的細(xì)胞狀態(tài),在t時(shí)刻第一層LSTM 的輸出為。第一層LSTM 的輸入包括單詞和編碼器特征,其中編碼器特征經(jīng)過軟注意力機(jī)制加權(quán),重要信息得到加強(qiáng)。第一層LSTM 的輸出的隱藏層狀態(tài)包含了上下文特征,能為第二層LSTM提供語(yǔ)義信息。
第二層LSTM 的輸入為第一層LSTM 輸出的隱藏層狀態(tài)和本層對(duì)應(yīng)的編碼器特征P″,同樣使用軟注意力機(jī)制對(duì)編碼器的特征進(jìn)行處理,該過程如式(14)~(17):
第三層LSTM 的輸入為第二層LSTM 輸出的隱藏層狀態(tài)和本層對(duì)應(yīng)的編碼器特征P?,該過程同前兩層LSTM 相同,最終第三層LSTM輸出為式(18)所示:
在第t時(shí)間步驟,生成單詞的概率分布函數(shù)由多層感知機(jī)fMLP和Softmax 函數(shù)組成,得到的最大值即為生成單詞在詞典中的索引,具體如式(19)所示:
本文主要使用2014 年發(fā)布的MSCOCO(Microsoft COCO:Common Objects in Context)[23]大型數(shù)據(jù)集進(jìn)行模型驗(yàn)證。MSCOCO 包括12 387 張圖像,每張圖像有5 句描述。本文使用BLEU(BiLingual Evaluation Understudy)[24]、METEOR(Metric for Evaluation of Translation with Explicit ORdering)[25]、ROUGE-L(Recall-Oriented Understudy for Gisting Evaluation with Longest common subsequence)[26]、CIDEr(Consensus-based Image Description Evaluation)[27]四種指標(biāo)驗(yàn)證模型的有效性。
實(shí)驗(yàn)平臺(tái)為Ubuntu16.04,使用Pytorch 深度學(xué)習(xí)框架,GPU 為顯存為8 GB 的Geforce RTX 2080,CUDA 版本為10.0,CPU為英特爾E5-2630,內(nèi)存為32 GB。
編碼器采用的Faster R-CNN使用ResNet101為基礎(chǔ)框架,輸出的對(duì)象特征維度為2 048,限制每幅圖像最大對(duì)象數(shù)量上限為50。對(duì)于每條描述,限制其最長(zhǎng)單詞序列長(zhǎng)度為20。選取在數(shù)據(jù)集中至少出現(xiàn)過5 次的單詞組成詞典并忽略大小寫,得到的單詞詞典大小為10 201,詞典使用“BOS”作為單詞序列的起始輸入標(biāo)志,“END”作為生成單詞序列的結(jié)束標(biāo)志,“PAD”作為補(bǔ)位標(biāo)志,“UNKNOW”作為不在詞典中的單詞標(biāo)志。
訓(xùn)練階段,本文使用Adam[28]優(yōu)化器,損失函數(shù)為交叉熵,首先使用小的學(xué)習(xí)率1× 10-6進(jìn)行熱身學(xué)習(xí)10 000次,然后使用1× 4-4的學(xué)習(xí)率訓(xùn)練模型20 輪。為了防止在反向傳播階段出現(xiàn)梯度消失或梯度爆炸,本文在編碼器部分使用了殘差及歸一化的方式,如式(6)所示,在解碼器部分設(shè)置了梯度截?cái)啵浞秶鸀閇-0.1,0.1]。在測(cè)試階段,使用beam search 策略每次選擇3個(gè)得分最高的候選。
將本文提出的基于注意力機(jī)制的多層次編碼和解碼的圖像描述模型MLED與當(dāng)前主流模型進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表1所示。實(shí)驗(yàn)對(duì)比了NIC(Neural Image Caption)[1]、SA(Soft Attention)[7]、DSEN(Dense Semantic Embedding Network)[9]、Adaptive(Adaptive attention)[12]、Bi-LSTM[13]、DHEDN-3[14]、FCN[17]、Recal(lRecall what you see)[22]、基于注意力特征自適應(yīng)矯正(Attention Feature Adaptive Recalibration,AFAR)模型[29]、HAF(Hierarchical Attention-based Fusion)模型[30]。
由表1 可知,本文提出的算法在指標(biāo)BLEU-1(BLEU with 1-gram)、BLEU-2(BLEU with 2-grams)、BLEU-3(BLEU with 3-grams)、BLEU-4(BLEU with 4-grams)、METEOR、ROUGE-L和CIDEr上得分分別為75.9%、59.7%、46.1%、35.6%、27.3%、56.2%、112.5%,結(jié)果優(yōu)于其他模型,相較于DSEN 和Adaptive 模型,指標(biāo)平均提升約2 個(gè)百分點(diǎn),相對(duì)Recall 模型和HAF 模型分別提升約3 個(gè)百分點(diǎn)和1 個(gè)百分點(diǎn)。以DSEN為例,該模型利用了多層次特征和雙LSTM,本文模型相較于DSEN,利用Transformer 提取了高層次特征,并對(duì)特征做了進(jìn)一步融合,最后利用層次LSTM 對(duì)特征層次化解析,因此結(jié)果優(yōu)于DSEN。相較于其他利用注意力機(jī)制的模型Attention、FCN 以及Adaptive,本文提出的模型在Transformer 中使用的多頭注意力機(jī)制以及對(duì)每個(gè)LSTM 的輸入使用軟注意力機(jī)制,都進(jìn)一步對(duì)特征進(jìn)行了重要信息提取,因此獲得了優(yōu)異的結(jié)果。此外,這種金字塔型的特征以及融合方式在一定程度上體現(xiàn)了全局特征、局部特征以及對(duì)象特征,符合人類對(duì)圖像的整體認(rèn)知的順序。
表1 不同圖像描述算法模型指標(biāo)對(duì)比 單位:%Tab.1 Comparison of different image captioning algorithm models on indicators unit:%
表2為對(duì)比實(shí)驗(yàn)結(jié)果,包括單Transformer 和單LSTM 的結(jié)構(gòu)模型SLED(Single-Layer Encoder and Decoder)、無(wú)特征融合模型MLED-NF(No Fusion)實(shí)驗(yàn)結(jié)果。
由表2 可知,相較于MLED,SLED 指標(biāo)均低于MLED,單編碼單解碼的結(jié)構(gòu)一定程度上限制了對(duì)特征的提取和解析能力,驗(yàn)證了MLED 模型多層次編碼和解碼的有效性。MLEDNF 無(wú)特征融合過程,而MLED 的自上而下的融合過程有一定程度的特征加強(qiáng)作用,最頂層的特征最接近單詞輸出,反向傳播后的梯度能多次影響下層特征,使得模型能達(dá)到更優(yōu)的解。
表2 消融實(shí)驗(yàn)結(jié)果Tab.2 Ablation experimental results
圖3 為隨機(jī)挑選的樣例,包括圖片、標(biāo)注的5 句描述以及模型生成的對(duì)應(yīng)描述。可以看出,本文所提出的MLED 模型能夠很好地捕捉圖像內(nèi)容和細(xì)節(jié),例如圖3中樣例1的“l(fā)arge”和“l(fā)ush”、樣例2的“metal fence”以及樣例3的“covered slope”,這些生成的語(yǔ)句能夠涵蓋圖像的內(nèi)容和細(xì)節(jié),并且模型生成的描述基本符合語(yǔ)法和語(yǔ)義。
圖3 生成描述樣例Fig.3 Examples of generated description
本文設(shè)計(jì)了一種基于注意力機(jī)制的多層次編碼和解碼的圖像描述模型,通過Faster R-CNN 得到對(duì)象特征,然后使用Transformer 進(jìn)行高層次特征的提取并使用金字塔型的融合方式對(duì)特征進(jìn)行融合,最后使用層次LSTM 對(duì)不同層次的特征分別解析。該模型在不同層次充分利用了對(duì)象特征,并且使用金字塔型的融合方式對(duì)特征進(jìn)行了有效融合。模型對(duì)不同層次特征的層次化解碼促進(jìn)了網(wǎng)絡(luò)的解碼能力。實(shí)驗(yàn)結(jié)果和分析表明,本文提出的模型在各項(xiàng)指標(biāo)均有優(yōu)異的表現(xiàn),所生成的描述也符合語(yǔ)法和語(yǔ)義,并且優(yōu)于其他模型。未來(lái)將結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的不同層次特征、對(duì)象的不同層次特征、特征融合方式以及Transformer 方式的層次化解碼等方面進(jìn)一步研究。