白姣姣 柯顯信 曹 斌
(上海大學機電工程與自動化學院 上海 200444)
近幾年來人工智能飛速發展,智能機器人的功能也因此越來越強大,具備圖像識別、語音識別、情感識別和對話處理等多種功能。對智能機器人視覺問答任務的研究可以幫助盲人這一弱勢群體。視覺問答系統可以回答盲人的詢問,幫助盲人了解周圍環境等。盲人用戶可以直接通過語音進行提問,經過一系列處理后返回對應答案,實現盲人輔助。
視覺問答涉及多方面的人工智能技術,如:細粒度識別(這位女士是黃種人嗎?)、物體識別(圖中的水果是蘋果嘛?)、行為識別(這位男士在干什么呢?)和對問題所包含文本的理解(自然語言處理)等。自由式和開放式的視覺問答任務首次出現于2015年,雖然出現時間較晚,但經過幾年的發展已成為研究的熱點。視覺問答任務涉及圖像處理、自然語言處理等多個領域,雖然目前的圖像處理技術已經可以很好地進行圖像檢測與識別,但還不能較好地理解圖片內容。而視覺問答任務旨在解決這一問題,將圖像及基于圖像的問題輸入模型,經過處理后輸出該問題對應的答案。
目前,科研工作者們已經在視覺問答領域做了很多工作。文獻[1-3]采用無注意力機制的深度學習模型來處理視覺問答任務,其中文獻[1]使用預訓練的卷積神經網絡編碼圖像,使用循環神經網絡編碼問題,將圖片與問題特征融合后傳入全連接層,最后傳入Softmax層;文獻[3]使用三個不同的卷積神經網絡分別編碼圖像、問題,以及二者融合后的特征,其中編碼圖像的卷積神經網絡與VGG模型的架構相同。文獻[4-7]則采用基于注意力機制的深度學習模型來處理視覺問答任務,該方法可以賦予圖片不同區域的特征不同的重要性,突出圖片中與問題相關的部分。其中:文獻[5]為了獲得更細粒度的視覺信息,反復計算圖像的注意力權重;文獻[6]既計算圖像的注意力權重,也計算問題的注意力權重;文獻[7]將視覺問答任務視為多類別分類問題而不是多選一。文獻[8-10]借助外部知識庫中的信息來處理視覺問答,通過知識庫可以使模型能夠像人類一樣具有“常識”,例如,在回答“圖片中有多少種花?”時,模型首先要知道花的種類有哪些,這種方法極大地提高了模型的泛化能力。
本文提出的視覺問答系統的實現包括語音識別、語音合成、圖像識別、視覺問答模型四個子模塊。在交互過程中,交互對象聲音由麥克風錄制,錄制的音頻由語音識別模塊轉化為文本;圖像由攝像頭捕捉,由圖片識別模塊提取其特征;視覺問答模型首先提取文本特征,然后將其與圖片特征融合,融合后的特征輸入神經網絡,經過處理后生成相應回答并合成語音。
系統將視覺問答任務視為一個多分類任務進行處理,其流程如圖1所示。

圖1 視覺問答任務流程
卷積神經網絡憑借其突出的性能在圖像處理領域獲得了舉足輕重的地位,它于1998年被Lecun等首次提出,被稱為LeNet。該網絡有3個卷積層,2個下采樣層和1個全連接層,卷積層的卷積核大小均為5×5,該模型在識別手寫字符和打印字符的任務中取得了優秀的效果。2012年,Alex等提出了AlexNet模型,該模型是卷積神經網絡的突破模型,在“ILSVRC”圖像分類的比賽中獲得了冠軍,證明了通過增加網絡的深度可以提高網絡的性能。該模型包括5個卷積層和3個全連接層,卷積層的第一層卷積核大小為11×11,步長為4,第二卷積核大小為5×5,步長為1,剩余卷積層的卷積核大小都為3×3,步長為1。在2014年“ILSVR”挑戰賽中贏得了定位任務冠軍和分類任務亞軍的VGG卷積網絡模型進一步加深了網絡的結構,由于其優異的性能被人們廣泛運用于各種圖像處理任務。然而,神經網絡層數的增加使得網絡的訓練變得困難,出現層數越大錯誤率越高的退化現象。何凱明等于2015年提出了ResNet殘差神經網絡,該模型成功地解決了退化問題。隨著卷積神經網絡的不斷發展,人們又相繼提出了R-CNN、Fast R-CNN、Faster R-CNN等區域卷積神經網絡來更好地處理目標檢測的問題。
本文模型使用預訓練的VGG16卷積網絡進行圖像特征提取,使用VGG16模型最后一層池化層提取得到的特征作為圖像特征。VGG16的模型結構如圖2所示,該模型包含13個卷積層,5個最大池化層和2個全連接層,卷積核的大小均為3×3,最后一層池化層輸出的特征向量為(7,7,512)。

圖2 VGG16模型
首先處理答案,統計數據集中答案出現的頻率,選取出現頻率最高的1 000個答案作為標簽,并通過獨熱編碼(One-Hot Encoding)。
接著處理問題,在對問題進行預處理之前,首先判斷與之對應的答案是否被編碼,舍棄答案未被編碼的問答對。然后,采用NLTK工具包對問題進行預處理。通過正則表達式對問題進行分詞處理,匹配句中的單詞并去掉標點符號。英文分詞比中文分詞容易實現,可以直接基于空格分詞。在對問題進行分詞處理后,句子中仍然存在“the”“that”“this”等出現頻率相當高的詞,這類詞的存在對問題的理解并沒有太大的作用,還會增加數據量。NLTK工具包中提供了一個英文停用詞表,通過刪除在問題中出現的該表中的詞來實現去停用詞處理。接著,進行詞型還原的處理,即將英文單詞的復數或第三人稱單數形式還原成單詞原型,該步驟同樣利用NLTK工具包實現。最后,將問題中的單詞統一恢復為小寫。問題預處理變化如表1所示。

表1 問題預處理
問題通過上述預處理,降低特征維度,減少沒有用的信息,增強模型的泛化能力,同時也可以避免模型過擬合。經過預處理后,問題的最大長度是13個單詞,采用尾部對齊的方式,將不足13個單詞的句子后面補0,并統計每個句子的實際長度。采用預訓練的Glove模型進行詞嵌入,該模型的向量維度是300維。Glove模型是通過構造一個共現矩陣來學習,共現矩陣主要是計算一個單詞在上下文中出現的頻率。
最后將問題詞向量經過一個單元數為512的LSTM神經網絡,得到問題的特征向量為(1,512)。
LSTM神經網絡是一種特殊的循環神經網絡模型,循環神經網絡能夠在記憶單元中儲存之前的信息,可以很好地處理序列問題,因此在自然語言處理領域得到了廣泛的應用。LSTM模型可以學習長期依賴的信息,解決了梯度爆炸的問題,其結構如圖3所示。

圖3 LSTM結構示意圖
ft=σ(Wf·[ht-1,xt]+bf)
(1)
it=σ(Wi·[ht-1,xt]+bi)
(2)
ot=σ(Wo·[ht-1,xt]+bo)
(3)
式中:ft、it、ot分別表示t時刻遺忘門、輸入門和輸出門的狀態;ht-1代表前一時刻的記憶;xt為當前時刻的輸入;ht為當前時刻的輸出;W、b分別代表權重和偏置,為神經網絡的可訓練參數。
深度學習中的注意力機制(Attention),實現了將更多的注意力資源投入某一區域的功能,與人類的注意力機制類似。人類可以通過快速瀏覽整幅圖像,獲得需要重點關注的區域,也就是人們常說的注意力焦點,然后將注意力集中在這一區域,以獲取需要重點關注的目標的信息,而忽略其他無用的信息。注意力機制可以幫助人類從大量的信息中篩選出高價值的信息,是人類在長期進化中形成的一種生存機制。從本質上講,深度學習中的注意力機制和人類的注意力機制類似,也是為了從繁多的信息中篩選出對當前任務更有用的信息。目前,注意力機制已被廣泛應用于自然語言處理、圖像識別、語音識別等各種領域,并取得了良好的效果。
本文所使用的圖像特征的注意力計算方法如圖4所示。將圖像特征與問題特征拼接后經過一個非線性層,之后經過一個線性層和Softmax層,從而得到一幅圖像不同區域的注意力權重。

圖4 圖像注意力計算示意圖
如圖4所示,在拼接圖像與問題特征時,將問題的特征向量拼接在圖像每一個區域的特征向量之后。最后經過Softmax層得到圖像各區域的注意力權重后,進行如下運算:
(4)
式中:α代表各區域注意力權重;v代表圖像各區域的特征向量;K值為49,是圖像被劃分的區域數。
非線性層的計算公式如下:
(5)
g=σ(W′x+b′)
(6)
(7)
式中:x代表圖像與問題特征拼接后的向量;y代表計算得到的特征向量;“·”代表逐元素相乘。
在得到了圖片特征和問題特征后,需要對二者進行特征融合。通過計算注意力之后得到的圖片特征向量為512維,通過LSTM神經網絡得到的問題向量也為512維。將二者進行點乘來實現特征融合,同時也將二者按列進行拼接實現特征融合對比。
將特征融合之后的向量通過兩層全連接層和一層Softmax層。搭建的視覺問答模型結構如圖5所示。模型使用交叉熵作為損失函數,全連接層單元數分別為1 024和1 000,使用RMSprop作為優化函數,batch的數目為200,epoch的數目為20。

圖5 模型結構圖
視覺問答任務發展至今,已有很多的數據集,包括DQAUAR、COCO-QA、FM-IQA、Visual Genome和VQA等。DQAUAR數據集中的部分圖片質量較低,且圖片的內容較為單一,只包含室內場景,限制了問題的多樣性,但它所有答案的個數不超過1 000個。COCO-QA數據集的主要問題是問答對由自然語言處理模型根據圖片標題自動生成,答案的個數也不超過1 000個。FM-IQA數據集中有的問題的回答是一個句子,這給統計答案頻率增加了難度。Visual Genome數據集中頻率最高的1 000個答案僅占所有答案的65%,而VQA數據集中頻率最高的1 000個答案約占答案總數的82.7%。
綜上,本文模型采用VQA數據集進行訓練與測試,該數據集中包含了82 783幅訓練圖片、81 434幅測試圖片以及40 505幅驗證圖片,而且圖片涉及了多種多樣的場景。每幅圖片對應3個問答對,問題的種類繁多,如‘what is this’‘what color’‘is this’‘does the’‘how many’等。其中被編碼的1 000個答案對應訓練集中的387 976句問題,測試集中的186 937句問題。對于問題中未出現在預訓練的“Glove”中的詞,編碼為0。VQA數據集的舉例如圖6所示,數據集中的問題與答案如表2所示。

圖6 VQA數據集舉例(穿著橘色上衣的人)

表2 數據集中針對圖6的問題
針對第1章節中介紹的模型,使用VQA訓練集進行訓練,并與下列無注意力機制模型的準確率進行對比:
1)模型一:圖片特征由VGG16最后一層全連接層提取得到,特征向量為(None,1,4 096),將其經過全連接層得到特征向量為(None,1,300);問題經過預處理和詞嵌入后得到的特征向量為(None,13,300)。將圖像作為問題的最后一個單詞,實現特征融合后得到特征向量為(None,14,300),之后分別傳入單元數為1 024的LSTM和BiLSTM神經網絡,最后傳入Softmax得到分類結果。
2)模型二:只使用問題特征,只通過LSTM神經網絡,其余參數設置與模型一中一致。
3)模型三:圖片特征由VGG16最后一層全連接層提取得到,特征向量為(None,1,4 096),其經過全連接層得到特征向量為(None,1,1 024);問題經過預處理和詞嵌入后得到的特征向量為(None,13,300),其通過LSTM神經網絡之后得到特征向量為(None,1,1 024)。二者按行融合后得到特征向量(None,2,1 024),之后通過單元數為512的LSTM神經網絡,最后再通過Softmax層實現分類。
4)模型四:將文獻[4]中計算注意力權重的方式應用到本文模型當中,即二者除注意力權重計算方法外,其余參數與方法均一致。
不同模型在驗證集上得到的準確率結果如表3所示。

表3 實驗結果
可以看出,基于注意力機制的模型的準確率高于其他模型,而使用點乘融合方式的注意力模型準確率高于使用拼接融合方式的注意力模型,與模型四不相上下,但本文模型相對需要較少的計算。所有模型的準確率都高于模型二,這說明模型在訓練過程中確實使用了圖像信息。
為了驗證模型在不同類型問題上的準確率,從測試集中提取出53 692對關于“是非”的問答,23 192對關于“數量”的問答,以及19 962對關于“顏色”的問答,結果如表4所示。

表4 分類實驗結果
可以看出,所有模型均是在是非問題上的準確率最高,因為是非問題只有“Yes”“No”兩種答案,這也是模型二在是非問題上準確率在50%左右的原因,而其他模型有圖片信息作為輸入,準確率均高于模型二。注意力模型在關于數量問題上的準確率最低,說明模型不能很好地完成數數任務。
將圖片和問題在上述六個模型上作對比,對于同一個問題,不同模型預測的答案中排名前三的結果如圖7所示。

(a)詢問顏色(綠色交通燈,燈桿紅白相間,背景有霧)
正如圖7所示,基于注意力機制的視覺問答模型可以初步輔助盲人解決顏色及是非問題,但在數數方面做得不好。
為了實現多功能的人機交互,本文提出基于注意力機制的視覺問答系統,通過采集問題及周圍環境信息,再通過基于注意力的深度學習模型的處理,得到回答并合成語音。實驗表明,本文模型在一定程度上完成視覺問答任務,能幫助盲人解決某些場景中的問題,有助于盲人理解周圍環境。然而,模型也有很多不足之處,比如特征融合方式、模型準確率等。今后將致力于圖像特征與問題特征融合方式的研究、注意力權重計算方法的研究,以及基于知識圖譜的模型研究,以提高模型的準確率,更好地完成視覺問答任務,從而實現盲人輔助的功能。