陳任飛,彭 勇,*,吳 劍,歐陽文宇,李 昱,岳廷秀
(1.大連理工大學 水利工程學院,遼寧 大連 116024;2.大連理工大學 人工智能大連研究院,遼寧 大連 116000)
漂浮物會對水質、水面景觀、供水、水產(chǎn)和航運等造成不利影響,加強水面漂浮物檢測與打撈對水利工程具有重要意義[1]。如譚磊[2]、徐曉暉[3]、Qiao[4]、Hu[5]和Li[6]等在應用過程中發(fā)現(xiàn),傳統(tǒng)水面漂浮物檢測典型方法普遍存在效率低、精度低[7]等問題,特別是動態(tài)水面和漂浮物不規(guī)則、圖像特征提取相對困難、漂浮物的頻繁移動等增加了檢測難度[8],難以滿足復雜水面場景的大范圍漂浮物自動化檢測作業(yè)的需求[9]。隨著人工智能技術的快速發(fā)展,基于深度學習的圖像識別算法為漂浮物智能識別與定位提供了新的技術支撐[10-12]。目前,基于深度學習的水面漂浮物檢測算法沿著兩條主線發(fā)展:一是以Faster RCNN[13]、CA-Faster R-CNN[14]為代表的基于候選框方式的檢測主線,能夠有效確保漂浮物檢測精度,但檢測速度無法滿足實時檢測需求;二是以YOLO[15]、SSD[16]和Retain-Net[17]為代表的一體化檢測算法,檢測速度要明顯快于前者,但漂浮物檢測精度略有下降[18],其中SSD檢測算法的準確率和檢測速度相對較優(yōu),成為當前水面漂浮物目標檢測的主流方法[19]。上述檢測算法適用于一定范圍內且物理環(huán)境復雜度相對較低的漂浮物目標檢測,但水面漂浮物的識別環(huán)境受到大量噪聲和環(huán)境干擾,使得不同尺度圖像特征的提取相對困難。此外,現(xiàn)有漂浮物檢測算法結構復雜且模型內存成本高,無法滿足低性能檢測設備的實時應用需求,難以得到廣泛推廣應用[20]。
輕量化深度學習模型[21]和動態(tài)特征金字塔網(wǎng)絡[22]為平衡目標檢測精度、效率和計算復雜度提供了新思路。以MobileNet為代表的輕量化深度學習模型通過引入反向殘差網(wǎng)絡減少參數(shù)計算量,并憑借檢測速度和模型內存的優(yōu)勢在車輛檢測[23]、海珍品識別[24]及水底生物檢測領域[25]廣泛應用。動態(tài)特征金字塔網(wǎng)絡通過結合動態(tài)門(Dynamic gating)操作原則和自適應選擇分支(Adaptively Selected Branch)方法對目標物輸出特征進行量化,通過優(yōu)化計算資源的分配策略實現(xiàn)了目標檢測準確性和計算復雜度之間的平衡,提升了動態(tài)推理的合理性。目前,動態(tài)特征金字塔網(wǎng)絡主要應用于降低浮點數(shù)運算量(FLOPs),如:在COCO minival上將Faster R-CNN的特征金字塔網(wǎng)絡(FPN)替換為inception FPN,平均檢測精度提升了1.6%;而引入動態(tài)特征金字塔網(wǎng)絡后,在保持同等性能的情況下FLOPs減少約40%。當前,水環(huán)境檢測領域的研究主要集中在提升算法的檢測精度,缺乏對漂浮物檢測算法的輕量化、精度和效率均衡化問題的全面系統(tǒng)研究,無法實現(xiàn)水面漂浮物的實時精準檢測。
本文針對現(xiàn)有目標檢測算法精度、效率和復雜水面環(huán)境的干擾問題,整合圖像去噪、增強處理和深度學習框架,提出了一種基于改進SSD算法的水面漂浮物檢測方法。首先,引入稀疏分解的思想對低質量的水面漂浮物圖像進行圖像降噪和增強處理,以保證預處理后的圖像能夠提供足夠、正確的特征信息,初步降低復雜水面環(huán)境的影響;其次,選擇結合錨框機制和回歸思想的檢測器(SSD)作為檢測框架,基于輕量級MobileNetV2網(wǎng)絡設計了特征提取網(wǎng)絡,從而替代VGG16基礎網(wǎng)絡,同時將動態(tài)特征金字塔網(wǎng)絡結構引入到特征提取網(wǎng)絡中,以確保用于預測的特征圖具有適當?shù)姆直媛屎蛷娬Z義特征;最后,采用反向殘差模塊和深度可分離卷積,并應用模型量化誤差校正檢測網(wǎng)絡的卷積層和全連接層,降低反向傳播的參數(shù)數(shù)量和內存成本。
SSD算法作為一體化卷積網(wǎng)絡檢測方法,采用卷積對不同尺度特征圖進行檢測,以先驗框為基準計算預測偏差,將特征提取、位置回歸和分類任務集成到網(wǎng)絡中進行訓練[26],具備速度快和精度高的優(yōu)勢。該算法以VGG16為基礎網(wǎng)絡,引入輔助卷積和池化層等結構,將多尺度特征圖用于不同尺度目標物檢測。
本文將SSD算法作為水面漂浮物檢測的基本框架,主要原因在于:1)SSD算法可以直接預測目標物體分類和邊界框,有效降低訓練難度;2)SSD算法結合了Faster R-CNN算法的錨框機制和YOLO算法的回歸思想,進行不同尺度圖像特征提取,減少了訓練參數(shù)數(shù)量。因此,SSD檢測算法可以在不同尺度圖像中達到一定的目標識別精度和速度,提高實時檢測性能。但受限于復雜的水面漂浮物檢測環(huán)境和計算量有限的硬件性能,SSD檢測算法的檢測精度和速度依然無法滿足水面漂浮物實時檢測的需求。
傳統(tǒng)SSD算法中VGG16基礎網(wǎng)絡的參數(shù)訓練依賴于高性能的硬件設備[27],而基于反向殘留網(wǎng)絡的MobileNetV2-FPN具有參數(shù)少和速度快的優(yōu)勢,能夠有效解決實際水面漂浮物檢測任務中的硬件和檢測速度問題[28]。其中,MobileNetV2作為一個輕量化卷積神經(jīng)網(wǎng)絡,在MobileNetV1的基礎上加入了線性bottlenecks和反轉殘差模塊,構成了高效的基本模塊,進一步減少模型的實際操作數(shù)。特征金字塔網(wǎng)絡(feature pyramid network,F(xiàn)PN)通過融合低層特征的高分辨率和高層特征的高語義信息,在每個融合后的特征層上進行獨立預測,實現(xiàn)了不同尺度的特征融合。雖然FPN進行了多尺度信息的融合,但未解決對同一特征層中的多尺度問題,而動態(tài)特征金字塔網(wǎng)絡(dynamic feature pyramid network,DyFPN)能夠采用自適應選擇卷積方法解決該問題,同時在相同的參數(shù)量下相較于FPN具有更高的性能。為滿足高精度、實時性和輕量化的水面漂浮物檢測要求,對SSD算法作出以下改進:1)參考MobileNetV2的網(wǎng)絡結構,在MobileNetV2網(wǎng)絡預測層中將深度可分離卷積代替?zhèn)鹘y(tǒng)標準卷積,將其拆分為深度卷積(depthwise convolution,DW)和逐點卷積(poinwise convolution,PW),并將MobileNetV2網(wǎng)絡卷積中的多尺度結構通過跨層連接構建DyFPN,重新設計SSD算法中的基礎網(wǎng)絡;2)采用模型量化方法量化深度分離卷積和標準卷積層的參數(shù),減少參數(shù)規(guī)模,降低計算復雜度,最大化降低設備運行成本;3)根據(jù)實際檢測設備的計算能力和水面漂浮物的檢測需求,訓練出能夠滿足實際需求的視覺檢測模型。改進后的算法框架如圖1所示。
圖1 改進SSD檢測算法的網(wǎng)絡結構Fig.1 Network structure of improved SSD detection algorithm
改進的SSD算法由骨干網(wǎng)絡(圖1(a))和輔助網(wǎng)絡(圖1(b))組成網(wǎng)絡模塊。MobileNetV2的核心由1個標準卷積層和17個反向殘差模塊組成,如圖1(c)所示。同時,參考ResNet的殘差模塊,采用1*1→3*3→1*1的模式,首先,采用PW增加特征通道數(shù),將膨脹系數(shù)設置為6,使用DW過濾大量通道的空間信息并提取特征,引入寬度乘數(shù)β∈[0,1]和分辨率乘數(shù)ρ,優(yōu)化并減少模型冗余參數(shù);其次,使用PW卷積以減少通道數(shù),通過線性轉換形成低維線性瓶頸,將ReLU6代替?zhèn)鹘y(tǒng)的非線性激活函數(shù)ReLU,將最大輸出值限制為6。調整后的反向殘差模塊是由1個1*1的卷積層、1個3*3的DW卷積、批量標準化(Batch normalize,Bn)和Relu6激勵函數(shù)組成,如圖1(d)所示。
骨干網(wǎng)絡中的DyFPN融合MobileNetV2網(wǎng)絡的輸出特征圖,在不增加過多參數(shù)的情況下,能夠有效提高水面漂浮物檢測精度。首先,將特征圖自上而下進行兩次上采樣(up-sampling),將上采樣結果與自下而上采樣產(chǎn)生的特征圖進行橫向連接并融合;其次,采用3*3卷積層對融合特征圖進行卷積操作,動態(tài)調整每個不同比例的特征地圖的大小,通過融合MobileNetV2網(wǎng)絡獲取的多尺度特征圖來提高水面漂浮物檢測精度,如圖1(e)所示。
改進后的骨干網(wǎng)絡MobileNetV2-DyFPN網(wǎng)絡模型如圖2所示,每一行描述了一個重復n次并由一個或多個相同模塊層組成的序列。圖2中,t代表殘差塊中擴展的維度,c代表特征圖輸出的維數(shù),s代表卷積操作的步長,n代表當前行卷積操作被重復應用次數(shù)。在序列1中以標準卷積層Conv2d進行操作,將卷積核設置為24,以確保完整地提取輸入圖像的特征信息;在序列2~8中采用瓶頸倒置殘差(bottleneck)進行卷積操作;在序列9~12中采用標準卷積Conv2d進行自上而下和自下而上的動態(tài)特征金字塔特征提取,構建多個具有不同分辨率和強語義信息的低成本預測特征圖,在序列13中采用深度可分離卷積代替?zhèn)鹘y(tǒng)標準卷積Conv2d進行特征預測。
圖2 改進后的MobileNetV2-DyFPN網(wǎng)絡模型Fig.2 Improved MobileNetV2-DyFPN network model
輔助網(wǎng)絡圖1(b)的構建是為了量化深度可分離卷積和傳統(tǒng)標準卷積的參數(shù),以降低算法的計算復雜度和內存成本。采用模型量化方法Quantized-CNN對卷積層進行誤差量化,將每一層特征圖輸出的誤差進行最小化,并融合前一層量化過程中的誤差,將誤差量化的最優(yōu)目標設置為G:
在實際水面漂浮物檢測模型量化應用中,以超參數(shù)K和V計算水面漂浮物識別效率和精度損失,網(wǎng)絡的計算復雜度和內存成本計算方式見表1和2。表1、2中,Cs和Ct分別代表相鄰的前層神經(jīng)元和后層神經(jīng)元,K和V分別代表空間矩陣和子碼字,ds2、dt2和dk2分別代表不同神經(jīng)元的核寬度。
表1 CNN全連接層和卷積層量化前后計算復雜度Tab.1 Computation of fully connected and convolutional layers of CNN before and after quantization
表2 CNN全連接層和卷積層量化前后內存成本Tab.2 Memory consumption of fully connected and convolutional layers of CNN before and after quantization
為了選擇最優(yōu)的漂浮物檢測模型,采用多種評價標準來評估水面漂浮物檢測算法的性能,包括準確率P、召回率R、綜合評價指數(shù)F1和平均精度MAP,具體的計算見式(2)~(5)。
式(2)~(5)中:TPN代表正確的檢測結果;FPN代表錯誤的檢測結果;TPN+FPN代表檢測框的總數(shù)量;FNN代表漏檢的結果;TPN+FNN代表真實框的總數(shù)量;綜合評價指數(shù)F1主要是在準確率和召回率不一致時而進行評估的方法;Nc為漂浮物照片總數(shù)量;Pc為每一個不同置信閾值下漂浮物的檢測精度;c代表目標物種類,本文中的漂浮物指的是漂浮水草(水葫蘆),c值為1。平均精度值MAP是所選11個不同置信閾值(召回值)的精度平均值。由于本文的目的是識別漂浮物數(shù)量和位置,要有效避免誤檢,而召回率相對于準確率重要程度更高,綜合評價指標F1能夠平衡準確率和召回率之間的關系,平均準確率MAP作為性能評價最全面的指標,其重要程度最高。因此,確定性能指標的優(yōu)先級順序為MAP>F1>R>P。
利用預測框與真實框的交并比(RIOU)作為判斷預測真假的前提,若RIOU大于一定閾值,將刪除此類預測框,保留并輸出得分最高的預測框,將這一過程稱為非最大抑制(NMS)算法。非最大抑制將過濾多余預測框,保證分類網(wǎng)絡在卷積核中心分類的準確性[29]。Pascal Voc2010數(shù)據(jù)集以RIOU=0.5為交并比閾值[30],再根據(jù)預測框內類別置信度進行判定:若RIOU>0.5,認為檢測結果為真樣例;否則,認為是假樣例。
首先,通過多種方式構建水面漂浮物圖像數(shù)據(jù)集;其次,采用圖像降噪和增強算法對圖像進行預處理,提高采集圖像的精度;然后通過LabelImg工具對圖像數(shù)據(jù)進行標注,并將其分為測試集、訓練集和驗證集,同時對改進的SSD算法進行遷移學習訓練,采用隨機梯度下降算法(SGD)得到最優(yōu)權重檢測模型;最后,將訓練好的目標檢測模型應用于水面漂浮物的實時檢測。
復雜多變的水面環(huán)境為采集水面漂浮物圖像帶來一定的挑戰(zhàn),通過攝像頭監(jiān)控系統(tǒng)獲取漂浮物視頻,采用視頻幀處理獲得7 872張漂浮物圖像數(shù)據(jù)。為了進一步提高數(shù)據(jù)集的多樣性,在實驗室環(huán)境下拍攝2 267張圖像數(shù)據(jù),并從互聯(lián)網(wǎng)端下載3 363張圖像數(shù)據(jù),共采集13 502張漂浮物數(shù)據(jù)用于模型的訓練、驗證及測試。
為了降低水面環(huán)境對漂浮物圖像質量的影響,采用圖像降噪算法進行圖像預處理,處理過程如圖3所示。
圖3 圖像降噪處理過程Fig.3 Process of image noise reduction processing
通過數(shù)據(jù)降噪和增強,共獲得148 511張漂浮物數(shù)據(jù)樣本圖像。同時,按照數(shù)據(jù)集劃分策略[31],將數(shù)據(jù)集按照7.0∶2.5∶0.5劃分為訓練集、驗證集和測試集,并將數(shù)據(jù)集轉換為TFRecord格式,以提高數(shù)據(jù)集讀取效率。表3為水面漂浮物數(shù)據(jù)集的統(tǒng)計數(shù)據(jù),平均尺寸指邊界框的面積在整幅圖像中所占的百分比。
表3 水面漂浮物數(shù)據(jù)集統(tǒng)計Tab.3 Statistic of the floating objects dataset
本文采用的計算設備硬件配置為Inter(R) Xeon(R)E5-2620 CPU和1個NVIDIA RTX3080 GPU,使用Python3 編程語言和TensorFlow深度學習框架構建深度學習模型。針對本文改進的SSD算法,主要對參數(shù)Learning rate、Learning rate decay factor、Epoch與Batch size的選擇,Learning rate設置了2組備選參數(shù),分別為0.010、0.001;Learning rate decay factor設置了3組備選參數(shù),分別為0.50、0.90、0.99;Batch size設置了3組備選參數(shù),分別為8、16、32;Epoch設置了4組備選參數(shù),分別為5、10、20、40。為驗證神經(jīng)網(wǎng)絡中各參數(shù)對模型影響的一般規(guī)律,設計對比試驗,并對比6個方案的檢測結果,具體參數(shù)設置及檢測結果見表4。
表4 不同參數(shù)組合對應的檢測結果評價Tab.4 Evaluation of test results corresponding to different parameter combinations
對比6項試驗模型檢測結果發(fā)現(xiàn):在控制Learning rate不變的情況下,當Epoch數(shù)值增加,模型使用訓練集中的所有樣本進行正向和反向傳播的迭代次數(shù)增加;Batch size增加后一定程度提高了檢測精確度。試驗1~3中Learning rate設置為0.01,對于模型的梯度下降過程不能較好地收斂到全局最小值;在網(wǎng)絡模型訓練初始階段,設置較大的Learning rate有助于模型盡快收斂;但是在訓練后期,較大的Learning rate會讓梯度下降在權重更新的時候出現(xiàn)波動影響收斂。試驗4~6中Learning rate設置為0.001,模型的檢測精確度明顯提升,在Learning rate decay factor取值0.9時檢測精確度最高;若Learning rate decay factor取值過小則不能使模型逃脫局部最小值陷阱,反之容易造成模型跳過局部最小值?;谏鲜鲈囼灥玫搅四P蛥?shù)組合,本文將Iteration設置為150 000次,Save interval secs設置為600 s,Weight decay設置為0.000 5,具體參數(shù)設置見表5。
表5 模型網(wǎng)絡訓練參數(shù)設置Tab.5 Setting of model network training parameters
網(wǎng)絡模型損失函數(shù)的變化情況如圖4所示。由圖4可知,訓練損失函數(shù)在40 000次迭代內迅速下降,在40 000~60 000次迭代中平緩下降,在60 000次迭代后穩(wěn)定,之后保持輕微波動。過多的訓練會存在過擬合的風險,因此在30 000次迭代后,每20 000次迭代導出權重模型,最終選擇其中5個權重模型(11 027.ckpt、38 763.ckpt、49 878.ckpt、87 352.ckpt和102 876.ckpt,編號為1~5)評估和選擇最佳的目標檢測模型。
圖4 網(wǎng)絡模型損失函數(shù)的變化情況Fig.4 Training loss of improved SSD algorithm
本文5個模型在驗證集上對應的性能指標見表6。表6顯示:模型1、2和3相較于模型4和5性能較差;對于模型4和5,按照性能指標的優(yōu)先級選擇模型4最優(yōu)。此外,參考COCO數(shù)據(jù)集將RIOU設定為0.5。為進一步驗證RIOU取值的合理性,將模型4分別在不同的RIOU取值下的準確率、召回率、平均精度和漂浮物誤檢數(shù)量指標進行對比分析。驗證集上不同RIOU值下模型的性能水平如圖5所示。
表6 驗證集上5個權重模型的性能參數(shù)Tab.6 Performance parameters of the five weight models on the validation set
圖5 驗證集上不同RIOU值下模型的性能水平Fig.5 Performance levels of the model under different RIOU values on the validation set
由圖5可知:當RIOU設置為0.5時,準確率、召回率和平均精度指標開始呈現(xiàn)下降趨勢,漂浮物誤檢數(shù)量呈現(xiàn)顯著上升趨勢;準確率和召回率分別達到了95.86%和93.64%,而F1值為94.74%,平均精度高達94.26%,驗證了改進后的SSD算法網(wǎng)絡結構的有效性。
本文在水面漂浮物圖像預處理中采用了圖像降噪和增強算法,為了分析前后的性能變化,在圖像去噪和增強前后分別采用了一組數(shù)據(jù)集用于訓練和測試,結果見表7。由表7可知,模型在圖像降噪和增強處理后的性能參數(shù)提高約5%,說明預處理有效提高了檢測精度。
表7 圖像去噪增強前后模型性能參數(shù)對比Tab.7 Comparison of performance parameters before and after image denoising and enhancement
為了驗證模型對水面漂浮物多尺度檢測能力,分別在真實水面環(huán)境和實驗室環(huán)境中檢測了不同大小的漂浮物,根據(jù)漂浮物的像素面積占圖像總像素面積的百分比將漂浮物分為大型(≥25%)、中型(大于5%且小于25%)和小型(≤5%),檢測對比結果見表8。
表8 不同種類漂浮物檢測參數(shù)的統(tǒng)計比較Tab.8 Statistical comparison of detection parameters of different types of floating objects
實驗室環(huán)境下的檢測召回率均高達100%,代表無漏檢。在真實水面環(huán)境中檢測精度下降了約6%,本文采用的DyFPN使每個預測層使用的特征圖具有適當?shù)姆直媛屎蛷姶蟮恼Z義特征,有效保證了對不同大小漂浮物的檢測效果。改進SSD算法的圖像識別結果如圖6所示。
圖6(a)、(c)和(e)均來自測試集,對比識別結果可以發(fā)現(xiàn):在真實水面環(huán)境下,圖6(d)中漂浮水草的尺寸較小且分散,識別率達到0.988和0.936;當漂浮水草的尺寸增加至圖6(b)時,檢測精度達到0.806和0.996;當檢測區(qū)域出現(xiàn)多種且不規(guī)則的水草時,改進SSD算法在圖6(f)中可以有效識別區(qū)域內所有的漂浮水草,但檢測精度略低于圖6(b)和(d),說明復雜檢測環(huán)境和漂浮物的不規(guī)則變化影響檢測精度。
為了進一步驗證改進SSD算法的性能,本文選擇VGG16、ResNet50、MobileNet 3種網(wǎng)絡模型作為SSD算法的特征提取網(wǎng)絡,同時利用訓練集對上述3種特征提取網(wǎng)絡模型進行了對比,并在驗證集上驗證了不同特征提取網(wǎng)絡、模型量化和DW卷積在水面漂浮物檢測精度、速度和內存成本等方面的性能,具體結果見表9。
由表9可知:SSD模型采用VGG16和ResNet50作為特征提取網(wǎng)絡后,檢測精度較低,均低于90%;但ResNet50由于采用了殘差結構從而加強了對漂浮物特征的學習,其檢測精度要高于VGG16,但該模型由于采用復雜的網(wǎng)絡結構造成計算量和內存成本較大。當使用寬度乘數(shù)為1和輸入分辨率為300的MobileNetV1和MobileNetV2時,檢測效率提升了約50%,參數(shù)計算量和內存成本分別減少到39.1億次和29.11 MB,但檢測精度降低。MobileNetV2由于采用了殘差倒置瓶頸結構的內存推理機制和線性瓶頸,其檢測性能在各個方面都優(yōu)于MobileNetV1。當使用寬度乘數(shù)為0.75和分辨率為300的MobileNetV2-DyFPN時,檢測精度提高到95.19%,相較于MobileNetV2提高了6.06%,但計算量、參數(shù)數(shù)量和運算時間由于網(wǎng)絡結構復雜而小幅增加,說明MobileNetV2-DyFPN作為SSD算法的特征提取網(wǎng)絡能夠實現(xiàn)高檢測精度和輕量化檢測模型的目標。當引入模型量化方法后,GPU和CPU運行速度提高了約4倍,參數(shù)數(shù)量和內存成本壓縮了約4倍,識別準確率僅降低了1.43%,因此改進后的SSD算法能夠有效實現(xiàn)檢測精度和效率的平衡。當引入DW卷積和降低輸入分辨率后,該模型精度達到94.26%,說明在低分辨率圖像上保持了良好的檢測效果,更接近自動打撈設備的硬件性能和實際需求。整體而言,VGG16作為傳統(tǒng)SSD算法的特征提取網(wǎng)絡,網(wǎng)絡參數(shù)量大且模型內存容量大,檢測效率和精度較低;引入殘差結構的ResNet50加深了特征提取網(wǎng)絡,精度提升但網(wǎng)絡結構復雜,檢測效率低;加入輕量化MobileNetV2的SSD算法,得益于倒置瓶頸結構和線性瓶頸的優(yōu)勢,提升了檢測效率,但檢測精度降低;在引入MobileNetV2-DyFPN后,SSD算法通過采用自適應選擇卷積方法在不增加參數(shù)的前提下提升了MobileNetV2的檢測精度;在骨干網(wǎng)絡MobileNetV2-DyFPN的基礎上加入模型量化和DW卷積,通過加速卷積層計算和壓縮全連接層的參數(shù),大幅度降低了模型的計算量和模型內存。
結合浙江德清智慧水利項目中實際的水面漂浮物檢測任務,檢測設備的計算和存儲承載能力僅達到20億次FLOPs和4 GB,為實驗室場景下的1/8,攝像頭的分辨率為640×480;而實際檢測環(huán)境下由于天氣、光照的影響會降低圖像分辨率,對低分辨率輸入圖像、低性能設備和快速檢測的需求更為迫切。因此,基于以上實驗結果分析,改進的SSD檢測模型具有精度高、體積小、效率高的特點,可以滿足水面漂浮物檢測的實際需求。
為了再進一步驗證改進SSD算法的穩(wěn)健性,與YOLOV3、Faster RCNN和HOG+SVM模型進行對比,各模型在測試集上的性能參數(shù)見表10。由表10可知:改進后的SSD算法在水面漂浮物檢測精度和Faster RCNN處于同一水平,而檢測速度在GPU支持下約是YOLOV3的2倍,并在運算復雜度、參數(shù)數(shù)量和內存成本方面都優(yōu)于其他3類檢測模型;傳統(tǒng)的HOG+SVM模型檢測效果最差,在水面漂浮物檢測中存在較多誤檢和漏檢,檢測速度最低,說明傳統(tǒng)的分類識別方法對水面漂浮物檢測對象和環(huán)境要求較高,缺乏魯棒性。綜合檢測精度、速度、模型內存和魯棒性來看,改進的SSD算法能夠有效用于檢測水面漂浮物并準確引導打撈工作工作。
表10 測試集上不同檢測模型性能對比Tab.10 Comparison of detection parameters of different methods
本文改進了深度學習SSD算法的基本框架,通過引入輕量化MobileNetV2特征提取網(wǎng)絡,在預測層中將深度可分離卷積取代標準卷積,在特征提取層采用動態(tài)特征金字塔網(wǎng)絡架構,以MobileNetV2-Dy-FPN代替VGG16作為骨干網(wǎng)絡,將模型量化方法作為輔助網(wǎng)絡,建立了水面漂浮物檢測模型,并采用圖像降噪和增強算法對原始圖像數(shù)據(jù)集進行預處理;通過對改進SSD算法的訓練與驗證,以多種性能指標評價模型檢測效果。實例應用結果表明,改進后的SSD算法確保了不同分辨率的特征圖可以有效檢測出目標漂浮物,檢測精度達到95.86%,在GPU下檢測效率達到64.23 FPS,檢測性能滿足水面漂浮物實際精度要求。同時,通過模型量化將模型內存成本控制在6.27 MB,有效節(jié)約計算資源,滿足漂浮物的實時檢測需求,具有較高的魯棒性和泛化能力。
復雜的水面環(huán)境對漂浮物檢測有重要影響,如在檢測附著和遮擋面積大的小目標漂浮物時,檢測效果并不理想。同時,拍攝角度與光照等因素也會導致圖像誤差,會對算法提出更高的要求。未來將從漂浮物圖像采集環(huán)境和改進圖像識別算法等方向進一步研究,以增強算法的實用性和適用性。