薛永杰,巨志勇
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
海洋魚(yú)類識(shí)別是一種物體識(shí)別技術(shù),在魚(yú)類種群保護(hù)和魚(yú)類養(yǎng)殖等領(lǐng)域起著重要的作用。漁業(yè)捕撈需要通過(guò)分析各個(gè)種類魚(yú)群的分布情況,因地制宜地做出相應(yīng)的捕撈調(diào)整。因此,對(duì)海洋魚(yú)類的種類鑒定和觀察是非常重要的。海洋生物學(xué)家研究各種魚(yú)類品種相似度,魚(yú)類生命周期等也高度依賴于觀察魚(yú)類的種類及外觀。在自然環(huán)境中,氣候和環(huán)境的變化對(duì)魚(yú)類物種和魚(yú)類棲息地有較大的影響,所以通過(guò)人工方法在不同環(huán)境下采集魚(yú)類樣本圖片是非常困難且耗時(shí)的。此外,在進(jìn)行魚(yú)類種類識(shí)別時(shí)通常會(huì)遇到圖像含有噪聲太大,圖像分割不完整,被識(shí)別目標(biāo)變形導(dǎo)致識(shí)別率低等問(wèn)題。魚(yú)類的種類鑒別已經(jīng)成為一個(gè)具有挑戰(zhàn)性的研究課題。
近年來(lái),國(guó)家經(jīng)濟(jì)和漁業(yè)科技的發(fā)展日益提升,相關(guān)領(lǐng)域?qū)︳~(yú)類物種的鑒定和識(shí)別的需求迅速增長(zhǎng)。伴隨著互聯(lián)網(wǎng)和人工智能的發(fā)展,產(chǎn)生了許多基于機(jī)器學(xué)習(xí)的魚(yú)類圖像識(shí)別算法。文獻(xiàn)[1]提出利用比較基礎(chǔ)特征并采樣識(shí)別魚(yú)類。該方法雖然識(shí)別率較好,但是訓(xùn)練時(shí)間較長(zhǎng)。文獻(xiàn)[2]中提出利用稀疏表示的分類的最大概率局部排序方法識(shí)別魚(yú)類,但算法中的參數(shù)需要人為預(yù)先設(shè)定。文獻(xiàn)[3]提出了一種利用尺度不變特征變換方法,并由矢量量化直方圖表示,但是如果應(yīng)用于多個(gè)對(duì)象,則會(huì)使用除了目標(biāo)以外的其它對(duì)象特征進(jìn)行識(shí)別,可能導(dǎo)致識(shí)別錯(cuò)誤。
隨著科技的發(fā)展,GPU(Graphics Processing Unit)的圖像處理能力得到了提升,訓(xùn)練深度復(fù)雜的神經(jīng)網(wǎng)絡(luò)也愈加容易。最初研究人員提出了AlexNet[4]、VGGNet[5]、GoogleNet[6]、ResNet[7]等深度學(xué)習(xí)模型,并使用正則化[8]、批量標(biāo)準(zhǔn)化[9]和殘差學(xué)習(xí)[10]來(lái)避免過(guò)擬合或梯度彌散等問(wèn)題。這些網(wǎng)絡(luò)模型為之后的深度學(xué)習(xí)發(fā)展奠定了基礎(chǔ)。陳英義[11]等基于遷移學(xué)習(xí)的海洋魚(yú)類識(shí)別算法,通過(guò)將新魚(yú)類識(shí)別模型與VGG16模型融合,將魚(yú)類識(shí)別模型的準(zhǔn)確率提高至97%以上。Hafiz T R等[12]對(duì)VGGNet模型進(jìn)行了改進(jìn),在每個(gè)級(jí)別的訓(xùn)練上添加了4個(gè)卷積層以提高分類性能。部分學(xué)者提出了典型度和偏心率的數(shù)據(jù)分析用于無(wú)監(jiān)督學(xué)習(xí)[13],也稱為T(mén)EDA(Typicality and Eccentricity Data Analytics)。這些研究為基于深度學(xué)習(xí)進(jìn)行的魚(yú)類種類識(shí)別方法提供了理論基礎(chǔ)和參考。
本文提出了一種基于改進(jìn)AlexNet的魚(yú)類識(shí)別算法。使用基于項(xiàng)的柔性注意力(Item-Wise Soft Attention)算法對(duì)優(yōu)化后的AlexNet模型進(jìn)行改進(jìn),并采用遷移學(xué)習(xí)[14-15]的方式,將經(jīng)過(guò)大型數(shù)據(jù)庫(kù)ImageNet預(yù)訓(xùn)練后的AlexNet模型遷移到魚(yú)類識(shí)別模型上,以提升模型的識(shí)別率并減少訓(xùn)練時(shí)間。訓(xùn)練好的模型以apk格式的文件保存,可以直接應(yīng)用于安卓系統(tǒng)中,實(shí)現(xiàn)對(duì)魚(yú)類的精準(zhǔn)分類。
本次實(shí)驗(yàn)使用的魚(yú)類數(shù)據(jù)庫(kù)為QUT_fish數(shù)據(jù)集。這個(gè)魚(yú)類數(shù)據(jù)集包括從468種魚(yú)類中收集到的3 960張圖片。數(shù)據(jù)集中圖片分為3類:自然環(huán)境、被捕獲、去背景。自然環(huán)境類中的魚(yú)類圖片以各種自然環(huán)境為背景,并使用不同光照條件進(jìn)行拍攝。被捕獲類中魚(yú)類圖片拍攝背景和光照較為固定。去背景類型中的魚(yú)類圖片以白色為背景。本文選取40種不同魚(yú)類作為研究對(duì)象,并使用旋轉(zhuǎn)、平移、剪切等數(shù)據(jù)增廣的手段使數(shù)據(jù)庫(kù)數(shù)量增加為原來(lái)的4倍。部分魚(yú)類樣本如圖1所示。
圖1 魚(yú)類樣本實(shí)例
基于項(xiàng)的柔性注意力算法由兩個(gè)部分組成:第一部分是主干部分,其功能是進(jìn)行正常的卷積操作;第二部分是柔性注意力分支,也是該算法最重要的部分,由多層感知器、一個(gè)解碼器和兩個(gè)采樣層組成。因?yàn)榛陧?xiàng)的輸入是要求包含明確的項(xiàng)的序列的,所以需將每張圖片需要用文本形式描述,表示為單詞編碼序列如下
y={y1,…,yc},yi∈RK
(1)
其中,K是詞表大??;c是描述文本的長(zhǎng)度。在操作層面。原輸入經(jīng)過(guò)卷積網(wǎng)絡(luò)(Convolutional Neural Network,CNN)處理后,轉(zhuǎn)換為每一項(xiàng)都具有對(duì)應(yīng)單獨(dú)編碼的序列。對(duì)于待處理的圖像,經(jīng)過(guò)卷積網(wǎng)絡(luò)抽取其特征,在最后一個(gè)卷積層的輸出可以產(chǎn)生L個(gè)向量,每一個(gè)向量是原圖中一個(gè)區(qū)域的D維表示,也可以看成一個(gè)序列
α={α1,…,αL},αi∈RD
(2)
由柔性注意力機(jī)制分別對(duì)每個(gè)部分的特征賦予不同的權(quán)重,每個(gè)向量αi的權(quán)重αt,i計(jì)算式如下
eti=fatt(αi,ht-1)
(3)
(4)
其中,fatt為多層感知器,輸入是向量αi和解碼器上各時(shí)刻的狀態(tài)ht-1。在計(jì)算好權(quán)重之后,注意力機(jī)制就可以對(duì)輸入序列α進(jìn)行選擇。經(jīng)過(guò)CNN處理后的編碼,通過(guò)計(jì)算權(quán)值,對(duì)所有相進(jìn)行線性加權(quán)合并,基于項(xiàng)的柔性注意力算法的輸出如式(5)所示。
Zt=φ({αi},{at,i})
(5)
式中,Zt為經(jīng)過(guò)注意力機(jī)制加工過(guò)的特征向量,把它輸入到解碼器,通過(guò)全連接層輸出。這里柔性注意力采用求Zt期望的方式,也就是說(shuō)φ是一個(gè)線性加權(quán)函數(shù),求Zt期望的表達(dá)式為
(6)
深度卷積神經(jīng)網(wǎng)絡(luò)與其它傳統(tǒng)方法相比有很多優(yōu)點(diǎn),尤其是徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)。卷積層的權(quán)值共享減少了參數(shù)的數(shù)量,從而更容易檢測(cè)邊緣、角和斑點(diǎn)。池化層的使用為所提取的特征的位置和位置的變化提供了不變性。用于魚(yú)類識(shí)別的模型體系結(jié)構(gòu)如圖2所示。
圖2 FAN魚(yú)類圖像識(shí)別模型
該模型是AlexNet的優(yōu)化版本。首先,為提高魚(yú)類種類識(shí)別的準(zhǔn)確率,本文設(shè)計(jì)了多輸入的模型結(jié)構(gòu),將第一層卷積層CV1分為CV1_a、CV1_b、CV1_c,作為3個(gè)圖片輸入口,各使用11×11的卷積核進(jìn)行卷積,步長(zhǎng)為4。這樣設(shè)計(jì)的好處有兩點(diǎn):(1)不會(huì)額外增加運(yùn)行時(shí)間。如果所有輸入圖片都相同,程序會(huì)將相同圖片等效為一張,不會(huì)額外增加運(yùn)行負(fù)擔(dān);(2)識(shí)別精準(zhǔn)度提高。因?yàn)轸~(yú)類的背景種類繁多,變化復(fù)雜,利用多輸入的形式能夠包含更多信息,降低背景對(duì)識(shí)別圖片的影響,提高了準(zhǔn)確率。
其次,為了減少計(jì)算復(fù)雜度,解決占用內(nèi)存多的問(wèn)題,本文對(duì)AlexNet模型進(jìn)行了調(diào)整,即在不影響精度的前提下減少了部分卷積層。在圖片輸入后,將輸出的特征圖融合為一。經(jīng)過(guò)第一個(gè)卷積層,圖片大小變?yōu)?5×55×96。通過(guò)一個(gè)非飽和線性修正單元(Rectified Linear Units,ReLU)和核為3×3且步長(zhǎng)為1的最大池化層(Max-Pooling)后,圖像尺寸減小為27×27×96。第二卷積層以前一層的輸出為輸入,共產(chǎn)生256個(gè)特征圖,卷積核的大小為5×5,步長(zhǎng)為1。隨后,通過(guò)ReLU和最大池化層,核大小為3×3,步長(zhǎng)為2,輸出圖像大小為13×13×256。第3層和第4層卷積層相連接,卷積核大小為3×3,步長(zhǎng)為1。第3個(gè)卷積層產(chǎn)生384個(gè)特征圖,第4個(gè)卷積層使用256個(gè)特征圖,其后連接一個(gè)最大池化層,核的大小為3×3,步長(zhǎng)為2。該卷積層的輸出通過(guò)兩個(gè)全連接層,輸出圖片個(gè)數(shù)為4 096。
最后,將基于項(xiàng)的柔性注意力模塊置于全連接層與輸出層之間,構(gòu)成改進(jìn)AlexNet模型。模型的輸出為n維,代表n種魚(yú)類訓(xùn)練集種類概率,概率數(shù)值總和為1。改進(jìn)AlexNet模型使用交叉熵?fù)p失函數(shù)衡量預(yù)測(cè)值與實(shí)際結(jié)果之間的差異性信息。交叉熵?fù)p失函數(shù)式如下
Hθ=-∑eP(e;θ)logq(e;θ)
(7)
其中,H為訓(xùn)練損失;e為訓(xùn)練樣本;P為類別概率;θ為參數(shù)權(quán)重;q為改進(jìn)AlexNet模型預(yù)測(cè)各類概率,其形為
(8)
其中,x為激勵(lì)函數(shù)的輸入;j表示被計(jì)算種類的序號(hào)。
利用模型遷移的方法,將AlexNet通過(guò)大型數(shù)據(jù)庫(kù) ImageNet訓(xùn)練后得到的圖像識(shí)別知識(shí)移植到本文改進(jìn) AlexNet模型,得到魚(yú)類識(shí)別模型Fish_AlexNet(FAN)。
遷移學(xué)習(xí)(Transfer Learning,TL)是一種能夠?qū)⒁呀?jīng)掌握的知識(shí)應(yīng)用到類似領(lǐng)域中的學(xué)習(xí)方法。傳統(tǒng)的機(jī)器學(xué)習(xí)方法需要大量樣本,并且需要人為設(shè)置標(biāo)簽,耗費(fèi)大量時(shí)間且效率不高。若直接使用沒(méi)有標(biāo)簽的樣本進(jìn)行訓(xùn)練,得到的模型精度不高,而使用遷移學(xué)習(xí)能夠很好地解決這些問(wèn)題。其利用已經(jīng)通過(guò)大量數(shù)據(jù)訓(xùn)練的模型,將得到對(duì)圖形分類的共性特征遷移到目標(biāo)任務(wù)上。
遷移學(xué)習(xí)主要可以分為4類:基于樣本的遷移(Instance Based TL)、基于特征的遷移(Feature Based TL)、基于模型的遷移(Parameter Based TL)、基于關(guān)系的遷移(Relation Based TL)。這里采用模型遷移的方式將AlexNet改為用于魚(yú)類種類識(shí)別的模型Fish_AlexNet(FAN)。FAN深度卷積網(wǎng)絡(luò)模型由4個(gè)卷積模塊、兩個(gè)全連接層、基于項(xiàng)的柔性注意力層和輸出層,其參數(shù)如表1所示。
表1 FAN模型參數(shù)
在FAN網(wǎng)絡(luò)模型中,輸入魚(yú)類樣本圖片像素為227×227×3,在每一個(gè)卷積模塊里都包含一個(gè)ReLU單元。CV1卷積核大小為[11×11],步長(zhǎng)為4。CV2卷積核大小為[5×5],步長(zhǎng)為1。CV3與CV4卷積核大小為[3×3],步長(zhǎng)為1。使用[3×3]核,步長(zhǎng)為2的最大池化層,上一層的輸出作為下一層的輸入。通過(guò)Softmax層輸出的個(gè)數(shù)為m,其大小對(duì)應(yīng)于選擇的m種不同魚(yú)類。
為了驗(yàn)證算法的有效性和穩(wěn)定性,對(duì)QUT_fish_40數(shù)據(jù)集進(jìn)行識(shí)別,并與ResNet[16-17]等算法進(jìn)行比較。本文模型的訓(xùn)練與測(cè)試均基于開(kāi)源機(jī)器學(xué)習(xí)框架TensorFlow完成。
算法的識(shí)別準(zhǔn)確率由對(duì)魚(yú)類圖片的識(shí)別率計(jì)算得出,識(shí)別率計(jì)算式為
(9)
其中,Zt為待識(shí)別魚(yú)類圖片的個(gè)數(shù);Za為正確識(shí)別的魚(yú)類圖片的個(gè)數(shù);Rrec為算法識(shí)別率。
算法的性能由算法運(yùn)行時(shí)間的平均值來(lái)衡量,平均識(shí)別耗時(shí)的計(jì)算式為
(10)
其中,t為平均識(shí)別耗時(shí);tall為識(shí)別N張魚(yú)類圖片的總耗時(shí);N表示算法運(yùn)行的次數(shù)。
以QUT_fish_40數(shù)據(jù)集和對(duì)其通過(guò)數(shù)據(jù)增廣得到的圖片作為識(shí)別對(duì)象,在3種不同學(xué)習(xí)率(0.001,0.01,0.1)下對(duì)改進(jìn)后的FAN模型與原始AlexNet模型進(jìn)行對(duì)比測(cè)試。權(quán)值衰減率設(shè)置為0.000 2,并根據(jù)實(shí)際情況和訓(xùn)練時(shí)長(zhǎng),在測(cè)試和驗(yàn)證時(shí)將Batch設(shè)置為20,最大訓(xùn)練輪數(shù)設(shè)置為6 000。結(jié)果如表2所示。
表2 AlexNet模型與FAN模型比較結(jié)果
由表2可知,模型學(xué)習(xí)率的設(shè)置對(duì)于模型的識(shí)別準(zhǔn)確率有重要影響??梢钥闯觯趯W(xué)習(xí)率為0.01時(shí),F(xiàn)AN模型的驗(yàn)證準(zhǔn)確率達(dá)到了95.91%,相較于準(zhǔn)確率為84.51%的AlexNet模型提升了約11%。當(dāng)學(xué)習(xí)率為0.1時(shí),F(xiàn)AN模型的訓(xùn)練準(zhǔn)確率與驗(yàn)證準(zhǔn)確率分別達(dá)到了99.59%與97.43%,與AlexNet模型相比,驗(yàn)證準(zhǔn)確率提升約4%。在學(xué)習(xí)率為0.001時(shí),F(xiàn)AN與AlexNet獲得結(jié)果都不理想??梢?jiàn)合適的學(xué)習(xí)率對(duì)模型識(shí)別準(zhǔn)確率有著較大影響。造成準(zhǔn)確率低下的原因是:在利用遷移學(xué)習(xí)時(shí),網(wǎng)絡(luò)模型中的一部分層已經(jīng)過(guò)訓(xùn)練。如果此時(shí)再繼續(xù)使用較小的學(xué)習(xí)率,很容易陷入局部最優(yōu)解,或大幅增加訓(xùn)練時(shí)間,導(dǎo)致模型效果不佳。相反地,設(shè)置的學(xué)習(xí)率過(guò)大,容易導(dǎo)致忽略全局最優(yōu)解,并且會(huì)導(dǎo)致收斂困難、梯度彌散。
分別在0.1和0.01學(xué)習(xí)率的條件下,對(duì)測(cè)試模型經(jīng)過(guò)6 000次的迭代訓(xùn)練后,F(xiàn)AN與AlexNet模型的驗(yàn)證準(zhǔn)確率都達(dá)到了84%以上。總體而言,本文提出的FAN模型算法相較于原始AlexNet有著更高的準(zhǔn)確率。模型的訓(xùn)練損失如圖3所示,縱軸為訓(xùn)練損失經(jīng)過(guò)歸一化處理后的值,橫軸為模型迭代次數(shù)。由圖可見(jiàn)FAN模型在3種不同學(xué)習(xí)率下迭代次數(shù)與訓(xùn)練損失值的關(guān)系。在迭代次數(shù)達(dá)到1 000次時(shí),在0.1與0.01學(xué)習(xí)率下的FAN模型訓(xùn)練損失已經(jīng)基本接近收斂穩(wěn)定,與再經(jīng)過(guò)5 000次迭代之后的訓(xùn)練損失率差別不大,說(shuō)明訓(xùn)練達(dá)到了預(yù)期效果,并且在學(xué)習(xí)率為0.1時(shí)FAN模型取得最佳性能。
圖3 FAN模型訓(xùn)練損失
這里采用羅漢魚(yú)、伸口魚(yú)、藍(lán)唇魚(yú)、燕尾龍4種不同魚(yú)類識(shí)別結(jié)果為例,每種魚(yú)類圖片150張,一共600張魚(yú)類圖片。為了對(duì)比模型效果,分別使用尺度不變特征變換(Scale-Invariant Feature Transform, SIFT)[16]、深度殘差網(wǎng)絡(luò)(ResNet)[17]、AlexNet和本文FAN模型算法,對(duì)待識(shí)別的魚(yú)類圖片進(jìn)行隨機(jī)識(shí)別,各算法的識(shí)別率結(jié)果如表3和圖4所示。
圖4 不同算法的魚(yú)類識(shí)別準(zhǔn)確度
表3 不同模型下的魚(yú)類圖片識(shí)別率
其中,SIFT算法的準(zhǔn)確識(shí)別率最低,僅為69.07%。造成識(shí)別率低下的主要原因是:SIFT算法通過(guò)比較圖像中的關(guān)鍵點(diǎn)也就是局部特征來(lái)檢測(cè)兩幅圖片的相似度,對(duì)于明亮變化和噪聲具有良好的魯棒性,但是同屬不同種的魚(yú)類擁有相似局部特征,導(dǎo)致SIFT算法難以精準(zhǔn)識(shí)別。結(jié)合遷移學(xué)習(xí)的FAN算法達(dá)到了最高準(zhǔn)確率97.53%,相較于AlexNet模型提高了2.91%。
在算法性能方面,從模型訓(xùn)練耗時(shí)和識(shí)別耗時(shí)兩個(gè)方面來(lái)進(jìn)行對(duì)比。由表4可以得出,使用了遷移學(xué)習(xí)的FAN模型訓(xùn)練時(shí)間最短。此外,由于使用了簡(jiǎn)化AlexNet模型,識(shí)別耗時(shí)相較于原始AlexNet模型減少了35%。
表4 不同識(shí)別算法的時(shí)間消耗
針對(duì)傳統(tǒng)算法對(duì)于魚(yú)類識(shí)別率低,難以提取特征點(diǎn)等問(wèn)題,本文提出了基于改進(jìn)的AlexNet魚(yú)類識(shí)別算法。首先,對(duì)AlexNet網(wǎng)絡(luò)模型進(jìn)行了改進(jìn),改進(jìn)后的AlexNet由4個(gè)卷積層和兩個(gè)全連接層組成,減少了網(wǎng)絡(luò)訓(xùn)練復(fù)雜度,避免了無(wú)效訓(xùn)練。其次,提出基于項(xiàng)的柔性注意力算法提升改進(jìn)后的AlexNet精準(zhǔn)度。最后,結(jié)合模型遷移的方法構(gòu)成新的FAN網(wǎng)絡(luò)模型。
在QUT_fish_40數(shù)據(jù)集上對(duì)本文提出算法進(jìn)行了驗(yàn)證。結(jié)果表明,相較于原始AlexNet模型,本文算法訓(xùn)練時(shí)間更短,識(shí)別耗時(shí)減少了35%,識(shí)別準(zhǔn)確率提升了4.08%,網(wǎng)絡(luò)復(fù)雜程度更低,且易用于各種內(nèi)存較小的移動(dòng)設(shè)備。但本文的識(shí)別都是對(duì)單一魚(yú)類進(jìn)行識(shí)別,后續(xù)會(huì)進(jìn)一步研究對(duì)多種魚(yú)類的同時(shí)檢測(cè),以便將該方法應(yīng)用在背景環(huán)境復(fù)雜、渾濁水域的實(shí)時(shí)水下魚(yú)類識(shí)別領(lǐng)域。