王羽徵,程遠(yuǎn),畢海,于秋玉,劉丹*
(1.大連海洋大學(xué) 信息工程學(xué)院, 遼寧 大連 116023; 2.近海(大連)生態(tài)發(fā)展有限公司,遼寧 大連 116085; 3.智慧視通大連研究院,遼寧 大連 116085)
單細(xì)胞藻類是自然界初級生產(chǎn)者中的重要組成部分,可通過光合作用合成高于其他高等植物7倍的含碳有機物,是動物的重要食物來源之一,在海洋生態(tài)系統(tǒng)中具有重要作用[1]。當(dāng)水體遭受污染如水體富氧化時,會促使某些種藻類迅速繁殖,導(dǎo)致赤潮和水華發(fā)生,此時水體中某種藻類含量暴增,在產(chǎn)生大量有害物質(zhì)的同時消耗大量水體資源,破壞水體平衡,嚴(yán)重時可導(dǎo)致其他水生生物死亡,最終使整個水體生態(tài)圈崩潰[2]。因此,水體中藻類的分布是衡量水體環(huán)境的重要指標(biāo)之一,對海洋單細(xì)胞藻類的研究具有重要意義。
目前,國內(nèi)外學(xué)者在藻類圖像分類研究方面已取得了重大進展。藻類圖像分類技術(shù)主要有光學(xué)檢測技術(shù)、生物學(xué)檢測技術(shù)、分子檢測技術(shù)及流式細(xì)胞分析檢測技術(shù)[3]。國外相關(guān)研究中,Gorsky等[4]通過浮游動植物的基本形狀特征進行了多種單細(xì)胞浮游動植物的識別;Sosik等[5]采用流式細(xì)胞儀對單細(xì)胞藻類進行圖像采樣,并引入支持向量機建立了藻類識別分類系統(tǒng),實現(xiàn)了單細(xì)胞藻類的分類識別;歐共體研究項目DICANN (Dinoflagellate Categorisation by Artificial Neural Network)實現(xiàn)了對4個甲藻門Dinoflagellata中的腰鞭毛目內(nèi)23種腰鞭毛蟲的數(shù)字顯微圖像自動識別,并取得了與傳統(tǒng)人工專家鑒定結(jié)果非常接近的成果,準(zhǔn)確率達(dá)84%[6];Pant等[7]通過引入線性支持向量機技術(shù),建立了藻類識別系統(tǒng),實現(xiàn)了對杜氏藻Dunaliella和螺旋藻Spirulina的準(zhǔn)確識別,準(zhǔn)確率分別達(dá)到96%和98%以上。國內(nèi)學(xué)者對單細(xì)胞藻類的識別也進行了深入研究,姚志紅等[8]提出使用改進式遺傳算法對藻類進行識別分類,實現(xiàn)了對月牙藻屬Selenastrum、小環(huán)藻屬Cyclotella等10種單細(xì)胞藻類的識別與分類;駱巧琦等[9]引入BP神經(jīng)網(wǎng)絡(luò),實現(xiàn)了對中國11種沿海常見硅藻的有效識別;鄧杰航等[10]提出了針對復(fù)雜背景的單細(xì)胞藻類顯微圖像識別,解決了電鏡下圖像背景復(fù)雜導(dǎo)致難以識別的問題;謝杰鎮(zhèn)等[11]利用圖像處理技術(shù)對海洋原甲藻ProrocentrummicansEhrenberg、紅色裸甲藻GymnodiniumaeruginosumStein等赤潮藻進行識別,平均識別率達(dá)94.37%,可用于對海洋赤潮災(zāi)害的預(yù)測。綜上,傳統(tǒng)的單細(xì)胞藻類分類識別方法,多需要人為對藻類細(xì)胞顯微圖像進行識別統(tǒng)計,這種識別統(tǒng)計方式在樣本數(shù)量過大時其適用性常會受到限制,識別效果及準(zhǔn)確率一般。而隨著深度學(xué)習(xí)尤其是卷積神經(jīng)網(wǎng)絡(luò)模型(Convolutional neural networks,CNN)的引入,在一定程度上解決了傳統(tǒng)人工對藻類識別統(tǒng)計方法中識別效率及準(zhǔn)確率低下的問題,在單細(xì)胞藻類統(tǒng)計識別中有較大的優(yōu)勢。
本研究中,為進一步提升單細(xì)胞藻類的識別效率,以相似性較高的卵形小球藻Chlorellaovalis與小等刺硅鞭藻DictyochafibulaEhrenberg為樣本,引入基于改進式VGG網(wǎng)絡(luò)模型的單細(xì)胞藻類識別算法AlgaeNet,在傳統(tǒng)VGG16網(wǎng)絡(luò)模型基礎(chǔ)上優(yōu)化結(jié)構(gòu),減小卷積核數(shù)量,添加BatchNormalization層,實現(xiàn)了在較低性能計算機上快速完成卵形小球藻與小等刺硅鞭藻顯微圖像的特征自學(xué)習(xí)與訓(xùn)練,構(gòu)建單細(xì)胞藻類分類器,對海洋單細(xì)胞藻類進行識別與統(tǒng)計,旨在提高藻類識別的速度與精度。
VGG16網(wǎng)絡(luò)模型是卷積神經(jīng)網(wǎng)絡(luò)模型[12]中分類性能較為優(yōu)秀的VGG網(wǎng)絡(luò)模型的一種。VGG網(wǎng)絡(luò)模型最大的特點是通過大量3×3卷積核的組合與堆疊,提取出感受野中更多更細(xì)小的特征。3×3卷積核是可以感受到上下、左右、中心的最小感受野,且2個3×3 卷積核疊加所獲得的感受野等于1個5×5的卷積核,3個疊加后的感受野等同于1個7×7的卷積核。大量使用3×3卷積核后可以在獲得相同感受野的前提下加深神經(jīng)網(wǎng)絡(luò)模型層數(shù)。連續(xù)的小卷積核比單個大卷積核具有更加良好的非線性。從圖1可見,VGG16卷積神經(jīng)網(wǎng)絡(luò)模型具有16個權(quán)重層,包括13個卷積層和3個全連接層[13]。輸入1幅224×224×3的圖像,在卷積層采用3×3濾波器,每2個或者3個濾波器連續(xù)堆疊組成卷積序列,模仿出更大的感受野效果,滑動步長為1,并利用邊界填充保持前后數(shù)據(jù)維數(shù)不變。在池化層采用2×2池化窗口,步長為2,用于減小卷積后的特征圖像尺寸及確保模型的平移不變性;全連接層由3個連續(xù)的全連接進行組合,通道數(shù)分別為4 096、4 096、1 000個;最后由具有1 000個標(biāo)簽的SoftMax分類器進行分類輸出[14]。
圖1 VGG16網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.1 VGG16 network structure
由于藻類細(xì)胞顯微圖像目標(biāo)微小,為提取足夠多的樣本特征,本研究中基于VGG16網(wǎng)絡(luò)模型結(jié)構(gòu),結(jié)合單細(xì)胞藻類目標(biāo)微小的特點,構(gòu)建出對兩種單細(xì)胞藻類顯微圖像的識別算法AlgaeNet。該算法相較于基礎(chǔ)VGG16網(wǎng)絡(luò)模型,減少卷積核數(shù)量,可保證低性能計算機穩(wěn)定快速運行。同時引入Ioffe等[15]提出的BatchNormalization來加速神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練。BatchNormalization是通過一定的規(guī)范化手段,把每層神經(jīng)網(wǎng)絡(luò)模型任意神經(jīng)元輸入值的分布?xì)w一化到平均值為0、方差為1的標(biāo)準(zhǔn)正態(tài)分布,使得激活輸入值落在非線性函數(shù)對輸入比較敏感的區(qū)域,這樣輸入的微小變化就會導(dǎo)致?lián)p失函數(shù)較大的變化,可以使梯度變大,避免梯度消失問題產(chǎn)生,而且梯度變大意味著學(xué)習(xí)收斂速度快,能大大加快訓(xùn)練速度。
添加BatchNormalization的優(yōu)點如下:
1) 加快訓(xùn)練速度,可以使用較大的學(xué)習(xí)率來訓(xùn)練網(wǎng)絡(luò)模型。
2) 提高網(wǎng)絡(luò)模型的泛化能力。
3) BN層本質(zhì)上是一個歸一化網(wǎng)絡(luò)層,可以替代局部響應(yīng)歸一化層。
4) 打亂樣本訓(xùn)練順序[15]。
本研究中使用的AlgaeNet神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)見圖2,輸入輸出信息及操作參數(shù)如表1所示。
圖2 AlgaeNet神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.2 Diagram of AlgaeNet neural network structure
表1 AlgaeNet操作參數(shù)及特征圖信息Tab.1 AlgaeNet operating parameter and feature size
本研究中完成單細(xì)胞藻類識別算法網(wǎng)絡(luò)模型結(jié)構(gòu)的搭建后引入Adam優(yōu)化器,這是一種自適應(yīng)學(xué)習(xí)率優(yōu)化算法,是一種對隨機目標(biāo)函數(shù)執(zhí)行一階梯度優(yōu)化的算法[16]。Adam算法與傳統(tǒng)梯度下降優(yōu)化器的區(qū)別在于,它能夠為每一個參數(shù)設(shè)計獨立的自適應(yīng)性學(xué)習(xí)率,通過對梯度的一階矩估計和二階矩平均值計算改變學(xué)習(xí)率[17]。同時使用Cross-entropy-loss函數(shù)作為Loss函數(shù)計算算法損失數(shù)值。
藻類識別模型的框架(圖3)主要流程如下:
圖3 藻類識別算法結(jié)構(gòu)示意圖Fig.3 Schematic diagram of alga recognition algorithm structure
1) 輸入藻類圖像樣本。隨機在藻類顯微圖像樣本庫中取出兩種藻類圖片,作為訓(xùn)練樣本集進行輸入。
2) 預(yù)處理。將藻類顯微樣本圖像進行邊緣檢測后,依據(jù)邊緣位置進行裁切并填充白色像素,獲得相同分辨率的單個藻類細(xì)胞圖像。
3) 構(gòu)建藻類細(xì)胞識別模型?;赩GG16網(wǎng)絡(luò)模型模型,使用BN層進行加速,并優(yōu)化卷積核,提高低性能計算機上的運行效率。
4) 模型訓(xùn)練。設(shè)定批處理量、迭代次數(shù)、學(xué)習(xí)率等參數(shù),使用訓(xùn)練集中的數(shù)據(jù)進行模型訓(xùn)練。
5) 模型測試。從藻類細(xì)胞樣本測試集中抽取藻類細(xì)胞圖片進行模型測試,以驗證模型的精度。
2.1.1 材料 本研究中使用的藻類細(xì)胞圖像為使用Leica DM4 B數(shù)字顯微鏡對卵形小球藻與小等刺硅鞭藻藻液樣本拍攝的全彩色數(shù)字照片(圖4)。
圖4 卵形小球藻和小等刺硅鞭藻顯微圖像Fig.4 Microscopic image of green alga Chlorella ovalis and diatom Dictyocha fibula
2.1.2 方法
1)藻類細(xì)胞數(shù)據(jù)集的準(zhǔn)備?;诟倪M式VGG網(wǎng)絡(luò)模型的單細(xì)胞藻類識別算法AlgaeNet的目標(biāo)是對單細(xì)胞藻類進行準(zhǔn)確識別,為了提取到更多的藻類細(xì)胞特征,采用以單個細(xì)胞圖像為訓(xùn)練數(shù)據(jù)對AlgaeNet進行訓(xùn)練。
2)藻類標(biāo)本的顯微圖像處理。將藻液制作成標(biāo)本之后通過LeicaDM4 B顯微鏡后獲得標(biāo)本的全彩數(shù)字圖片,如果直接使用彩色圖像進行圖像處理工作,計算機將分別對紅、綠、藍(lán)3通道進行計算,計算量大且影響運行效率。為了盡可能地減少運算量,提高運行效率,本算法使用灰度圖進行圖像處理,處理后使用彩色圖像覆蓋,圖像處理流程如圖5所示。
圖5 圖像處理流程示意圖Fig.5 Image processing method diagram
3)藻類樣本數(shù)據(jù)集的制作。為了實現(xiàn)AlgaeNet的訓(xùn)練與測試,需將處理后的單個藻類細(xì)胞圖像劃分為訓(xùn)練集與測試集。首先生成數(shù)據(jù)集文件目錄,將所有圖像樣本按比例分別放入訓(xùn)練集與測試集文件夾內(nèi),再采用dataset.ImageFolder函數(shù)制作符合神經(jīng)網(wǎng)絡(luò)模型格式的數(shù)據(jù)集。ImageFloder函數(shù)會通過文件目錄自動將子目錄中的圖片生成數(shù)據(jù)集,標(biāo)簽值為自然數(shù)排列。在本系統(tǒng)中卵形小球藻默認(rèn)標(biāo)簽值為0,小等刺硅鞭藻默認(rèn)標(biāo)簽值為1。
2.2.1 藻類細(xì)胞圖像的處理結(jié)果 本研究中針對海洋單細(xì)胞藻類識別提出了全新的解決方案,不同于其他研究所使用的高倍率單一細(xì)胞特寫圖像[7,9-10],所使用的顯微圖像具有單張圖像目標(biāo)數(shù)量多的特點。但由于單個目標(biāo)像素值較低,神經(jīng)網(wǎng)絡(luò)模型所能提取到的特征較少,對模型的訓(xùn)練有較高要求。為此,使用OpenCV來進行顯微圖像的處理,顯微鏡拍攝到的顯微圖像通過cv2.imread以BGR的通道順序讀入程序中,然后采用灰度心理學(xué)模型轉(zhuǎn)換算法將輸入圖像轉(zhuǎn)化為灰度圖。
本研究中以卵形小球藻為例,通過電子顯微鏡采集到的卵形小球藻圖像見圖6(a),將輸入顯微圖像轉(zhuǎn)換為灰度圖后的結(jié)果見圖6(b)。在對原顯微圖像做灰度轉(zhuǎn)換后通過cv2.threshold函數(shù)對灰度圖進行二值化處理以突出所有藻類細(xì)胞。通過試驗得出在閾值設(shè)定為200時效果較為良好,經(jīng)二值化操作后的結(jié)果見圖6(c)。由于藻類細(xì)胞在顯微鏡的光線照射下,中心亮度會明顯高于外部。經(jīng)二值化操作后圖像在細(xì)胞中心會形成孔洞結(jié)構(gòu),影響圖像分割效果,故在二值化操作后使用cv2.floodfill函數(shù)添加膨脹操作來解決孔洞問題,孔洞填充后的圖像見圖6(d)。經(jīng)過上述處理后,使用cv2.findContours對經(jīng)孔洞填充的二值化圖像進行邊界檢測。為展示邊緣檢測效果,在原始顯微圖像上使用紅線標(biāo)出細(xì)胞邊緣見圖6(e)。邊界檢測完成后,利用獲取到的邊界參數(shù)在原始顯微圖像上進行切割操作,并將切割后的圖像統(tǒng)一粘貼至相同大小的純白背景上,最后得到的藻類細(xì)胞圖像見圖6(f)。經(jīng)過圖像處理,共收集到卵形小球藻細(xì)胞圖像4 889張,小等刺硅鞭藻細(xì)胞圖像6 110張。
(a)原始圖像 (b)灰度化后圖像 (c)二值化后的圖像 (d)孔洞填充后圖像 (e)邊緣檢測結(jié)果 (f)獨立細(xì)胞圖像 original image grayscaled image binarized image hole filling image edge detection results single cell image圖6 卵形小球藻圖像處理示意圖Fig.6 Image processing diagram of Chlorella ovalis
2.2.2 AlgaeNet單細(xì)胞藻類識別算法的訓(xùn)練集驗證結(jié)果 本研究中使用Google Colab云計算平臺來對AlgaeNet單細(xì)胞藻類識別算法進行驗證試驗,使用Tesla P4進行GPU硬件加速。在軟件環(huán)境配置下,使用Pytorch 1.5.0及Cuda 10.1作為訓(xùn)練環(huán)境。從藻類細(xì)胞圖像庫中選取80%圖像樣本作為訓(xùn)練集,即卵形小球藻3 912幅,小等刺硅鞭藻4 889幅,共計8 801幅圖像。選取20%圖像樣本作為測試集,即卵形小球藻977幅,小等刺硅鞭藻1 221幅,用以開展相關(guān)模型的訓(xùn)練與測試試驗。
選擇VGG11、VGG13、VGG16、VGG19、AlexNet網(wǎng)絡(luò)模型及基于改進式VGG網(wǎng)絡(luò)模型的單細(xì)胞藻類識別算法AlgaeNet進行對比試驗。VGG網(wǎng)絡(luò)模型、AlexNet均采用標(biāo)準(zhǔn)的網(wǎng)絡(luò)模型結(jié)構(gòu),AlexNet的結(jié)構(gòu)為5個卷積層與3個全連接層;VGG網(wǎng)絡(luò)模型中,VGG11為8個卷積層、3個全連接層,VGG13為10個卷積層、3個全連接層,VGG16為13個卷積層、3個全連接層,VGG19為16個卷積層、3個全連接層。設(shè)定輸入樣本分辨率為40×40,批處理量設(shè)置為128張樣本為1個Batch,學(xué)習(xí)率設(shè)置為0.000 1。在訓(xùn)練過程中,每次迭代均提取一次訓(xùn)練損失數(shù)值與測試集預(yù)測準(zhǔn)確率。訓(xùn)練過程中損失下降曲線與訓(xùn)練集預(yù)測準(zhǔn)確率曲線如圖7、圖8所示。訓(xùn)練完成后,分別使用測試集對每種模型的識別準(zhǔn)確率進行測試(表2)。
表2 不同網(wǎng)絡(luò)模型對測試集的預(yù)測Tab.2 Prediction results of different network on the test set
對自建數(shù)據(jù)集進行10個epoch訓(xùn)練后,參與對比的5個神經(jīng)網(wǎng)絡(luò)模型在對測試集的預(yù)測上均達(dá)到了較高的準(zhǔn)確率。
從圖7可見,隨著迭代次數(shù)的增加,不同網(wǎng)絡(luò)模型的損失數(shù)據(jù)都在降低,其中VGG11、VGG13、VGG16、VGG19、AlexNet均在損失數(shù)值為0.7時開始保持穩(wěn)定,隨后經(jīng)過約40次迭代,VGG11與AlexNet網(wǎng)絡(luò)模型的損失數(shù)值開始下降,并在約第150次迭代后獲得相對較好的結(jié)果,而VGG13與VGG16網(wǎng)絡(luò)模型的訓(xùn)練效果不理想,分別經(jīng)過約300、350個批次的訓(xùn)練后,損失數(shù)據(jù)降至可接受范圍,采用改進式VGG網(wǎng)絡(luò)模型的損失數(shù)據(jù)下降速度遠(yuǎn)高于其他網(wǎng)絡(luò)模型,在50次迭代以內(nèi)損失數(shù)值已獲得較好結(jié)果。從圖8可見,在訓(xùn)練過程中,隨著迭代次數(shù)的增加,基于改進式VGG網(wǎng)絡(luò)模型的單細(xì)胞藻類識別算法AlgaeNet對樣本集預(yù)測準(zhǔn)確率的提升速度遠(yuǎn)高于其他網(wǎng)絡(luò)模型。結(jié)合表2可見,與其他模型相比,AlgaeNet性能更高,與其他文獻中所采用的BP神經(jīng)網(wǎng)絡(luò)、支持向量機[7-9]等方式相比,本研究中所采用的AlgaeNet具有更高的識別精度,更適應(yīng)于對單細(xì)胞藻類顯微圖像的識別。
圖7 不同網(wǎng)絡(luò)模型訓(xùn)練過程中損失下降曲線Fig.7 Loss decline curve during different network training
圖8 不同網(wǎng)絡(luò)模型訓(xùn)練過程中準(zhǔn)確率曲線Fig.8 Accuracy curve during different network training
1)本研究在當(dāng)前對藻類識別方法的基礎(chǔ)上,提出了基于改進式VGG16的單細(xì)胞藻類識別算法AlgaeNet,在原始VGG16網(wǎng)絡(luò)模型基礎(chǔ)上,減小了卷積核的數(shù)量以保證主流性能計算機的流暢運行。
2)引入BatchNormalization進行神經(jīng)網(wǎng)絡(luò)模型加速,可提升藻類細(xì)胞分類模型的訓(xùn)練速度。
3)以自建藻類細(xì)胞圖像數(shù)據(jù)庫為樣本,通過兩種藻類各約4 000張樣本進行訓(xùn)練后,AlgaeNet算法可以準(zhǔn)確識別小等刺硅鞭藻和卵形小球藻,準(zhǔn)確率達(dá)99.317%,性能較AlexNet及其他標(biāo)準(zhǔn)VGG模型更優(yōu)異,該算法具有較好的訓(xùn)練速度及識別準(zhǔn)確度,可實現(xiàn)顯微條件下單細(xì)胞藻類自動化精準(zhǔn)識別。