周宇輝, 何志琴
(貴州大學(xué) 電氣工程學(xué)院, 貴陽 550025)
近年來,深度學(xué)習(xí)的興起以及計(jì)算機(jī)硬件的快速升級,使得圖像處理和自然語言處理領(lǐng)域發(fā)展迅速。 取得的大量成果使跨領(lǐng)域研究成為可能,促進(jìn)多個跨領(lǐng)域研究任務(wù)發(fā)展,如:圖片對應(yīng)文本、視覺問答、視頻講故事以及圖像描述。
圖像描述是指讓計(jì)算機(jī)自動根據(jù)輸入圖像生成該圖像的自然語言描述句子,要求設(shè)計(jì)模型算法去理解并建立視覺與文本之間的聯(lián)系。 如今互聯(lián)網(wǎng)存在大量的圖像資源,有效的利用這些資源,圖像描述有著重要的應(yīng)用。 如:購物軟件的商品圖片搜索、搜索引擎中的圖片檢索、視頻中多事物目標(biāo)的識別、系統(tǒng)對話框以及幫助視覺障礙的人群等。 因此,作為圖像處理和自然語言處理的交叉領(lǐng)域,受到了廣泛的關(guān)注,但同時也面臨巨大的挑戰(zhàn),需要準(zhǔn)確識別圖中目標(biāo)物、場景,并且理解其之間的相對關(guān)系。
圖像描述生成的傳統(tǒng)方法主要有兩大類:基于模板的生成方法,該類方法通過識別圖像中的信息并與固定的句子模板相匹配,該方法操作簡單,但生成的局式結(jié)構(gòu)固定,與實(shí)際圖片相差過大;基于檢索的生成方法,該類方法將需要生成描述圖像與圖像數(shù)據(jù)庫中的圖像進(jìn)行相似排序,選擇相似度最高的圖像標(biāo)注生成描述,但該方法生成的描述依賴圖像數(shù)據(jù)庫中提前標(biāo)注好的描述,難以生成新穎的描述,缺乏靈活性。 隨著深度學(xué)習(xí)的不斷發(fā)展,使得圖像描述生成方法有了突破性的進(jìn)展,受機(jī)器翻譯的啟發(fā),將機(jī)器翻譯中編碼源文字的循環(huán)神經(jīng)網(wǎng)絡(luò)替換為卷積神經(jīng)網(wǎng)絡(luò)來編碼圖像,并將編碼轉(zhuǎn)換為文字描述輸出,Vinyals等人提出了一個端到端的圖像描述模型(Neural Image Caption,NIC),該模型聯(lián)合了卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),使用長短期記憶網(wǎng)絡(luò)(Long Short Term Memory,LSTM)作為解碼器生成圖像描述,在圖像描述領(lǐng)域取得巨大突破。 為了進(jìn)一步增強(qiáng)模型對圖像重要區(qū)域的信息捕捉,研究人員將注意力機(jī)制融入到圖像描述生成中,并提出了兩種不同的注意力機(jī)制,分別是軟注意力機(jī)制(soft-attendtion)和硬注意力機(jī)制(hard-attention),使得圖像描述生成的網(wǎng)絡(luò)能夠捕捉圖像的局部信息。 深度學(xué)習(xí)的圖像描述生成算法相較于早期的方法有了很大改進(jìn),但仍然存在一些缺陷。 當(dāng)前存在的主要問題:
(1)傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的特征提取能力不足,提取的特征丟失了很多關(guān)鍵信息;
(2)缺失的信息將會導(dǎo)致生成的描述質(zhì)量低下;
(3)當(dāng)前的注意力機(jī)制模型復(fù)雜并且訓(xùn)練困難。
為解決這些問題,本文改進(jìn)傳統(tǒng)的注意力機(jī)制方法,在注意力機(jī)制的基礎(chǔ)上引入高效通道注意(ECA)模塊,在簡化模型復(fù)雜度,方便訓(xùn)練的同時提高了提取圖像特征的能力,該方法可以生成準(zhǔn)確豐富的圖像描述語句。 本文使用MSCOCO 數(shù)據(jù)集對所提出的模型進(jìn)行評估,效果優(yōu)于傳統(tǒng)模型。
RNN 是深度學(xué)習(xí)領(lǐng)域中一類特殊的神經(jīng)網(wǎng)絡(luò),可以學(xué)習(xí)復(fù)雜的矢量到矢量的映射,目前已被廣泛運(yùn)用于各種與時間序列相關(guān)的任務(wù)中。 循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出不僅能夠往下一層傳播,也能夠傳遞給同層下一時刻,RNN 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Recurrent neural network architecture
其中,和分別是和的權(quán)值;為一個完整的時間序列;x指的是時刻的輸入;h是第個時刻的輸出,也就是x和上一時刻的輸出h在隱藏層運(yùn)算后的結(jié)果。 隱藏層節(jié)點(diǎn)的運(yùn)算如式(1)和式(2)所示:
其中,是激活函數(shù),是偏置。 計(jì)算第時刻輸出h時,帶入上一時刻的輸出狀態(tài)h。
深度學(xué)習(xí)的圖像描述方法受到機(jī)器翻譯領(lǐng)域的啟發(fā),采用在該領(lǐng)域效果良好的編碼-解碼結(jié)構(gòu)作為圖像描述的模型結(jié)構(gòu),解決圖像描述問題,對視覺信息進(jìn)行編碼。 編碼-解碼模型在圖像描述領(lǐng)域被廣泛使用,使用CNN 作為編碼器,LSTM 作為解碼器。 其中圖像編碼器用于提取圖像的視覺特征,解碼器基于視覺特征生成描述語句。
作為解碼器的LSTM 在生成圖像描述時,生成的描述語句靠后的單詞生成依賴靠前的單詞,生成的描述依賴于語言模型,生成的描述語句準(zhǔn)確率不夠高。 為了解決這個問題,研究人員將注意力機(jī)制引入了圖像描述領(lǐng)域,在生成每個單詞時,先將圖像劃分為若干區(qū)域,然后對不同區(qū)域的視覺特征都加入權(quán)重,通過該權(quán)重計(jì)算出圖像新的視覺特征,引導(dǎo)單詞的生成。 實(shí)驗(yàn)表明,基于注意力機(jī)制的方式能夠有效生成圖像描述。
本模型采用encoder-decoder 圖像描述框架,主要包括兩個部分,Encoder 編碼器部分與Decoder 解碼器部分。 編碼器部分通過卷積神經(jīng)網(wǎng)絡(luò)ResNet50 提取輸入圖像的特征,并將該特征送入解碼器當(dāng)中,改進(jìn)傳統(tǒng)注意力機(jī)制,增加高效通道注意(ECA)模塊,在提升模型特征提取效果的同時具有更低的模型復(fù)雜度,這種捕捉跨通道信息交互的方法在保證性能結(jié)果的同時提高了模型效率,更好的捕捉圖像重要部分的特征,得到圖像的注意力表征,選擇所有特征向量的子集來選擇性的聚焦于圖像的某些部分。 解碼器部分選取長短期記憶網(wǎng)絡(luò),該網(wǎng)絡(luò)能夠很好的解決長序列訓(xùn)練過程中存在的梯度消失和梯度爆炸問題,在長序列的訓(xùn)練中有表現(xiàn)良好。輸入的圖像在經(jīng)過預(yù)處理后大小為224×224 像素,作為編碼器的輸入,在傳統(tǒng)注意力機(jī)制基礎(chǔ)上引入ECA 模塊,改變注意力機(jī)制的原有結(jié)構(gòu),在解碼的每個時刻輸入改進(jìn)注意力機(jī)制,計(jì)算出的編碼向量。使用Adam 優(yōu)化模型,使模型概率之和達(dá)到最優(yōu)。模型總體框架如圖2 所示。
圖2 模型總體架構(gòu)Fig.2 Overall model architecture
卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的代表算法之一,是一類含有卷積計(jì)算并且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),被廣泛應(yīng)用于計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域。 本文選用ResNet50 作為圖像特征提取的卷積神經(jīng)網(wǎng)絡(luò),結(jié)構(gòu)如圖3 所示。
圖3 ResNet 結(jié)構(gòu)圖Fig.3 ResNet structure
ResNet50 與其他卷積神經(jīng)網(wǎng)絡(luò)如AlexNet、VGG19 等相比,通過殘差學(xué)習(xí)解決了深度網(wǎng)絡(luò)的退化問題,可以訓(xùn)練出更深的網(wǎng)絡(luò),捕捉圖像更深層次的特征。 在訓(xùn)練之前,首先對數(shù)據(jù)集進(jìn)行預(yù)處理,將參與訓(xùn)練的圖片處理為224×224 大小,輸入圖片后,提取網(wǎng)絡(luò)訓(xùn)練輸出向量作為圖像的特征。
在注意力機(jī)制方面,采用ECANet 方法來對圖像特征進(jìn)行注意力權(quán)重計(jì)算,這是一種不降維的局部跨信道交互策略和自適應(yīng)選擇一維卷積核大小的方法,避免降維,采取適當(dāng)?shù)目缧诺澜换?,在顯著降低模型復(fù)雜度的同時保持性能,從而實(shí)現(xiàn)性能上的提升。 高效通道注意(ECA)模塊結(jié)構(gòu)如圖4 所示。
圖4 ECA 模塊結(jié)構(gòu)圖Fig.4 ECA module structure diagram
一個卷積塊的輸出為∈R,其中、、分別為寬度、高度和通道尺寸,模塊中的權(quán)值可以用式(3)計(jì)算:
對于權(quán)重,只考慮y與附近個值之間的信息交互,計(jì)算式(4)如下:
還可以通過讓所有通道共享權(quán)重信息的方法,進(jìn)一步提高性能,計(jì)算式(5)如下:
根據(jù)上述分析,利用一種新的方法,通過卷積核大小為的一維卷積來實(shí)現(xiàn)通道之間的信息交互,提高模型的準(zhǔn)確性,模塊式(6)如下:
其中,1代表了一維卷積。
這種方法稱之為ECA 模塊,其只涉及個參數(shù)信息,在提升效果的同時具有更低的模型復(fù)雜度,這種捕捉跨通道信息交互的方法在保證性能結(jié)果的同時提高了模型效率。
由于ECA 模塊的作用是適當(dāng)捕獲局部跨通道信息交互,需要確定通道交互信息的大致范圍,也就是卷積核的大小。 針對不同的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)可以手動優(yōu)化設(shè)置信息交互的最佳范圍,但是手動設(shè)置調(diào)整會花費(fèi)大量的計(jì)算資源,由于分組卷積成功的改善CNN 架構(gòu),通道與卷積成正比,與之間存在映射關(guān)系(7):
用簡單的線性映射表達(dá)與之間的關(guān)系有很大的局限性,由于通道維數(shù)通常是2 的指數(shù)倍,采用以2 為底的指數(shù)函數(shù)來表示非線性映射關(guān)系,式(8):
由此可以推出,給定通道數(shù),卷積核大小可以由式(9)計(jì)算得出:
模型采用循環(huán)神經(jīng)網(wǎng)絡(luò)中的長短期記憶網(wǎng)絡(luò)(LSTM)作為解碼器生成圖像描述語句。 LSTM 是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),可以很好的解決長序列訓(xùn)練過程中存在的梯度消失和梯度爆炸問題,相比于普通的循環(huán)神經(jīng)網(wǎng)絡(luò),LSTM 能夠在長序列的訓(xùn)練中有更好的表現(xiàn)。 長短期記憶網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。
圖5 長短期記憶網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.5 Long and short memory network structure diagram
LSTM 主要有4 個部分組成,分別是遺忘門、輸入門、輸出門和狀態(tài)門。 LSTM 首先要計(jì)算從細(xì)胞狀態(tài)丟失的信息,這個計(jì)算由遺忘門完成,讀取h與x,輸出一個范圍在0 ~1 之間的數(shù)值給C, 式(10):
其中,表示函數(shù);h表示上一個網(wǎng)絡(luò)的輸出;x表示當(dāng)前的輸入; W為權(quán)重矩陣; b為偏置。
最后,通過計(jì)算得到o,式(14);利用tanh 函數(shù)對細(xì)胞狀態(tài)進(jìn)行處理,得到LSTM 的輸出h,式(15):
其中,W表示權(quán)重矩陣,b表示偏置。
本實(shí)驗(yàn)在MSCOCO 數(shù)據(jù)集上進(jìn)行訓(xùn)練測試,該數(shù)據(jù)集包括訓(xùn)練集、驗(yàn)證集和測試集,其中訓(xùn)練集共有82 783 張圖片,驗(yàn)證集有40 504 張,測試集有40 775 張,每張圖片都有對應(yīng)好的人工標(biāo)注,存放在對應(yīng)的JSON 文件中。 80 000 張圖像用于訓(xùn)練,20 000張用于測試評估。
實(shí)驗(yàn)環(huán)境為 windows10 操作系統(tǒng)下的Tensorflow 深度學(xué)習(xí)框架,使用GPU 進(jìn)行訓(xùn)練。
圖像描述生成的評價(jià)有主觀評價(jià)與客觀量化評價(jià)。 當(dāng)前的客觀量化評價(jià)方法主要有:BLEU、Meteor、ROUGE、CIDEr 和SPICE。 本文使用針對機(jī)器翻譯常用指標(biāo):BLEU、Meteor 和針對圖像描述的評價(jià)指標(biāo)CIDEr 對實(shí)驗(yàn)結(jié)果進(jìn)行評價(jià)。
實(shí)驗(yàn)中,首先將圖像預(yù)處理為ResNet 的輸入格式及大小,將圖像調(diào)整為224×224 像素,標(biāo)準(zhǔn)化圖像,使其包含-1~1 范圍內(nèi)的像素;將數(shù)據(jù)集中的標(biāo)記字幕進(jìn)行分割,建立詞匯表,創(chuàng)建詞到索引和索引到詞的映射;最后,將所有序列填充為與最長序列相同的長度。
在訓(xùn)練時,提取存儲在相應(yīng)文件中的特征,通過編碼器傳遞這些特征。 編碼器輸出、隱藏狀態(tài)和解碼器輸入被傳遞給解碼器,解碼器返回預(yù)測和解碼器隱藏狀態(tài);將解碼器隱藏狀態(tài)傳回模型,并使用預(yù)測來計(jì)算損失,使用Teacher Forcing 來決定解碼器的下一個輸入;最后,計(jì)算梯度并將其應(yīng)用于優(yōu)化器和反向傳播。
為了驗(yàn)證本文算法對圖像描述生成的效果,使用DeepVS 以及Google NIC 等模型的結(jié)果和本文模型的結(jié)果進(jìn)行對比,DeepVS 是一種利用深度網(wǎng)絡(luò)來實(shí)現(xiàn)圖像區(qū)域和文本內(nèi)容匹配的多模態(tài)RNN 圖像描述生成模型;Google NIC 是代表性的編碼-解碼結(jié)構(gòu)的圖像描述模型;Soft-Attention 和Hard-Attention是引入了注意力機(jī)制的兩種圖像生成模型,前者通過確定性的得分計(jì)算編碼隱狀態(tài),梯度可以經(jīng)過注意力機(jī)制,反向傳播到模型中,后者依概率來采樣輸入端的隱狀態(tài)進(jìn)行計(jì)算,采用蒙特卡洛采樣的方法來估計(jì)模塊的梯度。 使用的數(shù)據(jù)集為MSCOCO 數(shù)據(jù)集。 評價(jià)結(jié)果見表1,加粗?jǐn)?shù)值表示當(dāng)前最高。
表1 MS COCO 數(shù)據(jù)集評價(jià)結(jié)果對比Tabl.1 Comparison of evaluation results of MSCOCO data set
從實(shí)驗(yàn)結(jié)果可以看出,本文提出的模型在評價(jià)生成語句通順性和準(zhǔn)確性的BLEU 評價(jià)指標(biāo)上相較于其他模型有較大提升,在BLEU-1 指標(biāo)上比此前效果最好的Hard-Attention 模型還要提高0.002,雖然在BLEU-2 指標(biāo)上相較于Hard-Attention 落后,但是在BLEU-3 與BLEU-4 指標(biāo)上相較于此前提出的模型,都有很大的提高,BLEU-3 提高了0.003,BLEU-4 提高了0.006,表明本文模型更好地提取到了圖像重要部分的信息。 模型在評價(jià)指標(biāo)Meteor和CIDEr 上不如效果最好的Google NIC 模型和Soft-Attention模型,但是差距并不明顯,綜合各指標(biāo)來看,本文提出的模型優(yōu)于其他模型。 本文模型生成的圖像描述如圖6 所示。
圖6 模型生成圖像Fig.6 Generated images
本文采用ResNet50 作為圖像特征提取的網(wǎng)絡(luò),為了進(jìn)一步增強(qiáng)模型提取特征的能力,改進(jìn)傳統(tǒng)的注意力機(jī)制,增加ECA 模塊,在提升效果的同時具有更低的模型復(fù)雜度,這種捕捉跨通道信息交互的方法在保證性能的同時提高了模型效率,更好的捕捉圖像重要部分的特征。 如何進(jìn)一步的生成多樣化的圖像描述,生成更準(zhǔn)確的描述語句,在改善圖像的關(guān)鍵信息提取能力與構(gòu)建高效的模型的方面有很大的進(jìn)步空間,需要進(jìn)一步研究。