劉浩
(四川大學計算機學院,成都610065)
視覺理解一直是計算機視覺領(lǐng)域的基礎(chǔ)任務(wù),這有助于計算機更好地理解這個多維世界,為將來人工智能全方位服務(wù)人類提供可能。其中Image Caption(圖像描述)是一個融合計算機視覺和自然語言處理的綜合問題,該任務(wù)對于人類來說非常容易,但是受限于不同領(lǐng)域的結(jié)合,要求機器去理解圖片的內(nèi)容并且還要用自然語言去表達它們之間的關(guān)系卻非常具有挑戰(zhàn)性。這不僅要求機器生成準確的、通順的人類可讀的句子,而且還要求句子的內(nèi)容能充分表現(xiàn)圖像的內(nèi)容。受益于神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展和大數(shù)據(jù)的興起,近些年不斷有關(guān)于Image Caption 任務(wù)的創(chuàng)新方法被提出,其中不乏一些具有開創(chuàng)性意義的方法,為Image Caption 任務(wù)的研究與發(fā)展做出了巨大的貢獻。
早期關(guān)于Image Caption 任務(wù)的做法例如由Kulkarni 等人[1]和Farhadi 等人[2]提出的方法都是利用圖像處理的一些算子提取出圖像的特征,經(jīng)過SVM(支持向量機)分類等方法得到圖像中可能存在的目標。然后根據(jù)提取出的目標以及他們的屬性利用CRF(條件隨機場)或者是一些預先制定的規(guī)則來恢復成對圖像的描述。這種做法非常依賴于圖像特征的提取和生成句子時所需要的規(guī)則。自然而然這種效果并不理想。
在Vinyals 等人[3]提出的方法出現(xiàn)之前,利用RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))做機器翻譯實際上已經(jīng)取得了非常不錯的成果。常用的做法是利用Encoder RNN(編碼器RNN)讀入源語言文字生成中間隱層變量,然后利用Decoder RNN(解碼器RNN)讀入中間隱層變量,逐步生成目標語言文字。受到這種啟發(fā),以Vinyals 為代表的谷歌團隊將機器翻譯中編碼源文字的RNN 替換成CNN(卷積神經(jīng)網(wǎng)絡(luò))來編碼圖像,希望通過這種方式來獲得圖像的描述。而且由于普通RNN 存在梯度下降的問題,RNN 只能記憶之前有限的時間單元內(nèi)容,所以谷歌團隊在Decoder 階段使用了特殊的RNN 架構(gòu)——LSTM(長短期記憶),其具有長期記憶,解決了梯度消失的問題。這種Encoder-Decoder 框架取得了不錯的效果,為后人做Image Caption 任務(wù)提供了一條鮮明的道路。
2015 年微軟舉辦了一屆Image Caption 比賽,最終的結(jié)果是由兩篇論文并列第一,其中一篇就是上文提到的谷歌團隊的論文,另一篇為微軟自家的作品,F(xiàn)ang等人[4]先通過目標檢測和物體識別的方法把圖像中的實體詞都識別出來,然后再對語言進行建模,進行造句。實體詞相關(guān)之間的連接詞是構(gòu)造完整句子的核心,所以Fang 等人使用了弱監(jiān)督方法進行造句。
受attention(注意力)機制在機器翻譯中發(fā)展的啟發(fā),Xu 等人[5]在傳統(tǒng)的Encoder-Decoder 框架引入了attention 機制,顯著的提高了Image Caption 任務(wù)的性能。具體做法為在圖像的卷積特征中結(jié)合空間attention 機制,將圖像上下文向量輸入到Encoder-Decoder框架中,該向量是當前時刻圖像的顯著區(qū)域的特征表達。這樣就有了包含位置信息的特征,Decoder 在解碼時期就擁有了在位置特征中選擇的能力。
在Image Caption 任務(wù)的一般結(jié)果中,有些描述性詞匯可能并不直接和圖像相關(guān),而是可以從當前已經(jīng)生成的描述語句中推測出來,換而言之,某些描述語句的關(guān)鍵部分的生成可能依賴于圖像特征,也可能依賴于語言模型,所以Lu 等人[6]提出了一種自適應(yīng)性的attention 機制,使得模型可以自己決定在生成單詞的時候是根據(jù)先驗知識還是根據(jù)圖像中的模板。
Wu 等人[7]在2016 年提出了新的Image Caption 方法,他們摒棄了以前使用全局圖像信息作為圖像特征的方法,繼而使用圖像多標簽分類的方法來提取圖像中可能存在的屬性。該方法相當于保留了圖像的高層語義信息,不僅在Image Caption 上取得了不錯的結(jié)果,在VQA(視覺圖像的自然語言回答)問題上,也取得很好的成績。
2017 年Chen 等人[8]從CNN 入手對模型進行改進。Chen 等人分析了CNN 的特性,包括其空間性、多通道和多層級,最終提出在網(wǎng)絡(luò)的multi-layer 上用通道attention 和空間attention 結(jié)合的方式來做Image Caption。通道attention 機制的本質(zhì)是訓練一個權(quán)重,然后這個權(quán)重可以用來對通道做選擇或者疊加在feature map(特征地圖)的每個像素點上,使得每次網(wǎng)絡(luò)的關(guān)注點可能只是圖像中的一個小部分,這也符合人類視覺系統(tǒng)的動態(tài)特征提取機制。這種方法使得Encoder-Decoder 模型的性能進一步得到了提高。
2018 年attention 機制在Image Caption 的應(yīng)用繼續(xù)得到了擴展,Anderson 等人[9]提出了一個新的LSTM組合模型,包括了Attention LSTM 和語言LSTM 兩個組件。其中Attention LSTM 機制是top-down(自上而下)和bottom-up(自下而上)組合起來得到的聯(lián)合attention機制,bottom-up 機制基于Faster R-CNN(一種被廣泛應(yīng)用于目標檢測的技術(shù))來提取圖像區(qū)域,確定每個區(qū)域的特征向量。而top-down 機制確定特征權(quán)重。此方法沒有提及在目前研究中最為廣泛使用的Encoder-Decoder 框架,而是使用了自己創(chuàng)新的attention 模型,bottom-up 模型的任務(wù)是獲取圖像興趣區(qū)域和提取圖像特征,類似于對圖像進行特征編碼,而top-down 模型用于學習調(diào)整特征權(quán)重,實現(xiàn)了圖像內(nèi)容的“時刻關(guān)注”,逐詞生成描述,相當于解碼階段。從實驗結(jié)果看,Anderson 等人所提的方法的確獲得良好結(jié)果。
在Image Caption 任務(wù)中,常規(guī)的Encoder-Decoder框架都是利用檢測網(wǎng)絡(luò),如CNN 提取特征,然后送到Decoder 端進行解碼生成句子。Yang 等人[10]在2019 年的文章中引入了場景圖模型。利用GCN(圖卷積網(wǎng)絡(luò))將圖中檢測得到的目標和其自身的屬性,以及其他目標之間的關(guān)系融合在一起作為網(wǎng)絡(luò)的輸入。另外,Yang 受到利用working memory(工作記憶)能夠保存動態(tài)知識庫的啟發(fā),提出了一個共享字典的結(jié)構(gòu),先在文本語料庫上進行預訓練,最后為圖像生成描述時,利用在語料庫中學到的先驗知識使生成的語句信息更加豐富。
到目前為止,神經(jīng)網(wǎng)絡(luò)依舊是一種需要大量數(shù)據(jù)來進行驅(qū)動的方法,小樣本學習尚未有突破性的進展,所以數(shù)據(jù)對于基于神經(jīng)網(wǎng)絡(luò)的算法依舊非常重要。在Image Caption 問題研究的過程中,研究者們對于數(shù)據(jù)集的選擇偏好也在發(fā)生變化,一些數(shù)據(jù)集運用的越來越廣泛,而一些數(shù)據(jù)集則越來越少地被使用。目前Image Caption 任務(wù)應(yīng)用比較廣泛的數(shù)據(jù)集主要是Flickr8K、Flickr30K 和Microsoft COCO,它們的數(shù)據(jù)量的大概分布見表1。
表1 Image Caption 常用數(shù)據(jù)集數(shù)據(jù)量分布
Flickr8K 和Flickr30K 數(shù)據(jù)集來自于雅虎的相冊網(wǎng)站Flickr,數(shù)據(jù)集中的數(shù)量分別是8000 張和30000張(準確地說是31783 張)。這兩個數(shù)據(jù)集中的圖像大多展示的是人類在參與到某項活動中的情景。每張圖像對應(yīng)人工標注的五句話。
Microsoft COCO 數(shù)據(jù)集[11]是微軟團隊推出的一個可以用來做圖像識別、分割和描述的數(shù)據(jù)集。這個數(shù)據(jù)集以場景理解為目標,主要從復雜的日常場景中截取,圖像中的目標通過精確的分割進行位置的標定,并且使用亞馬遜公司的Mechanical Turk(土耳其機器人)服務(wù)人工地為每張圖像都生成了最少5 句標注,標注語句總共超過了150 萬句。實際上COCO Caption 數(shù)據(jù)集包含了兩個數(shù)據(jù)集,第一個數(shù)據(jù)集是MS COCO c5。它包含的訓練集、驗證集合測試集圖像和原始的MS COCO 數(shù)據(jù)庫是一致的,只不過每個圖像都帶有5個人工生成的標注語句。第二個數(shù)據(jù)集是MS COCO c40。它只包含5000 張圖片,而且這些圖像是從MS COCO 數(shù)據(jù)集的測試集中隨機選出的。和c5 不同的是,它的每張圖像都有用40 個人工生成的標注語句。
Microsoft COCO 數(shù)據(jù)集還有一個巨大的貢獻就是搭建了一個評價服務(wù)器,實現(xiàn)了當前最流行的評價標準(BLEU、METEOR、ROUGE 和CIDEr)。就目前發(fā)表的高水平論文來看,MS COCO Caption 數(shù)據(jù)集已經(jīng)越來越成為研究者的首選。
總的來說,近些年的Image Caption 主要研究分為以下幾個方向:
(1)用單獨的CNN 來獲取圖像的特征,然后利用這些特征來生成句子;
(2)將CNN 獲取的特征和描述特征聯(lián)合嵌入到一個空間內(nèi),然后從中選擇最優(yōu)進行描述;
(3)將CNN 和RNN 進行結(jié)合,目的在于利用CNN的全局特征或者局部特征來指導描述的生成;
(4)利用一些全新的進制對經(jīng)典模型進行改進,比如加入注意力機制、加入視覺哨兵機制、利用強化學習來訓練模型以及利用目標檢測技術(shù)來改進模型等。
研究Image Caption 的價值是顯而易見的,可以應(yīng)用到圖像檢索、兒童教育和視力受損人士的生活輔助等方面。相信隨著更多豐富數(shù)據(jù)集的出現(xiàn)和越來越高效的學術(shù)方法被提出,由機器進行的Image Caption 任務(wù)也會越來越高效,越來越接近人類所能做到的水準,為人工智能全方位服務(wù)人類提供可能。
本文認為,Image Caption 未來的研究方向要在關(guān)于圖像的內(nèi)容的描述語句滿足必要的準確性和流暢性的基礎(chǔ)上,更追求圖像中細節(jié)元素的表現(xiàn),使Image Caption 任務(wù)的結(jié)果是更加豐富更加詳細的圖像內(nèi)容信息的表現(xiàn)。