陳任飛,彭 勇,*,吳 劍,歐陽(yáng)文宇,李 昱,岳廷秀
(1.大連理工大學(xué) 水利工程學(xué)院,遼寧 大連 116024;2.大連理工大學(xué) 人工智能大連研究院,遼寧 大連 116000)
漂浮物會(huì)對(duì)水質(zhì)、水面景觀、供水、水產(chǎn)和航運(yùn)等造成不利影響,加強(qiáng)水面漂浮物檢測(cè)與打撈對(duì)水利工程具有重要意義[1]。如譚磊[2]、徐曉暉[3]、Qiao[4]、Hu[5]和Li[6]等在應(yīng)用過程中發(fā)現(xiàn),傳統(tǒng)水面漂浮物檢測(cè)典型方法普遍存在效率低、精度低[7]等問題,特別是動(dòng)態(tài)水面和漂浮物不規(guī)則、圖像特征提取相對(duì)困難、漂浮物的頻繁移動(dòng)等增加了檢測(cè)難度[8],難以滿足復(fù)雜水面場(chǎng)景的大范圍漂浮物自動(dòng)化檢測(cè)作業(yè)的需求[9]。隨著人工智能技術(shù)的快速發(fā)展,基于深度學(xué)習(xí)的圖像識(shí)別算法為漂浮物智能識(shí)別與定位提供了新的技術(shù)支撐[10-12]。目前,基于深度學(xué)習(xí)的水面漂浮物檢測(cè)算法沿著兩條主線發(fā)展:一是以Faster RCNN[13]、CA-Faster R-CNN[14]為代表的基于候選框方式的檢測(cè)主線,能夠有效確保漂浮物檢測(cè)精度,但檢測(cè)速度無法滿足實(shí)時(shí)檢測(cè)需求;二是以YOLO[15]、SSD[16]和Retain-Net[17]為代表的一體化檢測(cè)算法,檢測(cè)速度要明顯快于前者,但漂浮物檢測(cè)精度略有下降[18],其中SSD檢測(cè)算法的準(zhǔn)確率和檢測(cè)速度相對(duì)較優(yōu),成為當(dāng)前水面漂浮物目標(biāo)檢測(cè)的主流方法[19]。上述檢測(cè)算法適用于一定范圍內(nèi)且物理環(huán)境復(fù)雜度相對(duì)較低的漂浮物目標(biāo)檢測(cè),但水面漂浮物的識(shí)別環(huán)境受到大量噪聲和環(huán)境干擾,使得不同尺度圖像特征的提取相對(duì)困難。此外,現(xiàn)有漂浮物檢測(cè)算法結(jié)構(gòu)復(fù)雜且模型內(nèi)存成本高,無法滿足低性能檢測(cè)設(shè)備的實(shí)時(shí)應(yīng)用需求,難以得到廣泛推廣應(yīng)用[20]。
輕量化深度學(xué)習(xí)模型[21]和動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)[22]為平衡目標(biāo)檢測(cè)精度、效率和計(jì)算復(fù)雜度提供了新思路。以MobileNet為代表的輕量化深度學(xué)習(xí)模型通過引入反向殘差網(wǎng)絡(luò)減少參數(shù)計(jì)算量,并憑借檢測(cè)速度和模型內(nèi)存的優(yōu)勢(shì)在車輛檢測(cè)[23]、海珍品識(shí)別[24]及水底生物檢測(cè)領(lǐng)域[25]廣泛應(yīng)用。動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)通過結(jié)合動(dòng)態(tài)門(Dynamic gating)操作原則和自適應(yīng)選擇分支(Adaptively Selected Branch)方法對(duì)目標(biāo)物輸出特征進(jìn)行量化,通過優(yōu)化計(jì)算資源的分配策略實(shí)現(xiàn)了目標(biāo)檢測(cè)準(zhǔn)確性和計(jì)算復(fù)雜度之間的平衡,提升了動(dòng)態(tài)推理的合理性。目前,動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)主要應(yīng)用于降低浮點(diǎn)數(shù)運(yùn)算量(FLOPs),如:在COCO minival上將Faster R-CNN的特征金字塔網(wǎng)絡(luò)(FPN)替換為inception FPN,平均檢測(cè)精度提升了1.6%;而引入動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)后,在保持同等性能的情況下FLOPs減少約40%。當(dāng)前,水環(huán)境檢測(cè)領(lǐng)域的研究主要集中在提升算法的檢測(cè)精度,缺乏對(duì)漂浮物檢測(cè)算法的輕量化、精度和效率均衡化問題的全面系統(tǒng)研究,無法實(shí)現(xiàn)水面漂浮物的實(shí)時(shí)精準(zhǔn)檢測(cè)。
本文針對(duì)現(xiàn)有目標(biāo)檢測(cè)算法精度、效率和復(fù)雜水面環(huán)境的干擾問題,整合圖像去噪、增強(qiáng)處理和深度學(xué)習(xí)框架,提出了一種基于改進(jìn)SSD算法的水面漂浮物檢測(cè)方法。首先,引入稀疏分解的思想對(duì)低質(zhì)量的水面漂浮物圖像進(jìn)行圖像降噪和增強(qiáng)處理,以保證預(yù)處理后的圖像能夠提供足夠、正確的特征信息,初步降低復(fù)雜水面環(huán)境的影響;其次,選擇結(jié)合錨框機(jī)制和回歸思想的檢測(cè)器(SSD)作為檢測(cè)框架,基于輕量級(jí)MobileNetV2網(wǎng)絡(luò)設(shè)計(jì)了特征提取網(wǎng)絡(luò),從而替代VGG16基礎(chǔ)網(wǎng)絡(luò),同時(shí)將動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)引入到特征提取網(wǎng)絡(luò)中,以確保用于預(yù)測(cè)的特征圖具有適當(dāng)?shù)姆直媛屎蛷?qiáng)語義特征;最后,采用反向殘差模塊和深度可分離卷積,并應(yīng)用模型量化誤差校正檢測(cè)網(wǎng)絡(luò)的卷積層和全連接層,降低反向傳播的參數(shù)數(shù)量和內(nèi)存成本。
SSD算法作為一體化卷積網(wǎng)絡(luò)檢測(cè)方法,采用卷積對(duì)不同尺度特征圖進(jìn)行檢測(cè),以先驗(yàn)框?yàn)榛鶞?zhǔn)計(jì)算預(yù)測(cè)偏差,將特征提取、位置回歸和分類任務(wù)集成到網(wǎng)絡(luò)中進(jìn)行訓(xùn)練[26],具備速度快和精度高的優(yōu)勢(shì)。該算法以VGG16為基礎(chǔ)網(wǎng)絡(luò),引入輔助卷積和池化層等結(jié)構(gòu),將多尺度特征圖用于不同尺度目標(biāo)物檢測(cè)。
本文將SSD算法作為水面漂浮物檢測(cè)的基本框架,主要原因在于:1)SSD算法可以直接預(yù)測(cè)目標(biāo)物體分類和邊界框,有效降低訓(xùn)練難度;2)SSD算法結(jié)合了Faster R-CNN算法的錨框機(jī)制和YOLO算法的回歸思想,進(jìn)行不同尺度圖像特征提取,減少了訓(xùn)練參數(shù)數(shù)量。因此,SSD檢測(cè)算法可以在不同尺度圖像中達(dá)到一定的目標(biāo)識(shí)別精度和速度,提高實(shí)時(shí)檢測(cè)性能。但受限于復(fù)雜的水面漂浮物檢測(cè)環(huán)境和計(jì)算量有限的硬件性能,SSD檢測(cè)算法的檢測(cè)精度和速度依然無法滿足水面漂浮物實(shí)時(shí)檢測(cè)的需求。
傳統(tǒng)SSD算法中VGG16基礎(chǔ)網(wǎng)絡(luò)的參數(shù)訓(xùn)練依賴于高性能的硬件設(shè)備[27],而基于反向殘留網(wǎng)絡(luò)的MobileNetV2-FPN具有參數(shù)少和速度快的優(yōu)勢(shì),能夠有效解決實(shí)際水面漂浮物檢測(cè)任務(wù)中的硬件和檢測(cè)速度問題[28]。其中,MobileNetV2作為一個(gè)輕量化卷積神經(jīng)網(wǎng)絡(luò),在MobileNetV1的基礎(chǔ)上加入了線性bottlenecks和反轉(zhuǎn)殘差模塊,構(gòu)成了高效的基本模塊,進(jìn)一步減少模型的實(shí)際操作數(shù)。特征金字塔網(wǎng)絡(luò)(feature pyramid network,F(xiàn)PN)通過融合低層特征的高分辨率和高層特征的高語義信息,在每個(gè)融合后的特征層上進(jìn)行獨(dú)立預(yù)測(cè),實(shí)現(xiàn)了不同尺度的特征融合。雖然FPN進(jìn)行了多尺度信息的融合,但未解決對(duì)同一特征層中的多尺度問題,而動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)(dynamic feature pyramid network,DyFPN)能夠采用自適應(yīng)選擇卷積方法解決該問題,同時(shí)在相同的參數(shù)量下相較于FPN具有更高的性能。為滿足高精度、實(shí)時(shí)性和輕量化的水面漂浮物檢測(cè)要求,對(duì)SSD算法作出以下改進(jìn):1)參考MobileNetV2的網(wǎng)絡(luò)結(jié)構(gòu),在MobileNetV2網(wǎng)絡(luò)預(yù)測(cè)層中將深度可分離卷積代替?zhèn)鹘y(tǒng)標(biāo)準(zhǔn)卷積,將其拆分為深度卷積(depthwise convolution,DW)和逐點(diǎn)卷積(poinwise convolution,PW),并將MobileNetV2網(wǎng)絡(luò)卷積中的多尺度結(jié)構(gòu)通過跨層連接構(gòu)建DyFPN,重新設(shè)計(jì)SSD算法中的基礎(chǔ)網(wǎng)絡(luò);2)采用模型量化方法量化深度分離卷積和標(biāo)準(zhǔn)卷積層的參數(shù),減少參數(shù)規(guī)模,降低計(jì)算復(fù)雜度,最大化降低設(shè)備運(yùn)行成本;3)根據(jù)實(shí)際檢測(cè)設(shè)備的計(jì)算能力和水面漂浮物的檢測(cè)需求,訓(xùn)練出能夠滿足實(shí)際需求的視覺檢測(cè)模型。改進(jìn)后的算法框架如圖1所示。

圖1 改進(jìn)SSD檢測(cè)算法的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of improved SSD detection algorithm
改進(jìn)的SSD算法由骨干網(wǎng)絡(luò)(圖1(a))和輔助網(wǎng)絡(luò)(圖1(b))組成網(wǎng)絡(luò)模塊。MobileNetV2的核心由1個(gè)標(biāo)準(zhǔn)卷積層和17個(gè)反向殘差模塊組成,如圖1(c)所示。同時(shí),參考ResNet的殘差模塊,采用1*1→3*3→1*1的模式,首先,采用PW增加特征通道數(shù),將膨脹系數(shù)設(shè)置為6,使用DW過濾大量通道的空間信息并提取特征,引入寬度乘數(shù)β∈[0,1]和分辨率乘數(shù)ρ,優(yōu)化并減少模型冗余參數(shù);其次,使用PW卷積以減少通道數(shù),通過線性轉(zhuǎn)換形成低維線性瓶頸,將ReLU6代替?zhèn)鹘y(tǒng)的非線性激活函數(shù)ReLU,將最大輸出值限制為6。調(diào)整后的反向殘差模塊是由1個(gè)1*1的卷積層、1個(gè)3*3的DW卷積、批量標(biāo)準(zhǔn)化(Batch normalize,Bn)和Relu6激勵(lì)函數(shù)組成,如圖1(d)所示。
骨干網(wǎng)絡(luò)中的DyFPN融合MobileNetV2網(wǎng)絡(luò)的輸出特征圖,在不增加過多參數(shù)的情況下,能夠有效提高水面漂浮物檢測(cè)精度。首先,將特征圖自上而下進(jìn)行兩次上采樣(up-sampling),將上采樣結(jié)果與自下而上采樣產(chǎn)生的特征圖進(jìn)行橫向連接并融合;其次,采用3*3卷積層對(duì)融合特征圖進(jìn)行卷積操作,動(dòng)態(tài)調(diào)整每個(gè)不同比例的特征地圖的大小,通過融合MobileNetV2網(wǎng)絡(luò)獲取的多尺度特征圖來提高水面漂浮物檢測(cè)精度,如圖1(e)所示。
改進(jìn)后的骨干網(wǎng)絡(luò)MobileNetV2-DyFPN網(wǎng)絡(luò)模型如圖2所示,每一行描述了一個(gè)重復(fù)n次并由一個(gè)或多個(gè)相同模塊層組成的序列。圖2中,t代表殘差塊中擴(kuò)展的維度,c代表特征圖輸出的維數(shù),s代表卷積操作的步長(zhǎng),n代表當(dāng)前行卷積操作被重復(fù)應(yīng)用次數(shù)。在序列1中以標(biāo)準(zhǔn)卷積層Conv2d進(jìn)行操作,將卷積核設(shè)置為24,以確保完整地提取輸入圖像的特征信息;在序列2~8中采用瓶頸倒置殘差(bottleneck)進(jìn)行卷積操作;在序列9~12中采用標(biāo)準(zhǔn)卷積Conv2d進(jìn)行自上而下和自下而上的動(dòng)態(tài)特征金字塔特征提取,構(gòu)建多個(gè)具有不同分辨率和強(qiáng)語義信息的低成本預(yù)測(cè)特征圖,在序列13中采用深度可分離卷積代替?zhèn)鹘y(tǒng)標(biāo)準(zhǔn)卷積Conv2d進(jìn)行特征預(yù)測(cè)。

圖2 改進(jìn)后的MobileNetV2-DyFPN網(wǎng)絡(luò)模型Fig.2 Improved MobileNetV2-DyFPN network model
輔助網(wǎng)絡(luò)圖1(b)的構(gòu)建是為了量化深度可分離卷積和傳統(tǒng)標(biāo)準(zhǔn)卷積的參數(shù),以降低算法的計(jì)算復(fù)雜度和內(nèi)存成本。采用模型量化方法Quantized-CNN對(duì)卷積層進(jìn)行誤差量化,將每一層特征圖輸出的誤差進(jìn)行最小化,并融合前一層量化過程中的誤差,將誤差量化的最優(yōu)目標(biāo)設(shè)置為G:
在實(shí)際水面漂浮物檢測(cè)模型量化應(yīng)用中,以超參數(shù)K和V計(jì)算水面漂浮物識(shí)別效率和精度損失,網(wǎng)絡(luò)的計(jì)算復(fù)雜度和內(nèi)存成本計(jì)算方式見表1和2。表1、2中,Cs和Ct分別代表相鄰的前層神經(jīng)元和后層神經(jīng)元,K和V分別代表空間矩陣和子碼字,ds2、dt2和dk2分別代表不同神經(jīng)元的核寬度。

表1 CNN全連接層和卷積層量化前后計(jì)算復(fù)雜度Tab.1 Computation of fully connected and convolutional layers of CNN before and after quantization

表2 CNN全連接層和卷積層量化前后內(nèi)存成本Tab.2 Memory consumption of fully connected and convolutional layers of CNN before and after quantization
為了選擇最優(yōu)的漂浮物檢測(cè)模型,采用多種評(píng)價(jià)標(biāo)準(zhǔn)來評(píng)估水面漂浮物檢測(cè)算法的性能,包括準(zhǔn)確率P、召回率R、綜合評(píng)價(jià)指數(shù)F1和平均精度MAP,具體的計(jì)算見式(2)~(5)。
式(2)~(5)中:TPN代表正確的檢測(cè)結(jié)果;FPN代表錯(cuò)誤的檢測(cè)結(jié)果;TPN+FPN代表檢測(cè)框的總數(shù)量;FNN代表漏檢的結(jié)果;TPN+FNN代表真實(shí)框的總數(shù)量;綜合評(píng)價(jià)指數(shù)F1主要是在準(zhǔn)確率和召回率不一致時(shí)而進(jìn)行評(píng)估的方法;Nc為漂浮物照片總數(shù)量;Pc為每一個(gè)不同置信閾值下漂浮物的檢測(cè)精度;c代表目標(biāo)物種類,本文中的漂浮物指的是漂浮水草(水葫蘆),c值為1。平均精度值MAP是所選11個(gè)不同置信閾值(召回值)的精度平均值。由于本文的目的是識(shí)別漂浮物數(shù)量和位置,要有效避免誤檢,而召回率相對(duì)于準(zhǔn)確率重要程度更高,綜合評(píng)價(jià)指標(biāo)F1能夠平衡準(zhǔn)確率和召回率之間的關(guān)系,平均準(zhǔn)確率MAP作為性能評(píng)價(jià)最全面的指標(biāo),其重要程度最高。因此,確定性能指標(biāo)的優(yōu)先級(jí)順序?yàn)镸AP>F1>R>P。
利用預(yù)測(cè)框與真實(shí)框的交并比(RIOU)作為判斷預(yù)測(cè)真假的前提,若RIOU大于一定閾值,將刪除此類預(yù)測(cè)框,保留并輸出得分最高的預(yù)測(cè)框,將這一過程稱為非最大抑制(NMS)算法。非最大抑制將過濾多余預(yù)測(cè)框,保證分類網(wǎng)絡(luò)在卷積核中心分類的準(zhǔn)確性[29]。Pascal Voc2010數(shù)據(jù)集以RIOU=0.5為交并比閾值[30],再根據(jù)預(yù)測(cè)框內(nèi)類別置信度進(jìn)行判定:若RIOU>0.5,認(rèn)為檢測(cè)結(jié)果為真樣例;否則,認(rèn)為是假樣例。
首先,通過多種方式構(gòu)建水面漂浮物圖像數(shù)據(jù)集;其次,采用圖像降噪和增強(qiáng)算法對(duì)圖像進(jìn)行預(yù)處理,提高采集圖像的精度;然后通過LabelImg工具對(duì)圖像數(shù)據(jù)進(jìn)行標(biāo)注,并將其分為測(cè)試集、訓(xùn)練集和驗(yàn)證集,同時(shí)對(duì)改進(jìn)的SSD算法進(jìn)行遷移學(xué)習(xí)訓(xùn)練,采用隨機(jī)梯度下降算法(SGD)得到最優(yōu)權(quán)重檢測(cè)模型;最后,將訓(xùn)練好的目標(biāo)檢測(cè)模型應(yīng)用于水面漂浮物的實(shí)時(shí)檢測(cè)。
復(fù)雜多變的水面環(huán)境為采集水面漂浮物圖像帶來一定的挑戰(zhàn),通過攝像頭監(jiān)控系統(tǒng)獲取漂浮物視頻,采用視頻幀處理獲得7 872張漂浮物圖像數(shù)據(jù)。為了進(jìn)一步提高數(shù)據(jù)集的多樣性,在實(shí)驗(yàn)室環(huán)境下拍攝2 267張圖像數(shù)據(jù),并從互聯(lián)網(wǎng)端下載3 363張圖像數(shù)據(jù),共采集13 502張漂浮物數(shù)據(jù)用于模型的訓(xùn)練、驗(yàn)證及測(cè)試。
為了降低水面環(huán)境對(duì)漂浮物圖像質(zhì)量的影響,采用圖像降噪算法進(jìn)行圖像預(yù)處理,處理過程如圖3所示。

圖3 圖像降噪處理過程Fig.3 Process of image noise reduction processing
通過數(shù)據(jù)降噪和增強(qiáng),共獲得148 511張漂浮物數(shù)據(jù)樣本圖像。同時(shí),按照數(shù)據(jù)集劃分策略[31],將數(shù)據(jù)集按照7.0∶2.5∶0.5劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,并將數(shù)據(jù)集轉(zhuǎn)換為TFRecord格式,以提高數(shù)據(jù)集讀取效率。表3為水面漂浮物數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù),平均尺寸指邊界框的面積在整幅圖像中所占的百分比。

表3 水面漂浮物數(shù)據(jù)集統(tǒng)計(jì)Tab.3 Statistic of the floating objects dataset
本文采用的計(jì)算設(shè)備硬件配置為Inter(R) Xeon(R)E5-2620 CPU和1個(gè)NVIDIA RTX3080 GPU,使用Python3 編程語言和TensorFlow深度學(xué)習(xí)框架構(gòu)建深度學(xué)習(xí)模型。針對(duì)本文改進(jìn)的SSD算法,主要對(duì)參數(shù)Learning rate、Learning rate decay factor、Epoch與Batch size的選擇,Learning rate設(shè)置了2組備選參數(shù),分別為0.010、0.001;Learning rate decay factor設(shè)置了3組備選參數(shù),分別為0.50、0.90、0.99;Batch size設(shè)置了3組備選參數(shù),分別為8、16、32;Epoch設(shè)置了4組備選參數(shù),分別為5、10、20、40。為驗(yàn)證神經(jīng)網(wǎng)絡(luò)中各參數(shù)對(duì)模型影響的一般規(guī)律,設(shè)計(jì)對(duì)比試驗(yàn),并對(duì)比6個(gè)方案的檢測(cè)結(jié)果,具體參數(shù)設(shè)置及檢測(cè)結(jié)果見表4。

表4 不同參數(shù)組合對(duì)應(yīng)的檢測(cè)結(jié)果評(píng)價(jià)Tab.4 Evaluation of test results corresponding to different parameter combinations
對(duì)比6項(xiàng)試驗(yàn)?zāi)P蜋z測(cè)結(jié)果發(fā)現(xiàn):在控制Learning rate不變的情況下,當(dāng)Epoch數(shù)值增加,模型使用訓(xùn)練集中的所有樣本進(jìn)行正向和反向傳播的迭代次數(shù)增加;Batch size增加后一定程度提高了檢測(cè)精確度。試驗(yàn)1~3中Learning rate設(shè)置為0.01,對(duì)于模型的梯度下降過程不能較好地收斂到全局最小值;在網(wǎng)絡(luò)模型訓(xùn)練初始階段,設(shè)置較大的Learning rate有助于模型盡快收斂;但是在訓(xùn)練后期,較大的Learning rate會(huì)讓梯度下降在權(quán)重更新的時(shí)候出現(xiàn)波動(dòng)影響收斂。試驗(yàn)4~6中Learning rate設(shè)置為0.001,模型的檢測(cè)精確度明顯提升,在Learning rate decay factor取值0.9時(shí)檢測(cè)精確度最高;若Learning rate decay factor取值過小則不能使模型逃脫局部最小值陷阱,反之容易造成模型跳過局部最小值。基于上述試驗(yàn)得到了模型參數(shù)組合,本文將Iteration設(shè)置為150 000次,Save interval secs設(shè)置為600 s,Weight decay設(shè)置為0.000 5,具體參數(shù)設(shè)置見表5。

表5 模型網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置Tab.5 Setting of model network training parameters
網(wǎng)絡(luò)模型損失函數(shù)的變化情況如圖4所示。由圖4可知,訓(xùn)練損失函數(shù)在40 000次迭代內(nèi)迅速下降,在40 000~60 000次迭代中平緩下降,在60 000次迭代后穩(wěn)定,之后保持輕微波動(dòng)。過多的訓(xùn)練會(huì)存在過擬合的風(fēng)險(xiǎn),因此在30 000次迭代后,每20 000次迭代導(dǎo)出權(quán)重模型,最終選擇其中5個(gè)權(quán)重模型(11 027.ckpt、38 763.ckpt、49 878.ckpt、87 352.ckpt和102 876.ckpt,編號(hào)為1~5)評(píng)估和選擇最佳的目標(biāo)檢測(cè)模型。

圖4 網(wǎng)絡(luò)模型損失函數(shù)的變化情況Fig.4 Training loss of improved SSD algorithm
本文5個(gè)模型在驗(yàn)證集上對(duì)應(yīng)的性能指標(biāo)見表6。表6顯示:模型1、2和3相較于模型4和5性能較差;對(duì)于模型4和5,按照性能指標(biāo)的優(yōu)先級(jí)選擇模型4最優(yōu)。此外,參考COCO數(shù)據(jù)集將RIOU設(shè)定為0.5。為進(jìn)一步驗(yàn)證RIOU取值的合理性,將模型4分別在不同的RIOU取值下的準(zhǔn)確率、召回率、平均精度和漂浮物誤檢數(shù)量指標(biāo)進(jìn)行對(duì)比分析。驗(yàn)證集上不同RIOU值下模型的性能水平如圖5所示。

表6 驗(yàn)證集上5個(gè)權(quán)重模型的性能參數(shù)Tab.6 Performance parameters of the five weight models on the validation set

圖5 驗(yàn)證集上不同RIOU值下模型的性能水平Fig.5 Performance levels of the model under different RIOU values on the validation set
由圖5可知:當(dāng)RIOU設(shè)置為0.5時(shí),準(zhǔn)確率、召回率和平均精度指標(biāo)開始呈現(xiàn)下降趨勢(shì),漂浮物誤檢數(shù)量呈現(xiàn)顯著上升趨勢(shì);準(zhǔn)確率和召回率分別達(dá)到了95.86%和93.64%,而F1值為94.74%,平均精度高達(dá)94.26%,驗(yàn)證了改進(jìn)后的SSD算法網(wǎng)絡(luò)結(jié)構(gòu)的有效性。
本文在水面漂浮物圖像預(yù)處理中采用了圖像降噪和增強(qiáng)算法,為了分析前后的性能變化,在圖像去噪和增強(qiáng)前后分別采用了一組數(shù)據(jù)集用于訓(xùn)練和測(cè)試,結(jié)果見表7。由表7可知,模型在圖像降噪和增強(qiáng)處理后的性能參數(shù)提高約5%,說明預(yù)處理有效提高了檢測(cè)精度。

表7 圖像去噪增強(qiáng)前后模型性能參數(shù)對(duì)比Tab.7 Comparison of performance parameters before and after image denoising and enhancement
為了驗(yàn)證模型對(duì)水面漂浮物多尺度檢測(cè)能力,分別在真實(shí)水面環(huán)境和實(shí)驗(yàn)室環(huán)境中檢測(cè)了不同大小的漂浮物,根據(jù)漂浮物的像素面積占圖像總像素面積的百分比將漂浮物分為大型(≥25%)、中型(大于5%且小于25%)和小型(≤5%),檢測(cè)對(duì)比結(jié)果見表8。

表8 不同種類漂浮物檢測(cè)參數(shù)的統(tǒng)計(jì)比較Tab.8 Statistical comparison of detection parameters of different types of floating objects
實(shí)驗(yàn)室環(huán)境下的檢測(cè)召回率均高達(dá)100%,代表無漏檢。在真實(shí)水面環(huán)境中檢測(cè)精度下降了約6%,本文采用的DyFPN使每個(gè)預(yù)測(cè)層使用的特征圖具有適當(dāng)?shù)姆直媛屎蛷?qiáng)大的語義特征,有效保證了對(duì)不同大小漂浮物的檢測(cè)效果。改進(jìn)SSD算法的圖像識(shí)別結(jié)果如圖6所示。
圖6(a)、(c)和(e)均來自測(cè)試集,對(duì)比識(shí)別結(jié)果可以發(fā)現(xiàn):在真實(shí)水面環(huán)境下,圖6(d)中漂浮水草的尺寸較小且分散,識(shí)別率達(dá)到0.988和0.936;當(dāng)漂浮水草的尺寸增加至圖6(b)時(shí),檢測(cè)精度達(dá)到0.806和0.996;當(dāng)檢測(cè)區(qū)域出現(xiàn)多種且不規(guī)則的水草時(shí),改進(jìn)SSD算法在圖6(f)中可以有效識(shí)別區(qū)域內(nèi)所有的漂浮水草,但檢測(cè)精度略低于圖6(b)和(d),說明復(fù)雜檢測(cè)環(huán)境和漂浮物的不規(guī)則變化影響檢測(cè)精度。
為了進(jìn)一步驗(yàn)證改進(jìn)SSD算法的性能,本文選擇VGG16、ResNet50、MobileNet 3種網(wǎng)絡(luò)模型作為SSD算法的特征提取網(wǎng)絡(luò),同時(shí)利用訓(xùn)練集對(duì)上述3種特征提取網(wǎng)絡(luò)模型進(jìn)行了對(duì)比,并在驗(yàn)證集上驗(yàn)證了不同特征提取網(wǎng)絡(luò)、模型量化和DW卷積在水面漂浮物檢測(cè)精度、速度和內(nèi)存成本等方面的性能,具體結(jié)果見表9。
由表9可知:SSD模型采用VGG16和ResNet50作為特征提取網(wǎng)絡(luò)后,檢測(cè)精度較低,均低于90%;但ResNet50由于采用了殘差結(jié)構(gòu)從而加強(qiáng)了對(duì)漂浮物特征的學(xué)習(xí),其檢測(cè)精度要高于VGG16,但該模型由于采用復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)造成計(jì)算量和內(nèi)存成本較大。當(dāng)使用寬度乘數(shù)為1和輸入分辨率為300的MobileNetV1和MobileNetV2時(shí),檢測(cè)效率提升了約50%,參數(shù)計(jì)算量和內(nèi)存成本分別減少到39.1億次和29.11 MB,但檢測(cè)精度降低。MobileNetV2由于采用了殘差倒置瓶頸結(jié)構(gòu)的內(nèi)存推理機(jī)制和線性瓶頸,其檢測(cè)性能在各個(gè)方面都優(yōu)于MobileNetV1。當(dāng)使用寬度乘數(shù)為0.75和分辨率為300的MobileNetV2-DyFPN時(shí),檢測(cè)精度提高到95.19%,相較于MobileNetV2提高了6.06%,但計(jì)算量、參數(shù)數(shù)量和運(yùn)算時(shí)間由于網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜而小幅增加,說明MobileNetV2-DyFPN作為SSD算法的特征提取網(wǎng)絡(luò)能夠?qū)崿F(xiàn)高檢測(cè)精度和輕量化檢測(cè)模型的目標(biāo)。當(dāng)引入模型量化方法后,GPU和CPU運(yùn)行速度提高了約4倍,參數(shù)數(shù)量和內(nèi)存成本壓縮了約4倍,識(shí)別準(zhǔn)確率僅降低了1.43%,因此改進(jìn)后的SSD算法能夠有效實(shí)現(xiàn)檢測(cè)精度和效率的平衡。當(dāng)引入DW卷積和降低輸入分辨率后,該模型精度達(dá)到94.26%,說明在低分辨率圖像上保持了良好的檢測(cè)效果,更接近自動(dòng)打撈設(shè)備的硬件性能和實(shí)際需求。整體而言,VGG16作為傳統(tǒng)SSD算法的特征提取網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)量大且模型內(nèi)存容量大,檢測(cè)效率和精度較低;引入殘差結(jié)構(gòu)的ResNet50加深了特征提取網(wǎng)絡(luò),精度提升但網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,檢測(cè)效率低;加入輕量化MobileNetV2的SSD算法,得益于倒置瓶頸結(jié)構(gòu)和線性瓶頸的優(yōu)勢(shì),提升了檢測(cè)效率,但檢測(cè)精度降低;在引入MobileNetV2-DyFPN后,SSD算法通過采用自適應(yīng)選擇卷積方法在不增加參數(shù)的前提下提升了MobileNetV2的檢測(cè)精度;在骨干網(wǎng)絡(luò)MobileNetV2-DyFPN的基礎(chǔ)上加入模型量化和DW卷積,通過加速卷積層計(jì)算和壓縮全連接層的參數(shù),大幅度降低了模型的計(jì)算量和模型內(nèi)存。
結(jié)合浙江德清智慧水利項(xiàng)目中實(shí)際的水面漂浮物檢測(cè)任務(wù),檢測(cè)設(shè)備的計(jì)算和存儲(chǔ)承載能力僅達(dá)到20億次FLOPs和4 GB,為實(shí)驗(yàn)室場(chǎng)景下的1/8,攝像頭的分辨率為640×480;而實(shí)際檢測(cè)環(huán)境下由于天氣、光照的影響會(huì)降低圖像分辨率,對(duì)低分辨率輸入圖像、低性能設(shè)備和快速檢測(cè)的需求更為迫切。因此,基于以上實(shí)驗(yàn)結(jié)果分析,改進(jìn)的SSD檢測(cè)模型具有精度高、體積小、效率高的特點(diǎn),可以滿足水面漂浮物檢測(cè)的實(shí)際需求。
為了再進(jìn)一步驗(yàn)證改進(jìn)SSD算法的穩(wěn)健性,與YOLOV3、Faster RCNN和HOG+SVM模型進(jìn)行對(duì)比,各模型在測(cè)試集上的性能參數(shù)見表10。由表10可知:改進(jìn)后的SSD算法在水面漂浮物檢測(cè)精度和Faster RCNN處于同一水平,而檢測(cè)速度在GPU支持下約是YOLOV3的2倍,并在運(yùn)算復(fù)雜度、參數(shù)數(shù)量和內(nèi)存成本方面都優(yōu)于其他3類檢測(cè)模型;傳統(tǒng)的HOG+SVM模型檢測(cè)效果最差,在水面漂浮物檢測(cè)中存在較多誤檢和漏檢,檢測(cè)速度最低,說明傳統(tǒng)的分類識(shí)別方法對(duì)水面漂浮物檢測(cè)對(duì)象和環(huán)境要求較高,缺乏魯棒性。綜合檢測(cè)精度、速度、模型內(nèi)存和魯棒性來看,改進(jìn)的SSD算法能夠有效用于檢測(cè)水面漂浮物并準(zhǔn)確引導(dǎo)打撈工作工作。

表10 測(cè)試集上不同檢測(cè)模型性能對(duì)比Tab.10 Comparison of detection parameters of different methods
本文改進(jìn)了深度學(xué)習(xí)SSD算法的基本框架,通過引入輕量化MobileNetV2特征提取網(wǎng)絡(luò),在預(yù)測(cè)層中將深度可分離卷積取代標(biāo)準(zhǔn)卷積,在特征提取層采用動(dòng)態(tài)特征金字塔網(wǎng)絡(luò)架構(gòu),以MobileNetV2-Dy-FPN代替VGG16作為骨干網(wǎng)絡(luò),將模型量化方法作為輔助網(wǎng)絡(luò),建立了水面漂浮物檢測(cè)模型,并采用圖像降噪和增強(qiáng)算法對(duì)原始圖像數(shù)據(jù)集進(jìn)行預(yù)處理;通過對(duì)改進(jìn)SSD算法的訓(xùn)練與驗(yàn)證,以多種性能指標(biāo)評(píng)價(jià)模型檢測(cè)效果。實(shí)例應(yīng)用結(jié)果表明,改進(jìn)后的SSD算法確保了不同分辨率的特征圖可以有效檢測(cè)出目標(biāo)漂浮物,檢測(cè)精度達(dá)到95.86%,在GPU下檢測(cè)效率達(dá)到64.23 FPS,檢測(cè)性能滿足水面漂浮物實(shí)際精度要求。同時(shí),通過模型量化將模型內(nèi)存成本控制在6.27 MB,有效節(jié)約計(jì)算資源,滿足漂浮物的實(shí)時(shí)檢測(cè)需求,具有較高的魯棒性和泛化能力。
復(fù)雜的水面環(huán)境對(duì)漂浮物檢測(cè)有重要影響,如在檢測(cè)附著和遮擋面積大的小目標(biāo)漂浮物時(shí),檢測(cè)效果并不理想。同時(shí),拍攝角度與光照等因素也會(huì)導(dǎo)致圖像誤差,會(huì)對(duì)算法提出更高的要求。未來將從漂浮物圖像采集環(huán)境和改進(jìn)圖像識(shí)別算法等方向進(jìn)一步研究,以增強(qiáng)算法的實(shí)用性和適用性。