李玉剛,王永濱
(1.中國(guó)傳媒大學(xué) 計(jì)算機(jī)與網(wǎng)絡(luò)空間安全學(xué)院,北京 100024;2.廣播科學(xué)研究院,北京 100866)
通常理解一張圖像不但要能夠識(shí)別出圖像中存在的物體,對(duì)圖像中物體之間關(guān)系的分析是理解一張圖像的關(guān)鍵。而一張圖像通常包含幾十種關(guān)系,比如視覺(jué)基因組(Visual Genome)[1]平均每張圖像包含35個(gè)物體及21對(duì)關(guān)系。這些關(guān)系中大部分對(duì)理解圖像沒(méi)有影響,如果不加選擇的識(shí)別圖像中所有的物體及其之間的關(guān)系不但對(duì)理解圖像沒(méi)有任何幫助而且增加了計(jì)算量。一張圖像中的關(guān)系通常被表示成多個(gè)相互獨(dú)立的(主語(yǔ)、謂語(yǔ)、賓語(yǔ))三元組形式,但是觀察發(fā)現(xiàn)圖像中物體之間的關(guān)系通常存在著依賴關(guān)系,比如圖1包含多個(gè)物體及多個(gè)關(guān)系,但是理解圖像的關(guān)鍵物體只有體重秤、站在體重秤上的人和踩在體重秤上的人及他們?nèi)咧g的關(guān)系。
本文受到基于注意力機(jī)制的圖像描述生成算法[2]啟發(fā),利用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short Term Memory networks,LSTMs)為視覺(jué)關(guān)系之間的依賴建模,基于關(guān)系之間存在的聯(lián)系提取圖像中的主要物體并識(shí)別物體之間的關(guān)系。
圖1 圖中包含多個(gè)物體及物體之間關(guān)系
近幾年,由于深度學(xué)習(xí)算法的推動(dòng),圖像識(shí)別的準(zhǔn)確率得到大幅提升,更多的學(xué)者轉(zhuǎn)向?qū)D像理解的研究,從而建立圖像與語(yǔ)義之間的橋梁。圖像視覺(jué)關(guān)系識(shí)別是圖像理解的基礎(chǔ),主要有兩種方法:把物體及其關(guān)系作為一個(gè)整體去識(shí)別;分別識(shí)別圖像中的物體及物體之間的關(guān)系[3-5]。前一種方法由于物體及關(guān)系的表現(xiàn)形式多樣實(shí)際應(yīng)用時(shí)計(jì)算復(fù)雜度高,本文采用后一種方法,涉及以下幾種算法。
LSTM是一種特殊結(jié)構(gòu)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),能夠保存之前較長(zhǎng)時(shí)刻的狀態(tài)。LSTM在RNN的基礎(chǔ)上增加了3個(gè)門(mén):遺忘門(mén)f控制是否遺忘當(dāng)前狀態(tài),輸入門(mén)i指示是否讀取輸入,輸出門(mén)o控制是否輸出:
xt=σ(Urr(t-1)+Uwwk(t))
it=σ(Uirr(t-1)+Uiwwk(t))
ft=σ(Uorr(t-1)+Uowwk(t))
r(t)=ft⊙r(t-1)+it⊙xt
o(t)=r(t)⊙o(t)
(1)
式中σ表示sigmoid函數(shù),xt、it,ft,r(t),o(t)分別表示隱層狀態(tài)、輸入、遺忘、記憶和輸出,U表示需要學(xué)習(xí)的權(quán)重矩陣。
針對(duì)物體檢測(cè)的算法比較多:R-CNN[6],YOLO[7],SSD[8]以及它們的很多改進(jìn)算法。SSD相比于其它的模型由于取消了候選框(Region proposals)、像素重采樣(pixel resampling)這些階段,使SSD更容易訓(xùn)練,也更容易把檢測(cè)模型融合進(jìn)系統(tǒng)之中[9]。本文采用SSD進(jìn)行物體檢測(cè),其網(wǎng)絡(luò)結(jié)構(gòu)基于VGG-16,使用前面的5層,然后利用astrous算法將fc6和fc7層轉(zhuǎn)化成兩個(gè)卷積層,再額外增加了3個(gè)卷積層和1個(gè)average pool層。不同層次的feature map分別用于default box的偏移以及不同類別得分的預(yù)測(cè),最后通過(guò)nms得到檢測(cè)結(jié)果。
近幾年,注意力模型(Attention Model)被廣泛應(yīng)用于機(jī)器翻譯[10]、圖像描述[2]、自然語(yǔ)言處理等領(lǐng)域。目前,注意力機(jī)制多采用Encoder-Decoder框架,如圖2所示。
圖2 引入注意力的Encoder-Decoder
Decoder在輸出Yi時(shí)根據(jù)前一個(gè)時(shí)刻隱層節(jié)點(diǎn)的輸出Hi-1與Encoder隱層節(jié)點(diǎn)的輸出進(jìn)行匹配,即通過(guò)函數(shù)fatt(Xi,Hi-1)計(jì)算出在圖像的不同位置提取的特征Xi(i=1,2…L,L表示輸入序列長(zhǎng)度)與Hi-1的相關(guān)程度αti,然后通過(guò)計(jì)算時(shí)刻t關(guān)注的圖像中的物體。
本文提出一種基于注意力機(jī)制的圖像視覺(jué)關(guān)系識(shí)別框架,系統(tǒng)架構(gòu)如圖3所示。系統(tǒng)主要分為兩模塊:物體檢測(cè)和關(guān)系識(shí)別,物體檢測(cè)模塊采用SSD識(shí)別出圖像中包含的多個(gè)物體作為關(guān)系識(shí)別模塊的輸入。關(guān)系識(shí)別模塊是基于注意力模型的RNN,通過(guò)使用VGG-16提取物體檢測(cè)模塊輸出的物體的classme、box及visual特征[3]作為輸入,組成物體特征集合,每次從集合中提取兩個(gè)物體并識(shí)別物體之間的關(guān)系。
圖3 系統(tǒng)架構(gòu)
注意力模型受人類注意力機(jī)制的啟發(fā),人在觀察圖像的時(shí)候不是一次就把整幅圖像的每個(gè)位置都看過(guò),大多是根據(jù)經(jīng)驗(yàn)將注意力集中到圖像中的特定位置。注意力模型打破了Encoder-Decoder模型在編解碼時(shí)都依賴于內(nèi)部一個(gè)固定長(zhǎng)度向量的限制,提取圖像中特定區(qū)域的特征,從而有效地降低計(jì)算復(fù)雜度。通過(guò)在解碼端選擇與上下文信息z0匹配的編碼輸出序列,由于解碼器是基于LSTM的循環(huán)神經(jīng)網(wǎng)絡(luò),時(shí)刻t-1的隱層輸出作為t時(shí)刻的輸入從而能夠保持之前序列的信息。目前,注意力模型已經(jīng)在物體識(shí)別[11]、圖像描述[2]、自然語(yǔ)言處理[12]等領(lǐng)域得到了廣泛應(yīng)用。
eti=fatt(ai,ht-1)
(2)
式中ai表示從圖像中提取的物體特征,ht-1表示前一時(shí)刻的隱狀態(tài),通過(guò)注意力模型fatt計(jì)算得到時(shí)刻t每個(gè)物體ai的權(quán)重。fatt可以理解為求兩者的相似性,常見(jiàn)的方法包括:求兩者的向量點(diǎn)積、求兩者的向量Cosine相似性或者通過(guò)引入額外的神經(jīng)網(wǎng)絡(luò)求值。
模型在訓(xùn)練時(shí)采用端到端的方式,損失函數(shù)使用交叉熵函數(shù),為了降低梯度消失造成的影響采用rmsprop優(yōu)化算法。初始化時(shí),首先用MS COCO對(duì)SSD進(jìn)行訓(xùn)練,然后用高斯權(quán)重初始化整個(gè)系統(tǒng)。VGG-16使用ImageNet 2012進(jìn)行預(yù)訓(xùn)練。
關(guān)系序列(r1,r2,…,rN)中每個(gè)元素rt通過(guò)從物體集合O中挑選兩個(gè)物體并結(jié)合之前的關(guān)系r1,r2,…,rt-1得到。
=P(rk|O,r1,…,rk-1)
(3)
生成序列時(shí)如果前一時(shí)刻的元素是錯(cuò)的將導(dǎo)致后面時(shí)刻元素的預(yù)測(cè)結(jié)果錯(cuò)誤,從而使整個(gè)序列出現(xiàn)錯(cuò)誤。為解決這個(gè)問(wèn)題我們采用Beam搜索算法查找最有可能的關(guān)系序列。Beam算法的主要思想是查找N個(gè)可能的序列組,然后計(jì)算每個(gè)序列組的得分從中選擇分?jǐn)?shù)最高的作為最終結(jié)果。
本文采用視覺(jué)基因組(Visual Genome)[1]數(shù)據(jù)集,包含99,658張圖像,共200個(gè)物體分類和100對(duì)視覺(jué)關(guān)系。我們?nèi)∑渲?000張圖像用于訓(xùn)練,1000張圖像用于測(cè)試。本文采用Recall@50(R@50)及Recall@100(R@100)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行度量,R@K表示沒(méi)K個(gè)預(yù)測(cè)結(jié)果中正確結(jié)果所占的比例。
由于本文提出的系統(tǒng)涉及到物體檢測(cè)和關(guān)系識(shí)別兩個(gè)部分,我們只驗(yàn)證關(guān)系識(shí)別模塊的準(zhǔn)確性,給系統(tǒng)輸入已完成物體檢測(cè)的圖像。與以往的識(shí)別圖像中所有物體之間的關(guān)系不同,本文提出的圖像關(guān)系識(shí)別算法提取圖像中的主要物體及其之間的關(guān)系。為了簡(jiǎn)化,目前只識(shí)別騎、上、穿幾個(gè)關(guān)系對(duì)系統(tǒng)進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果如表1所示。
表1 視覺(jué)關(guān)系識(shí)別實(shí)驗(yàn)結(jié)果
由實(shí)驗(yàn)結(jié)果可見(jiàn),本系統(tǒng)的識(shí)別精度略低于同類其它系統(tǒng),這是由于目前本系統(tǒng)主要關(guān)注是否能夠提取圖像中的主要物體及其關(guān)系,在這方面系統(tǒng)的表現(xiàn)達(dá)到了實(shí)驗(yàn)預(yù)期。
本文提出了一種基于注意力機(jī)制的端到端的圖像視覺(jué)關(guān)系識(shí)別算法,算法的關(guān)鍵是能夠在對(duì)整張圖像的理解基礎(chǔ)上提取出圖像中的關(guān)鍵物體并識(shí)別它們之間的關(guān)系,簡(jiǎn)化了視覺(jué)關(guān)系識(shí)別的計(jì)算復(fù)雜度。算法在MS COCO數(shù)據(jù)集上測(cè)試得到了較高的準(zhǔn)確度??深A(yù)見(jiàn),該方法今后會(huì)在圖像/視頻檢索、圖像描述、物體檢測(cè)等領(lǐng)域得到廣泛應(yīng)用。今后我們的工作主要在以下幾個(gè)方面:1)擴(kuò)大系統(tǒng)能夠識(shí)別的關(guān)系集合,使系統(tǒng)能夠識(shí)別更多的關(guān)系,并提高系統(tǒng)的識(shí)別準(zhǔn)確度;2)對(duì)多個(gè)物體之間的關(guān)系進(jìn)行建模,比如(男人,拿,桶,喂,馬);3)研究關(guān)系識(shí)別在圖像及視頻內(nèi)容檢測(cè)、搜索方面的應(yīng)用。