葉萍
(福建船政交通職業學院,福建 350007)
關鍵字:船舶航行自動化 卷積神經網絡 船舶圖像 自動識別
隨著計算機以及電氣控制技術的快速發展,在船舶電氣自動化領域,航行自動化、機艙自動化等方面都取得了較為顯著的成果,其中船舶航行自動化系統隨著計算機科學的成熟在船舶工作中有著廣泛的應用[1]。船舶自動識別是船舶航行自動化系統一個重要的組成部分,提高船舶識別準確度能夠大大提升船舶自動化航行的安全性。目前一般的船舶自動識別系統(AIS)[2]基于雷達以及信號傳輸存在一定的不穩定性,有時AIS信息受氣候環境影響很難被收報船接收到,特別是很難被雷達接收。信息中最重要的數據包括船籍、船位、航線、航速、航向及轉向速度等,在目前的雷達設備中,不能自動、連續地傳送給船舶。而船舶圖像識別作為一種探測方法,能夠基于超高分辨率相機和圖形處理單元(GPU)精確地自動識別周圍區域的船只,特別是難以被雷達識別的小船,進而阻止大型船只與較小的船只碰撞,有效規避人視野盲區障礙物。在可視條件較差的情況下,檢測AIS不能識別的小型船舶,大大提高船舶的避撞能力。
深度學習作為圖像識別技術的一個重要方法,自動特征學習及分類的能力使得其能夠快速準確地在復雜場景下對物體進行識別分類。相比于傳統方法,卷積神經網絡近年來在包括ImageNet等數據集上都取得了壓倒性的圖像識別優勢,并且其利用權值共享和局部視野域的方法,減少了參數的數量,提高了運算速度。
權值共享:每個隱藏神經元都具有同樣的偏置和一致的連接到局部感受野的權重。每個隱藏神經元可以學習一種特定的特征映射,最后通過多層連接堆疊的方式,學習到整個圖片的特征。
對于l層的第j,k個隱藏神經元,所得的輸出為:

其中,σ是某神經元的激活函數;b是偏置。w是共享權重的數組,a是激活值。
卷積神經網絡能夠自動地學習到合適的權重和偏置,所以網絡的輸出y x 能夠擬合所有的訓練輸入x。為了量化輸入x與擬合輸出y(x)之間的差距,該算法引入了代價函數的概念:

其中,w表示網絡中所有的權重的矩陣,b是所有的偏置的矩陣,n是訓練輸入數據的個數,a表示輸入為x是輸出的激活值,求和則是在所有的輸入數據x上進行的。網絡訓練的過程其實就是找到代價函數最小時對應的權重值。
直接計算代價函數的最小值得計算量十分巨大,1986年,Rumelhart[8]提出借助使用反向傳播算法,大大減少了最小化代價函數時的計算量,為加深網絡層數提供了可能性。
ReLU函數:ReLU函數是神經網絡中最常用的激活函數之一,通常與卷積層同時出現,其公式為:

其中,當輸入x<0時,輸出為0;當輸入x>0時,輸出x。
混合層(pooling):混合層的作用是對卷積層的輸出信息進行降采樣,減少參數個數,避免過擬合。詳細地說,混合層將輸出的每個特征映射凝縮成一個新的特征映射,常見的混合層有最大值混合(max-pooling)和均值混合(average-pooling)。以max-pooling為例,則取該層一定區域內的最大激活值作為新的特征值輸入到下一層。
2012年Krizhevsky提出深度卷積網絡AlexNet[3],在數據集ImageNet[4]上實現了圖像分類任務并將錯誤率降低到17.0%。在此基礎上,Zisserman提出了一種新的深度卷積網絡結構VGGNet[5],該網絡采用更小的卷積核以及更深的網絡以增強網絡性能。在ImageNet數據集上將分類錯誤率降到了7.32%。同年,Szegedy[6]提出了一種帶有Inception層CNN結構GoogleNet,增大了網絡的深度和寬度,在ImageNet數據集上測試的錯誤率為6.67%。
綜上所述卷積網絡結構既具備自動特征學習能力,還具有強大的分類能力。在此基礎之上,通過設計特定的網絡結構,卷積網絡在船舶圖像識別中具有廣闊的應用場景。
生成對抗神經網絡(GAN)[7]作為今年來廣泛應用的深度學習方法,是一種無監督式地圖像特征學習方法。相比于路上交通駕駛系統,船舶的圖像難以系統性地獲取,加之海上的氣候多變,得到真實航行場景下的特定船舶圖像標簽難度較大,成本較高。換言之,目前可獲取的數據集圖像質量不一致且各個船只類別不同,使用有監督式學習方法難以得到較好地效果。而生成對抗神經網絡不需要標簽,能夠無監督式系統性地學習各類船舶圖像特征,較好地解決了數據集問題。因此本系統基于生成對抗神經網絡設計相應的船舶識別流程。
所謂生成對抗神經網絡,包含生成器和判別器。生成器生成偽數據,旨在“騙過”判別器;判別器則需要盡力區分偽造圖像和真實圖像。二者進行對抗學習,學習訓練如何生成與真實數據分布一致的生成數據。通過這種方式,生成對抗神經網絡模型能夠在無監督地條件下自動學習各類船舶圖像特征,進而在輔助神經網絡地幫助下實現船舶識別分類。本系統使用基于信息最大化的生成對抗網絡(Info-GAN),定義了一個生成對抗網絡,包含生成器G和判別器D和輔助網絡Q。將船舶場景圖像分為雜貨船,湖船,渡船,帆船,無船場景這五類。定義隱變量c從一個固定的噪聲分布中采樣得出。隨機噪聲變量z和潛變量c的串聯構成生成器的輸入,通過生成器G轉換成樣本G(z,c)。將c的維度對應為上述五種場景圖像。因此c和G(z,c)之間需要有高度的互信息。為了最大化互信息I(c;G(z,c)),模型的目標函數為:

然而該模型的優化問題在于真實的P(c|x)無法得知,因此在整個優化的過程中,該算法也引入了變分推斷的思想,使用變分分布Q(c|x)來逼近P(c|x),它是基于最優互信息下界的輪流迭代以實現最終的求解,可以求得式(1)的下界。于是InfoGAN的目標函數變為:

在具體的實現中,本課題設計了輔助網絡Q,其與D共用了除輸出層之外的所有卷積層,在最后增設了一個全連接層來輸出Q(c|x)。對于c,如果是離散隱變量,可以使用softmax的非線性輸出來代表Q(c|x);如果是連續隱變量,可以使用高斯分布來表示。
本系統具體的網絡結構如圖1:

圖1 網絡結構
在網絡訓練過程中,本系統隨機變量由高斯變量z和離散變量c組成。除了通過EM距離在生成器(G)和鑒別器(D)之間進行極大極小值算法,本系統還將c和輔助網絡的輸出(Q(c|G(c,z))以最大限度地提高相互信息。

圖2
在網絡訓練過程中,將船只高清攝像頭所捕獲的圖片作為輔助神經網絡的輸入,就能夠得到特定的隱變量c,此時的隱變量就能指示圖片所屬船只的類別。而生成器在給定對應的隱變量情況下也能生成對應類別的船舶圖像。
綜上所述,通過生成器和判別器基于互信息最大化的對抗學習,可以使得輔助神經網絡無監督式地學習到各類船舶圖像的特征,準確地識別不同類別的船只以及無船場景。為本系統設計提供了核心算法。
本次實驗使用的數據集包括10種不同類別的船:雜貨船,湖船,渡船,帆船,游輪,消防船,漁船,機動游艇,鉆機和潛艇。該數據集從Shipspotting.com網站獲取。實驗使用了1000張圖像進行對抗神經網絡算法訓練,并使用200張圖像進行了5種不同類別的驗證:雜貨船,湖船,渡船,帆船,無船場景。
對于每個分類結果,定義正確地分割出像素個數為TP,被錯誤地分割出的像素個數為FP和未被分割出的像素個數為FN。對于每個分割結果精確度,召回率和F分數(F1)定義如下:

本次驗證過程選取了兩類對比實驗:
1)傳統特征提取方法與支持向量機搭配:特征提取方法為:利用[9]的方法,將尺度不變方向變化,方向梯度直方圖以及LAB顏色直方圖的提取的特征結合為188維的特征向量作為輸入,使用支持向量機(SVM)進行分類。(CTM+SVM)
2)使用在Imagenet-1K上預訓練好的Resnet-100直接以船舶圖像作為輸入,在提取特征之后即可在輸出端調整輸出類別數以達到船舶分類的目的。(Resnet-100)
將圖像作為輔助網絡的輸入,可以得到具體的隱變量數值,根據所得的數值對圖片進行分類,得到船只識別結果,圖3為部分分類效果。

圖3
由圖3可見,A為雜貨船,B為湖船,C為渡船,D為帆船,E為無船場景。各類圖片都能較好地被分配到所屬類別,聚類中心明顯,本算法能夠在較高的精確度上完成場景圖片的識別分類。
基于上述三種方法,本次實驗對每個方法進行了4次重復實驗,對4組實驗取平均值,所得到的數據結果如表1。

表1 對比實驗結果
由表1可見,生成對抗神經網絡相較于傳統分類算法,在識別船舶圖像過程中能夠取得大幅提升的分類效果。對比較具代表性的深度殘差網絡,不僅取得了分類上準確度的提升,且網絡結構更加簡單,所需計算資源與訓練時間更少,更易落地應用于船舶電氣自動化嵌入式系統。
本論文提出了一種基于生成對抗神經網絡的圖像識別算法。經過數學推導,船舶類別分析,隱變量設計使用,網絡模型設計,本論文將該算法應用于船舶自動識別系統。通過對比實驗論證,本論文所提出的算法較其他算法取得了更高的分類準確度,并且在有標簽數據集較少的情況下能夠進行無監督地特征學習,由此可見基于本生成對抗神經網絡的船舶自動識別系統在船舶航行自動化以及船舶電氣自動化領域具有一定的應用價值。