萬(wàn)永清 張奇志
北京信息科技大學(xué) 自動(dòng)化學(xué)院,北京 100192
隨著人口的增加,工農(nóng)業(yè)的快速發(fā)展,人民生活水平的提升,在享受生活便利的同時(shí),也加劇了對(duì)水生態(tài)系統(tǒng)的破壞。大量含有營(yíng)養(yǎng)物質(zhì)的工業(yè)廢水和生活污水的排放導(dǎo)致水體富營(yíng)養(yǎng)化,使得藻類(lèi)大量迅速繁殖[1],并引起水華或者赤潮現(xiàn)象,破壞了生態(tài)系統(tǒng),所以對(duì)赤潮或者水華現(xiàn)象進(jìn)行監(jiān)測(cè)和預(yù)測(cè)是迫在眉睫的任務(wù)。
藻類(lèi)的種類(lèi)和數(shù)量是水華或者赤潮的關(guān)鍵指標(biāo),常規(guī)方法是人工檢測(cè),這種方法存在很大的缺陷:對(duì)員工的技能和熟練度要求很高,而且在大量檢測(cè)過(guò)程中,員工容易疲勞和缺乏客觀性,使得檢測(cè)結(jié)果不合格、錯(cuò)誤率高。
藻類(lèi)分類(lèi)識(shí)別一直是生物學(xué)領(lǐng)域的一個(gè)熱點(diǎn)問(wèn)題,有很多人在研究,現(xiàn)在有很多使用傳統(tǒng)識(shí)別算法替代人工檢測(cè),取得一定的效果,但還是有很多局限性。
傳統(tǒng)的藻類(lèi)圖像識(shí)別過(guò)程中,通常需要對(duì)采集到的各種藻類(lèi)圖像進(jìn)行各種預(yù)處理,為了得到好的特征,還需要對(duì)預(yù)處理后的圖像進(jìn)行分割,得到目標(biāo)物,最后還得進(jìn)行人工選取特征。其中,張松等[2]傳統(tǒng)識(shí)別算法識(shí)別三種藻類(lèi),最終的分類(lèi)正確率為83.3 %。這種采取傳統(tǒng)的人工選取特征的方法獲得識(shí)別率不是很高,而采用深度學(xué)習(xí)方法可以化繁為簡(jiǎn),自動(dòng)選擇特征,較好地解決這些問(wèn)題。
本文提出了使用現(xiàn)在圖像識(shí)別領(lǐng)域應(yīng)用比較廣泛的深度學(xué)習(xí)工具Caあe來(lái)做藻類(lèi)分類(lèi),設(shè)計(jì)出深度學(xué)習(xí)網(wǎng)絡(luò)模型,對(duì)設(shè)計(jì)的幾種網(wǎng)絡(luò)模型進(jìn)行比較,得到最優(yōu)的模型,然后對(duì)測(cè)試集進(jìn)行測(cè)試。實(shí)驗(yàn)表明,基于深度學(xué)習(xí)模型的藻類(lèi)分類(lèi),可以得到優(yōu)于前人的結(jié)果,達(dá)到100 %的識(shí)別率。
1、藻類(lèi)識(shí)別的復(fù)雜性
藻類(lèi)識(shí)別是藻類(lèi)計(jì)數(shù)很重要的一個(gè)環(huán)節(jié),其過(guò)程比較復(fù)雜,藻類(lèi)識(shí)別的復(fù)雜性分為人工鏡檢復(fù)雜性和傳統(tǒng)算法識(shí)別復(fù)雜性兩方面。
(1)人工鏡檢復(fù)雜性
通常,藻類(lèi)分類(lèi)計(jì)數(shù)的數(shù)量特別大,成百上千,甚至更多,而且需要連續(xù)觀察。如果操作者在高倍顯微鏡下長(zhǎng)時(shí)間用肉眼觀察,容易導(dǎo)致視力損傷和精神疲勞。操作者在進(jìn)行人工鏡檢之前,需要學(xué)習(xí)大量藻類(lèi)知識(shí),而且得非常熟練地掌握藻類(lèi)知識(shí)。他們主要是根據(jù)藻類(lèi)的形狀區(qū)別藻類(lèi),但也只能檢測(cè)出典型的藻類(lèi),對(duì)于相似的藻類(lèi)很難區(qū)別。而中國(guó)具有大約8900多種淡水和海洋藻類(lèi),操作者很難記憶這么多藻類(lèi),這樣就會(huì)出現(xiàn)由人工經(jīng)驗(yàn)不足而導(dǎo)致誤檢。在環(huán)境檢測(cè)中,通常需要對(duì)藻類(lèi)分類(lèi)和計(jì)數(shù),鏡檢時(shí),由于藻類(lèi)數(shù)量大,種類(lèi)多,導(dǎo)致無(wú)法對(duì)已經(jīng)檢出的藻類(lèi)進(jìn)行標(biāo)記而使得漏檢或者誤檢[3]。
(2)傳統(tǒng)算法識(shí)別復(fù)雜性
傳統(tǒng)算法做藻類(lèi)分類(lèi)的基本步驟如圖1所示。傳統(tǒng)算法識(shí)別復(fù)雜性在于:優(yōu)質(zhì)藻類(lèi)樣本圖像獲?。辉肼晥D像預(yù)處理;使用圖像分割技術(shù)得到好的目標(biāo)檢測(cè)物;選取好的藻類(lèi)特征。
在得到優(yōu)質(zhì)藻類(lèi)樣本圖像時(shí),通常會(huì)遇到聚焦均勻性問(wèn)題和雜質(zhì)干擾問(wèn)題。通常得到的圖像由于在圖像信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)的時(shí)候,有些原有的特征遭到破壞,使得圖像出現(xiàn)噪聲,有畸變,需要得到特征明顯的圖像,這時(shí)需要對(duì)圖像做預(yù)處理。
常用的操作有圖像增強(qiáng)、圖像銳化、數(shù)學(xué)形態(tài)學(xué)。通過(guò)灰度變換、直方圖修正、噪聲處理等圖像增強(qiáng)算法來(lái)改變圖像的亮度、對(duì)比度或者灰度分布情況等。趙文倉(cāng)[4]等人利用數(shù)學(xué)形態(tài)學(xué)提取特征方法對(duì)17種浮游植物進(jìn)行識(shí)別實(shí)驗(yàn),達(dá)到95 %以上的正確率。
圖像分割是藻類(lèi)識(shí)別中很重要的一環(huán),其主要將目標(biāo)物藻類(lèi)與背景分離,后面的特征選擇及識(shí)別的準(zhǔn)確性取決于分割效果的好壞。常用的分割算法有基于邊緣和基于區(qū)域兩大類(lèi),使用其中一種算法很難取得好的效果,通常是結(jié)合兩者的優(yōu)勢(shì)。王迪[5]在藻類(lèi)識(shí)別過(guò)程中邊緣分割和基于區(qū)域的閾值分割相結(jié)合的分割方法。
在進(jìn)行藻類(lèi)識(shí)別中,選擇好的特征非常重要,通常由多個(gè)特征組成特征集,其特征有顏色特征、空間關(guān)系、形狀特征、紋理特征等。
人們區(qū)別物體時(shí),很多時(shí)候是根據(jù)物體的形狀來(lái)區(qū)別,形狀也是最基本的分類(lèi)標(biāo)準(zhǔn)。提取形狀特征有基于目標(biāo)區(qū)域和基于物體輪廓形狀特征兩種方法?;谖矬w輪廓形狀特征法只考慮物體的輪廓也就是邊界,不需要考慮目標(biāo)物體的具體內(nèi)容,其描述方法通常有幾何特征、傅里葉描述符、鏈碼等。其中,根據(jù)全局幾何特征,定義物體的幾何特征參數(shù),就能區(qū)別差異比較大的檢測(cè)物,進(jìn)行粗分類(lèi);傅里葉描述符的計(jì)算方法基于傅里葉變換,使用該種方法,提取特征就更復(fù)雜。基于目標(biāo)區(qū)域形狀特征法是從目標(biāo)的整體出發(fā),全面反應(yīng)檢測(cè)物體的所有特征。在經(jīng)過(guò)圖像分割后得到檢測(cè)物區(qū)域,分析區(qū)域內(nèi)的每個(gè)像素得到形狀特征。其中,矩特征在區(qū)域形狀特征中應(yīng)用最廣泛,有中心矩和幾何矩,但由于幾何矩對(duì)圖像不具有不變性,中心矩對(duì)圖像的旋轉(zhuǎn)也不具備不變性,都不滿足要求,需要經(jīng)過(guò)各種變換處理得到不變矩。
紋理是物體的天然特征,不同的物體其紋理不同,就算是同一個(gè)物體其紋理也會(huì)不同,通過(guò)區(qū)分紋理可以把物體區(qū)分開(kāi)來(lái)。圖像紋理的分析方法有頻譜分析法、統(tǒng)計(jì)分析法、模型分析法、結(jié)構(gòu)分析法等。常用的紋理提取算法有很多,但涉及知識(shí)點(diǎn)多,計(jì)算復(fù)雜。
2、傳統(tǒng)藻類(lèi)識(shí)別算法的問(wèn)題
為了獲取好的藻類(lèi)特征,通常在前期需要分析采集到的藻類(lèi)圖像,接著對(duì)圖像處理和圖像分割。選取藻類(lèi)圖像的可取的特征進(jìn)行各種變換處理,找到合適的分類(lèi)器,進(jìn)行識(shí)別分類(lèi)。而使用深度學(xué)習(xí)進(jìn)行藻類(lèi)識(shí)別,不需要這么多繁瑣處理就能取得很好的效果。只要設(shè)計(jì)好網(wǎng)絡(luò)結(jié)構(gòu),有好的數(shù)據(jù)集,在訓(xùn)練時(shí)調(diào)節(jié)好參數(shù),就能達(dá)到理想。
本文分為訓(xùn)練和測(cè)試分類(lèi)兩階段。訓(xùn)練階段,首先準(zhǔn)備藻類(lèi)圖片樣本集,把訓(xùn)練樣本集圖片格式文件轉(zhuǎn)換為L(zhǎng)MDB格式文件,獲取像素均值文件,配置網(wǎng)絡(luò)參數(shù),然后通過(guò)設(shè)計(jì)好的深度學(xué)習(xí)網(wǎng)絡(luò)對(duì)訓(xùn)練集進(jìn)行訓(xùn)練,調(diào)節(jié)參數(shù),獲得權(quán)重參數(shù)。在預(yù)測(cè)分類(lèi)階段,把測(cè)試樣本集轉(zhuǎn)換為L(zhǎng)MDB格式,加載訓(xùn)練使用的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練得到的權(quán)重參數(shù)和標(biāo)簽文件,得到預(yù)測(cè)藻類(lèi)類(lèi)別排序,得分由高到低,第一個(gè)即為預(yù)測(cè)到的類(lèi)別。藻類(lèi)分類(lèi)識(shí)別總的流程圖如圖2。
機(jī)器學(xué)習(xí)是人工智能技術(shù)最活躍的研究領(lǐng)域,而深度學(xué)習(xí)是機(jī)器學(xué)習(xí)應(yīng)用最廣泛的分支之一。深度學(xué)習(xí)是通過(guò)提取具體的低層特征形成抽象的高層來(lái)發(fā)現(xiàn)數(shù)據(jù)分布式特征。常見(jiàn)的深度學(xué)習(xí)模型有卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)、循環(huán)卷積神經(jīng)網(wǎng)絡(luò)和堆棧式自編碼器等[6]。本文使用基于Caあe的CNN,使用softmax作為分類(lèi)器。
本文采用的深度學(xué)習(xí)模型卷積神經(jīng)網(wǎng)絡(luò)是圖像分類(lèi)識(shí)別研究領(lǐng)域的熱點(diǎn),比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有更多的優(yōu)勢(shì)。卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)借鑒生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),優(yōu)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò),區(qū)別于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的地方主要在網(wǎng)絡(luò)中非全連接的神經(jīng)元和同一層中共享部分神經(jīng)元的權(quán)值。非全連接時(shí),可以大大降低神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜性。神經(jīng)元的權(quán)值共享可以使需要計(jì)算的權(quán)值數(shù)量大大減少。網(wǎng)絡(luò)的非全連接和權(quán)值共享使得網(wǎng)絡(luò)的泛化能力大大增強(qiáng)。
CNN的優(yōu)勢(shì)對(duì)于輸入為圖像數(shù)據(jù)時(shí)則表現(xiàn)得非常明顯,將圖像看作是數(shù)據(jù),以圖像數(shù)據(jù)作為輸入,可以減少傳統(tǒng)圖像識(shí)別中圖像處理的復(fù)雜過(guò)程。CNN的多層感知器結(jié)構(gòu)具有一個(gè)很好的優(yōu)勢(shì),在于其對(duì)比例縮放、平移、傾斜或者其他形式的變形具有高度不變性。
為了說(shuō)明CNN結(jié)構(gòu),選擇圖像為輸入數(shù)據(jù),其一般的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。輸入圖像經(jīng)過(guò)n個(gè)可訓(xùn)練的濾波器和可加偏置進(jìn)行卷積運(yùn)算得到C1層特征圖,對(duì)C1層的特征圖進(jìn)行池化操作,得到S1層,對(duì)S1層特征圖求和,帶入激活函數(shù)得到經(jīng)過(guò)卷積的特征圖,類(lèi)似這樣經(jīng)過(guò)若干次卷積、池化、經(jīng)過(guò)激活函數(shù),得到最終的特征圖,此特征圖經(jīng)過(guò)全連接,連接成一個(gè)向量,根據(jù)實(shí)際的需求,接入其他神經(jīng)網(wǎng)絡(luò)或者分類(lèi)器。
1、實(shí)驗(yàn)
本文使用文獻(xiàn)[2]相同的數(shù)據(jù)集,使用設(shè)計(jì)的深度學(xué)習(xí)模型進(jìn)行訓(xùn)練和測(cè)試,對(duì)鼓噪、柵藻、角星鼓藻三類(lèi)藻類(lèi)分類(lèi)進(jìn)行驗(yàn)證。三種藻類(lèi)分別如圖4所示。
訓(xùn)練樣本每類(lèi)100張,總共300張,測(cè)試樣本每類(lèi)10張,總共30張,識(shí)別正確率計(jì)算公式為:
其中,n —測(cè)試集中識(shí)別正確的藻類(lèi)數(shù)量;N —整個(gè)測(cè)試集藻類(lèi)的數(shù)量。
實(shí)驗(yàn)平臺(tái)為UBuntu 16.04系統(tǒng),使用深度學(xué)習(xí)工具Caあe,基于GTX 960M顯卡測(cè)試和訓(xùn)練。
對(duì)于使用的深度學(xué)習(xí)網(wǎng)絡(luò),訓(xùn)練次數(shù)、網(wǎng)絡(luò)層數(shù)、學(xué)習(xí)率3個(gè)核心參數(shù),本文選取多種組合,并分析算法性能的影響。選取深度學(xué)習(xí)網(wǎng)絡(luò)層數(shù)為8,選取一定的訓(xùn)練次數(shù)和學(xué)習(xí)率,其所測(cè)的loss值如表1,學(xué)習(xí)率與loss值關(guān)系如圖 5(a)。選取訓(xùn)練次數(shù)為1000,選取一定的學(xué)習(xí)率和網(wǎng)絡(luò)層數(shù),其所測(cè)的loss值如表2,網(wǎng)絡(luò)層數(shù)與loss值關(guān)系如圖5(b)。選取學(xué)習(xí)率為0.001,選取一定的網(wǎng)絡(luò)層數(shù)和訓(xùn)練層數(shù),其所測(cè)的loss值如表3,訓(xùn)練次數(shù)與loss值關(guān)系如圖5(c)。
2、實(shí)驗(yàn)結(jié)果分析
由圖5可以看出,不同的訓(xùn)練次數(shù)、網(wǎng)絡(luò)層數(shù)和學(xué)習(xí)率對(duì)loss值有很大影響。在設(shè)計(jì)深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)時(shí),需要考慮這些重要參數(shù)。
由圖5(a)可以看出,當(dāng)網(wǎng)絡(luò)層數(shù)為8層,學(xué)習(xí)率為0.01,隨著訓(xùn)練次數(shù)增加,loss值幾乎不變;當(dāng)學(xué)習(xí)率為0.001和0.0001時(shí),隨著訓(xùn)練次數(shù)增加,loss值下降很快,慢慢趨于穩(wěn)定,但是在學(xué)習(xí)率為0.001時(shí),loss值下降更快,在相同訓(xùn)練次數(shù)時(shí),loss值更小,效果越好,說(shuō)明并不是學(xué)習(xí)率越小越好,需要根據(jù)實(shí)際需求選取一個(gè)合適的學(xué)習(xí)率。
由圖5(b)可知,在學(xué)習(xí)率為0.01時(shí),隨著網(wǎng)絡(luò)層數(shù)增加,loss值開(kāi)始不變,直到網(wǎng)絡(luò)層數(shù)為8時(shí),loss值才改變,但是loss還是太大,不能達(dá)到要求;在學(xué)習(xí)率為0.001和0.0001時(shí),隨著網(wǎng)絡(luò)層數(shù)的增加,loss值先減小,后增加,學(xué)習(xí)率越小,loss值越好,說(shuō)明并不是網(wǎng)絡(luò)層數(shù)越多越好。
表1 網(wǎng)絡(luò)層數(shù)為8所測(cè)的loss值
表2 訓(xùn)練次數(shù)為1000所測(cè)的loss值
表3 學(xué)習(xí)率為0.001所測(cè)的loss值
由圖5(c)可知,當(dāng)網(wǎng)絡(luò)層數(shù)為4時(shí),隨著訓(xùn)練次數(shù)增加,loss值幾乎不變,而且loss值大于1不滿足要求;當(dāng)網(wǎng)絡(luò)層數(shù)大于4,隨著訓(xùn)練次數(shù)增加,loss值都在震蕩,但總體在減小,但是減小的程度不一樣;層數(shù)為5時(shí),loss值隨著訓(xùn)練次數(shù)增加,其值越來(lái)越小,效果越來(lái)越好。
經(jīng)過(guò)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,本文最終選擇網(wǎng)絡(luò)層數(shù)為5,學(xué)習(xí)率為0.001,訓(xùn)練次數(shù)為1000的深度學(xué)習(xí)模型對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練,得到權(quán)重參數(shù),然后對(duì)所使用的數(shù)據(jù)集進(jìn)行測(cè)試,可以達(dá)到100 %的識(shí)別率,優(yōu)于該論文中的83.3 %的識(shí)別率。
本文提出一種基于深度學(xué)習(xí)的藻類(lèi)分類(lèi)識(shí)別的方法,通過(guò)設(shè)計(jì)一種卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)藻類(lèi)的特征,從而避免傳統(tǒng)人工選取特征困難。通過(guò)實(shí)驗(yàn)對(duì)比設(shè)計(jì)的幾種模型,選取最優(yōu)的模型,對(duì)測(cè)試數(shù)據(jù)集進(jìn)行測(cè)試,得到100 %的識(shí)別率。由于本實(shí)驗(yàn)所使用的訓(xùn)練集和測(cè)試集的藻類(lèi)種類(lèi)較少,但工程實(shí)踐中,需要識(shí)別的藻類(lèi)種類(lèi)非常多,下一步,應(yīng)該增加藻類(lèi)的種類(lèi)進(jìn)行實(shí)驗(yàn)。