梁 紅 金磊磊 楊長生
(西北工業大學航海學院 西安 710072)
受海洋環境復雜性的影響,水下攝像機等設備采集到的水下圖像往往邊緣和細節模糊,目標與背景對比度低,同時圖像易受噪聲污染[1-2],這使得水下圖像識別成為一項非常具有挑戰性的工作.傳統識別方法通常使用人工提取的數據特征,配合不同的分類器實現目標識別[3-4].這些人為的特征提取手段對某些特定的識別任務有較好的性能,但是提取有效特征需要專業的領域知識,并且這些方法大多泛化能力有限.
深度學習是模式識別領域一個新的研究熱點.借助深度學習,多處理層組成的神經網絡模型通過多層抽象來自動學習數據表征,避免了人工提取特征的困難[5].自2006年以來,借助于大數據,卷積神經網絡(convolutional neural networks, ConvNets)在空氣中的光學圖像識別方面迅速發展,已經取得了巨大成功[6-7].但是,基于深度學習的水下圖像識別研究還遠遠不夠[8].其中一個重要原因,是因為當數據集訓練樣本較少時,深層神經網絡很容易發生過擬合[9],網絡性能嚴重下降.而水下圖像采集通常需要耗費大量人力物力,使得很難獲得足夠的水下圖像數據用于深層神經網絡的訓練.
針對水下圖像識別中,圖像受噪聲污染及圖像數據量不足等問題,提出改進中值濾波圖像降噪算法以及小樣本情況下基于深層卷積神經網絡的水下圖像識別方法.更具體地,利用水下攝像機在開放水域捕捉到的魚類圖像數據集,通過一套有效的算法來解決水下魚類識別問題.
實驗表明,相機拍攝的圖像通常受到脈沖噪聲和高斯噪聲的影響.噪聲的存在給圖像后續處理帶來困難,對圖像分割、特征提取、圖像識別等都有直接影響.
中值濾波是基于排序統計理論的一種能夠有效抑制脈沖噪聲的非線性信號處理技術[10].標準中值濾波器一般使用滑動窗口,從圖像左上角開始依次獲取圖像的局部像素值,然后用局部像素中值替代滑窗中心位置處的像素值,直到遍歷整張圖像.該算法相對簡單,易于實現.
以上給出了中值濾波器針對單通道灰度圖像的處理算法,彩色RGB(三通道)圖像的處理算法與之類似,即對每一通道分別作中值濾波處理.
ConvNets是一種有效的分類識別模型,近年來廣泛應用于圖像識別任務中.典型的ConvNets結構是多個基本模塊的多層堆疊,包括卷積層、池化層和全連接層等.輸入原始數據,每個模塊依次將上一個層次的數據表征轉換為更高層次和更抽象層次的描述,實現了原始數據特征的自動提取.對于識別任務,高級別的表征更能反映目標類別的本質特征.
受到生物視覺機制啟發,結合自然圖像特點,ConvNets模型的設計采用以下核心理念:局部連接,權重共享,池化和多網絡層的使用.因此,與相同層數的全連接神經網絡相比,ConvNets內部具有更少的連接和參數,相對更易于訓練[11].此外,可以通過改變ConvNets的深度和寬度來調整模型的性能.
一個典型的ConvNets模型是AlexNet,見圖1.該網絡共有八層,其中前五層執行卷積運算,后三層是全連接層.最后一層的輸出將被送到Softmax分類器中,得到輸入數據在1000個類別上的概率分布情況.在2012屆ImageNet大型視覺識別挑戰賽(ILSVRC)中,Alex團隊利用該模型取得圖像識別錯誤率15.3%的成績,而排名第二的傳統模型識別錯誤率達26.2%.結果表明,深層卷積神經網絡能夠通過監督學習方式,在大數據集上實現較高準確率的物體識別.

圖1 AlexNet整體結構
標準中值濾波器會對原始圖像中的每個像素點,都進行中值濾波處理.這樣一來,圖像處理結果很大程度上將會受到設定的濾波器窗口大小的影響.具體來說,一個小的濾波窗口可以更好地保護原始圖像的細節信息,但是噪聲抑制能力將受到限制;一個大的濾波窗口可以增強噪聲抑制能力,但是原始圖像的細節將變模糊.為了盡量減小濾波窗口大小設定對圖像處理結果的影響,提出改進中值濾波器.不同于標準中值濾波器處理圖像中的所有像素,改進中值濾波器通過設定閾值,只處理被認為受脈沖噪聲污染的像素.減少濾波窗口處理的像素數量,也就減少了濾波窗口大小設定對圖像處理結果的影響.以灰度圖像為例,改進中值濾波算法分為兩個主要步驟.
步驟1根據受污染像素與其周圍未受噪聲污染像素的值相差較大這一先驗信息來檢測被脈沖噪聲污染的圖像像素.
1) 脈沖噪聲主要將像素真值改變為0或255,所以我們只關心那些值為0或255的像素,其他像素被認為未受脈沖噪聲污染.
2) 使用5×5標準中值濾波器對整個原始圖像進行處理,得到粗略降噪圖像.求原始圖像與粗略降噪圖像對應像素值的差值,將全部差值的均值作為閾值來決定我們感興趣的像素是否為噪聲污染像素.具體而言,如果原始圖像與粗略降噪圖像對應像素點的差值大于閾值,則該像素被認為受到噪聲污染,否則認為該像素未受到噪聲污染.
步驟2分別處理受脈沖噪聲污染的像素點.即對原始圖像,使用5×5中值濾波窗口依次處理受污染的像素,保留未受污染像素,得到精細降噪圖像.
以上給出了改進中值濾波器針對單通道灰度圖像的處理算法,該改進算法同樣可以應用于彩色RGB圖像的降噪中,只需要對彩色圖像的三個通道分別作改進中值濾波處理即可.
為定量評價降噪效果,使用式(1)計算RGB圖像的峰值信噪比(peak signal to noise ratio, PSNR):
PSNR=
(1)

深層神經網絡通常有數百萬的連接和權值.雖然ConvNets采用了局部連接和權值共享理念,仍然有大量的權值需要通過訓練進行調整.當ConvNets應用于大型數據集時,能夠取得很好的結果.然而,訓練集樣本數量較少時,網絡易發生過擬合.所謂過擬合,即卷積網絡對訓練集數據能取得較高的識別準確率,但是對測試集數據的識別準確率很低.對于水下圖像識別任務,一個實際問題是無法獲得足夠的樣本圖像來訓練神經網絡.借鑒深度信念網絡(deep belief networks, DBNs)的訓練過程[12],將卷積神經網絡的訓練同樣分為預訓練和微調兩步,以解決小樣本情況網絡過擬合的問題,從而提出一種小樣本情況下基于卷積神經網絡的水下圖像識別方法.方法分為三個主要階段.
步驟1使用大數據集預先訓練ConvNets.ConvNets不僅是分類器,也是特征提取器,其隱含層以利于預測目標類別的方式來學習并表示網絡的輸入,經過預訓練的ConvNets將對圖像的顏色、紋理和邊緣等信息敏感.自然圖像具有一定的共性,使用與我們期望識別的類別不一樣的圖像來預訓練網絡是合理的.ImageNet圖像數據集為我們提供了一個這樣的大數據集,它有超過1 500萬個帶標簽的高分辨率圖像,屬于大約22 000個類別[13].
步驟2使用獲取的小樣本圖像數據集對第一階段訓練完的ConvNets微調.多層架構的卷積網絡可以通過隨機梯度下降優化算法來進一步訓練,實現參數的微調整.此時,分類器的輸出個數需要修改為小樣本圖像數據集的目標類別數目.
步驟3最后一個階段是對微調后的ConvNets識別準確率進行測試.如果準確率達到應用要求,則可將訓練好的ConvNets用于該圖像識別任務中.
采用Fish4Knowledge項目[14]在開放海域采集的魚類圖像數據進行小樣本情況水下圖像識別方法實驗驗證,海洋魚類圖像見圖2,在10類代表性魚類圖片的下面分別標有類別名稱和相應的樣本數量.圖2 的圖像是較為理想的,許多圖像受噪聲污染質量較差.該數據集是非常不均衡的,10類數據中,樣本數最多的有450張圖像,而樣本數最少的只有90張圖像.從樣本總數來看,很難直接利用深度學習方法獲得高的圖像識別率.

圖2 10類海洋魚類圖像
圖像降噪可以為后續的魚類識別任務減少干擾.為了克服標準中值濾波器的缺點,采用本文提出的改進中值濾波器對圖像進行噪聲抑制.圖3分別是采用標準中值濾波器和改進中值濾波器對含噪魚類圖像的處理結果.

圖3 標準中值濾波與改進中值濾波圖像降噪結果
由圖3可知,標準中值濾波器的圖像處理結果直接受濾波器窗口大小的影響.相比于標準中值濾波算法,改進中值濾波算法不僅可以有效地抑制脈沖噪聲,同時很好地保留原始圖像細節.
為了進行定量比較,我們根據式(1)計算了三種不同方法處理后的圖像的PSNR,見表1.通過比較最后一列數值與前兩列數值,可以看到改進算法對圖像峰值信噪比的提高是實質性的,相比于標準中值濾波器高出2 dB左右.

表1 標準及改進中值濾波降噪圖像峰值信噪比
ConvNets的架構包含四個關鍵思想:局部連接、共享權值、池化以及使用多個層.本文實驗使用的ConvNets模型的總體結構見圖4,近似于AlexNet模型.圖4中標注了不同層的定義,前五層是卷積層,其余三層是全連接層,輸出層的輸出類別數目在不同的訓練階段不相同.采取零均值,標準差為0.01的高斯分布來初始化每個卷積層中最初的權重.

圖4 本文使用的ConvNets模型
文中卷積神經網絡的訓練分為兩個階段,利用Caffe深度學習框架[15]完成網絡訓練和測試.在第一階段,使用從ImageNet數據集獲取的圖像對網絡進行預訓練,預訓練數據集包含1 000類物體,每個類別有1 000張圖像.經過預訓練,ConvNets的網絡權重等參數實現了恰當的初始化,網絡初步具備了對圖像信息的表達能力.
在第二階段,將降噪預處理后的魚類圖像尺寸調整為227×227,并將整個魚類數據集分為三個子集:訓練集500張圖像(10個類別各50張圖像),驗證集200張圖像(10個類別各20張圖像),其余的1 420張圖像作測試.
最后一層輸出神經元數目從階段一的1 000改為10,并將輸出結果饋送到10路輸出的Softmax分類器中,得到輸入圖像在10個類別上的概率分布情況.采用小批量梯度(mini-batch gradient descent, MBGD)下降算法(批大小設置為40),通過對分類誤差的反向傳播來微調經過預訓練的神經網絡參數.基礎學習率設為0.001,同時設置0.005的權重衰減和0.9的動量系數.網絡前七層的學習速率相等,最后一層的學習率設置為它們的10倍.每訓練迭代1 000次,整體學習率下降為之前的一半.
經過5 000次迭代,完成ConvNets的微調.最終,在驗證集上取得85.50%的平均識別準確率,在測試集上達到85.08%的平均識別準確率.圖5為微調階段訓練損失隨訓練迭代次數的變化曲線,圖6為驗證準確率隨訓練迭代次數的變化曲線,證明了所提卷積神經網絡訓練策略對于小樣本情況下的圖像識別是有效的.

圖5 微調階段訓練誤差-迭代次數曲線

圖6 微調階段驗證準確率-迭代次數曲線
提出了一種改進的中值濾波器以及一種有效的小樣本情況下基于卷積神經網絡的水下目標識別方法,并通過魚類圖像數據集進行了實驗驗證.不同于傳統水下目標識別方法,目標特征是從訓練數據中通過監督學習自動得到的,因此不需要專業的關于魚類或圖像特征提取的有關知識.本文方法對解決其他水下目標識別問題提供了重要參考,對深度學習理論應用于水下目標識別具有促進作用,并且在海洋生物調查和水產養殖等方面具有廣闊的應用前景.