張業(yè)星,陳敏,潘秋羽
(1.中國電建集團華東勘測設計研究院有限公司,杭州 310000;2.浙江華東工程數(shù)字技術有限公司,杭州 310000)
目標檢測任務被定義為前景分類與坐標定位任務的結合,作為一項基礎的機器視覺任務,其目標是從背景信息中提取前景所屬類別,并對每一個被判別為前景的目標給出其所在圖像的具體位置。傳統(tǒng)的目標檢測方法采用滑動窗口的方式選取目標區(qū)域,通過人工提取的區(qū)域特征進行分類,這類方法大都依賴個人的先驗知識來實現(xiàn)特征提取,無法利用大數(shù)據(jù)的優(yōu)勢生成多樣性的圖像特征,在模糊、截斷、小目標等復雜場景下的魯棒性較差。
隨著計算機硬件以及人工智能前沿科技理論的飛速發(fā)展,基于深度學習的目標檢測方法[1]應運而生。其中典型的方法是依靠卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)[2]的級聯(lián)過程抽象出圖像的特征表征,這些表征信息相比傳統(tǒng)方法[3-4]提取的特征更加豐富,且具有計算機視角下的語義性。該類方法通過學習無結構化數(shù)據(jù),依靠神經(jīng)網(wǎng)絡強大的擬合能力,將底層學習到的局部特征整合為頂層具有強語義的全局特征,使模型在較復雜場景下進行預測時也能達到很好的效果。
目標檢測作為目標跟蹤、目標重識別、圖像語義分割等高級計算機視覺任務的必備前提,不僅在理論研究方面意義重大,而且在醫(yī)學成像、智能安防等應用領域也體現(xiàn)出重要價值,因此國內(nèi)外的研究人員從未停止過對該任務的探索。早期基于CNN 的目標檢測方法大多只利用了網(wǎng)絡級聯(lián)最頂層的輸出,典型方法有Fast RCNN[5]、Faster RCNN[6]、YOLO[7]以及YOLOv2[8]等,雖然這類方法能夠精簡網(wǎng)絡結構,加快模型推理速度,但由于其僅使用了單一尺度的特征圖,因此對多尺度目標檢測的效果不太理想?;诖?,有學者提出利用多層級特征圖參與預測,典型方法有SSD[9]和DSSD[10],該類方法在一定程度上改善了多尺度檢測效果,但因為直接參與預測的底層特征圖語義信息過弱、頂層特征圖分辨率太低,所以效果提升有限。
早期利用單一特征圖進行預測的方法忽略了不同粒度特征間的互補性,且未對CNN 級聯(lián)路徑上被稀釋的細粒度信息做補充,對小目標檢測時效果較差。近年來特征融合的檢測方法成為了主流,該類方法在對網(wǎng)絡歷史特征進行復用的同時,還將頂層的抽象語義信息和底層的細節(jié)信息進行融合,提升了原始特征的表達力,常見的應用案例有FPN[11]、FSSD[12]、RSSD[13]、YOLOv3[14]等。融合后的特征圖能同時具備多種強度的語義特征,使模型在后續(xù)預測時每一特征層級均有適用的特征信息,從而讓整體的預測任務變得靈活。
雖然這些依賴融合建模的檢測方法在CNN 級聯(lián)階段利用通道拼接、逐像素相加等方式促使頂層強語義特征與底層弱語義特征進行交互,但由于該類方法將融合后的特征圖直接用于分類和回歸,忽略了圖像通道建模對模型預測的影響,因此也遺留了一些顯著性問題,如圖像邊緣被截斷或遮擋目標的分類不準確,重疊目標的丟失或定位不精確等,導致錯檢、漏檢現(xiàn)象普遍。
本文在級聯(lián)網(wǎng)絡的特征提取和融合后引入通道建模技術,通過對特征空間進行不同維度的壓縮凝練,促使作用于最終預測的特征集可以最大限度地獲取目標的上下文聯(lián)系和空間分布,進而增強圖像特征表達,使模型通過學習能聚焦目標的類別信息和位置信息,解決檢測算法中分類出錯、回歸不準確的問題。
本文方法的網(wǎng)絡結構如圖1 所示。本文方法對任意尺寸的圖像進行均值標準差歸一化以及分辨率縮放預處理后,再利用ResNet-101[15]提取圖像特征,將CNN 級聯(lián)得到的特征通過自頂向下鏈接進行融合,豐富特征金字塔各個層級的特征表達。最后對融合得到的各層級特征進行通道建模,生成對任務目標更有益的特征,并用于目標預測。
圖1 本文方法的網(wǎng)絡結構Fig.1 Network structure of method in this paper
本文基于泛逼近原理[16],使用深度殘差網(wǎng)絡生成更抽象、更利于分類的特征圖集合,并構建Top-Down自頂向下融合鏈接來促進頂層豐富抽象語義的傳遞,讓偏底層的特征圖能夠獲得頂層強語義的補充,增強對小目標進行預測的能力。此外,本文對融合后的特征空間進行通道建模,具體建模方式如圖2 所示,該方法設計了2 個平行的處理分支,分別是廣度通道建模分支(Breadth Channel Modeling Branch,BCMB)與深度通道建模分支(Depth Channel Modeling Branch,DCMB),這讓經(jīng)過建模后的特征圖能夠忽略大多數(shù)的低質(zhì)量特征,從而更關注目標感受野的空間和上下文信息,對圖像中潛在目標的位置和類別信息敏感。
圖2 特征通道建模Fig.2 Feature channel modeling
單一CNN 結構提取出的特征對于原始信息的描述會隨著網(wǎng)絡的加深變得越來越抽象,這對于目標類別的描述是有利的,但隨著高層特征圖的感受野逐漸變大,分辨率卻逐漸變低,導致對小目標的位置預測產(chǎn)生偏差。基于此,本文設計了BCMB 模塊對多層級的感受野建立特征矩陣,通過對圖像的各層級特征進行編碼,進而豐富空間信息關聯(lián)。BCMB 的具體結構如圖3 所示,該模塊通過對特征空間的各個層級進行壓縮來構建特征通道圖,并將通道圖的信息附加在原始特征圖上,使建模后的特征能夠利用層級間的關系互相增進各自描述的信息質(zhì)量,進而讓模型更聚焦于潛在目標的空間信息。
圖3 廣度通道建模分支的結構Fig.3 Structure of breadth channel modeling branch
具體來說,BCMB 模塊的輸入尺寸是自頂向下融合建模后各層級特征圖按深度分割后尺寸的1/2,為W×H×128 像素,其后緊跟了一個并列的均值計算與最大值計算分支對輸入特征圖的通道維度進行壓縮,并生成能對原圖像通用特征和顯著特征進行描述的通道矩陣。網(wǎng)絡對2 個矩陣進行逐像素相加,并通過sigmoid 非線性激活函數(shù)生成像素點映射到原層級特征圖中對應位置的通道圖,最后將原輸入特征與通道圖進行加權融合,得到BCMB 模塊的最終輸出。
傳統(tǒng)級聯(lián)生成的特征圖由于CNN 的局部感知特性,需累積經(jīng)過多層后才能對整幅圖像的不同區(qū)域建立關聯(lián)。本文方法中DCMB 模塊的提出利用global avg pooling 與global max pooling 在特征圖的深度維度統(tǒng)計圖像的全局特征,進而豐富特征空間對原圖像上下文信息的表達,加強模型對目標類別的判斷。本文將特征金字塔中各個特征層級的通道圖均視作特定的場景描述,利用DCMB 模塊挖掘該類場景之間描述的關系,突出相互依賴的特征圖,在提高特定語義表示的同時聚焦?jié)撛谀繕说念悇e信息。DCMB 模塊的具體結構如圖4 所示,本文在通道建模時使用全局的池化操作替代常規(guī)的卷積操作,從而保留各個通道之間的依賴信息,增強圖像特征對各層級語義的響應能力。
圖4 深度通道建模分支的結構Fig.4 Structure of depth channel modeling branch
DCMB 模塊的具體實現(xiàn)過程與BCMB 模塊類似,其輸入是特征融合后各層級特征圖按深度分割后的另一半,不同之處在于經(jīng)過全局池化運算后,DCMB 模塊得到的2 個特征圖在深度上的大小保持不變,而寬度和高度上的大小坍縮成了1 個點。本文方法將全局池化后得到的通道向量輸入2 個全連接層進行運算,對其進行逐像素相加和sigmoid 非線性激活以擬合通道間關聯(lián)強度,并通過將通道圖與最初的輸入特征進行加權相乘,豐富輸出特征中蘊含的各通道間相關性以及信息表達力。
本文方法采取一階段的檢測方式,在通道建模完成的特征圖后添加了cls-subnet 與reg-subnet 兩個平行的子網(wǎng),進行最終的目標分類和邊框回歸,其預測模塊的結構如圖5 所示,2 個分支的頭部共享網(wǎng)絡參數(shù)除了最后一層的輸出維度之外,其他結構完全相同。
圖5 分類與回歸子網(wǎng)的結構Fig.5 Structure of classification and regression subnet
分類與回歸子網(wǎng)共享參數(shù)的頭部由4 個kernel size=3 的卷積層組成,其中每個卷積層后緊跟的是ReLU 非線性激活操作。2 個分支的最后一個卷積層分別用于預測目標的類別分數(shù)和坐標偏移量。圖5中W、H表示當前層級中特征圖的寬高尺度,A表示錨點框的數(shù)量,K表示待檢測的類別總數(shù)。
本文實驗所使用的軟硬件環(huán)境為LINUX 64 bit操作系統(tǒng)Ubuntu 16.04,Intel?Xeon?Platinum 8163 CPU 2.5 GHz 處理器,NVIDIA Tesla V100 32 GB GPU。實驗程序在Pytorch[17]深度學習框架下使用Python 編程語言實現(xiàn)。
2.2.1 正負樣本平衡策略
對于目標檢測任務而言,在錨點的篩選階段,隸屬于背景的錨點會占據(jù)樣本空間的大半部分,這使得大量的負樣本在訓練過程中占據(jù)了主導地位,從而覆蓋正樣本的損失并壓垮分類器性能。針對該問題,本文方法引入困難樣本在線挖掘(Online Hard Example Mining,OHEM)技術[18]平衡正負樣本數(shù)量,即先對負樣本的損失按照從大到小排序,然后根據(jù)正樣本數(shù)量選取一定比例負樣本的損失進行反向傳播。本文實驗中選取的正負樣本比例為1/3,通過實驗證實,該策略的使用確實使分類器的訓練變得穩(wěn)定。
2.2.2 損失函數(shù)
模型訓練時的損失函數(shù)選取的是Multibox Loss,其計算式如式(1)所示:
其中:Lcls計算的是分類損失,函數(shù)原型是Softmax Loss;Lreg計算的是回歸損失,函數(shù)原型是SmoothL1Loss;p的取值為0 或1,表示所匹配的邊框是否屬于待檢測類別;c表示cls-subnet 預測的目標類別置信度;l表示reg-subnet 預測的目標位 置;g表示真實的目標位置;N表示匹配到的邊框總數(shù)。
2.2.3 超參數(shù)設置
本文實驗采用端到端的訓練方法,對特征圖進行嚴格的通道建模,使其能夠對圖像的位置信息和類別信息敏感。網(wǎng)絡訓練過程中Backbone 的初始化采用了Image Net[19]的預訓練參數(shù),其他網(wǎng)絡部分的初始化使用的是μ=0,σ=0.01 的正太分布,數(shù)據(jù)集使用的是PASCAL VOC[20]2007 和PASCAL VOC 2012 的訓練集,批處理數(shù)量設置為24,初始學習率為0.001,最大迭代次數(shù)為40 000,學習率的衰減尺度為25 000、35 000,nms[21]閾值為0.45,優(yōu)化動量參數(shù)為0.9。詳細訓練流程如下:
1)對PASCAL VOC 2007 和PASCAL VOC 2012數(shù)據(jù)集的訓練集圖像進行均值和標準差歸一化預處理,初始圖像三通道所對應的均值參數(shù)為means=[0.485,0.456,0.406],標準差參數(shù)為stds=[0.229,0.224,0.225]。
2)利用數(shù)據(jù)增強將網(wǎng)絡讀取的每個批次的訓練圖像以0.5 的概率進行水平翻轉處理。
3)將預處理完成的圖像分辨率大小進行標準化,Backbone 的輸入大小固定為600,經(jīng)過CNN 級聯(lián)后Backbone每階段的輸出特征圖尺度為{3002,1502,752,382,192},對應了金字塔{C1,C2,C3,C4,C5}中的每個特征層級,其中{C1,C2}由于所處位置過于底層,對機器而言語義不夠抽象,且包含的數(shù)據(jù)量太大,在一定程度上影響了網(wǎng)絡的收斂,故后續(xù)不對其進行建模。
4)采用k=3 的kmeans 算法對PASCAL VOC 數(shù)據(jù)集的ground truth 進行聚類,針對金字塔各個層級特征圖的每個像素點生成單一尺度,將{1/2,1/1,2/1}3 縱橫比的聚類錨點用于訓練。
5)訓練過程中對學習率的調(diào)整遵循衰減尺度,衰減因子為1/10。
6)采用帶動量機制的SGD[22]算法對損失函數(shù)進行優(yōu)化,直到網(wǎng)絡收斂獲得最優(yōu)的模型參數(shù)。
2.3.1 消融實驗對比
本文設計消融實驗來衡量算法所提出的BCMB 與DCMB 模塊對最終檢測結果的影響,使用公開數(shù)據(jù)集PASCAL VOC 作為訓練、測試樣本,采用平均精度均值(mean Average Precision,mAP)[23]作為定量評估指標,測試時IOU 閾值選取為0.5,實驗結果如表1 所示,其中Baseline 為未使用特征通道建模方法的鏈式融合結構,“?”表示未使用,“√”表示使用。
表1 消融實驗結果對比Table 1 Comparison of ablation experimental results %
由表1 可知,本文所提特征通道建模方法對于目標檢測任務而言是一個正面的改進,BCMB 與DCMB的使用讓最終檢測算法取得了85.8%的mAP 值,相比Baseline 方法,本文方法的mAP 值漲幅高達3.2 個百分點。本文方法以特征通道建模為切入點,利用不同維度的全局池化來構建基于廣度和深度的通道建模分支,從而讓模型在通過訓練之后能更加關注目標本身,對其位置和類別信息敏感。圖6 所示為Baseline 方法與本文改進后方法在PASCAL VOC 2007 測試數(shù)據(jù)集中的檢測樣例對比(彩色效果見《計算機工程》官網(wǎng)HTML版本),由圖6 可知本文方法在多種檢測場景下均具一定優(yōu)勢。
圖6 不同方法在VOC 2007 測試數(shù)據(jù)集下的檢測樣例對比Fig.6 Comparison of detection examples of different methods under VOC 2007 test data set
2.3.2 SOTA 檢測方法對比
將本文方法與其他SOTA 檢測方法進行對比,實驗中的訓練集采用的是公開數(shù)據(jù)集PASCAL VOC 2007 與PASCAL VOC 2012 的混合數(shù)據(jù)集,測試集采用了PASCAL VOC 2007 的公開測試集,實驗結果如表2 所示。由表2 可知,本文方法具有最高的mAP 值。其中SSD 方法由于未使用融合建模,所以mAP 偏低,而FPN、FSSD、RSSD 方法利用了融合建模獲得各層級豐富的特征語義,所以檢測精度得到了一定提升。本文方法以圖像通道的表達力為切入點,在通道建模的基礎上引入不同維度的融合分支,通過設計BCMB 和DCMB 模塊對圖像特征進行廣度和深度方向的信息增強,促使級聯(lián)特征圖能夠更好地捕捉前景目標的空間及上下文信息,因此取得了最高mAP 值。但由于模型選取的骨干網(wǎng)絡是較深的ResNet-101,且采用了不同維度的通道建模融合,使得網(wǎng)絡的計算量驟增,制約了模型推理速度的提高,在GPU 下幀率為10.2 frame/s。
表2 不同方法的實驗結果對比Table 2 Comparison of experimental results of different methods
本文方法利用新設計的BCMB 與DCMB 模塊生成聚焦特定信息的圖像通道特征圖,并將該通道圖與特征金字塔進行逐層級的加權融合,豐富特征空間的表達力。圖7 給出了本文方法在PASCAL VOC 2007 測試數(shù)據(jù)集中的檢測樣例(彩色效果見《計算機工程》官網(wǎng)HTML 版本),可以看出,本文方法在截斷、重疊、遮擋等場景下均取得了不錯的檢測效果。
圖7 本文方法在PASCAL VOC 2007 測試數(shù)據(jù)集下的檢測樣例Fig.7 Test sample of method in this paper under PASCAL VOC 2007 test data set
直接利用多尺度融合特征圖進行目標預測時魯棒性較差,為此,本文提出一種基于特征通道建模的目標檢測方法。對高維度圖像特征進行通道層級的建模,通過設計BCMB 和DCMB 模塊,分別構建聚焦目標位置信息的通道矩陣和聚焦目標類別信息的通道向量。將建模得到的通道權重與待預測特征進行加權融合,使最終的特征圖對任務目標的預測信息更敏感,提高分類和回歸子網(wǎng)的學習效果,從而在多數(shù)場景下達到較高的預測精度。在公開數(shù)據(jù)集PASCAL VOC 2007 和PASCAL VOC 2012上的實驗結果表明,本文方法的mAP 值為85.8%,與未使用通道建模的Baseline 方法相比,最高增長幅度為3.2 個百分點。本文方法本質(zhì)上是在深度神經(jīng)網(wǎng)絡的級聯(lián)過程中引入特征通道建模方法,從而使模型學習到的特征聚焦于目標物體本身。但由于通道建模對象是整個特征空間的特征圖,難免會使模型的推理速度受到影響,因此并不適合對實時性要求高的檢測場景。下一步將引入不基于錨點框的檢測方法,即不預先假設候選區(qū)域的長寬縱橫比,而是直接對不同尺度特征圖的目標中心點和寬高進行回歸,從而在保證預測精度的同時,簡化模型復雜度,提高預測速度。