鐘冠華 黃巍
(武漢工程大學計算機科學與工程學院,湖北 武漢 430000)
視覺關系檢測,不僅要識別圖像中的目標物體類別以及位置,更重要的是根據物體之間的語義關系形成一個個三元組,來描述輸入的圖像,從而達到圖像轉化成文本的目的[1]。
最開始的視覺關系檢測算法,將每對目標物體與語義關系形成的三元組都視作一個類別進行訓練[2]。這類方法由于訓練的類別過多,訓練出來的模型比較固化死板,無法實現遷移學習,實際應用價值不太高。
為了能在大型數據集上更好地拓展,后續的視覺關系檢測算法提出的一系列模型,都是將目標物體和語義關系分成視覺模塊與語言模塊兩個模塊進行訓練[3]。其中,基于Faster R-CNN的視覺關系檢測算法表現十分優秀[4],模型通過三個分支網絡分別檢測主語、賓語與語義關系,然后把結果組合起來形成關系三元組。這一算法能更準確地預測視覺關系,但是缺點是尺寸相差過大或者重合的兩個目標之間的語義關系無法很好地檢測出來。
本文提出了基于多特征提取網絡的視覺關系檢測算法,模型將輸入的圖像通過卷積神經網絡,利用多個特征提取網絡,將圖像信息、空間位置與語義信息三個特征分別提取出來進行融合,輸出一個關系三元組。
圖像信息特征是最直觀的特征,利用卷積神經網絡強大的特征提取能力,對圖像信息特征進行有效提取。本章采用的圖像信息特征提取模塊是基于ResNet101網絡[5]進行改進的,其中ResNet101網絡如圖1所示。為了防止整張圖像的冗余信息對后續的檢測產生干擾,圖像信息特征模塊沒有將整張圖片作為卷積神經網絡的輸入,而是先用成熟的目標檢測算法(Faster R-CNN)對輸入的圖像做檢測,找出可能是物體的區域,將兩個目標物體的聯合邊框作為輸入,并且輸入前將聯合邊框的尺寸進行調整,統一成224×224大小。

圖1 ResNet101網絡圖
ResNet101網絡的Block被稱為Bottleneck,包含兩個基本塊,分別為Conv Block和Identity Block,其中Conv Block輸入和輸出維度是不一樣的,所以不能連續串聯,用于改變網絡的維度;Identity Block輸入維度和輸出維度相同,可以串聯,用于加深網絡。
圖像中目標對之間會出現“體型”差異過大的情況,例如“人”與“眼鏡”,兩者的比例過于夸張。同時,由于卷積神經網絡實際上的感受野比理論上的小得多,導致“眼鏡”這個小目標容易被忽略。為了解決這一問題,本章選擇將一種金字塔卷積PyConv(Pyramidal Convolution)[6]嵌入到Bottleneck中,具體結構如圖2所示。

圖2 PyConv嵌入前后對比
嵌入金字塔卷積的網絡與原卷積網絡相比,采用了7×7、5×5和3×3三種不同尺度與深度的卷積核,代替了單一的卷積核,增加了網絡的感受野,加強了網絡的特征提取能力。
空間位置特征異常重要,因為其不只是能幫助檢測目標,更能反映目標對之間語義關系,直接反映的有單純的位置關系,諸如“在……之上”(on)、“在……之后”(behind),間接反映的有“站”(stand)、“騎”(ride)之類的。空間位置特征分為兩種關系,即絕對空間關系與相對空間關系。絕對位置關系是用來表達目標對之間的距離和方位,受圖像質量影響,而且經過池化后距離會有所變化。相對空間關系是用來表達目標對之間的方位,而且由于視覺關系檢測中,目標對之間的關系更多依靠的是相對空間關系,不需要非常精準的距離坐標數據。空間位置特征能提供目標對之間的相對方位,為后續的語義關系預測提供了有力證據。
基于目標檢測的結果,關系實例(s,p,o)中,s表示主語,o表示賓語,x與y表示檢測框左上角坐標,w與h表示檢測框的寬度與高度。將空間位置特征表示為4維空間向量,計算公式如下所示:

但是當目標對發生重合的時候,上述計算公式很難表達空間位置特征,于是本文采用兩個二值矩陣來表示空間位置,兩個矩陣分別表示主語和賓語。將目標物體所在區域的標為1,周圍背景的區域標為0。將兩個二值矩陣下采樣到32×32大小,接著依次通過卷積核大小為5×5、5×5和8×8的三個卷積層,最后提取出一個256維的向量。
視覺關系中,利用目標之間類別的相似性,有一些關系可以通過類推得到,例如已經檢測出了“人穿毛衣”,再檢測到“人”和“褲子”,由于“毛衣”與“褲子”有相似的語義特征,人們很容易就通過“人穿毛衣”這個語義關系聯想到“人穿褲子”,由此可知語義信息是一個十分重要的特征。
為了讓計算機擁有這種認知,本章使用word2vec[7]整合主客體的類別信息。將檢測出來的目標類別信息映射到一個特定的向量空間中,相似語義的詞所對應的向量距離比較近,不同語義的詞之間的距離比較遠。例如:“毛衣”與“褲子”都是衣物,向量距離比較近,而“毛衣”與“沙發”的向量距離比較遠,易從“人穿毛衣”關聯到“人穿褲子”,而無法從“人穿毛衣”關聯到“人穿沙發”。
視覺關系檢測的數據集與一般的目標檢測不同,不僅對目標物體的邊框與類別進行標注,還對目標對之間的關系進行標注。目前主流檢測算法在兩個常用的視覺關系檢測數據集上進行測試:
視覺基因數據集VG(Visual Genome)[8],該數據集由斯坦福大學人工智能實驗室主任李菲菲與幾位同事合作開發的公共標準數據集,是目前視覺關系檢測的最大數據集,一共有108007張圖片,每張圖片平均有35個目標、26個特征和21個語義關系,產成一百多萬條的視覺關系描述。經過預處理后數據集只保留了頻率較高的150個目標類別和500個語義關系。在訓練中,本文選取整個數據集其中的64346張圖片作為的訓練集圖像,其余圖像作為測試集圖像。
視覺關系檢測數據集VRD(Visual Relationship Dataset)[3],該數據集中共有5000張圖片、100種目標類別和70個語義關系,產生了37993條視覺描述。該數據集相較于VG數據集,是設計專門用于視覺關系檢測基準測試的數據集,沒有過多的標注錯誤和噪聲數據,且數據規模不算龐大,得益于此,訓練速度快。同時由于數據集規模較小,測試樣本不是很充足,不少三元組只出現在測試集中而沒有出現在訓練集中。本次實驗將其中的4000張圖像作為訓練集,剩余1000張作為測試集。
在第二章中提取了圖像的多種特征后,網絡對多種特征進行融合,具體融合過程如如圖3所示。

圖3 特征融合網絡圖
其中,IF(Image Feature)表示圖像信息特征,SF(Spatial Feature)表示空間位置特征,WF(Word Feature)表示語義關系特征,在特征融合網絡中,通過兩個全連接層,將三個不同的特征融合在一起,從而提升網絡的表征能力。
目前視覺關系檢測相關的主流算法都是通過召回率(Recall)來進行評估。本文依據目前相關算法,采用Recall@50和Recall@100作為指標,其中Recall@50表示在圖像的前50個置信關系預測中,預測目標對之間語義關系的正確率。本文參考文獻[4]的研究,采用三個任務來評估本文提出的方法:連接詞檢測,詞組檢測和關系檢測。
連接詞檢測:給定圖像中的標注的目標對,預測對象之間的語義關系,檢測任務是在沒有檢測對象的情況下查看連接詞的準確性。
詞組檢測:輸入一張沒有分類過的圖像,輸出一個三元組,并且給出一個邊界框定位兩個目標的位置。
關系檢測:三個檢測任務中難度最高的一個,應用也最為廣泛。輸入一張沒有標注過的圖像,輸出三元詞組。
實驗參數設置:優化器選用帶有動量的隨機梯度下降,初始化學習率為0.001,動量大小為0.9。實驗采用Recall@50和Recall@100作為指標(后續Recall簡寫成Rec),分別在VG數據集與VRD數據集上進行實驗。對比試驗主要包含以下三種模型:
模型A:采用未嵌入金字塔卷積的圖像特征提取網絡與4維空間向量公式的空間特征提取網絡;
模型B:采用嵌入金字塔卷積的圖像特征提取網絡與4維空間向量公式的空間特征提取網絡;
模型C:采用嵌入金字塔卷積的圖像特征提取網絡與二值矩陣的空間特征提取網絡。
結果統計數據如表1和2所示。

表1 在VG數據集上的對比實驗
其中加粗數據為表現最好的結果。對比模型A與模型B的召回率可以發現,負責圖像信息提取的ResNet101網絡嵌入金字塔卷積后,大大提升了特征提取的能力,同時也從側面說明了在數據集中,“體型”差異比較大的目標對還是很多的。對比模型B與模型C的召回率可以發現,由于數據集中目標對位置重合的圖像大量存在,空間位置特征模塊采用二值矩陣的檢測效果更好。
目前由于檢測出來的視覺關系過于繁多,本文和目前主流算法一樣選取5個置信度較高的關系用以展示對比,具體關系檢測效果對比如圖4所示。

表2 在VRD數據集上的對比實驗

圖4 視覺關系檢測效果對比圖
通過實驗對比圖可以發現,(a)中檢測出來“glasses”這一目標,卻沒有檢測出
本文提出的基于多特征提取網絡的視覺關系檢測算法,優化了圖像特征提取網絡,改進了空間位置的向量表示。改進后的算法與原算法相比,在連接詞檢測子任務中提升了9%左右,在詞組檢測子任務中提升了7%左右,在關系檢測子任務中提升了6%左右,驗證了這些改進對于檢測能力有著很大的提升。
將來隨著研究的深入與技術的發展,視覺關系檢測技術可以搭載上文本轉化語音技術,直接讓圖片開口“說話”,從而在教育醫療領域上大放異彩。