付 燕,王咪咪,葉 鷗
(西安科技大學 計算機科學與技術學院,陜西 西安 710054)
早期的視頻描述方法[1,2]主要包括基于模板[3]和基于檢索[4]的方法。其中,基于模板的方法限制了描述語句的語義性,基于檢索的方法生成的描述語句缺乏多樣性。
近年來,研究人員提出了基于編碼器-解碼器模型的視頻描述方法,該類方法可以有效提高生成描述語句的多樣性和語義性。文獻[5]提出了S2VT(sequence to sequence:video to text)模型,實現(xiàn)了端到端的視頻描述方法,而且S2VT模型簡潔,生成的句子準確性和語義性有所提升,因此,后續(xù)的工作大多是在S2VT模型的基礎上進行。例如,文獻[6]在編解碼器中引入了注意力機制[7],通過關注不同的重要特征,生成具有多樣性的描述語句。但該方法忽略了部分次要視覺特征。文獻[8]在編解碼器的基礎上,分別提取視頻的幀特征、時空特征及音頻特征,通過融合多模態(tài)特征[9]生成文本描述,但是,會因為跨媒體而影響特征向量間的映射關系。文獻[10]提出使用基于語法表達[11]和視覺線索翻譯的視頻描述方法,通過詞性標簽組成的句子模板對句法結構進行表達。但是,該方法過于依賴詞性標簽,限制了描述語句的語法構成。
針對上述方法存在的問題,本文提出一種基于場景表示中對象特征語法分析的視頻描述方法。該方法通過構建一個新的編碼器-視覺對象特征語法分析-解碼器的模型,描述對象特征間的依賴關系,在此過程中,引入語法分析的思想,使生成的文本描述語句語法結構更加清晰。
為了解決當前編碼器-解碼器方法中,因忽視特征語法分析而造成描述語句語法結構不清晰的問題,提出一種視覺場景中基于對象特征語法分析的視頻描述方法??傮w模型如圖1所示,具體分為3部分:①基于編碼的視覺場景表示階段。該階段又分為編碼階段和構建視覺場景表示,在對視頻時空特征和對象特征編碼的基礎上,結合自注意力機制,構建視覺場景表示模型;②視覺對象特征語法分析階段。在視覺場景表示中,分析每個對象特征在描述語句中的語法成分;③解碼階段。將分析得到的語法特征向量輸入解碼端,生成語法結構清晰的文本描述。該方法的關鍵在于構建視覺場景表示模型和構建對象特征語法分析模型。
圖1 基于場景表示中對象特征語法分析的視頻描述方法
目前,現(xiàn)有文獻在視覺編碼階段主要關注單個視頻幀的時空特征表示,而較少考慮具有豐富語義要素的視覺場景對視頻特征表示的影響。為此,本文結合視覺特征編碼和自注意力機制,構建了一種新的視覺場景表示模型,表示視覺場景的語義內容,具體可以分為視覺特征編碼和構建視覺場景表示。
(1)視覺特征編碼階段。由于視頻場景內容的豐富性和復雜性,無法直接構建場景表示,需要提取視頻特征進行編碼。首先,從輸入視頻中選擇28幀等間距的視頻幀作為輸入數(shù)據,使用IRV2提取靜態(tài)特征,表示為p, 使用3D ConvNets[12]學習時序特征,表示為t。然后,將靜態(tài)特征和時序特征堆疊后的特征作為該視頻的全局時空特征,表示為g,g=p+t。 最后,使用Faster R-CNN模型[13]抽取視覺對象特征,輸出1×4096維的向量特征。視覺特征包含全局時空特征和視覺對象特征。
(2)構建視覺場景表示模型階段。視覺特征編碼階段以向量的形式表示視覺特征信息,但缺乏視覺特征之間關聯(lián)性的描述及視覺場景內容豐富性的表示。因此,在特征編碼的基礎上,本文構建了一種新的視覺場景表示模型,用于具體描述視覺場景內容及視覺特征間的內部關系。如圖2所示,主要分為3個部分:①將抽取的視覺特征輸入自注意力機制進行學習;②計算每個視覺特征的自注意力分數(shù);③根據自注意力分數(shù)確定視覺特征間的相互依賴關系,構建視覺場景表示。
圖2 基于特征編碼的視覺場景表示模型
由于自注意力機制更擅長捕捉特征間的內部相關性,本文結合自注意力機制構建模型。自注意力機制先對輸入信息進行學習,通過線性變換,得到關于對象特征的查詢向量序列Q、 鍵向量序列K和值向量序列V, 如式(1)所示
Q=WQX;K=WKX;V=WVX
(1)
其中,WQ、WK和WV是大小為5×5的待學習參數(shù)矩陣,X代表待學習的輸入向量。
(2)
(3)
其中,dk是Q和K的維數(shù)。由于某些視覺特征空間位置信息對視覺內容的表示也至關重要。通過矩陣拼接的方式,加入視覺特征位置信息的嵌入,如式(1)和式(4)所示
(4)
其中,ReLU(·)是激活函數(shù), [;] 表示兩個矩陣的拼接,Rx=[X,Y,W,H] 為檢測對象的中心坐標,vb為全局時空特征。
視覺場景表示如圖3所示,圖3(a)表示視頻關鍵幀圖像,圖3(b)表示構建的關鍵幀圖像的視覺場景表示。在視覺場景表示中包含了多個視覺特征及特征間的關系,視覺特征中的對象包含人、車、路、山和樹;對象之間存在的關系為:人在路上開車,人可以看見路、路旁的山和山上的樹。
圖3 視覺場景表示
本文通過構建視覺場景表示模型,描述視頻特征間的內部相關性,較為詳細地表示豐富的視覺場景內容,有利于對視覺場景表示中的對象特征進行語法分析。
盡管已有文獻提出關于語法表達[14]的視頻描述方法,但仍存在一些不足。以文獻[14]為例,該方法依賴于詞性標簽,限制了生成描述語句的多樣性。通過研究發(fā)現(xiàn),目前有關語法表達的視頻描述方法,過于依賴句子模板和詞性標注,缺乏對同一個詞在不同視覺場景描述語句中的語法成分分析過程,存在描述語句語法結構不清晰的問題。為此,本文在視覺場景表示的基礎上,構建一種視覺對象特征語法分析模型,具體分析每個視覺對象特征在該視頻場景描述語句中的語法成分,包括主語、謂語、賓語和狀語。如圖4所示,該模型分為3個部分:①通過設置視頻主題查詢主語和賓語對象特征;②結合C3D特征分析謂語特征;③根據主語、謂語和賓語對象特征分析狀語信息。
圖4 視覺對象特征語法分析模型
根據對數(shù)據集標注描述語句的觀察可見,主語和賓語更依賴于視頻的外觀特征信息,謂語更依賴于時間序列信息,狀語信息在視頻中不能直接捕獲到,需要根據主語、謂語和賓語一起進行分析。因此,在對象特征語法分析模型中,通過在視覺場景表示中設置有關視頻主題的2D特征進行Q查詢,分析視頻中適合做主語的對象特征,具體數(shù)學描述如式(5)和式(6)所示
s=argmaxps(vb′,g)
(5)
ps=softmax(faat(g,vb′))
(6)
其中,g為視頻的全局時空特征,vb′是視覺場景表示中的所有對象特征,argmax(·)是求最大值函數(shù),softmax(·)是激活函數(shù),faat(·)是上述式(3)的注意力計算函數(shù),s代表主語對象特征,ps表示主語對象特征的注意力分數(shù)。選擇注意力分數(shù)最大的作為主語對象特征。謂語表示主語和賓語之間的主從關系,較為依賴時間序列信息,因此,根據主語對象特征和C3D特征分析謂語特征,具體數(shù)學描述如式(7)和式(8)所示
v=argmaxpv(s,t)
(7)
pv=softmax(faat(s,t))
(8)
其中,t為C3D時間序列特征,v代表謂語特征,pv表示謂語特征的注意力計算分數(shù),選擇最適合做謂語的特征。根據對標注描述語句的觀察,賓語依賴于視頻的全局特征,因此,該模型根據主語和謂語對象特征在視覺場景表示中選擇一個注意力分數(shù)最大的作為賓語對象特征,具體數(shù)學描述如式(9)和式(10)所示
o=argmaxpo(s,v,vb′)
(9)
po=softmax(faat(s,v,vb′)
(10)
其中,o代表賓語對象特征,po表示適合做賓語的對象特征的注意力分數(shù)。由于狀語信息是整個句子的修飾成分,表示視頻發(fā)生的地點,較難在視頻中直接獲得。根據對標注語句的觀察,狀語對象特征,需要結合主語、謂語和賓語對象特征進行分析,具體數(shù)學描述如式(11)所示
adv=g(α*s+β*v+γ*o)
(11)
其中,adv代表狀語的對象特征語法向量, g(·)是一個加權求和函數(shù),α、β、γ是主語對象特征、謂語特征和賓語對象特征對應的權值參數(shù)。本文根據狀語與主語、謂語在描述語句中的關聯(lián)關系,分別設置α、β、γ為0.4,0.2,0.4。
本文構建對象特征語法分析模型,增加了針對視覺特征文本語義分析的過程,根據自然語言的句法結構,分析場景表示中對象特征在描述語句中的語法成分,生成語法結構清晰的文本描述。
在視覺對象特征語法分析模型中,對視覺場景表示中的每個對象特征進行語法分析,得到由主語、謂語、賓語和狀語特征向量構成的特征元組 {s,v,o,adv}。 其中,由特征向量構成的特征元組包含描述語句中的不同語法成分,因此,解碼器可直接對特征向量進行解碼,輸出描述語句。
本文解碼器采用單層LSTM深度神經網絡,LSTM連接語法特征元組 {s,v,o,adv} 的輸入,如式(12)所示
ht=LSTM(xt,ht-1,mt-1)
(12)
其中,x∈{s,v,o,adv} 特征元組,具體表示特征元組中的每一個語法特征ht表示t時刻的隱藏狀態(tài),ct表示語法特征向量在t時刻的輸出,記憶單元mt-1表示記憶單元。輸出經過softmax層,依次轉換成單詞,在t時刻輸出的文本語義描述表示,如式(13)所示
logp(yt|y1,y2,…,yt-1)=f(ht,ct)
(13)
同時,使用“BOS”和“EOS”作為LSTM生成句子的開始詞和結束詞,將每一時刻生成的詞連接成為文本描述,作為輸出結果。例如,一個視頻的主要描述內容是孩子們在院子里跳舞,在經過編碼階段和視覺對象特征語法分析階段后,可以得到由語法特征向量組成的語法特征元組 {s,v,o,adv}。 然后,將語法特征向量依次輸入到LSTM單元中,出現(xiàn)“BOS”之后,表示描述語句開始生成,第一個時間點輸出單詞Kids,持續(xù)輸出,直到出現(xiàn)結束詞“EOS”,表示輸出結束,生成最終的描述語句“
由于本文方法是進行端到端的訓練,要使語法分析損失和生成的視頻描述損失的加權和最小。因此,損失函數(shù)定義如式(14)所示
L=Lc+βLp
(14)
其中,β是一個平衡兩項的超參數(shù),Lc是生成的視頻描述損失函數(shù),Lp是語法分析的損失函數(shù)。語法分析的損失函數(shù)公式表述如式(15)所示
(15)
其中, {s′,v′,o′,adv′} 表示是由自然語言處理工具集nltk[15]生成的語法特征向量組件。視頻描述損失函數(shù)公式表述如式(16)所示
(16)
其中,yl表示人工標注的句子,l表示句子中的詞語,y表示生成的視頻描述語句,N表示生成的句子數(shù)量,M表示單詞數(shù)量。
本文方法在訓練過程中,所有樣本的目標數(shù)K是固定的,允許進行小批量訓練。從每個視頻的關鍵幀提取K個對象區(qū)域的區(qū)域空間特征,生成視覺場景表示。在本文的實驗中,設置K=10, 如果檢測到的對象超過K, 則選擇置信度最高的K個對象。如果小于K, 則其中一些區(qū)域會出現(xiàn)多次,這時可以利用位置信息來區(qū)分重復區(qū)域。在測試過程中,輸入視頻的K可以是任意的,如果出現(xiàn)對象缺失的情況,在選擇的對象區(qū)域中加入額外的空區(qū)域進行彌補。
本文分別在公共數(shù)據集(MSVD數(shù)據集和MSR-VTT數(shù)據集)上進行實驗。其中,MSVD是一個開放域視頻描述數(shù)據集,包含1970個視頻,并配備了80 839句英文描述,視頻內容較為簡單,多是單一生活場景或動作(如切菜、鍛煉)。本文選用1200個視頻作為訓練集,100個視頻作為驗證集,測試集包含670個視頻。MSR-VTT包含10 000個視頻片段,本文采用了數(shù)據集原有的分割方法,訓練集有6513個視頻,交叉驗證集有497個,測試集有2990個視頻。
本實驗采用 Python3.6編程并使用Pytorch1.1進行模型訓練,實驗在Linux操作系統(tǒng)上進行。實驗中GPU為NVIDIA Titan XP,內存大小為62 GB,硬盤大小為100 GB,批量大小設定為64,固定的學習率為1×10-4,采用CUDA10.0與cuDNN加速。
本文選擇目前主流的評價標準BLEU[15]和SPICE[17]。其中,BLEU通常在機器翻譯中使用,通過計算生成的語句和候選短語之間n-gram的相似性。CIDEr將生成的每個句子看成文檔,表示成TF-iDT向量形式,計算參考句子與生成句子間的相似度。SPICE基于圖的語義表示來描述對象和對象關系。以上3個評價指標結果與人工判斷的結果具有較高的相關性。
本文方法采用AdaMax優(yōu)化器,在MSVD訓練集為1200個視頻,訓練結果如圖5(a)所示,訓練次數(shù)大約在100次時開始收斂,我們認為是由于訓練集數(shù)量較大,訓練次數(shù)較多,模型收斂性較好。因此,在該數(shù)據集上未出現(xiàn)過擬合現(xiàn)象。在MSR-VTT訓練集為6513個視頻,訓練結果如圖5(b)所示,訓練次數(shù)大約在150次時開始收斂,原因同上,因此,在該訓練集上未存在過擬合現(xiàn)象。
圖5 迭代損失函數(shù)
表1和表2分別表示了本文方法和其它基于編解碼器模型的視頻描述方法在MSVD和MSR-VTT數(shù)據集上的對比結果,由于SPICE評價指標目前針對圖像文本描述進行評價,因此,本文不作對比。由表1和表2可以看到,本文方法在BLEU_4和CIDEr都得到了較高的分數(shù)(評價分數(shù)越高,說明該方法越好),這是因為本文方法在編碼階段,利用2D、3D和Faster R-CNN模型抽取較為準確的視頻特征,并且結合自注意力機制構建一種新的視覺場景模型,可以有效捕獲特征間的依賴關系。在解碼之前,提出對象特征語法分析模型,結合C3D特征,可以較為準確地分析主語和賓語之間發(fā)生的動作,即謂語特征信息,結合主語、謂語和賓語特征可以分析出視頻發(fā)生的地點信息,即狀語信息。因此,進一步優(yōu)化了模型的描述效果。
表1 MSVD數(shù)據集多個方法實驗結果對比
表2 MSR-VTT數(shù)據集多個方法實驗結果對比
為了分析不謂語和狀語對生成視頻描述語句的影響程度,本文在MSVD和MSR-VTT數(shù)據集上進行了實驗,實驗結果見表3和表4。其中,SA代表自注意力機制,v表示對謂語的分析,adv表示對狀語的分析。從表3和表4可以看出,同時對謂語和狀語進行分析,評價指標分數(shù)最高。這是因為在描述語句中,主語和賓語依賴于視頻外觀特征,容易獲取,但是謂語和狀語不易直接獲取,且謂語表示主語和賓語之間發(fā)生的動作,狀語是對動作情況的說明,即動作發(fā)生的地點。因此,分析謂語和狀語可以表示視頻中對象間的相互作用關系,提升描述語句的完整性和準確性。
表3 本文方法在MSVD數(shù)據集實驗結果對比
表4 本文方法在MSR-VTT數(shù)據集實驗結果對比
本文方法分別選取了兩個公共數(shù)據集進行視頻描述的實驗對比。如圖6和圖7所示,對MSVD和MSR-VTT數(shù)據集上的視頻進行文本描述,通過實驗結果可見,本文所提視覺場景表示模型,可以確定視覺特征間的相互關系,如“in a pat”,準確描述了食物和盆之間的包含關系,“tree on the mountain”表示樹在山上,描述了兩者的存在關系。對象特征語法分析模型,可以詳細地分析場景表示中視覺對象特征在描述語句中的語法成分,如“in the kitchen”、“on the road”,表示視頻發(fā)生的地點信息,即狀語信息。因此,本文方法能夠較為準確地描述視頻內容,生成的描述語句語義性較強,完整性較高,語法結構較為清晰。
圖6 MSVD數(shù)據集下的視頻描述
圖7 MSR-VTT數(shù)據集下的視頻描述
本文提出了一種視覺場景中基于對象特征語法分析的視頻描述方法。該方法通過構建視覺場景表示,較為完整地表示視頻內容及對象間的依賴關系。此外,通過構建視覺對象特征語法分析模型,可以有效解決編解碼器方法中忽略特征語法分析造成描述語句結構不清晰的問題。針對本文構建的語法分析模型中,存在不規(guī)則語法結構描述語句有限的問題,我們將在未來的工作中,研究針對不規(guī)則語法結構的視頻描述方法,生成更加符合人類表達和理解的視頻描述語句。