申金晟,池明旻
(復旦大學 計算機科學技術學院,上海 201203)
(上海市數據科學重點實驗室,上海 201203)
近年來遙感技術正朝著高時間分辨率、高空間分辨率、高光譜分辨率快速發展,遙感數據已經進入到大數據時代[1].在國內城鎮化快速推進的過程中,遙感技術作為動態獲取城市地形地貌、城市建設、土地利用與覆蓋等信息的重要手段,為城市公關安全、自然災害預警、環境污染等提供必要的監測信息,為相關政府部門對城市系統規劃和決策提供科學依據.
在城市遙感大數據中,一項重要任務為土地覆蓋分類任務[2],即為遙感數據(尤其對高空間分辨率多光譜遙感圖像)中土地的物理覆蓋類型(諸如裸土、建筑、植被、水體等)進行分類.作為一項分類任務,城市遙感數據面臨著嚴重缺乏標記數據且標記困難的現狀.為此,我們已提出了基于社交媒體數據的城市遙感眾包標記系統[3],其系統框架圖如圖1,其中矩形框部分為本文工作在框架中位置.在該系統中,我們使用主動學習技術,從城市遙感圖像中挑選最需要標記的樣本點.對這些待標記樣本點,在社交媒體照片數據集中(這里指帶有GPS信息的城市室外照片)通過GPS信息關聯周圍的城市照片,經過圖像聚類為眾包標記者提供最能反映標記點地物特征的照片,完成一輪迭代.
在該系統中,我們需要面對數據關聯問題,即照片所呈現的內容不一定反映標記點內容.為此,我們希望在圖像特征提取的過程中,生成的特征不僅能有效表征圖像,更能反映圖像中近景的特征,從而減小數據關聯帶來的誤差.

圖1 城市遙感數據眾包標記系統框架圖[3]
為此,在本文中我們提出了基于深度先驗的特征提取算法,該算法在特征提取過程中加入了圖像深度信息,從而聚焦照片近處的物體特征;同時,該特征能很好地表征室外照片,并被用于其他圖像任務.
圖像的特征提取始終是計算機視覺領域的一個核心問題,特征的好壞往往決定了目標任務的最終結果.通常,圖像的特征提取可以分為兩個步驟:
1)提取圖像原始特征.這些特征往往是局部不變性特征,具有較強的表達能力,諸如SIFT特征[4]、SURF特征[5]、HOG特征[6]等等.
2)為圖像的原始特征進行編碼.通常,圖像的原始特征規模往往比較龐大,因此需要進一步為這些特征進行編碼,起到去噪、壓縮等功能,使得圖像特征的表達更為緊湊,方便后續目標任務.常見的圖像特征編碼算法包括 BoW 算法[7]、Fisher Vector算法[8]、VLAD算法[9]等.本步驟并不是必須的,在目標任務中直接使用圖像原始特征也完全可以.
自Krizhevsky等人開創性地提出了AlexNet[10]后,卷積神經網絡(以下簡稱CNN)在圖像分類、目標檢測等一系列計算機視覺任務中都取得了突破性進展.CNN的網絡結構主要由卷積層和全連接層堆疊而成,其卷積層的輸出為卷積圖張量,全連接層的輸出為固定維度的向量.Razavian等人[11]使用預訓練的CNN模型提取圖像特征,結合分類算法(SVM等),在多個圖像任務和數據集上都取得了優于傳統圖像特征(SIFT特征等)的結果,證明了CNN模型具有良好的特征表達能力和泛化能力.
Girshick等人[12]在目標檢測任務中,直接使用CNN的全連接層輸出作為候選區域的圖像特征,并結合SVM做分類.Babenko等人[13]則在圖像檢索任務中使用AlexNet模型中的全連接層輸出作為圖像特征,并用PCA[14]降維.作者分別比較了不同全連接層輸出的效果,同時使用自己收集的地標建筑物數據集微調(fine-tune)網絡提升檢索效果.Gong等人[15]提出了MOP Pool特征提取算法,該算法對圖像的不同分塊使用CNN提取全連接層輸出作為圖像原始特征,結合VLAD算法對其編碼,并驗證了CNN特征具有一定的尺度不變性和旋轉不變性.
另一方面,相較于使用全連接層輸出,卷積層輸出保留了更多的圖像空間信息和底層細節信息,因此受到越來越多的關注.Ng等人[16]使用卷積圖張量結合VLAD算法,在圖像檢索任務上得到了優于MOP Pool的結果.Tolias等人[17]提出了 RMAC 池化方法,通過對卷積圖進行滑塊做最大池化(max pooling),并對池化后的局部特征合并降維得到最終特征.
Babenko等人[18]提出了和池化(sum pooling)方法替代最大池化,對CNN中的特征圖進行編碼,并設置中心先驗權重來提升檢索效果,即SPOC算法.同時,該文對不同卷積層輸出的特征張量進行對比,驗證越是靠后的卷積層提取的原始特征張量對圖像的表達能力越強.
到目前為止的主要特征提取算法都是對圖像進行全局地表征,而在本文任務中,我們需要在圖像特征提取過程中有區別的對待不同距離的景物,并更關注圖像近景內容,目前尚未有專門的算法.因此我們需要提出一個新的特征提取算法.
本節將給出基于深度先驗的圖像特征構造算法.算法框架圖如圖2所示.對于輸入圖像,我們將基于以下流程來提取圖像特征:
1)使用單目圖像深度估計算法為圖像還原深度信息.
2)使用CNN卷積層部分提取特征圖張量作為圖像的原始特征.
3)結合圖像的深度先驗和特征圖張量計算卷積圖權重,并使用和池化方法對原始特征進行編碼.

圖2 基于深度先驗的圖像特征提取算法框架圖
對于輸入圖像,我們使用單目圖像深度估計算法來還原圖像的深度信息.這里的深度信息指圖像中拍攝的物體距離相機鏡頭的真實距離,因此該任務是典型的不適定問題.常見的深度估計算法主要包括基于馬爾科夫隨機場方法(以下簡稱MRF)[19–21]、基于大規模RGB-D數據集的無參估計[22,23]以及卷積神經網絡方法[24,25].本文的目標任務在為室外城市照片提取特征,故選擇結合CNN的MRF算法來還原圖像深度信息,而得到的深度圖即圖像特征提取的先驗信息.
由先前的論述可知,CNN卷積層的輸出比全連接層輸出保留了更多的圖像空間信息,具有更強的圖像表達能力.此外,在 CNN 處理圖像時,往往需要對輸入圖像預處理(裁剪或形變縮放),將其規約到固定大小(比如VGG網絡中規定圖像輸入尺寸為224×224),以保證最后的全連接層參數一致.使用卷積層輸出作為圖像的原始特征則意味著不再需要將輸入圖片規約到固定大小.常見的輸入圖像規約預處理有三種:
1)雙步縮放:將圖像分別在長寬兩個維度上縮放至固定值,比如 224×224.
2)單步縮放:將圖像在長或寬上縮放至固定值,另一維度上同比例縮放.
3)圖像原始尺寸輸入.
顯然,圖像原始尺寸輸入即不會改變圖像的空間信息,也不會損失圖像的細節信息.本文即采用原始圖像輸入來提取原始特征.
另一方面,使用原始圖像輸入會使不同尺寸的圖像在同一個卷積層所得到的卷積圖大小不同.這里,我們對得到的卷積圖再使用單尺度的Spatial Pyramid Pooling[26]進行規約,使得所有圖像所獲得的最終原始特征尺寸相同,使用的池化方法為最大值池化.
在使用CNN獲得了圖像的原始特征后,我們提出一種結合圖像深度先驗的池化方法來提取最終的圖像特征.整個和池化編碼過程如圖 3,其中,×表示每個卷積特征圖分別與深度先驗權重做和池化.

圖3 基于深度先驗的全局和池化示意圖
對于輸入圖像,在使用某種卷積神經網絡對其進行訓練后,其中某一個卷積層L的輸出結果為特征張量記為F∈RW×H×N,W×H為特征圖的長和寬,N為該卷積層的卷積核數量.定義由第k個卷積核產生的特征圖為fk∈RW×H,特征圖中位置(x,y)處的值為fx,y,k,構造卷積層L所輸出的第k個特征圖的特征值φk如下:

其中,wx,y為特征圖中點(x,y)處的響應權重,dx,y為該點的深度權重.對于響應權重矩陣W∈RW×H,我們使用特征圖fk來構造:

對于深度權重,我們使用圖像的深度信息為權重賦值.我們先將輸入圖像的深度圖縮放至W×H,則:

其中,dmax為深度最大值,dmin為深度最小值,d(x,y)為(x,y)處的深度信息.ε為一個極小量,保證單目圖像深度估計過程中對極遠處的誤判.該權重值使圖像特征向近景傾斜.
對于獲得的權重矩陣,我們使用L2范數歸一化,即:

其中,權重矩陣V∈RW×H,定義如下:

我們對卷積層L輸出的所有N個特征圖經過上述和池化計算,獲得該卷積層的一個N維的特征向量φ,并使用同維度的PCA白化,并對得到的白化特征再進行L2范數歸一化,最終得到N維圖像特征.
作為比較,我們將SPOC算法摘錄如下:

其中,ax,y為高斯中心先驗,其權值設置如下:

其中,σ為分布協方差,設置為特征圖中心距最近邊界長度的三分之一.可以看到SPOC算法是在sum pooling的基礎上加上了高斯中心先驗,并不能有效反映圖像中的圖標物體,更不能反映近景的特征.
我們的目標任務在于圖像特征提取過程中更關注近景,但該任務并不是一個標準的圖像任務,所以沒有一個標準數據集可以進行對比.但在一定程度上,本文任務和基于內容的圖像檢索(Content Based Image Retrieval,CBIR)任務相近,二者都要求特征對圖像中的內容物體有良好的表征能力.因此,我們將在圖像檢索任務上與其他特征提取算法進行對比.
我們使用 Oxford5k Buildings dataset[26]作為實驗數據集.該數據集包含了5063張圖片和55個查詢.圖片采集自Filckr上反映牛津地區的照片,本身即為社交媒體圖像,而查詢內容均為牛津地標建物的室外照片,與我們的社交媒體數據集中城市室外照片非常相近.
我們使用VGG16-NET[27]模型作為提取圖像原始特征的網絡結構.所有網絡參數均訓練自ImageNet數據集[28],不對網絡做重訓練或微調.我們使用VGG16中最后一個卷積層(即conv5_3)輸出的特征張量作為原始圖像特征.在深度權重的計算中,ε設置為0.0001.該卷積層共有512個卷積核,得到512個卷積特征圖.在進行池化編碼后,最終獲得一個512維的圖像特征.
對于查詢區域的特征提取,通常將查詢區域從原圖中進行剪裁,再對剪裁圖像進行特征提取.這里我們借鑒SPP-NET[29]中從圖像到卷積特征圖之間區域位置映射關系,直接從全圖的卷積圖上剪裁查詢區域的特征再進行池化編碼.
在SPOC中提到,數據集中查詢內容往往靠近圖像的中心區域,因此設置了高斯中心先驗來減少近處景物的噪聲(比如近處的植被、門框等).為此,我們將靠近圖像邊界的近景的深度信息設置為極遠處從而提高圖像檢索的準確率.
在相似度上,我們使用余弦距離來計算圖像間的相似度.在實驗結果的評價上,使用平均正確率均值(mean Average Precision,mAP)作為評價標準,其中圖像檢索的結果依據余弦距離進行排名.
圖4展示了單目圖像深度估計獲得的圖像深度圖,上排為輸入的室外城市照片,下排為對應的使用單目圖像深度估計算法還原的深度圖.這里使用的深度估計算法為自行設計的結合CNN的條件隨機場算法,在Make3D數據集[19]上的相對誤差為0.276.我們可以看到,通過深度估計所獲得的深度先驗能基本反映出圖像中物體的基本輪廓和遠近關系,從而幫助我們獲 取圖像的近處景物.

圖4 單目圖像深度估計可視化結果
圖5展示了本文設計的權重矩陣,圖5(a)是輸入的室外城市照片和對應的深度先驗權重矩陣,圖5(b)是SPOC高斯中心先驗,對所有輸入圖像,SPOC的全局和池化權重矩陣相同.這里的權重矩陣未經中心化去近景操作.作為對比,我們展示了SPOC算法的高斯先驗中心權重.我們可以看到,本文基于深度先驗的權重矩陣能有效地反映出圖像中的主要物體,同時,深度先驗可以使特征聚焦近處景物.

圖5 全局和池化權重矩陣
表1展示了不同圖像特征提取算法在Oxford5k Buildings數據集上圖像檢索的結果,帶*表示使用全圖查詢的結果.該表中結果除本文算法外其余結果皆來自原論文.該結果表明本文特征提取算法對室外照片有良好的表征能力.同時,我們可以看到使用CNN提取的圖像特征相比于傳統特征總體上有所提高.此外,通過池化編碼CNN卷積層輸出的特征張量能大幅減小特征規模,極大地降低了后續任務的計算量,同時,得益于深度學習的GPU加速,圖像的原始特征規模和計算時間也大幅降低.本文方法在Oxford5k Buildings數據集上取得了較好的結果,主要得益于以下幾點.
首先,Oxford5k Buildings數據集的查詢目標都是室外建筑,而查詢結果也是室外圖片,圖像的深度估計算法可以較好地得到物體的輪廓和深度信息,其結果本身就能有效反映圖像中的主要物體.其次,查詢區域特征全部為特征圖剪裁保證了圖像原始特征的統一性.最后,原始圖像輸入最大程度地保證了原始特征的空間信息和細節信息,這一點我們將進行對比實驗.

表1 Oxford5k Buildings 數據集圖像檢索結果
圖6則展示了對輸入圖像進行縮放的實驗結果.我們將圖像縮放到224×224,使用的是預訓練的VGG16網絡,得到conv5_3卷積層輸出的14×14特征圖,并分別使用sum pooling、SPOC和深度先驗方法提取特征,最終特征的維度為 512 維.可以看到,實驗結果都分別低于表1中的結果,說明對于較高分辨率的圖像而言,在輸入時進行縮放(主要是縮小)會使CNN圖像特征的表達能力大幅下降,一方面是縮小到固定尺寸破壞了原有圖像的空間信息,同時大尺度地縮小圖像使得圖像的細節信息被模糊.

圖6 對輸入圖像縮放的檢索結果
本文提出了基于深度先驗的圖像特征提取算法,該算法可以有效聚焦近處景物特征.而圖像檢索實驗驗證了該特征能有效表征室外照片,可以被使應用于其他相關圖像任務中.同時,我們發現在圖像特征提取過程中,原始圖像輸入對特征的表征能力有極大地提高,并且再一次驗證了CNN模型的良好泛化能力和表征能力.