葉司琪,龍曉,尹偉石
(長(zhǎng)春理工大學(xué) 理學(xué)院,長(zhǎng)春 130022)
國(guó)內(nèi)水域面積占地27萬(wàn)平方公里,占領(lǐng)土面積的3%左右。近年來(lái),由于湖泊、水庫(kù)與近海緩流地區(qū)水體的富營(yíng)養(yǎng)化導(dǎo)致水中藻類生長(zhǎng)迅速,出現(xiàn)“赤潮”[1]、“水華”[2]等自然災(zāi)害,對(duì)國(guó)家的水質(zhì)影響巨大且造成了巨大的經(jīng)濟(jì)損失。因此在藻類泛濫之前對(duì)其提前預(yù)測(cè)、預(yù)防成為主要問(wèn)題。現(xiàn)如今在藻類識(shí)別研究中,傳統(tǒng)的藻類檢測(cè)流程一般有置式顯微鏡法和熒光檢測(cè)法[3];顯微檢測(cè)是對(duì)產(chǎn)生污染環(huán)境的水域進(jìn)行樣本采集、沉淀和蒸餾等過(guò)程,將樣品放在顯微鏡下人眼觀察,人為鑒定是否達(dá)到污染的程度;熒光檢測(cè)法是將樣本經(jīng)熒光處理得到熒光圖像,再利用圖像調(diào)色板閾值分割達(dá)到藻類計(jì)數(shù)[4]的目的;但兩者方法都存在局限性,顯微檢測(cè)過(guò)程大多依靠人工,會(huì)產(chǎn)生效率低、容易產(chǎn)生視覺(jué)疲勞且不易保存等問(wèn)題對(duì)研究人員要求較高;對(duì)于熒光檢測(cè)在壓片時(shí)會(huì)出現(xiàn)分層現(xiàn)象,不同層面熒光點(diǎn)不同;因此兩種方法識(shí)別出來(lái)的準(zhǔn)確率也隨誤差因素的影響而變化。
現(xiàn)今深度學(xué)習(xí)、目標(biāo)檢測(cè)計(jì)數(shù)和圖像識(shí)別的發(fā)展,國(guó)內(nèi)外在對(duì)于藻類圖像的識(shí)別與分類研究方面發(fā)展迅速。A.Verikas等人[5]基于相位一致性和隨機(jī)優(yōu)化確定識(shí)別圓形藻,但該方法只適用于極小圓形浮游植物;Andrea C.Monaldi等人[6]基于數(shù)字全息顯微鏡和圖像處理來(lái)評(píng)估微藻生物量;李偉偉[7]提出通過(guò)SIFT算法針對(duì)藻類圖像提取,PCA降維,用KNN進(jìn)行識(shí)別檢索;謝杰鎮(zhèn)等人[8]提出基于流式圖像的赤潮藻類監(jiān)測(cè)方法,基于灰度不變共生矩陣的紋理特征,采用向量機(jī)進(jìn)行訓(xùn)練識(shí)別;張松等人[9]將詞包模型方法用于藻類分類識(shí)別,利用K-means聚類得到圖像的特征詞包模型,用于SVM分類器訓(xùn)練,但沒(méi)有經(jīng)過(guò)特征篩選和編碼,會(huì)影響聚類效果。
如今深度學(xué)習(xí)促進(jìn)了模式識(shí)別、機(jī)器學(xué)習(xí)的發(fā)展,由卷積神經(jīng)網(wǎng)絡(luò)發(fā)展而來(lái)的目標(biāo)檢測(cè)框架[10],以及深度學(xué)習(xí)的誤差反向傳播算法[11],基于識(shí)別的目標(biāo)定位計(jì)數(shù)提供了基礎(chǔ)。此研究運(yùn)用卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)反饋機(jī)制及利用目標(biāo)檢測(cè)模型對(duì)藻類進(jìn)行檢測(cè)識(shí)別,由于藻類圖像部分密集、疊層、體積較小等特點(diǎn),影響識(shí)別效果。此次研究是在卷積神經(jīng)網(wǎng)絡(luò)與目標(biāo)檢測(cè)模型的基礎(chǔ)上進(jìn)行改進(jìn),對(duì)卷積層中的激活函數(shù)、學(xué)習(xí)速率改進(jìn),對(duì)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)進(jìn)行微調(diào),使用最大池化算法,得到準(zhǔn)確率較高的藻類分類識(shí)別模型,減少人力輸出。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種具有高性能的深度學(xué)習(xí)模型。卷積神經(jīng)網(wǎng)絡(luò)相對(duì)于全連接網(wǎng)絡(luò)使用的參數(shù)量較少預(yù)測(cè)精度和回歸擬合度均高于傳統(tǒng)模型。CNN模型的性能遠(yuǎn)高于具有與CNN模型相同的網(wǎng)絡(luò)訓(xùn)練方法的BP神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)可以通過(guò)用梯度下降法損失函數(shù)最小,對(duì)參數(shù)逐層進(jìn)行反向調(diào)節(jié),不停的迭代訓(xùn)練提高精度。
卷積層的作用就是提取特征的,通過(guò)各個(gè)窗口得到特征,并且使用參數(shù)量減少。在圖像處理中,一個(gè)卷積核卷積一次圖像得到一次特征,再由若干個(gè)卷積核卷積,卷積核提取特征是權(quán)值共享的,通過(guò)提取輸入的不同特征進(jìn)行壓縮提純,每一次卷積提取出的特征為特征映射,通過(guò)一個(gè)激活函數(shù),得到輸出特征映射,每一層可以使用多個(gè)不同的特征映射,卷積公式由公式(1)表示:
其中,Mj表示輸入映射的總和;代表第l-1層第j個(gè)特征圖的輸入;f(?)為激活函數(shù);l為層數(shù);k為卷積核;?代表卷積操作;為偏置;為第l層第j個(gè)特征圖。特征圖公式(2):
計(jì)算偏置的梯度值,公式(3)為:
利用 ΔWl=-η?E/?Wl更新參數(shù)。
池化層是對(duì)卷積層輸出的特征圖進(jìn)一步特征抽樣,如果沒(méi)有池化層直接去放入Softmax分類,其中會(huì)出現(xiàn)維度過(guò)高,發(fā)生過(guò)擬合的現(xiàn)象,為了防止過(guò)擬合,提高精確度,通常池化使用最大池化和平均池化,池化的最大作用是將卷積過(guò)后的特征圖的大小壓縮進(jìn)行降維,且具有位移不變性,池化過(guò)程可用公式(4)表示:
全連接層本質(zhì)上也是卷積層,一般位于模型的最后幾層,將神經(jīng)元全連接起來(lái)。全連接層最后是經(jīng)過(guò)分類的,由于卷積神經(jīng)網(wǎng)絡(luò)輸出的特征圖是三維張量,做分類的話是要將之前特征圖壓平,最后再由一個(gè)傳統(tǒng)的全連接層連接起來(lái),數(shù)學(xué)表達(dá)式為:
其中,上式中神經(jīng)元的輸入是x;神經(jīng)元的輸出是hW,b(x);連接權(quán)重是WT;偏置是b。
Softmax輸出層是為了分類回歸,將全連接層的特征圖輸入到Softmax輸出層后,每一個(gè)神經(jīng)元節(jié)點(diǎn)的激勵(lì)函數(shù)輸出一個(gè)概率,所有的節(jié)點(diǎn)的概率之和等于1。將待分類的圖片放入Soft?max分類器中,輸出的最大概率值所對(duì)應(yīng)的標(biāo)簽為最后的分類結(jié)果。如公式(6)表示概率歸一化:
其中,σi(x)表示第i個(gè)節(jié)點(diǎn)的激勵(lì)函數(shù)輸出的概率;m為類別數(shù);代表參量。
運(yùn)用改進(jìn)卷積神經(jīng)網(wǎng)絡(luò),對(duì)藻類圖像進(jìn)行識(shí)別,通過(guò)數(shù)字化處理對(duì)藻類樣本圖進(jìn)行特征提取,再結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型分析水體中的藻類解決人工識(shí)別的主觀性與勞動(dòng)強(qiáng)度大等問(wèn)題。
為了提高模型的魯棒性與穩(wěn)定性,利用改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)與RCNN來(lái)實(shí)現(xiàn)高效、便捷的藻類分類識(shí)別的目的。實(shí)現(xiàn)減少人工輸出,對(duì)藻類實(shí)時(shí)監(jiān)測(cè),預(yù)防藻類污染,增加水域面積,減少由藻類污染帶來(lái)的巨大經(jīng)濟(jì)損失。
該算法根據(jù)預(yù)設(shè)訓(xùn)練與預(yù)設(shè)網(wǎng)絡(luò)模型對(duì)藻類樣本圖片進(jìn)行訓(xùn)練,得到藻類分類訓(xùn)練模型,來(lái)確定待分類藻類圖片所對(duì)應(yīng)的藻類類別,得到藻類分類模型。通過(guò)采用卷積神經(jīng)網(wǎng)絡(luò)的方式來(lái)進(jìn)行海藻圖像的處理,其中模型由卷積層和池化層交叉組合構(gòu)成,與最后由全連接層連接。將其輸出發(fā)送至Softmax層,對(duì)其進(jìn)行調(diào)整,看反向傳播調(diào)整網(wǎng)絡(luò)權(quán)值,判斷是否達(dá)到訓(xùn)練次數(shù)或者小于訓(xùn)練誤差,反復(fù)調(diào)整最小誤差得到藻類的分類模型,網(wǎng)絡(luò)使用激活函數(shù)Relu且對(duì)卷積得到的圖像進(jìn)行局部歸一化,調(diào)整網(wǎng)絡(luò)學(xué)習(xí)率,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)進(jìn)行微調(diào),提高訓(xùn)練準(zhǔn)確度。訓(xùn)練完成后將測(cè)試樣本輸入到分類模型中得到分類結(jié)果,提高藻類分辨性與魯棒性,如圖1所示。
圖1 藻類分類模型
卷積層使用卷積核進(jìn)行特征提取和特征映射,將預(yù)處理完成的圖像輸入到第一個(gè)卷積層,由64個(gè)3x3的卷積核(3通道)且步長(zhǎng)均為1,擴(kuò)充邊界得到卷積后的圖像與原圖尺寸一致;第二層為池化層,采用最大池化,選擇幅步為2,3x3的最大池化,進(jìn)行l(wèi)ru操作對(duì)局部模塊歸一化;第二個(gè)卷積層,由16個(gè)3x3的卷積核(16通道),得到的卷積圖像與原圖尺寸一致;第二個(gè)最大池化層進(jìn)行降維,池化步長(zhǎng)為2,3x3的最大池化;傳入全連接層進(jìn)行重新擬合,全連接層由128個(gè)神經(jīng)元連接,將上一層池化層的輸出重新組合成一行;調(diào)用激活函數(shù)ReLU,其作用是增加了神經(jīng)網(wǎng)絡(luò)各層之間的非線性關(guān)系,由于采用sigmoid等函數(shù),計(jì)算量大,在反向傳播時(shí),很容易就出現(xiàn)梯度消失的情況,而采用Relu激活函數(shù),整個(gè)過(guò)程的計(jì)算量節(jié)省很多,Relu函數(shù)會(huì)使一部分神經(jīng)元的輸出為0,增加網(wǎng)絡(luò)的稀疏性,并且減少參數(shù)的相互依存關(guān)系,緩解過(guò)擬合問(wèn)題的發(fā)生,再上一層參數(shù)為0.8輸入dropout層,緩解過(guò)擬合問(wèn)題;最后將前面的卷積池化全連接層打包分裝至Softmax層,做線性回歸,對(duì)其進(jìn)行調(diào)整、計(jì)算,得到所述的藻類分類模型。
實(shí)驗(yàn)所用的藻類來(lái)自吉林省長(zhǎng)春市南湖公園,實(shí)驗(yàn)通過(guò)采集藻類樣本,利用光學(xué)電子顯微鏡拍照,得到包含藻類樣本照片,在同一光源、同一放大倍數(shù)下對(duì)水體藻類進(jìn)行觀察與拍攝海藻圖片,得到1 100張海藻圖像,如圖2所示。
圖2 拍攝海藻圖像
對(duì)原始海藻圖片預(yù)處理,將它分為幾種不同種類的海藻圖片集,由于藻的種類較多,大部分藻數(shù)量較少,試驗(yàn)選取數(shù)量最多的兩種藻(橋?yàn)吃搴歪樞驮澹┳鳛檠芯繉?duì)象,如圖3、圖4所示。
圖3 橋?yàn)吃鍢颖緢D像
圖4 針型藻樣本圖像
對(duì)藻類圖片進(jìn)行篩選,每個(gè)海藻圖片集對(duì)應(yīng)一種藻類,每個(gè)海藻圖片集中的每個(gè)海藻圖片中均包括該類海藻,每一個(gè)樣本集包含2 000~ 3 000張單種藻類圖像;為了防止出現(xiàn)過(guò)擬合現(xiàn)象,通過(guò)對(duì)圖像隨機(jī)旋轉(zhuǎn)、縮放、反轉(zhuǎn)及變化角度對(duì)樣本集進(jìn)行擴(kuò)充到11 130張,選取總樣本集的80%作為訓(xùn)練集(8 904張),剩下的作為測(cè)試集。
將樣本集的圖像與利用圖像標(biāo)注軟件進(jìn)行人工標(biāo)注,如圖5所示,用于卷積神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)樣本集圖像進(jìn)行訓(xùn)練與測(cè)試。
圖5 人工label Img標(biāo)注藻類示例圖
本文以準(zhǔn)確率(Accuracy)衡量模型的準(zhǔn)確性,準(zhǔn)確率公式為:
其中,n為藻類識(shí)別正確的數(shù)量;N為總樣本數(shù)。
用損失函數(shù)(Loss)確定藻類訓(xùn)練集和測(cè)試集的魯棒性。如果損失函數(shù)越小則說(shuō)明魯棒性越好。損失函數(shù)如下:
其中,N代表樣本數(shù);pi是第i個(gè)樣本預(yù)測(cè)的概率;yi為第i個(gè)樣本的標(biāo)簽,正類為1,負(fù)類為0。
實(shí)驗(yàn)利用RCNN、目標(biāo)檢測(cè)模型與改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò),為實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的端到端訓(xùn)練。設(shè)置參數(shù)為batch=20,總共迭代3 000次,每隔50步輸出一次損失值以及精確度,每隔100次保存一次訓(xùn)練好的模型。
實(shí)驗(yàn)將8 904張?jiān)孱悎D像用于訓(xùn)練,由于藻類體積較小,部分藻類密集,藻類壓片分層等因素影響識(shí)別效果,利用卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
保持卷積核大小為3*3,用Relu為激活函數(shù)情況下,經(jīng)過(guò)迭代1 000次,首先通過(guò)對(duì)學(xué)習(xí)率的修改,針對(duì)不同學(xué)習(xí)率下的CNN模型學(xué)習(xí)率與準(zhǔn)確率之間的關(guān)系圖如圖7所示。
圖6 學(xué)習(xí)率與準(zhǔn)確率的關(guān)系圖
可知,學(xué)習(xí)率并不是越小越好,不存在唯一性,應(yīng)該根據(jù)實(shí)際情況選擇合適的學(xué)習(xí)率。
同樣在迭代1 000次情況下將其中在學(xué)習(xí)率為0.000 1和0.001 0下的識(shí)別所得平均損失結(jié)果
的對(duì)比,如表1、表2所示。
表1 在學(xué)習(xí)率為0.000 1的CNN模型下
表2 在學(xué)習(xí)率為0.001 0的CNN模型下
由表1可知在迭代1 000次過(guò)后,學(xué)習(xí)率為0.000 1的CNN模型下準(zhǔn)確率大約在89.9%,學(xué)習(xí)率為0.001 0的CNN模型下準(zhǔn)確率在95.02%。
并對(duì)測(cè)試集進(jìn)行識(shí)別結(jié)果的測(cè)試,由表2可知學(xué)習(xí)率在0.001 0下,藻類圖像識(shí)別最優(yōu)。
所以在測(cè)試集的識(shí)別中選取學(xué)習(xí)率為0.001 0,迭代3 000次過(guò)后,其識(shí)別結(jié)果如表3所示。
表3 測(cè)試集的識(shí)別結(jié)果(學(xué)習(xí)率為0.001 0)
由表3可知,loss值越小,效果越好。
本文基于傳統(tǒng)藻類檢測(cè)的工作繁瑣影響識(shí)別精確度的問(wèn)題,在藻類識(shí)別中改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)和目標(biāo)檢測(cè)模型對(duì)藻類圖像的大小形態(tài)進(jìn)行特征提取。實(shí)驗(yàn)結(jié)果表明,在對(duì)于藻類識(shí)別的平均準(zhǔn)確率達(dá)到95.02%,有效避免了過(guò)擬合的現(xiàn)象,克服了藻類圖像密集、疊層、體積小等因素,減少人力輸出,提高工作效率。此外,輸入圖像和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)能很好的吻合;特征提取和模式分類同時(shí)進(jìn)行;卷積神經(jīng)網(wǎng)路權(quán)值共享可以減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更簡(jiǎn)單,適應(yīng)性更強(qiáng)。在訓(xùn)練模型中將分類和識(shí)別結(jié)合,簡(jiǎn)化了模型結(jié)構(gòu)。與此同時(shí),研究也存在不足,在訓(xùn)練過(guò)程中往往需要對(duì)一些參數(shù)進(jìn)行人為的調(diào)整,所以適合范圍有一定的限制。卷積層提取圖像特征時(shí)對(duì)藻類邊緣信息提取有待提高,數(shù)據(jù)在網(wǎng)絡(luò)傳遞過(guò)程中存在部分信息損失與消耗,降低識(shí)別準(zhǔn)確度。