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