劉 碩,葛 愿,李媛媛,胡俊祥,葉 剛
(1.安徽工程大學(xué) 高端裝備先進(jìn)感知與智能控制教育部重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000;2.安徽工程大學(xué) 電氣工程學(xué)院,安徽 蕪湖 241000;3.北京優(yōu)世達(dá)科技有限公司,北京 102433)
海上船舶障礙物識(shí)別是實(shí)現(xiàn)無人船海上安全航行的重要研究?jī)?nèi)容之一。在無人船航行的過程中,船舶障礙物的識(shí)別結(jié)果會(huì)大大影響無人船的避障精度,海上船舶識(shí)別本質(zhì)上屬于物體識(shí)別的范疇。近年來,不僅國外涌現(xiàn)出了很多實(shí)用的物體識(shí)別算法,國內(nèi)學(xué)者也提出了許多有效可行的物體識(shí)別方法[1~5]。為了提高目標(biāo)識(shí)別算法效率,Malisiewicz T等人[6]提出了一種簡(jiǎn)單高效的集成學(xué)習(xí)算法。為了提高識(shí)別大規(guī)模圖像數(shù)據(jù)集的物體的準(zhǔn)確率,Krizhevsky A等人[7]于2012年提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法。Sermanet P等人[8]提出了OverFeat目標(biāo)識(shí)別框架,實(shí)現(xiàn)了圖片中位置變化的目標(biāo)物體的識(shí)別。為了提高識(shí)別精度,Girshick R等人[9]提出了R-CNN 算法,增強(qiáng)了多訓(xùn)練數(shù)據(jù)下的模型計(jì)算能力。Simonyan K等人[10]和Szegedy C等人[11]進(jìn)一步設(shè)計(jì)了22層的深度卷積神經(jīng)網(wǎng)絡(luò),使得卷積神級(jí)網(wǎng)絡(luò)的深度對(duì)大范圍圖像識(shí)別效果顯著提高,深度神經(jīng)網(wǎng)絡(luò)的性能也有所提升。Liu W等人[12]于2016年提出了基于位置回歸的識(shí)別框架,解決了傳統(tǒng)的目標(biāo)識(shí)別框架對(duì)于多尺度物體的識(shí)別效果欠佳的問題。
本文針對(duì)無人船海上航行時(shí)視覺系統(tǒng)獲取的圖片中船舶障礙物識(shí)別不準(zhǔn)確,以及識(shí)別精度偏低的問題,提出了基于改進(jìn)單鏡頭多盒探測(cè)器(single shot multibox detector,SSD)的無人船海上船舶識(shí)別的方法。具體改進(jìn)策略為:在Tensorflow框架下,對(duì)傳統(tǒng)SSD網(wǎng)絡(luò)的第七層增加L2正則化,使得SSD每個(gè)卷積層的參數(shù)比較均衡,進(jìn)而降低模型對(duì)局部特征的敏感性,從而實(shí)現(xiàn)目標(biāo)類型的精準(zhǔn)識(shí)別。最后,通過實(shí)驗(yàn)驗(yàn)證了本文方法的可行性與優(yōu)越性。
傳統(tǒng)SSD算法主要是通過卷積神經(jīng)網(wǎng)絡(luò)提取特征圖后設(shè)置先驗(yàn)框進(jìn)行目標(biāo)識(shí)別。算法使用大特征圖來識(shí)別小目標(biāo)、小特征圖識(shí)別大目標(biāo)。傳統(tǒng)SSD直接采用卷積對(duì)不同的特征圖進(jìn)行識(shí)別結(jié)果提取。對(duì)于形狀為m×n×p的特征圖,只需采用比較小的3×3×p的卷積核得到特征值。傳統(tǒng)SSD借鑒了文獻(xiàn)[13]中錨的理念,每個(gè)單元設(shè)置尺度或長(zhǎng)寬比不同的先驗(yàn)框,預(yù)測(cè)的邊界框以這些先驗(yàn)框?yàn)榛鶞?zhǔn),在一定程度上減少了訓(xùn)練難度。一般情況下,每個(gè)單元會(huì)設(shè)置多個(gè)先驗(yàn)框,其尺度和長(zhǎng)寬比存在差異。
假設(shè)預(yù)測(cè)采用m個(gè)特征圖。每個(gè)特征圖的默認(rèn)框比例計(jì)算如式(1)所示
(1)
通過視覺系統(tǒng)獲取4張圖片,并使用傳統(tǒng)SSD算法對(duì)圖片中的船舶進(jìn)行識(shí)別,識(shí)別結(jié)果如圖1所示。
圖1 傳統(tǒng)SSD的海上船舶圖片識(shí)別
由圖1可知,傳統(tǒng)SSD未能識(shí)別圖1(a)中的船舶,識(shí)別置信度為0,圖1(b)的識(shí)別置信度為0.590,圖1(c),(d)的識(shí)別置信度分別為0.540和0.689。綜合以上信息可知,傳統(tǒng)SSD存在識(shí)別不準(zhǔn)的問題,所以傳統(tǒng)SSD需要進(jìn)一步改進(jìn)以適用于無人船海上航行時(shí)的船舶障礙物識(shí)別。
通過無人船的視覺系統(tǒng)獲取船舶圖片后,使用船舶識(shí)別算法對(duì)其實(shí)現(xiàn)識(shí)別。在進(jìn)行船舶識(shí)別時(shí),通過識(shí)別置信度來衡量船舶識(shí)別精度,通過準(zhǔn)確率來衡量模型分類器好壞。
針對(duì)傳統(tǒng)SSD算法中第七層以后的后面幾層的網(wǎng)絡(luò)對(duì)采集的特征比較敏感從而導(dǎo)致海上船舶圖片識(shí)別不夠準(zhǔn)確的問題,在傳統(tǒng)SSD網(wǎng)絡(luò)的第七和第八兩層、第七~第九的三層、第七~第十的四層、第七~第十一的五層以及第七層~十一層的每一層分別增加L2正則化對(duì)其進(jìn)行改進(jìn),通過實(shí)驗(yàn)對(duì)比選出最合適的改進(jìn)方法,改進(jìn)SSD 算法的對(duì)比框架如圖2所示。
圖2 改進(jìn)SSD 算法的整體框架圖
為了防止模型對(duì)第七層的某個(gè)特征特別敏感,在網(wǎng)絡(luò)加入L2正則化,從而使所有特征的表達(dá)能力趨于均衡。在測(cè)試集上運(yùn)行時(shí),即使某個(gè)特征上有異常突出的噪聲,并不會(huì)影響整體模型的輸出。
L2正則化也叫權(quán)重衰減,因?yàn)樗鼜?qiáng)制權(quán)重朝著0衰減(但不會(huì)為0),L2正則是基于L2范數(shù)實(shí)現(xiàn)的,即
(2)
具有較小權(quán)重矩陣的神經(jīng)網(wǎng)絡(luò)會(huì)簡(jiǎn)化模型,正則化的目的是給第七層增加一個(gè)懲罰項(xiàng),使得第七層權(quán)重矩陣的值減小,從而降低第七層的特征。使用L2正則化對(duì)特征進(jìn)行歸一化處理時(shí),模型的訓(xùn)練會(huì)受到影響。如果特征向量的L2范數(shù)為 1,最后得到的特征向量可能會(huì)很小,從而使訓(xùn)練變得非常緩慢,所以參考文獻(xiàn)[14]的設(shè)置方法,加入一個(gè)與傳統(tǒng)SSD相同大小的尺度可學(xué)習(xí)參數(shù),取值為20,讓網(wǎng)絡(luò)根據(jù)反向傳播的信息自動(dòng)學(xué)習(xí)。通過給每一個(gè)通道的特征圖都加一個(gè)尺度(參數(shù)控制歸一化后特征向量的大小),讓每個(gè)通道都自己控制學(xué)習(xí),就可對(duì)向量的模進(jìn)行伸縮,從而讓全局語義信息不會(huì)因?yàn)樘卣飨蛄康闹堤《缓雎?,使得?xùn)練更穩(wěn)定且性能更好。
作為標(biāo)準(zhǔn)數(shù)據(jù)集,Pascal VOC[15]2007數(shù)據(jù)集是衡量圖像分類識(shí)別能力的基準(zhǔn)。為了提高本文對(duì)海上船舶障礙物識(shí)別算法的有效性,制作了船舶數(shù)據(jù)集。在網(wǎng)上收集了1 138張具有船舶信息的圖片。同時(shí),為了對(duì)預(yù)處理后的改進(jìn)SSD算法進(jìn)行定量評(píng)估對(duì)所有收集到的圖像的船舶障礙物目標(biāo)進(jìn)行人工標(biāo)注類別和位置。最后,制作了包含1 000張訓(xùn)練圖片和138張測(cè)試圖片的VOC2007船舶數(shù)據(jù)集。
由于從網(wǎng)絡(luò)搜集的圖片質(zhì)量和數(shù)量有限,從而導(dǎo)致VOC2007船舶數(shù)據(jù)集沒有文獻(xiàn)[12]的數(shù)據(jù)集質(zhì)量好,所以基于傳統(tǒng)SSD識(shí)別置信度以及準(zhǔn)確率比文獻(xiàn)[12]略低。
將SSD第7層正則化的改進(jìn)算法命名為方法1;SSD第8層正則化改進(jìn)算法命名為方法2;SSD第9層正則化改進(jìn)算法命名為方法3;SSD第10層正則化改進(jìn)算法命名為方法4;SSD第11層正則化改進(jìn)算法命名為方法5;SSD第7,8層正則化改進(jìn)算法命名為方法6;SSD第7,8,9層正則化改進(jìn)算法命名為方法7;SSD第7,8,9,10層正則化改進(jìn)算法命名為方法8;SSD第7,8,9,10,11層正則化改進(jìn)算法命名為方法9;對(duì)傳統(tǒng)SSD以及這9種方法分別做數(shù)據(jù)集訓(xùn)練以及對(duì)比測(cè)試實(shí)驗(yàn)。實(shí)驗(yàn)是在tensorflow框架下,通過在配置為英特爾 Core i7—8750H處理器、主頻為2.20 GHz,顯卡為GTX1050Ti,顯存為4 G的主機(jī)上運(yùn)行JetBrains PyCharm Community Edition 2018.3.4 x64軟件來實(shí)現(xiàn)的。通過加載預(yù)訓(xùn)練好的VGG16模型和制作好的船舶數(shù)據(jù)集并采用卷積步長(zhǎng)為8進(jìn)行改進(jìn)SSD網(wǎng)絡(luò)模型的訓(xùn)練,最后對(duì)改進(jìn)SSD算法與傳統(tǒng)SSD算法進(jìn)行對(duì)比測(cè)試。
本文設(shè)置的置信度IOU為0.5,當(dāng)置信度高于0.5時(shí),船舶才能被識(shí)別成功,為正樣本,在折線圖中顯示置信度大于0;反之,則為負(fù)樣本,置信度小于0。將實(shí)驗(yàn)得出10種方法對(duì)應(yīng)的數(shù)據(jù)繪制成折線圖,如圖3所示。
圖3 傳統(tǒng)SSD與9種改進(jìn)方法數(shù)據(jù)對(duì)比
由圖3可知,除方法9外,其余改進(jìn)方法均優(yōu)于傳統(tǒng)SSD算法,所以引入新的評(píng)價(jià)指標(biāo)進(jìn)一步篩選出最優(yōu)改進(jìn)方法。
由于本文研究的分類問題屬于二分類,所以引入準(zhǔn)確率來評(píng)價(jià)改進(jìn)模型。準(zhǔn)確率的含義是被分對(duì)的樣本數(shù)除以所有的樣本數(shù),準(zhǔn)確率越高,分類器越好,準(zhǔn)確率的計(jì)算公式如下
(3)
式中TP為正類預(yù)測(cè)為正類數(shù)的個(gè)數(shù),TN為負(fù)類預(yù)測(cè)為負(fù)類數(shù)的個(gè)數(shù),F(xiàn)P為負(fù)類預(yù)測(cè)為正類數(shù)誤報(bào)的個(gè)數(shù),F(xiàn)N為正類預(yù)測(cè)為負(fù)類數(shù)漏報(bào)的個(gè)數(shù)。本文將TP和TN歸為正樣本,F(xiàn)P和FN歸為負(fù)樣本。
傳統(tǒng)SSD算法與9種改進(jìn)方法的正負(fù)樣本的信息如表1所示,表中總樣本為138,通過公式計(jì)算得到相應(yīng)的準(zhǔn)確率,由表中數(shù)據(jù)可知,改進(jìn)后的算法除方法9以外,準(zhǔn)確率均高于傳統(tǒng)SSD算法,改進(jìn)的方法中準(zhǔn)確率最高的方法為方法1,方法3和方法5。
表1 改進(jìn)9種方法與傳統(tǒng)SSD的準(zhǔn)確率
通過文獻(xiàn)[12]知,SSD對(duì)大物體的檢測(cè)效果比較好,所以為了進(jìn)一步篩選出最優(yōu)方法,本文通過對(duì)138個(gè)對(duì)象中58個(gè)大物體進(jìn)行傳統(tǒng)SSD與3種改進(jìn)方法進(jìn)行識(shí)別,獲取對(duì)應(yīng)的正負(fù)樣本,并進(jìn)行準(zhǔn)確率的計(jì)算,通過對(duì)比準(zhǔn)確率獲得最優(yōu)改進(jìn)方法,具體信息如表2所示。
表2 最優(yōu)3種方法與傳統(tǒng)SSD的準(zhǔn)確率
由表1知,方法1的準(zhǔn)確率為0.931,大于傳統(tǒng)SSD以及方法3和方法5,所以方法1為最優(yōu)方法。綜合以上信息,本文采用對(duì)第七層進(jìn)行正則化改進(jìn),最優(yōu)改進(jìn)方法如圖4所示。
圖4 最優(yōu)改進(jìn)SSD 算法的整體框架圖
將方法1與傳統(tǒng)SSD單獨(dú)進(jìn)行138個(gè)樣本的識(shí)別對(duì)比,識(shí)別結(jié)果的折線圖如圖5所示。
圖5 方法1與傳統(tǒng)SSD的識(shí)別對(duì)比
由圖5可知,改進(jìn)后的算法對(duì)船舶障礙物的識(shí)別置信度更高。在機(jī)器學(xué)習(xí)方法中,泛化能力通俗來講就是指學(xué)習(xí)到的模型對(duì)未知數(shù)據(jù)的預(yù)測(cè)能力。在本文中,通過置信度以及準(zhǔn)確率來評(píng)價(jià)改進(jìn)SSD算法的泛化能力,所以綜合表1,表2以及圖5可知,改進(jìn)SSD模型的泛化能力也有所提升。
對(duì)圖1中四張船舶圖片重新使用改進(jìn)SSD算法進(jìn)行識(shí)別,識(shí)別結(jié)果如圖6所示。
圖6 四張海上船舶圖片識(shí)別效果
由圖6可知,圖6(a)能夠識(shí)別出船舶并且識(shí)別置信度達(dá)到了0.524,圖6(b)的識(shí)別置信度達(dá)到了0.676(>0.590),高于圖1(b)的識(shí)別置信度。當(dāng)海水顏色與船舶顏色差別較大時(shí),圖6(c),(d)的識(shí)別置信度分別達(dá)到了0.712(>0.540)和0.751(>0.689),高于圖1(c),(d)的識(shí)別置信度。
無人船海上安全自主航行離不開對(duì)障礙物的準(zhǔn)確識(shí)別。使用傳統(tǒng)SSD算法識(shí)別船舶障礙物會(huì)出現(xiàn)無法識(shí)別或者識(shí)別置信度偏低的現(xiàn)象。因此,本文提出改進(jìn)SSD算法進(jìn)行無人船的障礙物(其他船舶)的識(shí)別,解決了船舶識(shí)別置信度偏低以及傳統(tǒng)SSD算法的分類器對(duì)部分船舶障礙物無法分類的問題,同時(shí)也提高了無人船航行時(shí)遇到的正常船舶障礙物的識(shí)別置信度以及分類器的性能,為無人船海上安全自主航行提供了保障。
本文主要是針對(duì)于靜止船舶進(jìn)行識(shí)別目標(biāo)識(shí)別,而海上動(dòng)態(tài)目標(biāo)的識(shí)別也尤為重要,對(duì)動(dòng)態(tài)的海上船舶障礙物進(jìn)行多幀識(shí)別是海上動(dòng)態(tài)避障的關(guān)鍵。所以下一步工作將會(huì)視頻中的多幀圖像,對(duì)海上動(dòng)態(tài)船舶障礙物進(jìn)行識(shí)別。