湯永濤 林鴻生 劉 興
(1.海軍士官學(xué)校 蚌埠 233012)(2.南京航空航天大學(xué) 南京 210016)
我國沿海分布有大量港口,在國際形勢風(fēng)云變化的情況下,港口的防御壓力巨大。敵對勢力可利用水下蛙人、機器人以及小型水下運載器等從水下趁虛而入,對重要設(shè)施進行破壞[1]。目前水下安全監(jiān)視主要利用水聲技術(shù)對水下目標(biāo)進行探測、分類、定位和跟蹤。但聲吶系統(tǒng)易受水下環(huán)境及目標(biāo)屬性等條件制約,很難獲得準(zhǔn)確、直觀的目標(biāo)識別結(jié)果。相對于水聲而言,水下光學(xué)探測具有成像分辨率高、細節(jié)豐富、成像速度快等優(yōu)點。因此,水下光學(xué)探測逐漸成為水下探測的一種有效輔助手段[1~2]。
但是,由于水和水體中的雜質(zhì)對光信號存在著吸收、散射等效應(yīng),水下光學(xué)圖像普遍存在著對比度低、噪聲突出等問題[3~4]。這給水下目標(biāo)的自動分類識別帶來困難。
深度學(xué)習(xí)在圖像分類識別方面表現(xiàn)非常出色。自 2012年Krizhevsky等提出AlexNet[5]以來,學(xué)者們開發(fā)出了多種用于分類識別的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如 VGGNet[6]、GoogleNet[7]、ResNet[8]、ResNeXt[9]、NASNet[10]、EfficientNet[11]等。這些網(wǎng)絡(luò)結(jié)構(gòu)在ImageNet數(shù)據(jù)庫上能得到很不錯的準(zhǔn)確率(各種經(jīng)典網(wǎng)絡(luò)在ImageNet數(shù)據(jù)庫測試集上的準(zhǔn)確率見圖1(a))。但這些分類網(wǎng)絡(luò)在實際應(yīng)用中存在兩個問題:一是用于訓(xùn)練小型數(shù)據(jù)集時容易出現(xiàn)過擬合,因為它們都是針對大型數(shù)據(jù)庫進行設(shè)計的,網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,參數(shù)量巨大(見圖1(b));二是較難應(yīng)用于移動設(shè)備,移動設(shè)備硬件性能受到限制,無法與服務(wù)器等大型硬件相比,這些大型網(wǎng)絡(luò)由于模型巨大,推理時間較長,在移動設(shè)備上應(yīng)用會受到限制,實時性不能滿足要求。
在偏向于應(yīng)用到移動設(shè)備的網(wǎng)絡(luò)中,也出現(xiàn)了像 MobileNet[12~14]、ShuffleNet[15]、GhostNet[16]等高效的輕量級網(wǎng)絡(luò)。但它們的分類準(zhǔn)確率與大型網(wǎng)絡(luò)相比,仍有不小的差距。圖1為各種網(wǎng)絡(luò)的準(zhǔn)確率與參數(shù)量比較,以白框表示的為MobileNet、ShuffleNet、GhostNet。
圖1 經(jīng)典網(wǎng)絡(luò)的性能對比
本文在上述背景的基礎(chǔ)上,針對水下光學(xué)圖像小數(shù)據(jù)集目標(biāo)分類的問題,利用深度學(xué)習(xí)方法進行研究,從遷移學(xué)習(xí)與輕量化網(wǎng)絡(luò)設(shè)計兩個方面進行。
隨著各種網(wǎng)絡(luò)架構(gòu)越來越成熟,遷移學(xué)習(xí)的重要性在逐漸提高。大型網(wǎng)絡(luò)在大型數(shù)據(jù)集上的訓(xùn)練對于普通研究人員來說很難實現(xiàn)(硬件設(shè)備,訓(xùn)練時間很難得到保證),而越來越多的企業(yè)在網(wǎng)絡(luò)上分享了他們在大型數(shù)據(jù)集上訓(xùn)練過的網(wǎng)絡(luò)模型,這為普通研究人員節(jié)省了大量訓(xùn)練時間。
遷移學(xué)習(xí)定義為:給定一個源域Ds和一個學(xué)習(xí)任務(wù)Ts,一個目標(biāo)域Dt和一個學(xué)習(xí)任務(wù)Tt,遷移學(xué)習(xí)的目的是使用在Ds和Ts上的知識幫助提高在目標(biāo)域Dt上的預(yù)測函數(shù)fT(x)的學(xué)習(xí)[17]。遷移學(xué)習(xí)的目的是利用現(xiàn)有的訓(xùn)練過的網(wǎng)絡(luò)模型,改進目標(biāo)域的學(xué)習(xí)效果。本文利用遷移學(xué)習(xí)訓(xùn)練的過程如圖所示。首先對預(yù)訓(xùn)練模型進行隨機初始化后,利用小數(shù)據(jù)集進行訓(xùn)練,訓(xùn)練穩(wěn)定后,取出網(wǎng)絡(luò)模型進行推理,最后利用測試集對其性能進行測試。
圖2 遷移學(xué)習(xí)示意圖
單個卷積核具有兩個空間維度(寬度和高度)和一個通道維度,在卷積過程中需要同時映射跨通道相關(guān)性和空間相關(guān)性。在卷積核數(shù)量較多的情況下,計算量巨大。
深度可分離卷積(Depthwise separable convolution)[18]把映射空間相關(guān)性和映射通道間相關(guān)性的任務(wù)分離,不同的通道獨立起來,先進行特征提取,再進行特征融合,這種方式充分利用模型參數(shù)進行特征學(xué)習(xí),大幅降低計算量,從而讓網(wǎng)絡(luò)效率更高。
典型的深度可分離卷積如圖3所示。對于n個通道的卷積操作,首先對每一個通道獨立進行空間卷積,然后使用concat操作把各個通道連接在一起,最后進行逐點卷積(1×1卷積)實現(xiàn)跨通道融合。
圖3 深度可分離卷積示意圖
本文分類目標(biāo)為潛水員、機器人及小型水下運載器、水下生物等三種。主要搜集方式為因特網(wǎng)??紤]到水下目標(biāo)有近有遠,搜集到的圖像分辨率有大有小,最后水下生物圖片為505張(分辨率從40×38到743×497,分辨率為100×100以下的有176張),潛水員圖片為535張(分辨率從44×52到867×549,分辨率為100×100以下的有110張),水下運載器圖片為337張(分辨率從53×68到890×629,分辨率為100以下的有20張)。
圖4 本文數(shù)據(jù)樣例
最后,采用旋轉(zhuǎn)、鏡像等方式對數(shù)據(jù)進行擴增,作為訓(xùn)練和測試的數(shù)據(jù)集(水下生物為1002張,潛水員為1005張,水下機器人為996張)。
本文場景為水下,數(shù)據(jù)較難收集,屬于小數(shù)據(jù)集的應(yīng)用場景。針對小數(shù)據(jù)集的分類模型設(shè)計,主要有兩種方法:一種是遷移學(xué)習(xí),另外一種是設(shè)計輕量化的模型,重新訓(xùn)練。
大型數(shù)據(jù)庫的分類識別模型訓(xùn)練,對硬件要求較高,而且常常需要訓(xùn)練較長時間。遷移學(xué)習(xí)的好處在于節(jié)省訓(xùn)練時間,同時對訓(xùn)練的硬件設(shè)備要求較低,而且還能得到比較好的預(yù)測結(jié)果。
ImageNet是一個大型數(shù)據(jù)庫,各個經(jīng)典網(wǎng)絡(luò)在ImageNet測試數(shù)據(jù)集的準(zhǔn)確率以及網(wǎng)絡(luò)的計算復(fù)雜度如圖5所示。其中FLOPs(floating point operations),表示浮點運算次數(shù),代表模型的計算復(fù)雜度。
圖5 經(jīng)典網(wǎng)絡(luò)的準(zhǔn)確率和復(fù)雜度
從圖中可以看到,計算復(fù)雜度較小,且準(zhǔn)確率較高的網(wǎng)絡(luò)模型有很多。本文選取計算復(fù)雜度在6GFLOPs以下,且準(zhǔn)確率達到77%以上的網(wǎng)絡(luò)進行遷移學(xué)習(xí)。
用于圖像分類的卷積網(wǎng)絡(luò)架構(gòu)包括了兩大部分:特征提取層(它們包含一系列卷積和池化層)和分類器(一般是密集連接的全連接層)。由于本文分類器與預(yù)訓(xùn)練模型的分類器不同,所以進行遷移學(xué)習(xí)時,對預(yù)訓(xùn)練模型的分類層進行改變,具體如圖6所示。其中全連接層分為2層,分別有256個節(jié)點和3個輸出節(jié)點(分類目標(biāo)為3類)。送入網(wǎng)絡(luò)進行訓(xùn)練的圖像統(tǒng)一設(shè)置為128×128(寬度×高度,單位為像素)大小的RGB圖像,且經(jīng)過歸一化處理。
圖6 遷移學(xué)習(xí)設(shè)計
深度學(xué)習(xí)模型在水下目標(biāo)的分類識別中的應(yīng)用偏向于移動設(shè)備的部署,這就要求網(wǎng)絡(luò)模型要較小,計算速度要快。
本文設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。主要由卷積層(CONV)、池化層(MAXPOOL)和深度可分離卷積模塊(DWCONV)組成。具體卷積核數(shù)量如表1所示。
圖7 本文網(wǎng)絡(luò)結(jié)構(gòu)
表1 ShuffleNetV2的測試結(jié)果
考慮到分辨率較小的圖片比較多,所以輸入選擇統(tǒng)一縮放到128×128大小。第一個卷積層用于提取圖片的特征,選擇7×7的大卷積核,感受野比較大,特征提取效果較好。DWCONV模塊結(jié)構(gòu)如圖8所示,分為2個通道,分別提取不同細節(jié)特征。最后,用最大平均池化(GAP)和1×1卷積核代替分類層的全連接,減少計算量。
圖8 DWCONV模塊結(jié)構(gòu)
本文各種算法基于keras和pytorch框架實現(xiàn),在Ubuntu中用Python進行實驗。訓(xùn)練平臺采用CPU為 intel i7 7700K,顯卡為nividia gtx 1080,內(nèi)存為16G的臺式機。訓(xùn)練過程中采用GPU加速。
遷移訓(xùn)練時,對各種網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集下訓(xùn)練得到的模型進行初始化;優(yōu)化算法采用可以自適應(yīng)的Adam算法;初始學(xué)習(xí)率設(shè)置為0.0001;損失函數(shù)采用交叉損失熵;Batchsize設(shè)置為32;epochs設(shè)置為20;每個epoch迭代200次;每次epoch開始的時候,對訓(xùn)練數(shù)據(jù)進行打亂。
其中兩個典型的網(wǎng)絡(luò)EfficientNet-B1和InceptionV3的訓(xùn)練曲線如圖9所示,其中方格點標(biāo)示的曲線為準(zhǔn)確率曲線,圓點標(biāo)示的曲線為損失曲線。紅色線為測試集的曲線,藍色的為訓(xùn)練集的曲線。
圖9 遷移學(xué)習(xí)的訓(xùn)練曲線
從中可以看到,EfficientNet系列的測試集曲線比較平穩(wěn),InceptionV3的測試集曲線有點波動。說明EfficientNet系列的預(yù)訓(xùn)練模型的泛化能力較強。
訓(xùn)練結(jié)束后,對測試集進行測試,其中EfficientNet-B3、ShuffleNetV2和InceptionV3網(wǎng)絡(luò)的測試結(jié)果如下所示??梢钥吹剑珽fficientNet-B3準(zhǔn)確率非常高,601個圖像,推理結(jié)果只錯了1個。InceptionV3推理能力也非常不錯,ShuffleNetV2相對來說推理能力弱了一點。
表2 InceptionV3的測試結(jié)果
各個網(wǎng)絡(luò)的參數(shù)量、計算復(fù)雜度及測試集的準(zhǔn)確率如表所示??梢钥吹?,參數(shù)量較大的網(wǎng)絡(luò)都取得很不錯的準(zhǔn)確率。參數(shù)量較小的網(wǎng)絡(luò)Shuffle-NetV2與其他網(wǎng)絡(luò)相比,仍有差距。
表3 InceptionV3的測試結(jié)果
總的來說,遷移學(xué)習(xí)省時省力,而且能得到很不錯的結(jié)果。但是同時也受預(yù)訓(xùn)練模型的限制,網(wǎng)絡(luò)模型固定,在部署到移動設(shè)備時比較不方便。所以重新設(shè)計網(wǎng)絡(luò)模型,進行自我訓(xùn)練就顯得尤為重要。
本文網(wǎng)絡(luò)進行訓(xùn)練時,優(yōu)化算法采用可以自適應(yīng)的Adam算法;初始學(xué)習(xí)率設(shè)置為0.0008,然后采用可變學(xué)習(xí)率,每20個epoch學(xué)習(xí)率減小一半;損失函數(shù)采用交叉損失熵;Batchsize設(shè)置為32;epoch數(shù)量設(shè)置為200;每個epoch迭代300次;每次epoch開始的時候,對訓(xùn)練數(shù)據(jù)進行打亂。
訓(xùn)練曲線如圖10所示。
圖10 訓(xùn)練曲線
從圖10中可以看到,在迭代訓(xùn)練100次以后,訓(xùn)練的準(zhǔn)確率接近100%,損失也接近0。同樣的,在迭代訓(xùn)練100次以后,測試集的準(zhǔn)確率接近99%,損失趨近0.14。
訓(xùn)練結(jié)束后,對測試集進行測試,各個網(wǎng)絡(luò)的測試結(jié)果如表4所示。
表4 Verysimplenet的測試結(jié)果
本文方法得到的混淆矩陣見表2。分類錯誤數(shù)量為8個,正確數(shù)量為593。準(zhǔn)確率達到98.67%。
計算復(fù)雜度方面,本文網(wǎng)絡(luò)參數(shù)量為0.899M,
本文網(wǎng)絡(luò)模型的性能與其他網(wǎng)絡(luò)模型的比較見圖11。從中可以看到,本文模型參數(shù)量較少,而且取得較不錯的測試結(jié)果,在移動設(shè)備部署中具有很不錯的優(yōu)勢。
圖11 與遷移學(xué)習(xí)的性能比較
本文研究了水下光學(xué)圖像的分類識別方法。從遷移學(xué)習(xí)與自我設(shè)計的網(wǎng)絡(luò)兩個方面出發(fā),都取得了不錯的目標(biāo)分類結(jié)果??偟貋碚f,遷移學(xué)習(xí)省時省力,而且能得到很不錯的結(jié)果。但是受預(yù)訓(xùn)練模型的限制,在部署到移動設(shè)備時比較不方便。輕量化設(shè)計的網(wǎng)絡(luò)比較靈活,可以控制參數(shù)量,而且在小數(shù)據(jù)集的訓(xùn)練方面,小網(wǎng)絡(luò)適應(yīng)性更好,泛化能力也比較強。