湯永濤 林鴻生 劉 興
(1.海軍士官學校 蚌埠 233012)(2.南京航空航天大學 南京 210016)
我國沿海分布有大量港口,在國際形勢風云變化的情況下,港口的防御壓力巨大。敵對勢力可利用水下蛙人、機器人以及小型水下運載器等從水下趁虛而入,對重要設施進行破壞[1]。目前水下安全監視主要利用水聲技術對水下目標進行探測、分類、定位和跟蹤。但聲吶系統易受水下環境及目標屬性等條件制約,很難獲得準確、直觀的目標識別結果。相對于水聲而言,水下光學探測具有成像分辨率高、細節豐富、成像速度快等優點。因此,水下光學探測逐漸成為水下探測的一種有效輔助手段[1~2]。
但是,由于水和水體中的雜質對光信號存在著吸收、散射等效應,水下光學圖像普遍存在著對比度低、噪聲突出等問題[3~4]。這給水下目標的自動分類識別帶來困難。
深度學習在圖像分類識別方面表現非常出色。自 2012年Krizhevsky等提出AlexNet[5]以來,學者們開發出了多種用于分類識別的深度神經網絡結構,如 VGGNet[6]、GoogleNet[7]、ResNet[8]、ResNeXt[9]、NASNet[10]、EfficientNet[11]等。這些網絡結構在ImageNet數據庫上能得到很不錯的準確率(各種經典網絡在ImageNet數據庫測試集上的準確率見圖1(a))。但這些分類網絡在實際應用中存在兩個問題:一是用于訓練小型數據集時容易出現過擬合,因為它們都是針對大型數據庫進行設計的,網絡結構復雜,參數量巨大(見圖1(b));二是較難應用于移動設備,移動設備硬件性能受到限制,無法與服務器等大型硬件相比,這些大型網絡由于模型巨大,推理時間較長,在移動設備上應用會受到限制,實時性不能滿足要求。
在偏向于應用到移動設備的網絡中,也出現了像 MobileNet[12~14]、ShuffleNet[15]、GhostNet[16]等高效的輕量級網絡。但它們的分類準確率與大型網絡相比,仍有不小的差距。圖1為各種網絡的準確率與參數量比較,以白框表示的為MobileNet、ShuffleNet、GhostNet。

圖1 經典網絡的性能對比
本文在上述背景的基礎上,針對水下光學圖像小數據集目標分類的問題,利用深度學習方法進行研究,從遷移學習與輕量化網絡設計兩個方面進行。
隨著各種網絡架構越來越成熟,遷移學習的重要性在逐漸提高。大型網絡在大型數據集上的訓練對于普通研究人員來說很難實現(硬件設備,訓練時間很難得到保證),而越來越多的企業在網絡上分享了他們在大型數據集上訓練過的網絡模型,這為普通研究人員節省了大量訓練時間。
遷移學習定義為:給定一個源域Ds和一個學習任務Ts,一個目標域Dt和一個學習任務Tt,遷移學習的目的是使用在Ds和Ts上的知識幫助提高在目標域Dt上的預測函數fT(x)的學習[17]。遷移學習的目的是利用現有的訓練過的網絡模型,改進目標域的學習效果。本文利用遷移學習訓練的過程如圖所示。首先對預訓練模型進行隨機初始化后,利用小數據集進行訓練,訓練穩定后,取出網絡模型進行推理,最后利用測試集對其性能進行測試。

圖2 遷移學習示意圖
單個卷積核具有兩個空間維度(寬度和高度)和一個通道維度,在卷積過程中需要同時映射跨通道相關性和空間相關性。在卷積核數量較多的情況下,計算量巨大。
深度可分離卷積(Depthwise separable convolution)[18]把映射空間相關性和映射通道間相關性的任務分離,不同的通道獨立起來,先進行特征提取,再進行特征融合,這種方式充分利用模型參數進行特征學習,大幅降低計算量,從而讓網絡效率更高。
典型的深度可分離卷積如圖3所示。對于n個通道的卷積操作,首先對每一個通道獨立進行空間卷積,然后使用concat操作把各個通道連接在一起,最后進行逐點卷積(1×1卷積)實現跨通道融合。

圖3 深度可分離卷積示意圖
本文分類目標為潛水員、機器人及小型水下運載器、水下生物等三種。主要搜集方式為因特網。考慮到水下目標有近有遠,搜集到的圖像分辨率有大有小,最后水下生物圖片為505張(分辨率從40×38到743×497,分辨率為100×100以下的有176張),潛水員圖片為535張(分辨率從44×52到867×549,分辨率為100×100以下的有110張),水下運載器圖片為337張(分辨率從53×68到890×629,分辨率為100以下的有20張)。

圖4 本文數據樣例
最后,采用旋轉、鏡像等方式對數據進行擴增,作為訓練和測試的數據集(水下生物為1002張,潛水員為1005張,水下機器人為996張)。
本文場景為水下,數據較難收集,屬于小數據集的應用場景。針對小數據集的分類模型設計,主要有兩種方法:一種是遷移學習,另外一種是設計輕量化的模型,重新訓練。
大型數據庫的分類識別模型訓練,對硬件要求較高,而且常常需要訓練較長時間。遷移學習的好處在于節省訓練時間,同時對訓練的硬件設備要求較低,而且還能得到比較好的預測結果。
ImageNet是一個大型數據庫,各個經典網絡在ImageNet測試數據集的準確率以及網絡的計算復雜度如圖5所示。其中FLOPs(floating point operations),表示浮點運算次數,代表模型的計算復雜度。

圖5 經典網絡的準確率和復雜度
從圖中可以看到,計算復雜度較小,且準確率較高的網絡模型有很多。本文選取計算復雜度在6GFLOPs以下,且準確率達到77%以上的網絡進行遷移學習。
用于圖像分類的卷積網絡架構包括了兩大部分:特征提取層(它們包含一系列卷積和池化層)和分類器(一般是密集連接的全連接層)。由于本文分類器與預訓練模型的分類器不同,所以進行遷移學習時,對預訓練模型的分類層進行改變,具體如圖6所示。其中全連接層分為2層,分別有256個節點和3個輸出節點(分類目標為3類)。送入網絡進行訓練的圖像統一設置為128×128(寬度×高度,單位為像素)大小的RGB圖像,且經過歸一化處理。

圖6 遷移學習設計
深度學習模型在水下目標的分類識別中的應用偏向于移動設備的部署,這就要求網絡模型要較小,計算速度要快。
本文設計的網絡結構如圖7所示。主要由卷積層(CONV)、池化層(MAXPOOL)和深度可分離卷積模塊(DWCONV)組成。具體卷積核數量如表1所示。

圖7 本文網絡結構

表1 ShuffleNetV2的測試結果
考慮到分辨率較小的圖片比較多,所以輸入選擇統一縮放到128×128大小。第一個卷積層用于提取圖片的特征,選擇7×7的大卷積核,感受野比較大,特征提取效果較好。DWCONV模塊結構如圖8所示,分為2個通道,分別提取不同細節特征。最后,用最大平均池化(GAP)和1×1卷積核代替分類層的全連接,減少計算量。

圖8 DWCONV模塊結構
本文各種算法基于keras和pytorch框架實現,在Ubuntu中用Python進行實驗。訓練平臺采用CPU為 intel i7 7700K,顯卡為nividia gtx 1080,內存為16G的臺式機。訓練過程中采用GPU加速。
遷移訓練時,對各種網絡在ImageNet數據集下訓練得到的模型進行初始化;優化算法采用可以自適應的Adam算法;初始學習率設置為0.0001;損失函數采用交叉損失熵;Batchsize設置為32;epochs設置為20;每個epoch迭代200次;每次epoch開始的時候,對訓練數據進行打亂。
其中兩個典型的網絡EfficientNet-B1和InceptionV3的訓練曲線如圖9所示,其中方格點標示的曲線為準確率曲線,圓點標示的曲線為損失曲線。紅色線為測試集的曲線,藍色的為訓練集的曲線。

圖9 遷移學習的訓練曲線
從中可以看到,EfficientNet系列的測試集曲線比較平穩,InceptionV3的測試集曲線有點波動。說明EfficientNet系列的預訓練模型的泛化能力較強。
訓練結束后,對測試集進行測試,其中EfficientNet-B3、ShuffleNetV2和InceptionV3網絡的測試結果如下所示。可以看到,EfficientNet-B3準確率非常高,601個圖像,推理結果只錯了1個。InceptionV3推理能力也非常不錯,ShuffleNetV2相對來說推理能力弱了一點。

表2 InceptionV3的測試結果
各個網絡的參數量、計算復雜度及測試集的準確率如表所示。可以看到,參數量較大的網絡都取得很不錯的準確率。參數量較小的網絡Shuffle-NetV2與其他網絡相比,仍有差距。

表3 InceptionV3的測試結果
總的來說,遷移學習省時省力,而且能得到很不錯的結果。但是同時也受預訓練模型的限制,網絡模型固定,在部署到移動設備時比較不方便。所以重新設計網絡模型,進行自我訓練就顯得尤為重要。
本文網絡進行訓練時,優化算法采用可以自適應的Adam算法;初始學習率設置為0.0008,然后采用可變學習率,每20個epoch學習率減小一半;損失函數采用交叉損失熵;Batchsize設置為32;epoch數量設置為200;每個epoch迭代300次;每次epoch開始的時候,對訓練數據進行打亂。
訓練曲線如圖10所示。

圖10 訓練曲線
從圖10中可以看到,在迭代訓練100次以后,訓練的準確率接近100%,損失也接近0。同樣的,在迭代訓練100次以后,測試集的準確率接近99%,損失趨近0.14。
訓練結束后,對測試集進行測試,各個網絡的測試結果如表4所示。

表4 Verysimplenet的測試結果
本文方法得到的混淆矩陣見表2。分類錯誤數量為8個,正確數量為593。準確率達到98.67%。
計算復雜度方面,本文網絡參數量為0.899M,
本文網絡模型的性能與其他網絡模型的比較見圖11。從中可以看到,本文模型參數量較少,而且取得較不錯的測試結果,在移動設備部署中具有很不錯的優勢。

圖11 與遷移學習的性能比較
本文研究了水下光學圖像的分類識別方法。從遷移學習與自我設計的網絡兩個方面出發,都取得了不錯的目標分類結果。總地來說,遷移學習省時省力,而且能得到很不錯的結果。但是受預訓練模型的限制,在部署到移動設備時比較不方便。輕量化設計的網絡比較靈活,可以控制參數量,而且在小數據集的訓練方面,小網絡適應性更好,泛化能力也比較強。