本發(fā)明屬于計算機視覺與自然語言處理技術(shù)領(lǐng)域,涉及一種利用時空注意力模型的視頻內(nèi)容描述方法。
背景技術(shù):
之前在視頻內(nèi)容描述方面的研究工作主要分為以下幾個方面:
1.基于特征識別與語言模板填充的方法。具體而言,該方法分為兩個步驟,首先將視頻按照一定的時間間隔轉(zhuǎn)化成具有連續(xù)幀的圖像集合;其次,使用一系列預(yù)先在大規(guī)模的圖像訓(xùn)練集中訓(xùn)練好的特征分類器,將視頻中的靜態(tài)特征與動態(tài)特征分類標(biāo)記,具體而言,這些特征可細分為實體、實體屬性、實體間的交互關(guān)系以及場景等;最后,根據(jù)人類語言的特點制定一個“主語,謂語,賓語”的語言模板,在按分類器估計出的概率大小將概率最大的特征填充到語言模版中。
2.基于深度學(xué)習(xí)的編碼-解碼方法。該研究方法來源于機器翻譯,在編碼部分,將待翻譯句子用一個固定維度的特征向量表示,之后,解碼部分以該向量中儲存的信息為條件,將該特征向量轉(zhuǎn)化為目標(biāo)語言。基于此思想,有人將編碼-解碼的方法應(yīng)用到了視覺-文本轉(zhuǎn)化的工作中,通過將圖片或視頻中的視覺特征編碼為固定維度的特征向量,并應(yīng)用遞歸神經(jīng)網(wǎng)絡(luò)rnn將編碼后的特征向量轉(zhuǎn)化為目標(biāo)文本,從而實現(xiàn)對一副圖片或一個視頻的自動描述。
3.注意力模型
目前在視覺-文本翻譯中廣泛應(yīng)用了注意力模型,該模型仿照了人腦特有的注意力能力,在圖片內(nèi)容描述中,主要利用了空間注意力模型,即在第t個時間點將視覺特征解碼為自然語言時,解碼模型能夠選擇性地關(guān)注與t-1個時間點生成的描述信息關(guān)聯(lián)最大的區(qū)域,通過該模型,能夠捕捉到一副圖片中的全局空間結(jié)構(gòu)。在視頻描述中,主要利用是時間注意力模型,因為捕捉一個視頻中的時間結(jié)構(gòu)是了解該視頻主要內(nèi)容的重要手段,因此利用時間注意力模型,可以在第t個時間點根據(jù)t-1個時間點生成的描述信息選擇性地關(guān)注一些關(guān)鍵幀,避免造成視頻中不同時間點的事件發(fā)生混亂。
對于視頻描述現(xiàn)有的方法而言,第一種基于特征識別與語言模板填充的方法不僅需要訓(xùn)練大量的特征分類器用于特征識別,而且在將這些特征填充進語言模板時,容易導(dǎo)致生成的語言描述不完整或不符合人類語言習(xí)慣,也就是該使用哪些特征以及這些特征怎么有效結(jié)合是導(dǎo)致生成的語言描述正確率很低的關(guān)鍵因素。對于第二種方法,雖然其是目前該研究領(lǐng)域中最為先進也是準(zhǔn)確率最高的方法,但是這并不是簡單的工作,因為相較于圖片而言,視頻中含有更多的特征,包括全局靜態(tài)特征、局部靜態(tài)特征,局部動態(tài)特征等,如何恰當(dāng)?shù)剡x取和利用這些特征仍然是現(xiàn)在一個值得繼續(xù)深入研究的問題。在視頻描述中,雖然利用時間注意力模型可以選擇性的關(guān)注一些關(guān)鍵幀,但是利用的仍然是每一幀上的全局特征,所以容易忽略一些關(guān)鍵的局部特征,所以現(xiàn)在的視頻描述方法雖然捕捉了視頻中的全局時間結(jié)構(gòu),但是卻忽略了每一幀圖片中的空間結(jié)構(gòu),即忽略了視頻中一些關(guān)鍵的局部信息,由此造成的問題主要有以下兩方面:1)生成的視頻描述不完整,且容易發(fā)生歧義;2)因為關(guān)鍵細節(jié)的預(yù)測錯誤,會導(dǎo)致視頻描述的完全錯誤。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有視頻內(nèi)容描述方法中因丟失每一幀圖片中空間結(jié)構(gòu)而導(dǎo)致忽略一些關(guān)鍵信息的問題,以及進一步提高描述的準(zhǔn)確率,本發(fā)明擬在現(xiàn)有時間注意力模型的基礎(chǔ)上加入空間注意力模型,新提出一種利用時空注意力模型的視頻內(nèi)容描述方法。本發(fā)明通過利用時間注意力模型捕捉視頻中全局時間結(jié)構(gòu)的同時,利用空間注意力模型捕捉每一幀圖片上的空間結(jié)構(gòu),目的是使視頻描述模型在把握視頻中主體事件的同時增強對局部信息的識別能力。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方法是:
首先利用公開發(fā)表且預(yù)先訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)(cnn),如googlenet、c3d等,提取每一幀圖片中的全局特征以及連續(xù)幀形成的動態(tài)特征,并級聯(lián)成固定維度的特征向量;其次利用公開發(fā)表且預(yù)先訓(xùn)練好的快速區(qū)域目標(biāo)檢測模型fasterr-cnn,在每幀圖像上進行目標(biāo)檢測,基于需求訓(xùn)練的fasterr-cnn模型可以在每張圖片上識別p個物體,因此可以從視頻中的每幀圖片中提取出p個物體的局部特征;因為圖片中的物體個數(shù)一般不超過10個,因此我們根據(jù)每幀圖片檢測后得到的每個物體置信度得分,選取得分最高的top-n個物體,作為每幀圖片中的重要局部對象,并提取對應(yīng)的特征作為視頻中的局部特征。然后,我們通過時間注意力模型選取每一個時間點的全局、動態(tài)、局部特征輸入到基于長短期記憶的遞歸神經(jīng)網(wǎng)絡(luò)(lstm),將每一幀編碼后的特征向量解碼為單詞序列。我們以每個時間點生成單詞概率的對數(shù)似然最大為目標(biāo)函數(shù)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案具體包括以下步驟:
步驟(1)對視頻格式進行預(yù)處理。
1-1.將待描述視頻轉(zhuǎn)換為連續(xù)幀的圖像集合;利用預(yù)先訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)googlenet和fasterr-cnn模型分別提取每一幀圖片的全局特征和局部特征,其中全局特征取自googlenet卷積神經(jīng)網(wǎng)絡(luò)中pool5/7×7_s1層,局部特征取自fasterr-cnn模型中的全連接層fc7。
1-2.采用預(yù)先訓(xùn)練好的c3d卷積神經(jīng)網(wǎng)絡(luò),在連續(xù)幾幀圖片中提取視頻中的動態(tài)特征,特征取自模型中全連接層fc6。
1-3.因為每一個待描述視頻的總幀數(shù)不一樣,為了后續(xù)操作方便,統(tǒng)一將所有幀均分成k組,并取每組的第一幀,所以每一個視頻最后會有k個全局特征vg={vg1,…,vgk},、k*n個局部特征vl={vl1n,…,vlkn}和k個動態(tài)特征vm={vm1,…,vmk}。
1-4.利用級聯(lián)的方法將全局特征和動態(tài)特征融合成一個全局-動態(tài)特征向量v[gm]i:
v[gm]i=[vgi,vmi](1)
其中,vgi表示全局特征,vmi表示動態(tài)特征,[vgi,vmi]表示全局特征和動態(tài)特征進行級聯(lián)。
步驟(2)建立用于時空注意力模型。
2-1.首先利用空間注意力模型將每一幀圖片中top-n個區(qū)域的特征{vlin,…,vlin}編碼成長度為k的局部空間表征:
ψ(vl)={ψ1(vl),…ψj(vl)…,ψk(vl)}(2)
每個ψj(vl)是利用空間注意力模型得到的每幀圖片上所有局部特征的權(quán)重和,即每幀圖片上n個局部特征都有相應(yīng)的權(quán)重,根據(jù)權(quán)重lstm在解碼時能夠選擇性地關(guān)注每幀圖片上的重要區(qū)域,從而在視頻描述中捕捉到更多的關(guān)鍵細節(jié)。
2-2.將k個全局-動態(tài)特征向量v[gm]i和局部空間表征ψ(vl)編碼成句子長度為m的時間表征:
其中,每個
上式中,
每個
步驟(3)對視頻描述模型進行訓(xùn)練
當(dāng)每個時間點的時間表征
由于在視頻描述模型訓(xùn)練階段需要添加人類句子描述作為指導(dǎo),所以總的訓(xùn)練時間步長為已知,即人類給出的描述句子的長度。整個訓(xùn)練過程按照lstm中三個門和cell的計算來不斷更新隱藏狀態(tài)ht,每個ht中儲存了t個時間點生成的所有單詞信息,每次將其從lstm網(wǎng)絡(luò)中輸出到前饋神經(jīng)網(wǎng)絡(luò)中,通過施加激活函數(shù)將其轉(zhuǎn)化為r*v維的向量,r代表lstm網(wǎng)絡(luò)的維度,v代表候選單詞維度,最后利用softmax函數(shù)的多分類方法,從v選擇概率最高的那一維的索引,對應(yīng)到事先準(zhǔn)備好的字典中,即可選擇出每個時間節(jié)點應(yīng)生成的單詞。經(jīng)過l個時間點,l表示該視頻人類句子描述的長度,所以最后會得到l個ht={h1,…,hl},同時得到l個單詞預(yù)測概率,因為訓(xùn)練階段描述句子已知,所以目標(biāo)函數(shù)是最大化生成單詞的對數(shù)似然,也就是使得損失函數(shù)最小,即l個損失函數(shù)的和最小,所以通過梯度下降算法更新所需的訓(xùn)練參數(shù)直到損失函數(shù)的和最小。
步驟(4)對視頻描述模型進行測試。
由于描述句子的內(nèi)容和長度是未知的,所以運用beamsearch的方法,設(shè)定搜索范圍k,在第一個時間節(jié)點設(shè)定初始單詞索引為-1(即是一個零向量),并輸入到第一個時間節(jié)點,計算出當(dāng)前狀態(tài)h0,并根據(jù)h0和softmax函數(shù)算出當(dāng)前節(jié)點可能產(chǎn)生的k個單詞索引,并將該k個單詞繼續(xù)加入到下一個時間節(jié)點中,計算下一個時間節(jié)點可能產(chǎn)生的k個單詞并和上一節(jié)點的對應(yīng)單詞組成序列。如果在某一時刻,其中一個由ki單詞開頭的序列搜索到索引為0的單詞,則該序列結(jié)束搜索,搜索范圍也減少為k-1。直到最后第ki個序列也搜索到索引為0的單詞,則整個beamsearch過程結(jié)束,在k個句子中選擇損失最小的一句,將其每一個索引對應(yīng)到事先準(zhǔn)備好的字典中,對應(yīng)輸出相應(yīng)單詞,如果沒有對應(yīng),則輸出unk(未知),如果對應(yīng)為0,則輸出<eos>,即句子結(jié)束。
本發(fā)明的有益效果:
相比于現(xiàn)有的視頻內(nèi)容描述方法,通過利用時間注意力模型,在保留視頻中主要的時間結(jié)構(gòu)的同時,利用空間注意力模型在每幀圖片中重點關(guān)注一些關(guān)鍵區(qū)域,使得生成的視頻描述能在把握視頻內(nèi)容中主體事件的同時捕捉一些關(guān)鍵但有容易忽略的細節(jié)信息。
附圖說明
圖1為本發(fā)明時空注意力模型示意圖;
圖2為本發(fā)明的實現(xiàn)流程圖。
具體實施方式
以下結(jié)合附圖及實施例,對本發(fā)明進行進一步的詳細說明。
本發(fā)明提出的一種利用時空注意力的視頻內(nèi)容描述方法,通過利用公開發(fā)表且預(yù)先訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)(cnn),如googlenet、c3d等,提出出每一幀中的全局特征以及連續(xù)幀形成的動態(tài)特征,并級聯(lián)成固定維度的特征向量;其次利用公開發(fā)表且預(yù)先訓(xùn)練好的快速區(qū)域目標(biāo)檢測模型fasterr-cnn,在每幀圖像上進行目標(biāo)檢測,基于需求訓(xùn)練的fasterr-cnn模型預(yù)先在mscoco圖片數(shù)據(jù)集上訓(xùn)練,可快速檢測80個名詞物體。,因此可以從視頻中的每幀圖片中提取出80個物體的局部特征向;因為圖片中的物體個數(shù)一般不超過10個,因此我們根據(jù)每幀圖片檢測后得到的每個物體置信度得分,選取得分最高的top-8個物體,作為每幀圖片中的重要局部對象,并提取對應(yīng)的特征作為視頻中的局部特征。然后,通過空間注意力模型選取每幀圖片上的空間表征。接著,利用時間注意力模型選取每一個時間點的全局、動態(tài)特征局部空間表征輸入到基于長短期記憶的遞歸神經(jīng)網(wǎng)絡(luò)(lstm),將每一幀編碼后的特征向量解碼為單詞序列。模型的訓(xùn)練過程利用adadelta算法和反向傳播算法計算梯度,通過最大化生成目標(biāo)單詞概率來估計最佳參數(shù)。實施流程如圖2所示。本發(fā)明所述方法在視頻內(nèi)容描述模型的訓(xùn)練和測試過程中具體包括以下步驟:
步驟(1)對視頻格式進行預(yù)處理。首先按照幀率的5%-10%將待描述視頻轉(zhuǎn)化為一系列圖片集合,其次利用預(yù)先在1.2m圖像分類訓(xùn)練集imagenet訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)googlenet和在mscoco圖片分類訓(xùn)練集上訓(xùn)練好的fasterr-cnn模型提取每一幀圖片的全局特征和局部特征。對于1024維的全局特征,取自googlenet卷積神經(jīng)網(wǎng)絡(luò)中pool5/7×7_s1層;對于4096維的局部特征,首先選取了輸出層80個物體的最大置信度得分,我們根據(jù)這80個最大的置信度得分,選取了top-8個重要的局部對象,然后,根據(jù)這top-8個對象回歸框的位置提取出該區(qū)域fc7層4096維的cnn特征;對于視頻中的動態(tài)特征,采用預(yù)先在sport-1m視頻數(shù)據(jù)集上訓(xùn)練好的c3d卷積神經(jīng)網(wǎng)絡(luò),在連續(xù)幾幀圖片中提取視頻中的動態(tài)特征,4096維的動態(tài)特征取自模型中全連接層fc6。
因為每一個待描述視頻的總幀數(shù)不一樣,為了后續(xù)操作方便,統(tǒng)一將所有幀均分成28組,并取每組的第一幀,所以每一個視頻最后會有28個全局特征vg={vg1,…,vg28},、28*8個局部特征vl={vl18,…,vl28*8}和28個動態(tài)特征vm={vm1,…,vm28}。
利用級聯(lián)的方法將全局特征和動態(tài)特征融合成一個全局-動態(tài)特征向量v[gm]i。計算方法如式(1)所示:
v[gm]i=[vgi,vmi](1)
其中,vgi表示全局特征,vmi表示動態(tài)特征,[vgi,vmi]表示全局特征和動態(tài)特征進行級聯(lián),級聯(lián)后的全局-動態(tài)特征向量有5120維。
如圖1所示為本發(fā)明時空注意力模型示意圖,具體過程如下:
步驟(2)建立空間注意力模型。
我們利用空間注意力模型將每一幀圖片上top-8個區(qū)域的特征{vli8,…,vli8}編碼成視頻長度的空間表征:
ψ(vl)={ψ1(vl),…ψj(vl)…,ψk(vl)})(2)
每個ψj(vl)是利用空間注意力模型得到的所有局部特征的權(quán)重和,即;
上式中,
其中空間注意力權(quán)重
ht-1表示之前生成的隱藏狀態(tài),其儲存了t-1個時間點產(chǎn)生的單詞信息,
一旦每一幀圖片上所有局部區(qū)域j=1,…,n的與t-1個生成單詞的相關(guān)分?jǐn)?shù)
空間注意力模型使得lstm神經(jīng)網(wǎng)絡(luò)解碼時能夠選擇性地關(guān)注每個時間點t每一幀圖片上權(quán)重增加的局部特征,從而在視頻描述中捕捉到更多的關(guān)鍵細節(jié)。
步驟(3)建立時間注意力模型
我們將視頻長度的全局-動態(tài)特征和局部空間表征編碼成句子長度的時間表征:
其中,每個
上式中,
每個
上式中,
ht-1表示之前生成的隱藏層狀態(tài),其儲存了t-1個時間點產(chǎn)生的單詞信息,
一旦所有幀i=1,…,k的全局-動態(tài)特征、局部空間表征與t-1個時間點生成單詞的相關(guān)分?jǐn)?shù)
步驟(4)用于將前面的時間表征進行解碼。
在解碼過程中,利用式(7)—式(13)計算的出每個時間點的時間表征即
在每個時間節(jié)點將得到一個隱藏狀態(tài)ht,其儲存了之前時間節(jié)點產(chǎn)生的單詞信息,將其從lstm網(wǎng)絡(luò)中輸出到前饋神經(jīng)網(wǎng)絡(luò)中,通過施加激活函數(shù)將其轉(zhuǎn)化為r*v維的向量,r代表lstm網(wǎng)絡(luò)的維度,v代表候選單詞維度,最后利用softmax函數(shù)的多分類方法,從v選擇概率最高的那一維的索引,對應(yīng)到事先準(zhǔn)備好的字典中,即可選擇出每個時間節(jié)點應(yīng)生成的單詞。經(jīng)過l個時間點,l表示該視頻人類句子描述的長度,所以最后會得到l個ht={h1,…,hl},同時得到l個單詞預(yù)測概率,因為訓(xùn)練階段描述句子已知,所以目標(biāo)函數(shù)是最大化生成單詞的對數(shù)似然,也就是使得損失函數(shù)最小,即l個損失函數(shù)的和最小,所以通過梯度下降算法更新所需的訓(xùn)練參數(shù)直到損失函數(shù)的和最小。
目標(biāo)函數(shù)計算方法如式(20)所示:
其中,m表示句子長度,
通過梯度下降算法更新所有訓(xùn)練的參數(shù)直到損失函數(shù)最小,計算方法如式(21)、(22)所示:
其中,wk,bk代表第k個訓(xùn)練參數(shù),η表示學(xué)習(xí)效率(一般取0.001),n表示n個參數(shù)。
步驟(5)的測試階段,在該階段中,不會傳入人類描述句子,描述句子的內(nèi)容和長度是未知的。訓(xùn)練后的視頻內(nèi)容描述模型運用beamsearch的方法,設(shè)定搜索范圍k,在第一個時間節(jié)點設(shè)定初始單詞索引-1(即零向量)輸入到第一個時間節(jié)點,計算出當(dāng)前狀態(tài)h0,并根據(jù)h0和softmax函數(shù)算出當(dāng)前節(jié)點可能產(chǎn)生的k個單詞索引,并將該k個單詞繼續(xù)加入到下一個時間節(jié)點中,計算下一個時間節(jié)點可能產(chǎn)生的k個單詞并和上一節(jié)點的對應(yīng)單詞組成序列。在大小為v的候選單詞中每個單詞的概率計算公式如式(23)所示:
其中,ht代表當(dāng)前節(jié)點的隱藏狀態(tài),yt-1代表前一個時間節(jié)點由beamsearch搜索到的概率最大單詞。
利用式(23)選出概率最大的k個單詞索引,并添加到下一個時間節(jié)點中繼續(xù)計算。如果在接下來的時間節(jié)點中,某一個由ki單詞開頭的序列搜索到索引為0的單詞,則該序列結(jié)束搜索,搜索范圍也減少為k-1。直到最后第ki個序列也搜索到索引為0的單詞,則整個beamsearch過程結(jié)束。隨后,在k個句子中選擇累計損失最小的一句,將其每一個索引對應(yīng)到事先準(zhǔn)備好的字典中,對應(yīng)輸出相應(yīng)單詞,如果沒有對應(yīng),則輸出unk(未知),如果對應(yīng)為0,則輸出<eos>,即句子結(jié)束。
步驟(6)是對測試階段生成的句子使用當(dāng)前主流的機器評價方式進行打分,該方法主要涉及bleu,metero,cider等,該方法原理不在本發(fā)明技術(shù)范圍內(nèi)。根據(jù)評分結(jié)果,可對模型超參數(shù)和迭代次數(shù)做修改。
實施例
下面結(jié)合圖2,給出視頻內(nèi)容描述具體訓(xùn)練和測試實施實例,詳細計算過程如下:
(1)某一段視頻共430幀,首先對視頻格式進行預(yù)處理,按照幀率的10%將待描述視頻轉(zhuǎn)化為43幀有間隔的圖片集合;
(2)利用預(yù)先訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)googlenet、fasterr-cnn和c3d分別提取出43張圖片中的全局特征、局部特征以及整個視頻的動態(tài)特征,并利用級聯(lián)的方式按照式(1)所列方法,將全局特征和動態(tài)融合;
(3)按照式(2)-(5)所列方法,計算出每幀圖片上局部特征的空間表征
(4)按照式(8)-(13)所列方法,分別計算出視頻中的全局-動態(tài)特征和局部空間表征的時間表征,并按照(7)所列方法將全局-動態(tài)時間表征和局部時間表征融合成整個視頻的時間表征
(5)按照(14)-(19)所列方法,在解碼過程中的每個時間節(jié)點依次加入時間表征
(6)將lstm網(wǎng)絡(luò)中每個時間節(jié)點得到的ht輸入到前饋神經(jīng)網(wǎng)絡(luò),施加激活函數(shù)將其轉(zhuǎn)化為v=20000維的向量,按照(20)—(22)所列方法,利用隨機梯度下降的方法使得損失函數(shù)最小,并求解出模型訓(xùn)練過程中的最佳參數(shù)集合;
(7)在模型測試階段,不會傳入人類描述,訓(xùn)練后的視頻描述模型利用beamsearch的方法,設(shè)定搜索寬度為5,第一個單詞索引設(shè)為-1(即零向量),將其代入(14)—(19)中計算每個時間節(jié)點的ht。根據(jù)式(23)選出概率最大的五個單詞索引,和ht一起傳入下一個時間節(jié)點繼續(xù)搜索下5個可能單詞。
(8)每當(dāng)新一個單詞出現(xiàn)索引0,即代表結(jié)束符<eos>時,則從搜索隊列中去除,將其添加到候選句子隊列中,同時搜索寬度減1。直到搜索寬度變?yōu)?且最后一個隊列也搜索到索引為0的單詞,則整個beamsearch過程結(jié)束。從5個候選句子隊列中選出損失最小的一句作為該視頻的描述。
(9)根據(jù)機器翻譯評價方法如bleu、meteor和cider等對于步驟(8)中得到的句子進行評分,根據(jù)評分結(jié)果的優(yōu)劣確定或調(diào)整視頻內(nèi)容描述模型的參數(shù)。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。