施泓羽,杜韻琦,賀 智,2*
(1. 中山大學地理科學與規劃學院,廣州 510275;2. 南方海洋科學與工程廣東省實驗室(珠海),珠海 519082)
近年來,圖像鉛垂方向(image vertical direction,IVD)識別的應用場景和需求與日俱增[1-2],而各類傳感器的高速發展使得圖像數據呈指數級增長,IVD 識別因此具有更加重要的研究價值和更廣闊的應用前景:例如,在智能駕駛領域,通過對IVD 的正確識別有利于更好地矯正圖像畸變,提高對道路線和地平線的識別精度[3-4];在無人設備領域,無人機、無人車等的迅猛發展也對設備姿態自動調整有了新的需求,識別IVD有助于準確調整設備姿態[5]。但目前尚無可用的圖像的觀察垂直方向與IVD 一致的數據集與成熟的IVD 識別方法,因此IVD 的識別是一項具有挑戰性的任務。
傳統可用于檢測IVD 的算法(如Hough 變換[6]、SIFT 變換[7]等),當圖像較為復雜時,難以僅依據圖像自身特征實現高精度IVD 識別。近年來,深度學習技術獲得了快速發展,已有大量研究聚焦于自然語言處理[8]、目標檢測[9]、圖像分類[10]和姿態估計[11]等領域。且其中很多方法都引入了角度,可大致將其歸納分為三類:①在數據預處理階段引入角度,通過多次旋轉圖像達到擴增數據集的目的[12-13],使網絡模型更好地學習數據集的旋轉不變特征。該類方法在測試類別相同但姿態各異的圖像時,能獲得更好的泛化能力,但由于其數據擴增數量有限,學習到的旋轉不變特征不夠完整;②在模型預訓練階段引入角度[14-15],通過旋轉角度分類任務將經過隨機旋轉的圖像輸入網絡,由自監督學習提取結構或語義信息,從而在圖像檢測和分割等任務中獲得更快的收斂速度和更高的訓練精度。該類研究證明了圖像分類算法在IVD識別方面的可行性,但僅識別少數幾個角度(如0°、90°、180°、270°等),因而IVD 識別范圍有限;③在網絡模型中引入角度[16-18],典型的如目標檢測[16],通過引入角度來旋轉并最小化目標框。但其使用的研究數據為俯拍的遙感影像,只存在觀察方向而丟失IVD,所以其研究成果難以遷移至IVD 的識別上。總之,已有研究對IVD 的識別具有局限性,無法滿足精確識別IVD的任務需求。
針對上述問題,本文提出融合雙通道特征學習機制的網絡模型(double channel feature learning model,DouCFL)的IVD 識別方法,主要貢獻如下:①據筆者所知,目前尚無專門進行IVD 識別的研究,本文首次提出一種準確識別IVD 的方法。DouCFL 由數據預處理模塊、特征學習模塊以及IVD 識別模塊三個模塊組成,并創新性地提出隨機旋轉組合的數據增廣方法、“特征復用+特征生成”的雙通道特征學習方法和顧及物體類別識別與IVD 識別的損失函數,使網絡模型能夠有效識別圖像內容并學習其旋轉不變特征。②針對用于IVD 識別的數據集缺失的問題,創建了一個新數據集RotData。本文從ImageNet-1k 數據集[19]中提取了近70000 張正直圖像(即圖像的觀察垂直方向與IVD 一致),創建了一個名為RotData 的圖像數據集,并公開了下載網址,便于相關領域的研究者進行模型訓練和測試。
ImageNet 數據集是深度學習領域中圖像分類、檢測、定位的最常用數據集之一[19]。但是,當深度學習任務轉變成識別IVD 時,ImageNet數據集中的某些圖像并不適用。例如,從頂部或底部觀察的物體,或圖像物理環境信息過少的,如圖1(a)所示,這些圖像是模糊的(即只可確定圖像的觀察垂直方向而無法確定IVD),利用它們進行模型訓練會嚴重影響深度學習模型對圖像特征的理解與學習。所以,本文以ILSVRC2012(ImageNet Large-Scale Visual Recognition Challenge 2012)為基礎數據集,該數據集共有1000 個類別,每類約有1000 張圖像。本文從ILSVRC2012 數據集中挑選了383 個較易確定圖像是否正直的物體類別(圖1(b)為部分示例),并在這些類的約1000 張圖像中分別挑選170 張正直圖像和10 張模糊圖像,組成了一個由約70000 張圖像組成的旋轉數據集RotData,將其用于模型訓練和測試。RotData 已公開于https://doi.org/10.6084/m9.figshare.c.6085845.v2。

圖1 ILSVRC2012中模糊圖像和正直圖像示例
DouCFL 的整體架構如圖2 所示。首先,在數據預處理模塊中對輸入的原始圖像進行預處理,將大小不一的原始圖像統一成尺寸為384×384像素的輸入圖像,然后對輸入圖像分別進行0~359°角度范圍內的隨機逆時針旋轉,并添加圓形掩膜,以防止模型忽略主體對象特征而學習圖像的邊緣信息。在模型訓練的每一次迭代中,該預處理操作都會重復,且在每個Epoch中,RotData 數據集也將重新隨機打亂,通過該“隨機旋轉組合”操作來擴增數據集,模型能更全面地學習到圖像的旋轉不變特征,從而更好地識別IVD。其次,將預處理后的數據輸入至特征學習模塊,經過特征復用通道和特征生成通道的“雙通道”操作,輸出長度為360的角度特征向量以及長度為383 的類別特征向量。最后,在IVD 識別模塊中,輸入角度特征向量、類別特征向量、旋轉角度標簽和物體類別標簽,通過同時識別IVD 的偏離角度與物體類別來計算模型的旋轉損失(rotation loss,RotLoss)。

圖2 DouCFL模型架構
為使模型更全面地學習旋轉不變特征,DouCFL Net 采用如圖3 所示的結構,將預處理后的圖像輸入Stage 1、Stage 2、Stage 3、Stage 4、Stage 5 和Output六個模塊后得到輸出長度為743特征向量。其中,Stage 1~Stage 5模塊以DouCFL Block 為基礎結構,Conv 代表卷積層,Maxpool代表最大池化層,通道數后圓括號內的數字為DouCFL Block 中特征生成通道的通道數。

圖3 DouCFL Net網絡結構
DouCFL Block 的結構如圖4 所示,其通過“雙通道”(即特征復用通道和特征生成通道)來提升對旋轉不變特征的學習能力。假定xi為DouCFL Net 的第i個DouCFL Block 的輸入特征圖,首先對xi進行通道降維(1×1卷積層);然后通過卷積提取圖像特征(3×3卷積層),并利用分組卷積壓縮模型參數;其次將提取到的圖像特征進行投影以與xi保持維度的一致(1×1 卷積層),得到特征圖(xi)in;再通過通道分裂操作將(xi)in分裂成和,分別作為輸入特征圖輸入至特征復用通道與特征生成通道,得到復用特征和新生成特征;最后通過通道聯結操作將特征圖和合并,得到輸出特征圖xi+1,即第i+ 1 個DouCFL Block 的輸入特征圖。其中,特征復用通道通過殘差相加來強調對初始特征xi的復用,以防止特征退化;而特征生成通道則保留了3×3 卷積層中新提取的圖像特征,以跳脫復用特征而尋找新特征。

圖4 DouCFL Block結構(以Stage 2為例)
另外,在特征復用通道與特征生成通道中引入通道注意力模塊SE(squeeze-and-excitation)Block[20],它可以對特征圖進行重標定, 對每個特征圖學習一個對應的權重,以篩選出復用特征和新生成特征中的有效信息,達到突出重要特征的作用。而為確保DouCFL Block 的輸入和輸出維度相同,增加了一個卷積核大小為1×1 的卷積層,將該Block 的輸入特征xi映射到更低的維度上,進而使DouCFL Block 在不改變輸入輸出特征維度的基礎上學習圖像新特征。
具體而言,假定xi為DouCFL Net 的第i個DouCFL Block 的輸入與輸出數據,則xi+1可由以下計算過程得到:
其中:Split(· ) 代表通道分裂操作;Θi(· ) 代表SE Block 的注意力函數;Φ( ·) 代表轉換函數,用于將DouCFL Block 的輸入特征x映射到更低的維度;Concat(· ) 代表通道聯結操作。
DouCFL Net 中各模塊的具體結構參數見表1。其中,分組卷積的分組數量為32,圓括號內部數字表示每個DouCFL Block 中特征生成通道的通道數。

表1 DouCFL Net結構參數
對圖像內容(即圖像中物體類別)的正確識別可以幫助模型更好地尋找圖像的旋轉不變特征[14-15]。為使模型能更有效地學習該特征,本文在IVD 識別模塊中加入物體類別識別部分,構建同時識別IVD 的偏離角度與物體類別的損失函數RotLoss。假定給定一個預處理后的訓練集(Xj為S中第j個圖像的矩陣表達,N為樣本數目),則RotLoss可以表示為
其中:θ代表DouCFL Net中IVD偏離角度識別部分的可被學習的模型參數;代表DouCFL Net中物體類別識別部分的可被學習的模型參數;α為權重系數;Loss(· ) 為分類損失函數;c為旋轉角度標簽;z為物體類別標簽;而分類損失函數Loss(· ) 可以表示為
其中:τ代表DouCFL Net 中可被學習的模型參數;label為Xj的真實標簽;β是用以平滑分類損失的權重;M為類別總數;Pk(Xj|τ)代表模型在參數為τ的條件下,識別Xj的類別為k的概率值。
本文深度學習框架為PyTorch,操作系統為Ubuntu 18.04 LTS,硬件設備為4 張24 GB 顯存的NVIDIA RTX A5000 GPU 和56 張Intel(R)Xeon(R)Gold 6330 CPU。
以RotData 為實驗數據集,將該數據集以7∶1.5∶1.5 的比例劃分為訓練集、驗證集和測試集。
本文實驗參數設置如下:BatchSize為20(即全局BatchSize 為80);Epoch 為200;使用SGD(stochastic gradient descent)優化器,初始學習率為0.01,優化器動量設置為0.9;學習率調整策略選用Cosine Annealing 和Warm Restart[21],并設置每50 個Epoch 進行一次重啟;RotLoss的參數α設為0.75,β設為0.1。
在模型測試過程中,選取角度特征向量最大值對應的類別索引作為預測的IVD 偏離角度,并與旋轉角度標簽一起輸入角度均方誤差(angle mean square error,AngleMSE)和準確率(accuracy,AC)來評估模型的效果。模型的測試精度取在測試集上連續進行六次效果評估(測試集在每次效果評估過程中都經過“隨機旋轉組合”預處理)的平均值。
本文使用角度均方誤差AngleMSE和準確率AC作為指標來對算法的效果進行衡量,其公式如下:
其中:n表示樣本數量,Yl表示第l個樣本的旋轉角度標簽,表示第l個樣本的預測的IVD 偏離角度。AngleMSE相較于均方誤差(mean square error,MSE),考慮了預測的IVD 偏離角度和旋轉角度標簽之間的類間關系。例如,真實旋轉角度標簽1°和預測的IVD 偏離角度359°之間實際偏差為2°,而非358°。
為了驗證DouCFL 模型的有效性,本文選取了5種圖像分類中的流行深度學習方法與其對比,分別是AlexNet[22]、ResNet-152[23]、DPN-107[24]、ConvNeXt-B[25]和Swin-B[26],并使用相同的數據預處理模塊和IVD識別模塊完成IVD識別任務。
首先,RotData 數據集上不同網絡模型的對比實驗結果如表2 所示。從表2 可以看出:DouCFL 在IVD 識別任務上優于目前流行的深度學習方法。DouCFL 在測試集上的AngleMSE為256.85,即對測試集中圖像偏離鉛垂方向的角度的預測誤差約為16°,且在測試集上的AC達到了97.68%,其對IVD 有較高的識別精度。此外,DouCFL 的AngleMSE低于基礎模型AlexNet 和ResNet-152。與同等參數量的深度學習方法(即DPN-107、ConvNeXt-B 和Swin-B)相比,DouCFL的AngleMSE至少降低了45,AC至少提升了約0.5%,這說明在同等參數量的條件下,DouCFL具有更強的旋轉不變特征學習能力。

表2 RotData數據集上不同網絡模型的對比實驗
其次,不同損失函數的對比實驗結果如表3所示。從表3 可以看出:本文提出的損失函數RotLoss能有效提升模型對IVD 的識別效果。將損失函數RotLoss和不關注物體類別的損失函數Loss(即將RotLoss的參數α 設為1)進行對比,對于不同的深度學習方法,RotLoss都能有效降低模型的AngleMSE。對于基礎模型AlexNet 和ResNet-152,RotLoss能使模型的AngleMSE分別降低18.02%和8.37%。對于同等參數量的深度學習方法(即DPN-107、ConvNeXt-B、Swin-B 和DouCFL),RotLoss能使其AngleMSE至少降低8.05%(DPN-107:12.30%,ConvNeXt-B:11.78%,Swin-B:8.05%,DouCFL:23.64%)。

表3 不同損失函數的對比實驗
為了進一步解釋RotLoss對于降低模型AngleMSE的效果,對模型學習到的圖像旋轉不變特征進行了可視化,圖5 展示了DouCFL Net最后一層特征圖的反向傳播圖[27]。其中,第1列為原圖像,第2 和第5 列為預處理后的圖像,第3 和第6 列為采用RotLoss損失函數訓練的DouCFL Net 的反向傳播圖,第4和第7列為采用Loss損失函數訓練的DouCFL Net 的反向傳播圖。由圖5(a)、(c)和(d)可知,對于包含多個物體的圖像,引入RotLoss可以使模型更加聚焦于物體類別標簽所對應的物體,并能準確學習到它的旋轉不變特征,如熊貓的五官、燈塔的塔身、狗的五官和身體。由圖5(b)可知,對于只包含單個物體的圖像,引入RotLoss可以使模型準確聚焦于圖像中物體的顯著旋轉不變特征,如車頭、前輪和車牌號。而對于采用Loss損失函數訓練的DouCFL Net,其反向傳播圖關注的特征分布廣泛且分散,且關注了較多環境中的干擾信息。這也證明,對圖像內容即物體類別的正確識別,可以幫助模型更有效地學習圖像的旋轉不變特征,從而提升對IVD的識別效果。

圖5 DouCFL Net最后一層特征圖的反向傳播激活圖(續)

圖5 DouCFL Net最后一層特征圖的反向傳播激活圖
最后,通過消融實驗進一步驗證DouCFL Block 中各組成部分的有效性。如表4 所示,在DouCFL Net中去除特征生成通道與SE Block(即為加入分組卷積的ResNet-152)后,與ResNet-152相比精度基本保持不變,但是參數量減少29 M;在加入SE Block 后,模型精度(305.48)有所提升;在加入了特征生成通道后,模型精度(274.63)進一步提升;同時加入SE Block 和特征生成通道后,模型精度最終提升到了256.85,與只加入特征生成通道相比提升了近18。總之,SE Block和特征生成通道的引入能夠有效提升模型在IVD識別任務上的效果。

表4 DouCFL Block中各組成部分的對比實驗
本文提出了一種基于DouCFL 的圖像鉛垂方向識別方法,其由數據預處理模塊、特征學習模塊以及IVD 識別模塊三個模塊組成,并通過隨機旋轉組合的數據增廣方法、“特征復用+特征生成”的雙通道特征學習方法和顧及物體類別識別與IVD 識別的損失函數,使模型能夠有效識別圖像內容并學習其旋轉不變特征。
本文根據ILSVRC2012 創建了用于IVD 識別的正直圖像數據集,并利用該數據集訓練提出的IVD 識別方法。實驗結果表明,本文方法對IVD 識別具有一定的可行性,且識別正確率優于當前流行的深度學習方法。此外,對損失函數的對比實驗結果表明,本文的損失函數能有效提升各類模型對物體旋轉角度的識別效果,證明了對圖像內容的正確識別可以幫助模型更有效地學習圖像的旋轉不變特征。下一步將對圖像的旋轉不變特征進行系統化地解釋,并結合實際應用需求創建規模更大、類別更加豐富的數據集進行訓練和測試。