吳松林,張國偉,,盧秋紅,黃 威,施建壯
(1.上海電力大學(xué)自動化工程學(xué)院,上海 200090;2.上海合時(shí)智能科技有限公司,上海 200040)
隨著人工智能時(shí)代的到來,無人車已然成為當(dāng)前技術(shù)的熱點(diǎn)。精準(zhǔn)的環(huán)境感知是無人車中最重要的技術(shù)之一,目標(biāo)識別感知與無人車的地圖構(gòu)建,甚至路徑規(guī)劃緊密相連,當(dāng)前,隨著機(jī)器視覺與深度學(xué)習(xí)的發(fā)展,這一技術(shù)取得了巨大進(jìn)步。
傳統(tǒng)的目標(biāo)檢測主要是通過特征候選區(qū)域?qū)δ繕?biāo)進(jìn)行特征提取,再進(jìn)行分類識別,隨著深度學(xué)習(xí)在人工智能領(lǐng)域的發(fā)展,各種目標(biāo)檢測算法日益得到人們的重視并取得了較好的發(fā)展,且逐步取代了傳統(tǒng)的檢測方法。在目標(biāo)檢測領(lǐng)域的算法目前大致分為兩類:一是以Fast R-CNN、R-CNN、SPP-NET等為標(biāo)志的兩階段(two-stage)目標(biāo)檢測算法,此類方法雖然檢測精度較高,但速度較慢,且對硬件設(shè)備等要求較高,在產(chǎn)品中的設(shè)備部署亦存在較大困難;二是以SSD(single shot detector)和YOLO為代表的一階段(one-stage)檢測算法,此類方法直接在輸入數(shù)據(jù)上進(jìn)行回歸分類,速率較快,精確度相對于二階段算法有所下降。在基于深度學(xué)習(xí)的目標(biāo)檢測算法中,由于SSD算法在檢測速度上的優(yōu)勢,其在工業(yè)生產(chǎn)中得到了廣泛的應(yīng)用,該算法設(shè)計(jì)上整體借鑒了YOLO 算法與Faster-RCNN 的錨框設(shè)計(jì),在保證運(yùn)行速度的情況下,相對提高了其精度。
傳統(tǒng)的SSD 目標(biāo)檢測方法在大型環(huán)境下的無人車工作時(shí),目標(biāo)檢測識別的精確度以及實(shí)時(shí)性的效果較差,主要有以下兩點(diǎn)不足:
(1)細(xì)節(jié)信息與小特征提取的語義信息不足:基礎(chǔ)層特征提取網(wǎng)絡(luò)在特征提取過程中提取的目標(biāo)信息相對不足,且存在信息丟失,在目標(biāo)識別過程中如果目標(biāo)信息較少,則會大幅度減弱算法的準(zhǔn)確性;
(2)特征提取層的空間信息不足:在大型場景下的目標(biāo)檢測時(shí),不同的空間維度代表不同的特征信息,在復(fù)雜且存在重疊區(qū)域的空間維度上,會使得檢測算法的魯棒性下降。
針對上述問題,本文在SSD 網(wǎng)絡(luò)模型的基礎(chǔ)上做了以下改進(jìn):
(1)提出一種DenseNet 網(wǎng)絡(luò)模型作為SSD網(wǎng)絡(luò)的基礎(chǔ)特征提取層,使得改進(jìn)后的神經(jīng)網(wǎng)絡(luò)具有更加具體且豐富的語義與細(xì)節(jié)信息;
(2)在特征提取基礎(chǔ)層與額外層結(jié)合軟注意力機(jī)制,賦予其空間域與通道域注意力,從而使得網(wǎng)絡(luò)能夠有效地進(jìn)行目標(biāo)信息的篩選,提高網(wǎng)絡(luò)模型的魯棒性;
(3)對SSD 網(wǎng)絡(luò)引進(jìn)反卷積操作,增加目標(biāo)感受野,訓(xùn)練過程中采用遷移學(xué)習(xí)的方式,提高訓(xùn)練模型的效率。
傳統(tǒng)SSD網(wǎng)絡(luò)是以VGG-16為特征提取的基本網(wǎng)絡(luò),并增加級聯(lián)卷積層,利用anchor 設(shè)計(jì)理念,實(shí)現(xiàn)了端到端的檢測方法。首先,傳統(tǒng)的網(wǎng)絡(luò)模型舍棄了VGG-16 的FC7 層,并將FC6、FC7 層設(shè)計(jì)為Conv6、Conv7 卷積層;其次,為了提取不同尺度特征圖,在網(wǎng)絡(luò)末端添加了Conv8_2、Conv9_2、Conv10_2、Conv11_2等多個(gè)級聯(lián)層;最后通過生成錨框,對目標(biāo)進(jìn)行回歸預(yù)測,采用非極大值抑制的算法對目標(biāo)進(jìn)行多尺度檢測。其模型結(jié)構(gòu)如圖1所示。
圖1 傳統(tǒng)SSD網(wǎng)絡(luò)模型
考慮到傳統(tǒng)SSD 算法中特征提取模塊獲得的語義信息不足和VGG 網(wǎng)絡(luò)中缺少細(xì)節(jié)信息、魯棒性不強(qiáng)等問題,本文參考目標(biāo)檢測器DSOD的替換規(guī)則,利用具有隱含監(jiān)督、特征重復(fù)利用的輕量型DenseNet 網(wǎng)絡(luò)代替VGG-16,為了提高DenseNet 網(wǎng)絡(luò)的顯存利用效率,提高算法運(yùn)行速度,本文采用有3 個(gè)稠密塊(dense block)連接的稠密網(wǎng)絡(luò),并對于Densenet網(wǎng)絡(luò)Pooling層采用3 × 3的卷積核,在引入軟注意力機(jī)制與反卷積后能夠保證通道數(shù)減少的同時(shí)避免池化操作造成的信息丟失。DenseNet 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,輸入通過Dense block 后,本文為了避免網(wǎng)絡(luò)稠密造成的通道數(shù)上升的問題,在Feauter map 每次拼接時(shí)進(jìn)入兩個(gè)1×1 卷積核進(jìn)行降維處理,然后送入池化層,之后進(jìn)入下一個(gè)稠密層,網(wǎng)絡(luò)中每一層都建立起了與前面層的連接,使特征圖進(jìn)行如圖3所示方式的重復(fù)利用,網(wǎng)絡(luò)中誤差信號可以很容易地傳播到較早的層,提高了特征提取網(wǎng)絡(luò)的有效性。
圖2 Densenet網(wǎng)絡(luò)流程圖
圖3 特征圖重復(fù)利用
上節(jié)中改進(jìn)的特征提取網(wǎng)絡(luò)在包含更多的語義信息以及細(xì)節(jié)特征的同時(shí)仍會存在一些干擾特征,這些干擾特征不但會使算法整體效率降低,而且會加大模型的計(jì)算復(fù)雜度。傳統(tǒng)SSD 模型在進(jìn)行目標(biāo)檢測時(shí)使用Conv4_3 等模塊(如圖1)產(chǎn)生的6 個(gè)不同感受野的特征圖,這種方法并沒有考慮到網(wǎng)絡(luò)特征圖中的重點(diǎn)特征信息,因此本文引進(jìn)了一種空間域與通道域混合的軟注意力機(jī)制。
注意力機(jī)制的提出主要是依據(jù)生物視覺特性,主要分為空間域、通道域、混合域。Jaderberg 等提出的Transformer Networks 是一種典型的空間域注意力機(jī)制,這一機(jī)制優(yōu)先將注意力更多地聚焦在關(guān)鍵信息中,摒棄其中的非關(guān)鍵性或無用信息,從而使神經(jīng)網(wǎng)絡(luò)有選擇性地聚焦信息,將輸入網(wǎng)絡(luò)的原始圖像變換至另一空間且保留關(guān)鍵信息,該模型如圖4所示。
圖4 Transformer Networks模型
該機(jī)制忽略了通道域中的信息,將每個(gè)通道域中的信息特征按照同等權(quán)重處理,使得空間域變換方法局限在了圖片特征提取階段,在模型網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)層應(yīng)用作用不大。而通道域注意力機(jī)制則未考慮到空間域信息,對通道內(nèi)的信息流直接全局平均池化,通道內(nèi)的局部信息則完全忽略,因此,考慮到本文算法主要面向?qū)嶋H產(chǎn)品的需求,本文算法融合了一種軟注意力機(jī)制,該軟注意力機(jī)制包含通道注意力機(jī)制(channel attention module,CAM)和空間域注意力機(jī)制(spatial attention module, SAM),且相互獨(dú)立,這種架構(gòu)可以有效地節(jié)約網(wǎng)絡(luò)模型參數(shù)和網(wǎng)絡(luò)計(jì)算力,并且可以作為獨(dú)立的模塊設(shè)置于網(wǎng)絡(luò)中。
混合域軟注意力機(jī)制是一種有效的輕量級模塊,額外開銷可以忽略不計(jì),在通道域和空間域兩個(gè)維度推斷出注意力權(quán)重,然后與原特征圖相乘,從而對特征進(jìn)行自適應(yīng)調(diào)整。其中,通道域注意力模塊CAM 設(shè)計(jì)結(jié)構(gòu)如圖5所示。在此模塊中,改進(jìn)特征提取層后的SSD模型的輸入特征圖F經(jīng)過最大池化層(MaxPool)、平均池化(AvgPool)后生成兩個(gè)特征圖F、F,其中表示輸入模型的第層特征圖,如公式(1)、公式(2)所示:
圖5 通道域注意力機(jī)制CAM
緊接著特征圖信息會傳入一個(gè)兩層神經(jīng)網(wǎng)絡(luò)中,通過Relu 激活函數(shù)學(xué)習(xí)不同通道之間的非線性特征,然后通過加和操作聚集兩個(gè)神經(jīng)網(wǎng)絡(luò)中的不同通道特征信息,最后利用Sigmoid激活函數(shù)產(chǎn)生通道的權(quán)值集合,該過程如公式(3)所示:
公式(3)中CA()即通道域注意力函數(shù)(chanel attention),()代表激活函數(shù)Sigmoid,F(xiàn)CR()表示全連接層和激活函數(shù)Relu,從而生成最終的通道域注意力特征圖。公式(1)、(2)、(3)整合后即為該模塊整個(gè)過程,如公式(4)所示:
通道域注意力機(jī)制主要注重于各個(gè)通道之間的語義特征信息,為了提取出空間域信息,本文主要利用網(wǎng)絡(luò)中淺層特征圖中豐富的空間信息與通道信息,加強(qiáng)了對特征圖中的空間依賴關(guān)系,通過對關(guān)鍵區(qū)域的特性加權(quán),有選擇性地聚焦關(guān)鍵特征,空間域注意力模塊SAM 如圖6所示。
圖6 空間域注意力機(jī)制SAM
該網(wǎng)絡(luò)中,首先輸入的特征圖經(jīng)過BN 層和ReLu 層,然后通過最大池化和平均池化得到×的特征圖,將得到的兩個(gè)特征圖進(jìn)行Concat(通道拼接)操作,之后在本文中經(jīng)過一個(gè)6 × 6 的卷積層得到注意力矩陣,將其送入到Sigmoid函數(shù)中得到M,其運(yùn)算過程見式(5)。
本文中,空間域與通道域先進(jìn)行并聯(lián)操作,再進(jìn)行串聯(lián),其網(wǎng)絡(luò)模型如圖7所示。
由圖7 可知,本文中輸入特征圖F先經(jīng)過CAM,SAM1 進(jìn)行通道域和空間域的并行操作,再與輸入特征像素加和,由公式(4)和公式(5)可知兩模塊輸出分別為M(F)、M(F),則圖中斷點(diǎn)線部分操作可表示為公式,其中⊙表示逐元素相乘,之后串聯(lián)通過SAM2并與E加和后輸出最終結(jié)果D,如式(6)和式(7)所示:
圖7 混合域模型
混合域注意力機(jī)制旨在通道域和空間域兩個(gè)維度推斷出注意力權(quán)重,通過對空間域注意力模塊的并聯(lián)疊加,學(xué)習(xí)任意兩個(gè)特征之間的聯(lián)系,加深了特征圖關(guān)鍵位置與語義信息間的表達(dá)能力。
傳統(tǒng)SSD 網(wǎng)絡(luò)在特征提取層之后采用逐層卷積的形式進(jìn)行特征圖的傳播。在檢測過程中,尺寸大的特征圖具有的感受野往往較小,而感受野較大的特征圖尺寸往往較小,所以本文為了能夠?qū)Ω惺芤拜^大的特征圖進(jìn)行尺寸放大,增加DenseNet 稠密連接網(wǎng)絡(luò)特征的重利用,引進(jìn)反卷積操作,如圖8 所示,為通道數(shù),、分別為輸入特征圖高、寬。該模塊的輸入輸出關(guān)系為公式(8),反卷積輸入輸出尺寸的關(guān)系為式(9)。其中代表輸出尺寸(size of output),代表輸入尺寸(size of input),代表填充(padding),代表步長(strides)。
圖8 反卷積操作
改進(jìn)后的總體網(wǎng)絡(luò)架構(gòu)如圖9所示。
圖9 改進(jìn)后網(wǎng)絡(luò)總體模型
本實(shí)驗(yàn)采用Windows系統(tǒng),使用PyCharm 專業(yè)版編譯器通過SSH 遠(yuǎn)程連接mist 云服務(wù)器,采用RTX3090 顯卡,24 G 顯存,實(shí)驗(yàn)框架為Pytroch1.9.0,Opencv4,CUDA11.4深度學(xué)習(xí)框架。
本文中優(yōu)化方法采用SGD 隨機(jī)梯度下降法,學(xué)習(xí)率初始設(shè)置為0.00025,權(quán)值衰減為0.0002,避免過擬合現(xiàn)象的發(fā)生,動量為0.6,模型的batchSizes 大小為18,迭代次數(shù)為20000,網(wǎng)絡(luò)中反卷積層的設(shè)置如表1所示。采用預(yù)訓(xùn)練得到的權(quán)值進(jìn)行遷移學(xué)習(xí)訓(xùn)練,提高收斂效率。
表1 反卷積層參數(shù)設(shè)置
2.2.1 數(shù)據(jù)集
本文采用的數(shù)據(jù)集為PACAL VOC2012+2007,并劃分為訓(xùn)練集、驗(yàn)證集、測試集,且對訓(xùn)練數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)。VOC 數(shù)據(jù)集包含21 個(gè)類別(包含1 個(gè)背景類),其中訓(xùn)練集為VOC2012,VOC2007,共包含大約16000 張數(shù)據(jù)集圖像,驗(yàn)證集為VOC2012 中的eval 數(shù)據(jù);測試集為VOC2007,共包含約5000張圖像。
2.2.2 評價(jià)指標(biāo)
本文采用精確度和召回率(precision-recall)關(guān)系和平均精度均值(mean average precision,mAP)作為模型評價(jià)指標(biāo)。其中Precision 和Recall 計(jì)算公式分別為式(10)和式(11),TR 表示預(yù)測與標(biāo)簽匹配一致,F(xiàn)R 表示預(yù)測目標(biāo)為背景,F(xiàn)n表示將背景誤判為檢測目標(biāo)。
平均精度均值表示所有類別的平均精度(average precision,AP)的均值,其計(jì)算方法如式(12)所示,V表示成功預(yù)測的正確數(shù)量。如果真實(shí)框與預(yù)測框的交并比(intersertion-overunion,IOU)大于0.5,則認(rèn)為檢測結(jié)果正確。
為了驗(yàn)證本文1.2 節(jié)所提特征提取網(wǎng)絡(luò)與1.3 節(jié)所提軟注意力模塊算法的有效性,本文將特征提取網(wǎng)絡(luò)Resnet、VGG16 與本文所述替代特征提取網(wǎng)絡(luò)做對比,進(jìn)行算法效果評估,結(jié)果如表2所示。實(shí)驗(yàn)結(jié)果表明本文所提改進(jìn)特征提取網(wǎng)絡(luò)能夠使得檢測精確度提升,且加強(qiáng)特征圖的重利用能夠有效應(yīng)對梯度消失問題。融合混合域注意力機(jī)制后,算法可以通過注意力自適應(yīng)的分配權(quán)重優(yōu)化特征圖,提升魯棒性,算法的平均準(zhǔn)確率有了進(jìn)一步提高。
表2 不同特征提取網(wǎng)絡(luò)的檢測結(jié)果 單位:%
在1.4 節(jié)中,本文為了進(jìn)一步提高網(wǎng)絡(luò)小感受野特征的檢測率,為算法融入了反卷積模塊,此模塊能在一定程度上消除池化操作對特征圖的影響,加入反卷積操作后本文整體算法分別與SSD+VGG16,SSD+Resnet 等一階段算法和Faster RNN 二階段算法做對比,表3 為各個(gè)算法的Precision-recall 關(guān)系。由表3 可以看出,本文算法在加入反卷積模塊后相比未加入反卷積精確度提高了0.3%,召回率提高了0.2%;相比于傳統(tǒng)的SSD 算法精確度提高了2.1%,召回率提高了4.7%,且精確率和召回率更加接近,這一指標(biāo)能夠提高算法的平均精確率;與基于Resnet的SSD網(wǎng)絡(luò)相比,本文算法精確度和召回率均有所提高;與二階段算法Faster RNN 相比本文算法精確度提高了0.2%,召回率提高了2.4%,且二者差值有了明顯縮小,F(xiàn)aster RNN二者差值為2.9%,本文算法僅存在0.5%的差值,進(jìn)一步提高了算法的魯棒性。
表3 各個(gè)算法的Precision-recall關(guān)系 單位:%
圖10 為算法改進(jìn)前后各個(gè)類別的平均精確度對比。
圖10 改進(jìn)前后算法mAP對比
由圖10 可以看出,本算法相對原始SSD 算法有較大的提高,加入了注意力機(jī)制以及反卷積模塊后,網(wǎng)絡(luò)對小尺寸特征識別和具有較小感受野的大尺寸目標(biāo)檢測精確度有顯著提高,對于鳥類的檢測平均精確度由原來的77.6%上升至92.5%,這主要是由于DenseNet 網(wǎng)絡(luò)的特征重利用有效地解決了目標(biāo)特征丟失問題,以及注意力機(jī)制對重點(diǎn)特征的權(quán)重增加,摒棄了其中的非關(guān)鍵性或無用信息,從而使神經(jīng)網(wǎng)絡(luò)有選擇性地聚焦信息并輸入網(wǎng)絡(luò)的原始圖像。
圖11、圖12 分別為改進(jìn)算法前后的可視化對比圖。由左側(cè)圖可知,算法改進(jìn)前并沒有檢測到大尺寸小感受野的卡車,改進(jìn)后的算法對大尺寸小感受野的卡車檢測得分達(dá)到了79%,有效提高了算法的精確性;在右側(cè)圖中,對于小特征的遠(yuǎn)處人物由于特征網(wǎng)絡(luò)得到的語義信息以及細(xì)節(jié)信息不足,原算法并沒有感受到遠(yuǎn)方關(guān)鍵特征,改進(jìn)后算法的混合域注意力機(jī)制對重點(diǎn)特征的權(quán)重增加,且經(jīng)過反卷積模塊消除特征損失,對遠(yuǎn)方小特征目標(biāo)檢測得分達(dá)到82%。與改進(jìn)前對比可知,算法改進(jìn)后對具有小感受野的大尺寸目標(biāo)以及小特征目標(biāo),檢測效果明顯提升。
圖11 改進(jìn)前后可視化效果對比
圖12 改進(jìn)后可視化效果圖
表4為本文算法與傳統(tǒng)SSD算法的平均精確度mAP 的對比,由對比可知,本文算法的平均精確度為86.4%,比傳統(tǒng)SSD 的平均精確度提高了7.8%,有效提高了算法的檢測精確性和魯棒性。
表4 改進(jìn)前后算法比較 單位:%
針對傳統(tǒng)SSD 算法提取目標(biāo)特征的細(xì)節(jié)信息與小特征提取的語義信息不足,且存在信息丟失,以及特征提取層的空間信息缺乏等問題,本文通過使用DenseNet 網(wǎng)絡(luò)改進(jìn)傳統(tǒng)算法的特征提取層,進(jìn)行特征重利用,增強(qiáng)目標(biāo)的細(xì)節(jié)以及語義信息;引入混合域軟注意力空間模型,在通道域以及空間域?qū)μ卣鬟M(jìn)行學(xué)習(xí),從而自適應(yīng)地分配權(quán)重,對關(guān)鍵性信息進(jìn)行重點(diǎn)關(guān)注學(xué)習(xí),優(yōu)化特征圖;同時(shí)增加反卷積層,進(jìn)一步減少池化層對特征的影響,使得算法整體魯棒性、精確度得以提升。實(shí)驗(yàn)結(jié)果表明,本文算法與原算法相比其精確度、召回率得到顯著提高,且二者差值得以顯著縮小,平均精確度比原算法提高了7.8%,且混合域網(wǎng)絡(luò)模型為即插即用型的輕量化模型,實(shí)用價(jià)值較高。但實(shí)驗(yàn)中發(fā)現(xiàn),本算法雖然只利用了DenseNet網(wǎng)絡(luò)前3層,在中間層雖已優(yōu)化通道數(shù),通道數(shù)量仍相對較大,但在可接受范圍內(nèi)。