彭天強 孫曉峰 栗 芳
1(河南工程學院計算機學院 鄭州 451191) 2(河南工程學院國際教育學院 鄭州 451191) 3(鄭州金惠計算機系統工程有限公司 鄭州 450001)
隨著大數據時代的到來,互聯網圖像資源迅猛增長,這種爆炸式的圖像增長激發研究人員提出有效的基于內容的圖像檢索系統.基于內容的圖像檢索主要包括2種類型:1)給定查詢圖像,檢索出與查詢圖像相似的圖像,這種類型稱為整體相似性檢索;2)給定特定目標的查詢圖像,檢索出所有包含該目標的圖像,這種類型稱為中小目標的圖像檢索.本文主要解決中小目標的檢索問題,即給定查詢目標,從數據集中檢索出包含該目標的圖像并定位到目標區域.該問題具有非常廣泛的應用前景,比如以圖搜圖、商品搜索、車輛搜索以及用于視頻監控的可疑目標的搜索等.
近年來,深度學習在各種計算機視覺任務上都取得了重大的突破.由于深度卷積神經網絡(convo-lutional neural networks, CNNs)強大的非線性表示能力,能夠理解圖像更深層次的信息,它在目標檢測[1]、圖像分類[2-3]和圖像分割[4]等方面都表現出了良好的性能.將CNNs應用于圖像檢索任務,主要體現在2個方面:1)在預訓練CNNs模型的基礎上,提取其中某一層的特征圖譜(feature map),對其進行編碼得到適用于檢索任務的圖像特征[5-8];2)基于特定檢索任務進行有監督的端到端的訓練[9-11].這些算法主要對圖像進行整體的特征表示,用于完成圖像整體相似性搜索,無法有效完成中小目標的圖像檢索.另一種是將目標檢測的思路應用于圖像檢索,主要體現在2個方面:1)窮舉所有的目標候選區域,然后分別評估這些區域是否包含目標;2)利用訓練樣本,端到端地學習目標的位置和類別.這些算法雖然可以完成中小目標的圖像檢索,但是需要特定目標的樣本進行端到端的訓練,在樣本數據相對較少或者無樣本數據的情況下,不能有效地完成中小目標的圖像檢索.
針對以上問題,本文提出一種基于預訓練模型的中小目標圖像檢索算法,在無樣本數據進行端到端學習的情況下,能夠高效地檢索到包含目標的圖像,并返回包含目標的區域.本文的基本思路是在不同尺度、不同比例的圖像上進行窗口滑動,每個窗口與查詢目標作比較,以找到包含查詢目標的最優位置,但這種方法需要計算每個滑動窗口的視覺特征表示,需要很多的計算量,而全卷積網絡提供了一種有效的特征表示方法,只需要一次前向全卷積就可以得到多個滑動窗口的特征表示.因此,本文提出一種基于全卷積網絡的中小目標圖像檢索算法,與其他方法相比,本文有4個特點:
1) 構建全卷積神經網絡,對于任意尺寸的圖像,輸入該全卷積網絡,得到該圖像的特征表示或者特征矩陣表示,特征矩陣的每一個位置對應著原圖像上的一個目標區域.
2) 為了檢索到不同大小的目標,對被檢索圖像進行多尺度多比例變換,輸入全卷積神經網絡得到多個特征矩陣.
3) 在無樣本進行訓練的情況下,基于預訓練模型,有效地完成中小目標的檢索.
4) 與基于CNNs的圖像檢索算法相比,本算法適用于中小目標的檢索;與基于目標檢測的檢索算法相比,本算法適用于無樣本數據訓練的中小目標檢索,具有更高效、更優的檢索定位效果.
基于預訓練CNNs模型的特征表示已廣泛應用于圖像檢索任務.文獻[8]提出了一種簡單、有效的編碼方法SPoC(sum-pooled convolutional),并通過實驗論證了該編碼方法檢索效果最優.文獻[12]考慮了特征的平移不變性以及尺度不變性,提出了一種新的特征編碼方法.首先在多尺度上取區域;然后在每個區域中取每層中最大元素(maximum activations of convolutions, MAC),MAC特征具有平移不變性;然后將所有區域的MAC特征相加構成一個R-MAC(regional maximum activation of convolutions)特征表示,這種特征具有尺度不變性.實驗表明:該算法R-MAC特征優于MAC特征以及SPoC方法.在利用樣本進行端到端訓練的圖像檢索算法中,文獻[10]改進R-MAC算法,將R-MAC的特征表示方法進行端到端的訓練,得到相應的圖像特征,取得了不錯的檢索結果.文獻[11]提出了一種用于車輛檢索的CNNs架構,并利用簇聚類損失(coupled clusters loss, CCL)去替代三元組損失(triplet ranking loss)進行端到端的學習車輛的特征表示,適用于特定目標的有監督的檢索.以上這些算法均是基于圖像的全局特征表示,適用于圖像的整體相似性檢索,不適用于中小目標的圖像檢索.

Fig. 1 An illustration of the architecture of our FCN圖1 本文全卷積網絡的框架圖
將目標檢測的思想應用于圖像檢索,對于數據庫中的每張圖像,首先利用目標候選區域提取算法(region proposal)[13-15]提取目標候選區域;然后將這些目標區域作為輸入圖像,利用預訓練網絡提取目標區域的CNNs特征;最后計算每個目標區域與查詢目標的相似性值,將最大相似值作為查詢目標與該圖像的相似性值.這種算法雖然可以完成中小目標的檢索問題,但是候選區域提取算法一般會提取出1 000~2 000個目標候選區域,然后分別對這些區域提取CNNs特征,這樣會導致處理單張圖像的時間過長、檢索效率低.文獻[16]將Faster R-CNN(region-based convolutional network)[1]的RPN(region proposal network)得到的目標區域以及相應的特征用于圖像檢索,若直接利用Fast R-CNN訓練得到的RPN用于表示目標區域,目標區域定位效果不好,該算法比較適合于利用樣本數據進行有監督的端到端微調,不適應于基于預訓練模型的中小目標檢索.
全卷積網絡(fully convolutional networks, FCN)架構主要用于圖像分割[4,17]和目標檢測[18-20].FCN可以接受任意大小的輸入圖像,且經過一次卷積可以得到多個區域的特征.受FCN特性的啟發,本文提出基于全卷積網絡的中小目標檢索算法,用于完成無樣本數據或者樣本數據不足時,基于預訓練網絡的中小目標檢索算法.本文的基本思路是給定查詢目標,在待檢索圖像上進行窗口滑動,將每個窗口基于預訓練全卷積網絡進行特征表示,并與查詢目標作相似性比對以得到包含查詢目標的最優位置,而根據FCN的特性,經過一次全卷積就可以得到多個窗口的特征表示.實驗結果表明:本論文提出的基于FCN的目標檢索算法,其檢索性能及定位效果較優.
為了解決中小目標的檢索問題,本文提出了一種基于全卷積網絡的中小目標檢索算法.首先,構建全卷積網絡,在大數據集上訓練模型.其次,給定查詢目標圖像,利用全卷積神經網絡,得到目標圖像的特征表示.然后,對數據庫中的圖像,利用預訓練全卷積模型,得到該圖像的特征表示或者特征矩陣表示,特征矩陣的每一個位置對應著原圖像上的一個目標區域.為了檢索到不同大小的目標,需要對數據庫中的圖像進行多尺度多比例變換,分別輸入全卷積神經網絡得到多個特征矩陣.最后,將查詢目標特征,與待檢索圖像的特征矩陣的每一個特征進行相似性比對,得到匹配最優位置及相似值.
本文利用預訓練全卷積網絡模型對圖像進行特征表示用于中小目標檢索.本文所采用的全卷積網絡的架構如圖1所示.在訓練階段,該模型接受的輸入為圖像及其相應的標簽信息.該模型主要包括2個部分:1)全卷積神經網絡,用于學習圖像的特征或特征矩陣表示,該網絡中不包含全連接層; 2)損失層,Softmax分類損失.首先,輸入圖像通過全卷積網絡得到圖像的特征表示;然后進入損失層,計算損失函數,并優化該損失函數學習得到模型參數.
全卷積網絡用于學習圖像的特征表示,以AlexNet模型[2]結構為例,全卷積網絡的配置如表1所示.訓練網絡時,輸入圖像大小為227×227.

Table 1 The Configurations of FCN表1 全卷積網絡配置
全卷積神經網絡訓練完成后,給定輸入圖像,通過全卷積網絡可以得到圖像的特征向量或特征矩陣表示.對于目標圖像,將圖像進行縮放,使其大小與全卷積神經網絡模型的輸入尺寸保持一致(例如縮放至227×227),然后輸入全卷積網絡得到目標實例的特征向量表示.對于數據庫中的被檢索圖像,若其圖像大小小于全卷積神經網絡模型的輸入尺寸,將圖像進行縮放至與全卷積神經網絡的輸入尺寸保持一致,然后輸入全卷積網絡得到被檢索圖像的特征向量表示;若其圖像大小大于等于全卷積網絡的輸入尺寸,保持原圖像大小不變,由于原圖像大小大于全卷積神經網絡模型的輸入尺寸,則得到該輸入圖像的特征矩陣,特征矩陣的每個位置上的特征是對原圖像上一個區域的描述,相鄰位置的特征對應著原圖像上相鄰的區域.AlexNet模型為例,給定輸入圖像的大小為300×250,得到圖像特征矩陣的大小為4×2,即共8個區域的特征,每個區域對應于原圖的一個227×227區域,水平相鄰區域之間相差32個像素,垂直相鄰區域之間也相差32個像素,其區域效果如圖2所示:

Fig. 2 The feature representation for retrieval image圖2 被檢索圖像的圖像表示
考慮到基于全卷積網絡得到的特征矩陣,相當于在原圖像上取一定大小的窗口(如227×227),然后按照一定的步長(如32像素)進行窗口滑動.經過一次前向卷積,就可以得到這些區域的特征表示.這種固定窗口大小、固定步長的窗口滑動,可能會導致沒有一個區域剛好覆蓋查詢目標,從而會導致不能正確地檢索并定位到目標,例如在圖2中,得到的8個區域都不能剛好覆蓋籃球,每個區域都包含了一部分背景.在實際應用中,可以根據目標特征,對被檢索圖像進行多尺度、多比例變換,以檢索到不同大小、不同形狀的目標.例如在新的尺度s下得到的區域窗口大小為227×227,相當于在原圖上區域窗口的大小為(227/s)×(227/s),從而區域窗口可以覆蓋被檢索圖像上不同大小的目標區域;若對圖像進行r=2∶1比例變換后,在新比例下的區域窗口大小為227×227,相當于在原圖上區域窗口的大小為(227/2)×227,如此區域窗口可以覆蓋縱向長的目標,類似地,當對圖像進行r=1∶2變換后,區域窗口可以覆蓋橫向長的目標.
基于全卷積神經網絡的中小目標檢索,其流程圖3所示.

Fig. 3 The flow chart of middle or small object retrieval based on our method圖3 本文中小目標檢索的流程圖
在離線階段,對數據庫中的每張圖像進行多尺度、多比例縮放,然后輸入全卷積神經網絡,得到每張圖像在每個尺度、比例上的特征矩陣.為了在數據庫中檢索到不同大小的目標,特別是僅占整張圖像較少區域的中小目標,首先對圖像進行多尺度變換,可以根據實際應用確定所需的尺度因子,例如圖像的尺度因子可以選擇s=0.5,1.0,1.5,2.0,2.5,3.0.為了在數據庫中檢索到不同形狀比例的目標,在每個尺度上進行多比例變換,可以選擇3個長寬比例因子r=1∶1,1∶2,2∶1.將圖像在每個尺度s上,按照比例因子r縮放后,直接輸入全卷積網絡,卷積層Conv7的特征矩陣作為該尺度比例下的特征描述,特征矩陣中的每一個位置對應著輸入圖像的一個區域的特征描述.在該階段,算法的復雜度為O(N×r×s),其中N表示數據庫中被檢索圖像的個數.
在線檢索階段,給定目標檢索圖像,將圖像進行縮放,使其大小與全卷積神經網絡模型的輸入尺寸保持一致,得到圖像的特征向量表示.給定數據庫中的圖像在每個尺度、比例下的特征矩陣,將目標檢索圖像的特征與該特征矩陣中每個位置的特征進行余弦距離計算,將距離的最大值作為該尺度上與目標圖像的最匹配值;將每個尺度、每個比例下與目標檢索圖像的最匹配值的最大值,作為該圖像與目標圖像的相似值,并保存相應的最匹配區域.然后將相似值按照降序排列,得到與目標圖像最相似的TopN圖像列表及其最優匹配位置.
為驗證本文方法的有效性,在圖像集上對本文方法進行了評估:
1) Oxford5K[21]數據集.該數據集包括5 063幅圖像,其中55幅標準的查詢圖像,每個目標選取5幅圖像,涵蓋了牛津大學的11處標志性建筑.圖像庫共標注為4種可能的標簽:Good表示1幅包含清晰目標或建筑的圖片;OK表示不少于目標整體的25%部分可以清楚地顯示;Bad表示沒有目標建筑出現示;Junk表示不高于目標整體的25%部分可以清楚顯現或者目標遮擋、變形嚴重.將僅包含目標的包圍盒區域作為查詢目標圖像.
2) Logo數據集.該數據集是在互聯網上搜集的圖片,包括CCTV、中國移動、中國聯通、可口可樂4種logo,每種類型100張圖像,另外再加上100張干擾圖像,共500張圖像.圖4給出了該數據集中的部分示例圖像.查詢目標圖像為僅包含logo的圖像,圖5給出了查詢圖像示例.

Fig. 4 Sample images from the logo dataset圖4 數據集中的部分圖像示例

Fig. 5 Query images for the logo dataset圖5 Logo數據集的查詢圖像示例
本文主要考慮在樣本數據不足時,基于預訓練模型的特征表示在檢索任務中的性能.將本文方法的檢索性能與其他的圖像檢索方法做比較,包括基于預訓練CNNs的整體特征表示方法SpoC[8],MAC[11],R-MAC[11]算法,基于SS(selective search)[13]目標檢測算法的SS+Fc7,以及基于Faster R-CNN特征表示的檢索算法[16],將該檢索算法記為Faster R-CNN.
SpoC,MAC,R-MAC算法采用預訓練Alexnet的Conv5層的特征,這些算法的特征表示方法均來自于作者公開的源代碼;基于目標候選區域提取算法的方法SS+Fc7,首先利用Selective Search算法得到目標候選區域,然后輸入預訓練Alexnet得到Fc7層的特征,用于表示目標區域,其中Selective Search算法的實現來自于作者公開的源代碼;基于Faster R-CNN的目標檢索算法利用預訓練的目標檢測VGG-16得到RPN區域以及每個區域的RPA特征,其中預訓練模型來自于Faster R-CNN公開的模型.本文也采用Alexnet作為基礎架構,在ImageNet數據集上訓練全卷積網絡,訓練完成后,采用Conv7層的特征表示每個區域.
為了評估圖像檢索性能并與已有方法作比較,本文采用查準率均值(mean average precision,MAP)對檢索性能進行評估.平均精確度(average precision,AP)為查準率-查全率曲線所包含的面積,相關的定義為

(1)

(2)
對于Oxford5K數據集,MAP為每組5幅查詢圖像AP的平均值.對于Logo數據集,在每個查詢目標檢索出的Top100圖像集上計算AP值.
本文的訓練過程基于開源Caffe實現的.
為了驗證本文方法的有效性,將本文的算法與基于CNNs編碼的整體特征表示方法SpoC,MAC,R-MAC以及基于目標檢測的算法SS+Fc7,Faster R-CNN在Oxford5K數據庫上對全部11個查詢目標的檢索準確度作了比較,MAP對比結果如表2所示:

Table 2 MAP of Different Methods Compared on Oxford5K表2 各方法在Oxford5K數據集上MAP結果對比
Note: Blackbody indicates the best result in the compared methods.
從表2可以看出,對于不同的查詢目標而言,SpoC,MAC,R-MAC方法的MAP值相近且R-MAC方法略高于SpoC,MAC方法,因為這3種方法均是對圖像的整體特征算法,而R-MAC方法在不同尺度上對區域進行劃分并分別對區域進行整體表示,得到了更好的特征表示.基于目標檢測的算法SS+Fc7,Faster-RCNN以及本文算法的MAP值相近,且比3種圖像的整體表示算法的MAP值高出3%~5%,因為后面的3種算法均對圖像進行了區域劃分,分區域與查詢目標進行匹配,而不是將圖像作為整體與查詢目標進行匹配,因此提高了目標檢索準確度.
由于在Oxford5K數據集上,本文方法與SS+Fc7、Faster R-CNN算法的MAP相差不大,于是將這3種算法在查詢時間及區域定位效果進行比較.表3給出了3種方法在處理數據庫中的1幅圖像所消耗時間的平均值.從表3可以看出,Faster-RCNN耗時最短,SS+Fc7算法耗時最長,本文算法耗時略高于Faster R-CNN算法,因為SS+Fc7算法首先對圖像進行劃分,得到多個目標候選區域,然后分別輸入卷積神經網絡得到每個區域的特征表示,多次重復地輸入卷積神經網絡導致耗時較長;Faster R-CNN將目標區域的獲得和區域特征的表示統一到一個框架中,只需要一次前向卷積網絡,就可以得到多個區域的特征表示,加快了計算速度;本文算法雖然也只需要一次前向全卷積網絡,就可以得到多個區域的特征表示,但是為了適用于不同大小、不同形狀的目標,對圖像進行了多尺度、多比例變換,從而導致其耗時略高于Faster R-CNN.
表4和表5給出了基于目標檢測的算法和本文算法在Oxford5K數據庫上目標區域定位結果的部分樣例.不難看出,本文算法的區域定位效果最優,而SS+Fc7算法的區域定位效果不好,因為它利用SS提取圖像中非限定類別的目標,而Oxford5K數據集上的查詢目標只是整體目標的一部分,而不是獨立的目標;Faster-RCNN算法的區域定位效果也不好,因為直接利用預訓練的Faster-RCNN模型得到的RPN與預訓練的目標相關,需要利用相關目標數據進行端到端的訓練微調,才能得到較好的目標定位,在文獻[16]中也說明了該問題.

Table 3 Time Comparison of Processing Images for theThree Methods

Table 4 Examples of Image Retrieval and Object Locations for Query Object with Longer Width表4 圖像檢索和橫長目標定位樣例
從在標準數據集Oxford5K上的實驗對比可以看出,本文方法與基于CNNs圖像整體表示的算法相比,適合于中小目標的檢索且能夠定位到目標區域.與基于目標檢測的檢索算法相比,其耗時雖然略高于Faster-RCNN算法,但是其MAP值以及區域定位效果更優.
為了進一步驗證本文算法的普適性及有效性,將本文算法與已有算法在Logo數據集上進行檢索測試.Logo數據集是從互聯網上搜集的圖像.表6給出了各個查詢目標的AP值.從表6中可以看出,本文算法的AP值最高,遠遠高于基于CNNs的圖像整體表示算法和基于Faster R-CNN的目標檢索算法,高出了將近45%,比基于SS+Fc7算法的AP值高了6%.這是因為在Logo數據集中,查詢目標僅占數據庫被檢索圖像的部分區域,因此將數據庫圖像進行整體表示與查詢目標匹配準確率較低;基于Faster R-CNN預訓練模型的RPN區域不能很好地定位目標區域,導致匹配準確率低;基于SS+Fc7的算法利用低級圖像特征提取圖像中非限定類別的目標區域,且查詢目標是一個獨立的完整目標,所以SS能夠較好地定位到目標區域,從而得到了較高的AP值.表7給出了SS+Fc7,Faster R-CNN以及本文算法的Top4檢索及目標定位結果.從表7中可以看出,SS+Fc7和本文算法目標定位效果較優,而Faster R-CNN算法的區域定位效果不好.
為了進一步說明本文算法在小目標檢索中的效果,圖6給出了各個logo圖標在被檢索圖像中的檢索定位樣例.從圖6可以看出,logo圖標僅占被檢索圖像的一小部分區域,與整張圖像相比logo屬于小目標,在無訓練樣本的情況下,采用本文算法能夠很好地在整圖中檢索并定位到“小的”logo圖標.

Table 5 Examples of Image Retrieval and Object Locations for Query Object with Longer Height表5 圖像檢索和縱長目標定位樣例

Table 6 AP Comparison of Different Methods on Logo Dataset表6 各方法在Logo數據集上AP結果對比
Note: Blackbody indicates the best result in the compared methods.

Table 7 Examples of Top4 Retrieval and Object Locations for Query Object表7 Top4檢索結果和目標定位樣例

Fig. 6 Examples of retrieval and object locations for each logo圖6 各logo的檢索定位效果樣例
本文提出了一種簡單而有效的基于全卷積神經網絡的中小目標檢索方法.基于預訓練全卷積網絡對被檢索圖像進行特征矩陣表示,經過一次全卷積網絡就得到了多個區域的特征表示,并引入多尺度、多比例變換以檢索定位到不同大小的目標.本文主要探索在樣本數據不足時,如何對目標進行有效的特征表示,以完成中小目標的檢索及定位,與現有其他檢索算法相比,本文的方法檢索性能及定位效果最優.本文所采用的全卷積網絡架構,不是最優的架構,可以采用層數更深、表達能力更強的架構進行訓練,以得到對目標更好的特征描述.