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