鐘冠華 黃巍
(武漢工程大學(xué)計算機科學(xué)與工程學(xué)院,湖北 武漢 430000)
視覺關(guān)系檢測,不僅要識別圖像中的目標物體類別以及位置,更重要的是根據(jù)物體之間的語義關(guān)系形成一個個三元組,來描述輸入的圖像,從而達到圖像轉(zhuǎn)化成文本的目的[1]。
最開始的視覺關(guān)系檢測算法,將每對目標物體與語義關(guān)系形成的三元組都視作一個類別進行訓(xùn)練[2]。這類方法由于訓(xùn)練的類別過多,訓(xùn)練出來的模型比較固化死板,無法實現(xiàn)遷移學(xué)習(xí),實際應(yīng)用價值不太高。
為了能在大型數(shù)據(jù)集上更好地拓展,后續(xù)的視覺關(guān)系檢測算法提出的一系列模型,都是將目標物體和語義關(guān)系分成視覺模塊與語言模塊兩個模塊進行訓(xùn)練[3]。其中,基于Faster R-CNN的視覺關(guān)系檢測算法表現(xiàn)十分優(yōu)秀[4],模型通過三個分支網(wǎng)絡(luò)分別檢測主語、賓語與語義關(guān)系,然后把結(jié)果組合起來形成關(guān)系三元組。這一算法能更準確地預(yù)測視覺關(guān)系,但是缺點是尺寸相差過大或者重合的兩個目標之間的語義關(guān)系無法很好地檢測出來。
本文提出了基于多特征提取網(wǎng)絡(luò)的視覺關(guān)系檢測算法,模型將輸入的圖像通過卷積神經(jīng)網(wǎng)絡(luò),利用多個特征提取網(wǎng)絡(luò),將圖像信息、空間位置與語義信息三個特征分別提取出來進行融合,輸出一個關(guān)系三元組。
圖像信息特征是最直觀的特征,利用卷積神經(jīng)網(wǎng)絡(luò)強大的特征提取能力,對圖像信息特征進行有效提取。本章采用的圖像信息特征提取模塊是基于ResNet101網(wǎng)絡(luò)[5]進行改進的,其中ResNet101網(wǎng)絡(luò)如圖1所示。為了防止整張圖像的冗余信息對后續(xù)的檢測產(chǎn)生干擾,圖像信息特征模塊沒有將整張圖片作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,而是先用成熟的目標檢測算法(Faster R-CNN)對輸入的圖像做檢測,找出可能是物體的區(qū)域,將兩個目標物體的聯(lián)合邊框作為輸入,并且輸入前將聯(lián)合邊框的尺寸進行調(diào)整,統(tǒng)一成224×224大小。
圖1 ResNet101網(wǎng)絡(luò)圖
ResNet101網(wǎng)絡(luò)的Block被稱為Bottleneck,包含兩個基本塊,分別為Conv Block和Identity Block,其中Conv Block輸入和輸出維度是不一樣的,所以不能連續(xù)串聯(lián),用于改變網(wǎng)絡(luò)的維度;Identity Block輸入維度和輸出維度相同,可以串聯(lián),用于加深網(wǎng)絡(luò)。
圖像中目標對之間會出現(xiàn)“體型”差異過大的情況,例如“人”與“眼鏡”,兩者的比例過于夸張。同時,由于卷積神經(jīng)網(wǎng)絡(luò)實際上的感受野比理論上的小得多,導(dǎo)致“眼鏡”這個小目標容易被忽略。為了解決這一問題,本章選擇將一種金字塔卷積PyConv(Pyramidal Convolution)[6]嵌入到Bottleneck中,具體結(jié)構(gòu)如圖2所示。
圖2 PyConv嵌入前后對比
嵌入金字塔卷積的網(wǎng)絡(luò)與原卷積網(wǎng)絡(luò)相比,采用了7×7、5×5和3×3三種不同尺度與深度的卷積核,代替了單一的卷積核,增加了網(wǎng)絡(luò)的感受野,加強了網(wǎng)絡(luò)的特征提取能力。
空間位置特征異常重要,因為其不只是能幫助檢測目標,更能反映目標對之間語義關(guān)系,直接反映的有單純的位置關(guān)系,諸如“在……之上”(on)、“在……之后”(behind),間接反映的有“站”(stand)、“騎”(ride)之類的??臻g位置特征分為兩種關(guān)系,即絕對空間關(guān)系與相對空間關(guān)系。絕對位置關(guān)系是用來表達目標對之間的距離和方位,受圖像質(zhì)量影響,而且經(jīng)過池化后距離會有所變化。相對空間關(guān)系是用來表達目標對之間的方位,而且由于視覺關(guān)系檢測中,目標對之間的關(guān)系更多依靠的是相對空間關(guān)系,不需要非常精準的距離坐標數(shù)據(jù)。空間位置特征能提供目標對之間的相對方位,為后續(xù)的語義關(guān)系預(yù)測提供了有力證據(jù)。
基于目標檢測的結(jié)果,關(guān)系實例(s,p,o)中,s表示主語,o表示賓語,x與y表示檢測框左上角坐標,w與h表示檢測框的寬度與高度。將空間位置特征表示為4維空間向量,計算公式如下所示:
但是當目標對發(fā)生重合的時候,上述計算公式很難表達空間位置特征,于是本文采用兩個二值矩陣來表示空間位置,兩個矩陣分別表示主語和賓語。將目標物體所在區(qū)域的標為1,周圍背景的區(qū)域標為0。將兩個二值矩陣下采樣到32×32大小,接著依次通過卷積核大小為5×5、5×5和8×8的三個卷積層,最后提取出一個256維的向量。
視覺關(guān)系中,利用目標之間類別的相似性,有一些關(guān)系可以通過類推得到,例如已經(jīng)檢測出了“人穿毛衣”,再檢測到“人”和“褲子”,由于“毛衣”與“褲子”有相似的語義特征,人們很容易就通過“人穿毛衣”這個語義關(guān)系聯(lián)想到“人穿褲子”,由此可知語義信息是一個十分重要的特征。
為了讓計算機擁有這種認知,本章使用word2vec[7]整合主客體的類別信息。將檢測出來的目標類別信息映射到一個特定的向量空間中,相似語義的詞所對應(yīng)的向量距離比較近,不同語義的詞之間的距離比較遠。例如:“毛衣”與“褲子”都是衣物,向量距離比較近,而“毛衣”與“沙發(fā)”的向量距離比較遠,易從“人穿毛衣”關(guān)聯(lián)到“人穿褲子”,而無法從“人穿毛衣”關(guān)聯(lián)到“人穿沙發(fā)”。
視覺關(guān)系檢測的數(shù)據(jù)集與一般的目標檢測不同,不僅對目標物體的邊框與類別進行標注,還對目標對之間的關(guān)系進行標注。目前主流檢測算法在兩個常用的視覺關(guān)系檢測數(shù)據(jù)集上進行測試:
視覺基因數(shù)據(jù)集VG(Visual Genome)[8],該數(shù)據(jù)集由斯坦福大學(xué)人工智能實驗室主任李菲菲與幾位同事合作開發(fā)的公共標準數(shù)據(jù)集,是目前視覺關(guān)系檢測的最大數(shù)據(jù)集,一共有108007張圖片,每張圖片平均有35個目標、26個特征和21個語義關(guān)系,產(chǎn)成一百多萬條的視覺關(guān)系描述。經(jīng)過預(yù)處理后數(shù)據(jù)集只保留了頻率較高的150個目標類別和500個語義關(guān)系。在訓(xùn)練中,本文選取整個數(shù)據(jù)集其中的64346張圖片作為的訓(xùn)練集圖像,其余圖像作為測試集圖像。
視覺關(guān)系檢測數(shù)據(jù)集VRD(Visual Relationship Dataset)[3],該數(shù)據(jù)集中共有5000張圖片、100種目標類別和70個語義關(guān)系,產(chǎn)生了37993條視覺描述。該數(shù)據(jù)集相較于VG數(shù)據(jù)集,是設(shè)計專門用于視覺關(guān)系檢測基準測試的數(shù)據(jù)集,沒有過多的標注錯誤和噪聲數(shù)據(jù),且數(shù)據(jù)規(guī)模不算龐大,得益于此,訓(xùn)練速度快。同時由于數(shù)據(jù)集規(guī)模較小,測試樣本不是很充足,不少三元組只出現(xiàn)在測試集中而沒有出現(xiàn)在訓(xùn)練集中。本次實驗將其中的4000張圖像作為訓(xùn)練集,剩余1000張作為測試集。
在第二章中提取了圖像的多種特征后,網(wǎng)絡(luò)對多種特征進行融合,具體融合過程如如圖3所示。
圖3 特征融合網(wǎng)絡(luò)圖
其中,IF(Image Feature)表示圖像信息特征,SF(Spatial Feature)表示空間位置特征,WF(Word Feature)表示語義關(guān)系特征,在特征融合網(wǎng)絡(luò)中,通過兩個全連接層,將三個不同的特征融合在一起,從而提升網(wǎng)絡(luò)的表征能力。
目前視覺關(guān)系檢測相關(guān)的主流算法都是通過召回率(Recall)來進行評估。本文依據(jù)目前相關(guān)算法,采用Recall@50和Recall@100作為指標,其中Recall@50表示在圖像的前50個置信關(guān)系預(yù)測中,預(yù)測目標對之間語義關(guān)系的正確率。本文參考文獻[4]的研究,采用三個任務(wù)來評估本文提出的方法:連接詞檢測,詞組檢測和關(guān)系檢測。
連接詞檢測:給定圖像中的標注的目標對,預(yù)測對象之間的語義關(guān)系,檢測任務(wù)是在沒有檢測對象的情況下查看連接詞的準確性。
詞組檢測:輸入一張沒有分類過的圖像,輸出一個三元組,并且給出一個邊界框定位兩個目標的位置。
關(guān)系檢測:三個檢測任務(wù)中難度最高的一個,應(yīng)用也最為廣泛。輸入一張沒有標注過的圖像,輸出三元詞組。
實驗參數(shù)設(shè)置:優(yōu)化器選用帶有動量的隨機梯度下降,初始化學(xué)習(xí)率為0.001,動量大小為0.9。實驗采用Recall@50和Recall@100作為指標(后續(xù)Recall簡寫成Rec),分別在VG數(shù)據(jù)集與VRD數(shù)據(jù)集上進行實驗。對比試驗主要包含以下三種模型:
模型A:采用未嵌入金字塔卷積的圖像特征提取網(wǎng)絡(luò)與4維空間向量公式的空間特征提取網(wǎng)絡(luò);
模型B:采用嵌入金字塔卷積的圖像特征提取網(wǎng)絡(luò)與4維空間向量公式的空間特征提取網(wǎng)絡(luò);
模型C:采用嵌入金字塔卷積的圖像特征提取網(wǎng)絡(luò)與二值矩陣的空間特征提取網(wǎng)絡(luò)。
結(jié)果統(tǒng)計數(shù)據(jù)如表1和2所示。
表1 在VG數(shù)據(jù)集上的對比實驗
其中加粗數(shù)據(jù)為表現(xiàn)最好的結(jié)果。對比模型A與模型B的召回率可以發(fā)現(xiàn),負責圖像信息提取的ResNet101網(wǎng)絡(luò)嵌入金字塔卷積后,大大提升了特征提取的能力,同時也從側(cè)面說明了在數(shù)據(jù)集中,“體型”差異比較大的目標對還是很多的。對比模型B與模型C的召回率可以發(fā)現(xiàn),由于數(shù)據(jù)集中目標對位置重合的圖像大量存在,空間位置特征模塊采用二值矩陣的檢測效果更好。
目前由于檢測出來的視覺關(guān)系過于繁多,本文和目前主流算法一樣選取5個置信度較高的關(guān)系用以展示對比,具體關(guān)系檢測效果對比如圖4所示。
表2 在VRD數(shù)據(jù)集上的對比實驗
圖4 視覺關(guān)系檢測效果對比圖
通過實驗對比圖可以發(fā)現(xiàn),(a)中檢測出來“glasses”這一目標,卻沒有檢測出
本文提出的基于多特征提取網(wǎng)絡(luò)的視覺關(guān)系檢測算法,優(yōu)化了圖像特征提取網(wǎng)絡(luò),改進了空間位置的向量表示。改進后的算法與原算法相比,在連接詞檢測子任務(wù)中提升了9%左右,在詞組檢測子任務(wù)中提升了7%左右,在關(guān)系檢測子任務(wù)中提升了6%左右,驗證了這些改進對于檢測能力有著很大的提升。
將來隨著研究的深入與技術(shù)的發(fā)展,視覺關(guān)系檢測技術(shù)可以搭載上文本轉(zhuǎn)化語音技術(shù),直接讓圖片開口“說話”,從而在教育醫(yī)療領(lǐng)域上大放異彩。