方 興 龍澤升 占 賢
(武漢數(shù)字工程研究所 武漢 430205)
隨著人類對海洋開發(fā)和保護的日益重視,水面無人艇逐漸成為世界各海洋強國大力發(fā)展的新興海洋裝備,被廣泛應(yīng)用于軍事領(lǐng)域和民用領(lǐng)域[1]。智能感知是無人艇的關(guān)鍵組成部分,而視覺系統(tǒng)作為無人艇智能感知的重要分支,是無人艇獲取周邊信息的主要途徑,同時其獲取的信息也是無人艇進行決策時的重要參考[2]。由船載攝像頭所采集的可見光圖像進行目標識別與檢測,可以檢測出水面障礙物的類別以及位置等信息,從而為無人艇的自主航行提供決策依據(jù)[3]。
基于深度學(xué)習(xí)的目標檢測方法最早起源于RCNN[4]類方法,該類方法通常稱為兩級檢測(Two-stage Detector),即結(jié)合一個區(qū)域建議器和一個區(qū)域智能的分類器,在當(dāng)時的目標檢測領(lǐng)域取得了巨大成功,逐漸成為主流的目標檢測算法。為減少卷積神經(jīng)網(wǎng)絡(luò)的計算復(fù)雜度,SPP-Net[5](Spatial Pyramid Pooling)和 Fast RCNN[6]引入了區(qū)域特征提取的思想,將大量的特征計算通過對象實例進行共享。Faster RCNN[7]在上述方法基礎(chǔ)上引入了區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)進一步加速計算,在精度和計算實時性上達到了較好的平衡。隨后基于Faster RCNN算法的各種工作擴展并豐富了這類算法。例如,R-FCN[8](Region-based Fully Convolutional Network)提出了高效的區(qū)域全卷積,相較于Faster RCNN算法進一步降低了計算量。
由于無人艇搭載的攝像頭獲取的可見光圖像包含不同尺度的對象[9],導(dǎo)致RPN中過濾器的固定接受域大小容易產(chǎn)生尺度不匹配現(xiàn)象。為克服該問題,特征金字塔(Feature Pyramid Network,F(xiàn)PN)方法[10]在多個輸出層進行檢測并輸出不同尺度的特征圖,通過在不同網(wǎng)絡(luò)深度的特征映射上添加自頂向下連接,融合各尺度特征圖,并采用比例不變的特征表示,取得了一定的效果。SNIP[11](Scale Normalization for Image Pyramids)則通過重新調(diào)整圖像金字塔,對訓(xùn)練過程中不同對象尺度的梯度進行歸一化處理,使整個檢測器具有尺度特異性。在推理時使用圖像金字塔實現(xiàn)尺度不變檢測,但該方法計算量巨大。
在以往的目標檢測算法中對模型體系結(jié)構(gòu)的關(guān)注度較高,本文在采用現(xiàn)有兩級目標檢測模型最高精度的模型體系結(jié)構(gòu)的基礎(chǔ)上,對檢測器的檢測性能本身進行了改進。在目標檢測訓(xùn)練過程中緩解不平衡是實現(xiàn)最優(yōu)訓(xùn)練和充分發(fā)揮模型體系結(jié)構(gòu)潛力的關(guān)鍵。分析檢測器的標準訓(xùn)練實踐,發(fā)現(xiàn)檢測器的檢測性能受到三個層次的不平衡限制:分別是樣本層次、特征層次和目標層次。
樣本層次的不平衡。在進行目標檢測器的訓(xùn)練時,困難樣本對于檢測器性能的提升極其明顯,但通常使用的隨機抽樣方法導(dǎo)致簡單樣本對檢測器影響更加巨大。近年來,困難樣本的挖掘方法被廣泛使用,其中比較著名的方法是OHEM[12](Online Hard Example Mining),這種方法的優(yōu)點是可以將檢測器的重點移向困難樣本,但與此同時帶來的缺點是相對高額的計算成本和對噪聲標簽的高度敏感性。在一階段目標檢測算法中,采用的Focal Loss[13]方法緩解了樣本層次的不平衡問題,但這一方法無法擴展到RCNN系列算法中,因為兩級的目標檢測程序濾除了大多數(shù)容易產(chǎn)生的困難樣本。因此,尋找更適合兩級目標檢測算法的樣本平衡方法有利于提高檢測器性能。
特征層次的不平衡。骨干網(wǎng)絡(luò)的淺層的低層次特性容易表達目標的位置特性,而網(wǎng)絡(luò)的深層的高層次特性主要表達目標的語義特性。FPN算法是在特征融合方面具有里程碑意義的算法,它通過橫向連接進行特征集成,推動了目標檢測算法的發(fā)展。但是FPN算法采用的順序結(jié)構(gòu)使得綜合特征更多關(guān)注的是相鄰分辨率,其他分辨的關(guān)注度明顯不足,導(dǎo)致每進行一次融合,非相鄰分辨率的語義信息就被稀釋一次。因此,被整合的特征應(yīng)該具有來自每個分辨率的均衡信息。
目標層次的不平衡。目標檢測器需要完成兩項任務(wù),分別是分類和定位,對應(yīng)的損失函數(shù)即為分類損失函數(shù)和定位損失函數(shù),兩者之間需要保持適當(dāng)?shù)钠胶狻S?xùn)練中的樣本也是如此,如果它們不能很好地平衡,就會出現(xiàn)容易樣本的產(chǎn)生的小梯度被困難樣本的大梯度淹沒的情況,算法不能達到最優(yōu)收斂,導(dǎo)致整體性能不佳。因此需要重新整合算法的任務(wù)和樣本。
本 文 以 Cascade RCNN[14]算 法 為 基 準 算 法(Baseline),并在此之上針對檢測器訓(xùn)練過程中的不平衡問題,提出了基于Cascade RCNN算法的改進算法,通過整體平衡設(shè)計來平衡這種不平衡,提高了算法的精度和建議機制下的召回率,對算法在無人艇水面目標檢測上帶來了較為明顯的提升,與其他傳感器配合可提高無人艇的智能感知能力,提升無人艇自主航行的安全性。
目標檢測的基本任務(wù)是識別對象并為對象分配合適的類標簽和準確的邊界框。兩級目標檢測算法將該任務(wù)看作為多任務(wù)學(xué)習(xí)問題,一方面使用分類來解決識別問題,另一方面是使用邊界框回歸來解決定位問題。盡管這種架構(gòu)取得了一定的成功,但是這兩個基本的問題沒有被精確解決,即存在非常多近似的類別誤報,相對應(yīng)地也存在非常多接近但不是最優(yōu)的邊界框。有效的檢測器必須找到圖像中的真正樣本,同時抑制那些接近的假正樣本。
高質(zhì)量的檢測要求檢測器的質(zhì)量與檢測假設(shè)的質(zhì)量密切匹配。只有提出高質(zhì)量的建議,檢測器才能實現(xiàn)高質(zhì)量檢測。然而,僅僅在訓(xùn)練中增加交并比(Intersection of Union,IOU)的閾值并不能保證這一點。以往的仿真訓(xùn)練中發(fā)現(xiàn)經(jīng)過建議機制回歸后的IOU閾值必然會比回歸之前增加,在這一思想的指導(dǎo)下一種新的檢測器架構(gòu)應(yīng)運而生,即Cascade RCNN算法,如圖1所示。
圖1 Cascade RCNN算法結(jié)構(gòu)圖
Cascade RCNN算法是RCNN類算法的多階段擴展,其中較深的RCNN階段對接近的假正樣本的抑制更有效。用一定的IOU閾值訓(xùn)練檢測器的輸出的良好假設(shè)分布來訓(xùn)練下一個更高的IOU閾值檢測器,通過調(diào)整邊界框,每個階段的目標是為下一階段的訓(xùn)練找到一組良好的接近誤報,從一個階段到下一個階段,檢測假設(shè)的質(zhì)量逐漸提高。Cascade-CNN算法的意義是使用重采樣操作為序列中所有檢測器的訓(xùn)練提供了大量的樣本,因此可以在不出現(xiàn)過擬合的情況下訓(xùn)練高IOU檢測器,并且在推理時使用相同的級聯(lián)程序,會產(chǎn)生一組質(zhì)量逐步提高的假設(shè),與檢測器等級的質(zhì)量不斷提高很好地匹配,最終提高目標檢測精度。
為了減輕這三個層次帶來的影響,本文提出三個相對應(yīng)的解決辦法:交并比平衡采樣、平衡特征金字塔和平衡的L1損失函數(shù)。這三個方法分別在樣本、特征和目標的層次減少了檢測器的不平衡性,從而提高了目標檢測的整體性能。
圖2表示不同采樣方式下樣本在不同交并比下的分布狀態(tài)。可以觀察到,超過60%的困難負樣本在交并比閾值大于0.05,而隨機抽樣方法在大于0.05閾值時的樣本比例只有不到30%,即采用隨機采樣方法后算法對困難樣本的關(guān)注度不夠?;谶@一觀察結(jié)果,本文提出了交并比平衡采樣這一新的樣本采樣方法。假設(shè)需要從M個對應(yīng)的候選樣本中抽取N個負樣本。隨機抽樣下每個樣本的選擇概率P為
圖2 不同采樣方式樣本在不同交并比的分布
為了提高困難負樣本的選擇概率,本文根據(jù)IOU將采樣區(qū)間平均分成K個區(qū)間。N個要求的負樣本平均分配到每個區(qū)間。然后本文均勻地從中選擇樣本。因此,本文得到了交并比平衡采樣下的選擇概率pk:
交并比平衡采樣后的直方圖如圖2中綠色直方柱所示??梢钥闯?,本文的交并比平衡采樣可以指導(dǎo)訓(xùn)練樣本的分布接近困難負樣本。此外,該方法對K不敏感,只要選擇的IoU較高的樣本就更有可能,此外值得注意的是,該方法也適用于困難正樣本。然而,在大多數(shù)情況下,沒有足夠的候選樣本來將這一過程擴展到正樣本。為了使平衡采樣過程更加全面,本文對每一個真實值進行了等距采樣作為一種替代方法。
與以往的方法不同的是,本文使用橫向連接來集成多級特征,其核心思想是使用相同的深度集成的平衡語義特征來增強多級特征,由重置分辨率、集成、細化和強化這四部分組成。
首先,本文將分辨率l級的特征記為Cl,最低級特征記為lmin,最高級的特征記為lmax,多級特征數(shù)記為L。重置分辨率和集成這兩個模塊是整合多層次有限元模型,同時保持其語義層次。本文首先將多級特性{C2,C3,C4,C5}的分辨率調(diào)整為中等大小,即大小與C4相同,對特征進行重置分辨率后,通過簡單平均得到平衡的語義特征:
然后使用相同的反向過程對獲得的特征進行重置分辨率,以增強原始特征。每個分辨率在本分辨率中從其他分辨率中獲得同等的信息。
細化和強化部分使用了一個高斯非局部注意力機制的模塊,該方法可以同時聚合低級到高級的特征,改進后的工藝可以提高算法的綜合性能,同時作為FPN的一個補充模塊。
通常,RCNN類算法通過多任務(wù)損失函數(shù)來解決定位和分類問題,具體形式如下式所示:
式中:Lcls和Lloc分別是對應(yīng)于分類和定位的目標函數(shù),Lcls中的預(yù)測和目標分別用p和u表示,tu是與類u對應(yīng)的回歸結(jié)果,v為回歸目標,λ用于調(diào)整多任務(wù)學(xué)習(xí)下的損失權(quán)重效果。本文稱損失大于或等于1.0的為異常樣本。其他樣本稱為正常樣本??梢杂^察到,該多任務(wù)損失函數(shù)是分類和定位的總和,如果分類任務(wù)完成的很好,總損失依然會很小,問題就在于這個方法忽略了定位對于總損失值的貢獻,直接提高λ值會讓檢測模型對異常值更加敏感,產(chǎn)生過大梯度,不利于模型訓(xùn)練。
平衡的L1損失函數(shù)是在傳統(tǒng)定位損失函數(shù)smooth L1 loss的基礎(chǔ)上改進而來,設(shè)置拐點將正常樣本與異常樣本分隔開來,并剪切最大值為1.0的異常樣本產(chǎn)生的較大梯度。平衡的L1損失函數(shù)的關(guān)鍵思想是促進關(guān)鍵的回歸梯度,即從正常樣本的梯度,重新平衡所涉及的樣本和任務(wù),從而在分類、整體定位和精確定位方面實現(xiàn)更加均衡的訓(xùn)練。
Lloc中的平衡的L1損失函數(shù)定義為
梯度表達式如下:
在此基礎(chǔ)上采用一種新的梯度:
在一個因子α的控制下,本文的平衡的L1損失函數(shù)增加了正常樣本的梯度。一個小的α增加了正常的梯度,但是不影響到異常樣本的梯度。此外,還引入了γ控制整體提升放大量來調(diào)整回歸誤差的上界,可以幫助目標函數(shù)更好地平衡所涉及的任務(wù)。
通過對上述梯度公式的積分,可以得到平衡的L1損失函數(shù):
其中,參數(shù)之間的關(guān)系是:
在本文的仿真試驗中,參數(shù)默認設(shè)置為α=0.5,γ=1.5。
本文依據(jù)各軍民船舶類別建立了船舶數(shù)據(jù)庫。本文根據(jù)研究需要從數(shù)據(jù)庫中取用20類別水面船舶,其中訓(xùn)練圖片13547張,測試圖片3411張,并將其制作成符合VOC(Visual Object Classes)格式的數(shù)據(jù)集,具體的船舶類別入圖3所示。
圖3 仿真試驗船舶細粒度分類
為了公平比較,本文進行的所有試驗均在統(tǒng)一的軟硬件條件下進行,其中編程平臺為Python3.8.5,PyTorch1.2和mmdetection。本文試驗中使用的骨干網(wǎng)絡(luò)是公開且預(yù)訓(xùn)練好的。本文用1個GPU訓(xùn)練檢測器36個周期,初始學(xué)習(xí)率為0.0025,如果沒有說明,則在24個周期和33個周期之后分別降低0.1。試驗主要硬件配置包括Intel(R)Core(TM)i7-8700 CPU@3.20GHz處 理 器 、16GB內(nèi)存和GeForce GTX 1080 Ti顯卡。試驗操作系統(tǒng)是Ubuntu 16.04。
本文將原始的Cascade RCNN算法在本試驗數(shù)據(jù)集上進行的訓(xùn)練測試作為基準,對本文提出三種改進方法分別進行訓(xùn)練測試,然后再將三種方法進行組合訓(xùn)練測試,仿真試驗結(jié)果如表1所示。
由表1可知,原始的Cascade-CNN算法的查準率達到了82.8%,但召回率只有30.7%,平均精度(Mean Average Precision,mAP)達到了63.8%,結(jié)合單一交并比平衡采樣的改進后,召回率有1.4%的提升,mAP值有0.7%的提升。結(jié)合單一平衡特征金字塔的改進后,查準率有0.4%的提升,召回率有7.4%的提升,mAP值有1.3%的提升。結(jié)合單一的平衡的L1損失函數(shù)改進后,查準率有0.3%的提升,召回率有1.8%的提升,mAP值有1.1%的提升。將三種改進組合后,最終查準率有1.4%的提升,召回率有13.4%的提升,mAP值有4%的提升。單幀圖片耗時方面總體略有增加,變化不大。本文算法輸出的檢測效果圖如圖4所示。
表1 仿真試驗結(jié)果
圖4 檢測效果圖
由表1可以觀察到的另一個特性是這三種改進算法對召回率的提升效果明顯。為了更加清晰地說明改進算法的作用,本文對不同骨干網(wǎng)絡(luò)建議生成圖像的平均召回率進行測試,其中,AR100,AR300,AR1000分別對應(yīng)于每幅圖像有 100、300 和1000個建議時的平均召回率(average recall),如表2所示。注意較大的骨干網(wǎng)絡(luò)只會給建議機制帶來較小的增益。本文的建議機制只需要一個ResNet-50主干就可以比ResNet-152高8個百分點。本文算法的顯著改進證實了有效的平衡訓(xùn)練能更有效地發(fā)揮建議機制的潛力。
表2 不同骨干網(wǎng)絡(luò)提升召回率與本文方法的比較
可見光圖像的目標檢測無人艇智能感知的重要組成部分,針對水面障礙物的檢測問題,本文改進了Cascade RCNN算法,在交并比平衡采樣、平衡特征金字塔和平衡的L1損失函數(shù)這三部分上對原算法進行了平衡改進,進一步緩解了檢測器在訓(xùn)練過程中的不平衡現(xiàn)象。仿真試驗表明,本文改進后的算法在對水面艦船目標的檢測上召回率提升明顯,平均檢測精度得到了提高,可以為無人艇智能感知技術(shù)的發(fā)展提供參考。