蔣 寧,方景龍,楊 慶
(1.杭州電子科技大學計算機學院,杭州 310018;2.寧波城市職業技術學院信息與智能工程學院,浙江寧波 315110;3.南京工程學院 計算機工程學院,南京 211167)
(*通信作者電子郵箱fjl@hdu.edu.cn)
目標檢測是機器學習中一個熱點問題,它包括對圖像進行分類和定位兩種檢測。近年來,基于深度卷積網絡(Deep Convolutional Neural Network,DCNN)的鑒別分類器在目標檢測方面取得了很大的進展[1],但同一模型在不同場景中的目標檢測性能經常大相徑庭,因為不同場景的樣本實際不服從同樣的分布。雖然基于卷積神經網絡(Convolutional Neural Network,CNN)的方法在目標檢測方面取得了顯著的進展,但它仍然依賴于大量標記的訓練數據。當將上述方法應用于具有未標記數據的不同場景時,在域遷移中會發生顯著的性能下降。雖然收集更多訓練數據可能會減輕域遷移的影響,但獲取足夠標記數據和注釋邊界框通常是耗時和昂貴的,因此,需要改進算法,使目標檢測模型適合于訓練域視覺上不同的新域[2]。
為解決跨域目標檢測中的域遷移問題,本文提出了一種新的域自適應方法,以減輕域遷移的負面影響,并應用于以下場景:在源域中實施完全的監督,而在目標域中則沒有監督,注釋成本很低。構建基于單點多盒探測器(Single Shot MultiBox Detector,SSD)模型端到端的深度學習模型[3],稱為域自適應全局-局部SSD(Global-Local-SSD,GL-SSD)。嘗試利用這種新方法來最小化域差異,域遷移既可以發生在全局層次也可以發生在局部層次的級別上,全局層次所代表的特征包括噪點、分辨率、顏色等基于整個圖像層面的特征;而局部層次所代表的特征就是指諸如紋理、材質以及大小等能代表某一個實例對象的特性,它是基于實例層面的。目前流行的源域與目標域的對齊方式采用的就是所謂強制性對齊方式[4],即要對齊所有的圖像要素,包括背景、場景布局等無關因素,這種方式對于域之間的差異較小時還是有效的,但是對于域間差異較大的情況,則會造成檢測性能的急劇下降,因為強制性對齊不同域的背景或者布局是沒有太多意義的,因此強制性的對齊方式最適合針對局部特征的對齊,而對于全局層面的對齊方式,可以采用選擇性的對齊方式。基于上述研究,為了解決域遷移問題,本文分別將基于全局和局部層面的兩個域適配器組裝入SSD 模型以最小化兩域之間的差異,衡量差異的指標采用的是交叉熵距離。通過訓練這兩個域適配器,并利用對抗訓練策略[5]取每個適配器中健壯且域不變的特性,結合不同層次域適配器之間的一致性正則化來進一步學習SSD模型中的域不變特性。
本文主要工作如下:
1)設計兩個域適配器,分別在全局和局部層面兩個級別上解決域差異。
2)針對全局層和局部層,分別采用不同的對齊方式,全局層采用選擇對齊方式,局部層采用全對齊方式。
3)提出一種一致性正則化方法將全局和局部兩個層面的域適配器進行調整。
4)將提出的適配器組裝入SSD 模型,使得整個系統可以進行端到端的訓練。
最后使用多個數據集(包括Sim10k、Kitti、Cityscapes 等)進行了大量的實驗,以評估本文提出的領域自適應SSD(以下簡稱GL-SSD)算法。實驗結果表明本文提出的解決目標檢測領域轉移的方法在性能上要明顯優于其他基于SSD的目標檢測方法。
目標檢測的任務是找到圖像中的所有對象并獲取它們的位置和大小。由于各種物體具有不同的形狀、大小和數量,并且相互遮擋,目標檢測一直是機器視覺領域最具挑戰性的問題之一。在現有方法中,單點多盒探測器(SSD)因其有效性和實時性而獲得了顯著的優勢。SSD 使用每個階段的多層功能圖生成錨。結果表明,SSD 法不僅精度高,而且實時性也非常好。SSD 非常靈活,可以擴展到其他任務,例如對象分割。然而,這些工作集中在常規設置上,沒有考慮對象檢測的域自適應問題。本文以SSD 作為基本檢測器,提高了它在新目標域中的目標檢測泛化能力。
在計算機視覺中,領域適應已經被廣泛研究用于目標檢測,為了解決域適應問題,最基本的思路就是測量不同域特征分布之間的距離,這個距離可以采用多種度量方式,最終通過不斷迭代訓練特征提取器最小化域之間的距離。在過去幾年中,域適應性已經被包括文獻[6-8]在內的深層神經網絡廣泛使用。傳統的方法包括:子空間對齊[9]通過映射矩陣對齊源數據和目標數據;傳遞分量分析(Transfer Component Analysis,TCA)[10]方法通過主分量分析(Principal Component Analysis,PCA)學習一個潛在子空間,以減輕跨域間的分布偏移;混合異類傳輸學習[11]旨在以多層映射矩陣的形式對齊數據;最大獨立域自適應[12]試圖通過學習與域特征具有最大獨立性的特征來研究分布中的跨域移動;轉移子空間學習[13]試圖將不獨立且分布在選定子空間中的不同域之間的布里格曼發散最小化,聯合分布自適應(Joint Distributed Adaption,JDA)[14]可以構造一種有效的、魯棒的新特征表示,即在一個主要降維過程中,通過同時適應邊際分布和條件分布,得到了實質性分布差。與這些工作不同的是,本文關注的是目標檢測問題,這是一個更具挑戰性的問題,因為目標定位和分類都需要預測。目前常用的方法是通過域分類器來度量域之間的差異值,本文采用生成對抗算法來訓練域分類器。
本章將詳細介紹本文提出的基于SSD 全局-局部域適應方法。由于目標域是無標簽以及無包圍盒標記的,因此必須通過無監督訓練實現源域到目標域的遷移,本文在SSD 基礎模型中引入了兩個域適配器,分別是基于全局以及局部的域適配器。這兩種適配器本質上屬于域識別器,通過對抗學習算法能夠促使這兩種識別器學習到域不變特征,進而形成域適配器,對于這兩種分類器擬采用不同的對齊方式來對齊源域與目標域。
在SSD框架的基礎上新增兩個域適應組件(基于全局-局部的域適應組件),構成基于SSD的域適應模型。定義基于源域的目標檢測損失函數為Ldet,則總的損失函數定義如下:

其中參數λ是一個調參參數,用來控制SSD 目標檢測損失和對抗損失的比例,平衡目標檢測損失和對抗訓練損失。通過生成對抗網絡(Generative Adversarial Network,GAN)算法以端到端的方式訓練網絡,在傳播過程中能夠自動反轉梯度符號。SSD域適應整體架構如圖1所示:基于全局和局部層級在第6 個卷積層到第11 個卷積層分別添加域分類器,每一個域分類器都采用對抗訓練模式。在此基礎上添加連續正則器以便進一步學習域不變特征。
基于全局層的自適應:所謂全局層差異是指源域和目標域之間基于整個圖片的差異,包括噪點、分辨率、顏色等信息,SSD 算法是基于VGG16(Visual Geometry Group Network 16)結構的,不同之處在于將VGG16 最后的2 個全連接層改成卷積層,并且又增加4 個卷積層。我們使用了一系列基于多尺度的域分類器,即針對這6 個卷積層分別添加域分類器,在每個添加的特征層上訓練每個域分類器,域分類器實際上預測每個添加特征層的域標簽,這種基于多尺度的設計有助于增加域分類器訓練樣本的數量。
本文采用對抗訓練方法來匹配兩個領域之間的特征分布,生成器首先利用神經網絡把數據映射為高層特征,使生成的特征盡可能地迷惑判別器,使之難以判別特征來源于哪一個領域;領域判別器的目標是盡可能準確地判別生成器產生的特征來源于哪一個領域,二者相互對抗優化,最終在達到平衡時,兩個領域的特征分布足夠接近。在基于SSD 的域適應領域中,為了更好地訓練域分類器,需要將樣本區分為易分類樣本和難分類樣本。所謂易分類樣本就是源域和目標域相對應區域的樣本差異很明顯,難分類樣本則是針對源域和目標域相對應區域很難區分的樣本。采取的策略是將注意力集中于難分類樣本,提高難分類樣本的權重,降低易分類樣本的權重,形式化表示為:

其中:Xs代表源域中包含了m個圖片的集合,它包括兩部分元素,分別是(表示帶標簽的源域圖片)和(表示帶包圍盒標記的源域實例)。

其中:Xt代表目標域中包含了m個圖片的集合,目標域沒有標簽表示目標域圖片;領域判別器由D表示。設源域的域標簽值為0,目標域的域標簽值為1,樣本域分類的概率越大,則對損失函數的影響越小,因此可以采用FOCAL LOSS:

其中:γ是調制系數,目的是通過控制系數大小來減少易分類樣本的權重,從而使得模型在訓練時更專注于難分類的樣本,定義全局層的源域分類損失函數為LGS,目標域的損失函數為LGT,兩者的平均值構成了全域的損失函數LG,這里Gj(j∈[1,6])表示分別對SSD中6個卷積層調用特征提取。

其中:ns和nt分別為源域和目標域樣本的數量;Gj()(j∈[1,6])表示分別對SSD中6個卷積層調用特征提取。

圖1 SSD域適應架構Fig.1 Architecture of SSD domain adaption
基于局部層面的自適應是針對實例檢測的,局部域分類器更多關注的是本地局部特征而不是全局特征,基于局部層面的域分類器由三層卷積神經網絡構成,核大小設為1,輸出激活函數設置為Sigmoid 函數,基于SSD 的最后6 個卷積神經網絡通過生成器分別輸出6個特征圖,這6個特征圖作為輸入分別傳給對應的6 個域分類器,損失函數采用的是最小二乘法對域分類器進行訓練。這種類型的損失函數有助于提高域分類的魯棒性,并且在實驗中也得到了驗證,證明其對于局部排列是非常有效的。基于局部層面的損失函數LL由兩部分組成:源域的損失函數LLS和目標域的損失函數LLT。它們的表達式如下:

通過實施一致的正則化技術來提高模型的性能,當采用對抗學習訓練模型時經常會造成訓練不穩定的情況發生,尤其是如果訓練的數據不足,則會造成嚴重的過適應現象,即使采用微調的方式也還是會造成過擬合現象,因此本文采取一致正則的方式來提高訓練的穩定性,正則距離采用L2 距離,表達式如下所示:

將本文算法應用在兩個域遷移場景中,分別由3 個數據集組成:
1)Sim10k 數據集。Sim10k 包含了10 000 張圖片以及相應的58 701 個包圍盒標記,這些圖片都是由游戲引擎渲染出來的合成圖片,標記物包括小汽車、摩托車和人。
2)Cityscapes 數據集。Cityscapes 包含50 個城市在春夏秋三個季節不同時間段不同場景、背景的街景圖,提供5 000張精細標注的圖像、20 000 張粗略標注的圖像和30 類標注物體[15]。用PASCAL VOC標準的兩個區域重疊的部分除以兩個區域的集合部分(Intersection-Over-Union,IoU)的得分來對算法性能進行評價。
3)KITTI數據集。該數據集中每張圖像最多顯示15輛汽車和30 名行人,各自有不同程度的遮擋。數據集共包含200 000張以上的3D 標注物體的圖像,涵蓋了市區、鄉村和高速公路等場景,包括圖片、視頻、雷達數據等數據類型[16]。
本文所涉及到的域遷移場景包括:
A場景:Sim10k to KITTI(S→K);
B場景:KITTI to Cityscapes(K→C)。
實驗的基準配置如下:將GL-SSD 算法同其他四種域適應算法作性能比較,這四種算法分別是:1)基于源域訓練模型,即將只針對源域進行訓練的模型直接應用于目標域,并沒有采用域適應算法;2)域適應-快速區域卷積神經網絡(Domain Adaptation-Faster Region-based Convolutional Neural Network,DA-FRCNN)模型[17],該模型基于Faster CNN 的域適應模型算法,也是第一個針對目標檢測的域適應方法;3)對抗識別域適應(Adversarial Discriminative Domain Adaptation,ADDA)模型[18],該模型主要用于解決基于非監督的對抗域適應;4)動態對抗適應網絡(Dynamic Adversarial Adaptation Network,DAAN)模型[19],該模型采用動態對抗思想來解決域適應問題。
為了驗證本文的GL-SSD方法,在這兩個域遷移場景中實施了大量實驗,對于每一輪實驗,都采用如下四個步驟:1)隨機取樣固定數量的目標域圖片,數量取決于用于比較的類個數;2)逐步組合GL-SSD 方法里的幾個適配器,運行后計算基于平均精確值(Average Precision,AP)和各類別AP 的平均值(mean Average Precision,mAP)的性能[20];3)在相同的樣本圖片上運行其他目前流行的域遷移方法,計算出AP 和mAP 性能;4)分別比較這幾種方法的AP 和mAP 性能,推演出最終結論[21]。
場景A 檢測結果:首先評估從Sim10k 到KITTI 域適應的性能。這兩個域都是有關交通工具的場景,因此具有一定的相似性。正如表1所描述的,GL-SSD 在15種類別的目標檢測AP明顯優于SSD 模型的,與ADDA、DA-FRCNN 和DAAN 模型相比,GL-SSD 除了fence 和pole 類別精確度小于這三個模型,其他種類的AP 都高于上述三個模型。表3 顯示了不同方法的最終性能效果(用mAP 值表示),G 表示全局,L 表示局部,R 表示正則。具體性能比較包括以下幾個方面:1)與其他四個模型算法進行比較,單獨采用全局或者局部SSD 域適應方法的目標檢測(mAP)在性能上明顯優于基于源域訓練模型,與其他三種模型在性能上差別不大,但是如果將這兩種域適應算法組合起來,性能就會明顯優于其他三種訓練模型,表明基于不同層次的對齊可以起到互補的效果。
進一步分析發現單獨采用全局SSD 域適應方法提高的mAP 要高于單獨采用局部SSD 域適應方法提高的mAP,可以認為這是因為Sim10k 是虛擬場景而KITTI 是真實場景,兩個場景的差別還是明顯的,易分類樣本較多,所以采用全局域適應效果更加明顯。將兩種域適應結合則mAP 值可以提高更多,說明這兩種域適應可以起到互補的作用。如果再將一致性正則應用到場景中,則GL-SSD 相比ADDA、DA-FRCNN、DAAN 的mAP 值分別提高了5.97、8.05、5.4 個百分點,達到了45.62%。
場景B 的檢測結果:場景B 指的是KITTI to Cityscapes(K→C),如表2所示,檢測結果與場景A類似,GL-SSD在15種類別的目標檢測AP也是明顯優于SSD 模型的,與另外三個模型相比,GL-SSD 除了Bldg 和Sign 類別準確度小于三個模型,其他種類的AP 都高于這三個模型。如表3 所示,同其他三種模型比較,分別單獨采用全局域適應方法、局部域適應方法以及將這兩種方法組合起來都能提高域遷移檢測性能,但是同場景A 的檢測結果還是有一個明顯的區別,就是采用全局域適應方法提高的mAP 值要小于采用局部域適應方法,本文認為這是因為Cityscapes 和KITTI 都是有關交通方面的場景,其相似程度要高于場景A,易分類樣本較少,所以采用局部域適應效果會更好些。當然將一致性正則繼續應用到場景B中也能提高mAP 值,達到了43.28%,相比ADDA 提高了2.94 個百分點。

表1 Sim10k→KITTI域遷移AP定量結果 單位:%Tab.1 AP quantitative results for Sim10k→KITTI domain transfer unit:%

表2 KITTI→Cityscapes域遷移AP定量結果 單位:%Tab.2 AP quantitative results for KITTI→Cityscapes domain transfer unit:%
基于場景A(Sim10k→KITTY)的實驗結果如圖2所示,可以非常清楚觀察到采用GL-SSD 方法模型能夠形成更加緊密的包圍盒,尤其是針對那些不易辨認的小目標,GL-SSD 的查找正確率要高于其他三種模型(如圖2(a)基于DA-FRCNN 的目標檢測中遠處的一輛小白車沒有檢測出來)。
上述實驗結果表明,全局和局部域適應方法都有助于提高域遷移的能力,接下來將通過分析檢測錯誤指標來進一步驗證全局和局部域適應方法的有效性。將場景A(Sim10k→KITTI)作為分析案例,分別選擇前1 000個可信度最高的檢測應用于每個域適應方法,包括基準SSD、ADDA、DA-FRCNN 以及GL-SSD域適應方法,參考文獻[22],將檢測結果分為三類:正確率檢測、錯誤定位檢測以及背景錯誤檢測。

表3 域遷移mAP定量結果 單位:%Tab.3 mAP quantitative results for domain transfer unit:%

圖2 基于DA-FRCNN和GL-SSD的檢測結果對比Fig.2 Detection results comparison of DA-FRCNN and GL-SSD
正確率檢測指的是IoU 的值大于0.5[23],即認為是正確的分類;錯誤定位檢測指的是雖然分類是正確的,但是IoU 值介于0.1和0.5之間;背景錯誤檢測指的是分類是錯誤的或者雖然分類是正確的,但是IoU 值小于0.1。從表4 可以看出采用GL-SSD 域適應方法比其他三種方法的正確率都要高,并且背景錯誤率也低于其他三種模型。

表4 檢測錯誤分析 單位:%Tab.4 Detection error analysis unit:%
本文提出了一種新的無監督域自適應方法,該方法在SSD 模型基礎進行改進,分別從全局和局部層面采用不同的域對齊方式:全局層面通過強化難分類樣本實現選擇性對齊,局部層面則采取完全對齊的方式。本文分別使用兩種域適配器來對應這兩個層面的訓練,在SSD 模型最后6 個卷積層分別添加一個域適配器,有助于增加域分類器訓練樣本的數量,并進一步應用一致性正則化來學習域不變量特征。域適配器采用基于交叉熵的對抗訓練算法進行端到端的訓練,它是一種有效的跨域目標檢測方法,能夠最小化域之間的差異。本文方法在不同域適應情況下得到了驗證,基于多個數據集的實驗結果表明,GL-SSD 模型在域遷移性能上明顯超過了基準SSD 模型,并且也比ADDA、DA-FRCNN、DAAN 等常見域適應算法的性能要好,今后將考慮采用深度更深的VGG19 取代VGG16網絡結構,并在此基礎上嘗試與2020年最新的域適應模型作比較,以便更好驗證GL-SSD模型目標檢測的有效性。