向睿捷 劉浩 路珍 肖澤宇 劉海鵬 王寅初 彭曉* 嚴(yán)偉*
(1)深圳大學(xué)物理與光電工程學(xué)院,深圳市光子學(xué)與生物光子學(xué)重點實驗室,光電子器件與系統(tǒng)教育部/廣東省重點實驗室,深圳 518060;2)中國科學(xué)院煙臺海岸帶研究所,煙臺 264003;3)國家基礎(chǔ)學(xué)科公共科學(xué)數(shù)據(jù)中心,北京 100190)
微藻是一類單細(xì)胞原生生物,在多種水生環(huán)境中廣泛分布[1]。微藻的種類非常多,其生長速度快,數(shù)量巨大,光合作用效率和單位面積產(chǎn)量均較高[2],可以反復(fù)再生。微藻含有大量不飽和脂肪酸、多糖、維生素等營養(yǎng)物質(zhì)[3]。微藻在自然環(huán)境中扮演重要的生產(chǎn)者角色,為多種水生動物提供物質(zhì)和能量來源。同時,微藻作為重要的原材料,在多個領(lǐng)域中發(fā)揮重要作用:微藻富含蛋白質(zhì)和維生素等物質(zhì),可以用于制成食品、營養(yǎng)品、飼料[4]及多種重要藥物[5];微藻的脂質(zhì)含量高,可以用于制造生物柴油[6];通過發(fā)酵可產(chǎn)生醇類[7]及氫氣[8],減少因化石燃料帶來的環(huán)境污染;微藻對水中碳、氮、磷等常見元素具有良好的降解能力[9],也對重金屬、微塑料等污染物有吸附處理的能力[10-11],可以用于廢水處理;用于廢水處理后的微藻還可以用于生物燃料及一些營養(yǎng)素的制備[12],使微藻得到充分利用。
微藻在國內(nèi)外都有大規(guī)模養(yǎng)殖,市場規(guī)模不斷擴(kuò)大。目前中國是世界上最大的微藻生產(chǎn)國,年產(chǎn)量超過10 000噸干重,產(chǎn)值達(dá)到20億美元[13]。在中國,微藻產(chǎn)業(yè)布局廣泛,規(guī)模巨大,應(yīng)用豐富,而微藻養(yǎng)殖是產(chǎn)業(yè)中重要的一環(huán)。養(yǎng)殖過程中,微藻可能會受到雜菌入侵或異藻污染,影響微藻的生長情況,進(jìn)而影響各種產(chǎn)物的純度和質(zhì)量。此外,微藻養(yǎng)殖環(huán)境需要進(jìn)行合理布置,否則微藻會死亡或過度生長,影響微藻養(yǎng)殖。因此,需要實時對微藻的生長情況進(jìn)行檢測。通過定期提取養(yǎng)殖水樣進(jìn)行檢測,可以獲取包括數(shù)量、種類在內(nèi)的一系列信息,以及時調(diào)整養(yǎng)殖環(huán)境的各項條件,做出相應(yīng)應(yīng)對措施。
傳統(tǒng)微藻檢測方法通過光學(xué)顯微成像或光譜分析的方法進(jìn)行檢測。這些方法存在對人員、設(shè)備、時間等要求較高,難以實現(xiàn)實時實地對藻類進(jìn)行檢測。近年來,已經(jīng)出現(xiàn)基于結(jié)合機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的計算機(jī)視覺方法對微藻進(jìn)行檢測的方法[14],如結(jié)合支持向量機(jī)、隨機(jī)森林、人工神經(jīng)網(wǎng)絡(luò)[15]、卷積神經(jīng)網(wǎng)絡(luò)[16]等模型對采集到的微藻圖像進(jìn)行處理,對微藻進(jìn)行識別與分類的方法。采用這些方法得到的效果較好,但對硬件水平要求較高,占用數(shù)據(jù)存儲空間較大,難以在便攜式設(shè)備上實現(xiàn)。本文搭建了一套便攜式光學(xué)顯微系統(tǒng),開發(fā)了基于YOLOv3算法的卷積神經(jīng)網(wǎng)絡(luò),將其部署到微型計算機(jī)上,實現(xiàn)了實時便攜微藻檢測。在YOLOv3算法的基礎(chǔ)上,本文分別作了以下改進(jìn):a. 引入跨區(qū)域殘差連接機(jī)制,它將殘差層處理前后的圖像進(jìn)行張量相加處理,提高神經(jīng)網(wǎng)絡(luò)對圖像的處理能力;b. 引入注意力選擇機(jī)制,根據(jù)特征圖的重要性調(diào)整權(quán)重,提高了神經(jīng)網(wǎng)絡(luò)對特征的提取能力和學(xué)習(xí)能力;c. 引入加載跨區(qū)域殘差連接機(jī)制提高了神經(jīng)網(wǎng)絡(luò)的處理能力,在此基礎(chǔ)上,本文將原有優(yōu)化器改為Adam優(yōu)化器,通過結(jié)合歷史梯度的變化結(jié)果和優(yōu)化梯度下降過程,在加快收斂過程和增強(qiáng)學(xué)習(xí)能力等方面取得了良好的效果。
對微藻進(jìn)行圖像數(shù)據(jù)采集通常采集其形態(tài)信息或光譜信息。基于此,微藻的光學(xué)檢測方法可以分為兩類:光學(xué)顯微成像法和光譜分析法。近年來,隨著計算機(jī)技術(shù)的發(fā)展,逐漸出現(xiàn)了結(jié)合計算機(jī)視覺和深度學(xué)習(xí)技術(shù)的新型微藻檢測方法。
1.1.1 光學(xué)顯微成像
光學(xué)顯微成像是生物和醫(yī)學(xué)領(lǐng)域常用的成像工具[17-18],其在微藻領(lǐng)域也有廣泛的應(yīng)用。光學(xué)顯微成像又分為明場顯微成像、暗場顯微成像、相襯成像、微分干涉成像、熒光顯微成像等。明場顯微成像使用白光光源均勻照明樣品,使用物鏡對物體進(jìn)行成像;暗場顯微成像在明場顯微成像的基礎(chǔ)上引入了一個環(huán)形光闌,有效濾除了背景光對圖像信息的干擾,提高了成像質(zhì)量;相襯成像在暗場顯微成像的基礎(chǔ)上,在光路中引入了一個相位片,將樣品的相位信息轉(zhuǎn)化為可以被觀察到的振幅信息;微分干涉成像在暗場成像的基礎(chǔ)上,將光源改為線偏振光,并在光路中引入兩塊沃拉斯頓棱鏡以將偏振光分為兩束,將樣品從背景中區(qū)分出來;熒光顯微成像激發(fā)微藻本身的內(nèi)源色素產(chǎn)生熒光,或使用熒光分子標(biāo)記,激發(fā)熒光,實現(xiàn)對微藻樣品的觀察。
目前,國際上認(rèn)可的標(biāo)準(zhǔn)檢測方法是光學(xué)顯微成像方法[19]。但該方法有兩個缺點:一是對實驗人員有很高的要求,需要其具有高水平專業(yè)知識和大量工作經(jīng)驗,以保證檢測與分類的準(zhǔn)確率;二是該方法的效率低下,需要耗費(fèi)大量時間進(jìn)行檢測分類。此外,熒光顯微成像尤其需要復(fù)雜的實驗儀器和高條件的實驗場地,這使得熒光顯微成像的實驗條件和實驗成本需求很高,不便于進(jìn)行實時實地的微藻檢測分類。
1.1.2 光譜分析
光譜分析即對微藻中含有的某些色素的光譜進(jìn)行分析,從而對微藻進(jìn)行檢測的方法。測量的光譜可以是吸收光譜也可以是熒光光譜。
對于吸收光譜,當(dāng)光通過微藻液時,微藻色素會對不同波長的光有不同程度的吸收。通過測量吸收光譜,并對光譜數(shù)據(jù)進(jìn)行分析,可以分析微藻液中微藻的種類、濃度等信息[20]。吸收光譜與不同色素對不同波長光的摩爾吸光比、微藻濃度等變量都有關(guān)系,可以通過對光譜數(shù)據(jù)進(jìn)行一定計算,得出吸收光譜與這些變量的關(guān)系,從而獲得想要的信息[21]。對于熒光光譜,可以通過提取樣品中的色素后激發(fā)熒光[22],也可以原位激發(fā)熒光[23],然后對其光譜進(jìn)行計算分析。
與光學(xué)顯微成像相比,光譜分析的方法檢測速度較快,但檢測精度較低,對高濃度和雜藻摻雜的樣品測量效果不佳,且光譜分析的方法對實驗條件要求較高,因此不利于進(jìn)行實時高通量檢測,同時,該方法需要標(biāo)準(zhǔn)的光譜數(shù)據(jù)作為對比,若樣品受到污染,檢測精度將大大降低,若使用提取色素再激發(fā)熒光的光譜分析方法,處理過程復(fù)雜,處理時間漫長,無法做到實時高效微藻檢測。
隨著計算機(jī)技術(shù)的蓬勃發(fā)展,計算機(jī)視覺在多個領(lǐng)域得到廣泛應(yīng)用。計算機(jī)視覺處理圖像速度快,在圖像檢測與目標(biāo)識別等方面具有一定優(yōu)勢。傳統(tǒng)的計算機(jī)視覺包括圖像處理、特征提取與模型匹配算法、立體視覺等部分,通過引入機(jī)器學(xué)習(xí)技術(shù),可以進(jìn)一步提高計算機(jī)視覺處理圖像的效率和準(zhǔn)確率,可以完成更加復(fù)雜的任務(wù)。機(jī)器學(xué)習(xí)將提取出的圖像特征輸入神經(jīng)網(wǎng)絡(luò)模型進(jìn)行,得到輸出的目標(biāo)檢測數(shù)據(jù)。早期對微藻進(jìn)行檢測與分類僅通過處理圖像并提取特征,使用簡單的機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練,在特征和目標(biāo)之間建立映射關(guān)系的方法實現(xiàn)[24-25]。然而,這種方法具有一定的局限性。例如,提取的特征僅有輪廓形狀、以灰度值分布表示的紋理等,訓(xùn)練效果不佳。因此,研究人員又提出了結(jié)合機(jī)器學(xué)習(xí),對圖像數(shù)據(jù)直接提取特征并建立映射的微藻檢測方法。最初對圖像進(jìn)行傅里葉變換并提取特征向量并將其傳入神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練[26],之后又出現(xiàn)了使用支持向量機(jī)的主動學(xué)習(xí)模型[27]、結(jié)合混合特征向量[28]、語義特征提取[29]和支持向量機(jī)的分類模型與無監(jiān)督分類模型[30]等多種分類方法。機(jī)器學(xué)習(xí)需要對特征進(jìn)行提取,仍需要進(jìn)行圖像分割、特征提取等多個復(fù)雜步驟。機(jī)器學(xué)習(xí)對圖像數(shù)據(jù)圖像的特征數(shù)據(jù)要求很高,泛化能力較差,且圖像數(shù)據(jù)需要研究人員手動標(biāo)注。因此,機(jī)器學(xué)習(xí)的應(yīng)用仍然有一定的局限性。
近年比較熱門的深度學(xué)習(xí)技術(shù)避免了機(jī)器學(xué)習(xí)的多個問題,因此結(jié)合深度學(xué)習(xí)對微藻進(jìn)行檢測分類的方法有廣闊的應(yīng)用前景。深度學(xué)習(xí)本質(zhì)上也是一種機(jī)器學(xué)習(xí)的方法,但與機(jī)器學(xué)習(xí)不同的是,它將特征提取交給神經(jīng)網(wǎng)絡(luò)模型進(jìn)行,避免了復(fù)雜的特征提取工作,應(yīng)用范圍更加廣泛。深度學(xué)習(xí)引入了卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN),通過訓(xùn)練不斷調(diào)整特征提取網(wǎng)絡(luò)的參數(shù),可以得到最適合的檢測模型,收獲比機(jī)器學(xué)習(xí)更好的效果[31]。深度學(xué)習(xí)是近年來的熱點研究方向,基于Mask-RCNN[32]、Alex-Net[33]等模型的微藻檢測方法都有較高的準(zhǔn)確率。目前深度學(xué)習(xí)在微藻檢測方面的應(yīng)用局限于單一藻類的檢測,而對于多種藻類的檢測分類的研究較少。因此,本論文將深度學(xué)習(xí)應(yīng)用于多種藻類的檢測分類。
在有監(jiān)督的學(xué)習(xí)環(huán)境下,將梯度下降算法和多層前饋神經(jīng)網(wǎng)絡(luò)結(jié)合可以形成反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)[34]。BP神經(jīng)網(wǎng)絡(luò)包括前向傳播和反向傳播兩個部分。其中,前向傳播將輸入的數(shù)據(jù)經(jīng)神經(jīng)網(wǎng)絡(luò)各層依次處理后輸出。反向傳播通過損失函數(shù),將前向傳播的結(jié)果與真實值對比,獲得損失值,并根據(jù)損失值使用梯度下降算法調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)中各節(jié)點連接函數(shù)的權(quán)重。重復(fù)這個訓(xùn)練過程,可以不斷降低神經(jīng)網(wǎng)絡(luò)的損失值,提高神經(jīng)網(wǎng)絡(luò)的性能。訓(xùn)練結(jié)束后,使用未參加訓(xùn)練的數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行評估。
對于BP神經(jīng)網(wǎng)絡(luò)而言,其中各層的連接是通過全連接方式來進(jìn)行的。使用全連接層提取特征會引入大量的參數(shù)運(yùn)算,使得BP神經(jīng)網(wǎng)絡(luò)需要處理大量數(shù)據(jù)[35]。因此,BP神經(jīng)網(wǎng)絡(luò)對部署平臺的性能要求很高,不利于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的進(jìn)行以及圖像特征信息的提取。
為了降低運(yùn)算量,增加特征信息提取能力,使用卷積層代替全連接層對特征進(jìn)行提取,形成了CNN[36]。CNN一般由卷積層、池化層、全連接層相連組成。此外,需要引入一定的算法,構(gòu)造CNN的具體結(jié)構(gòu)。
在CNN中,卷積層對輸入的數(shù)據(jù)進(jìn)行特征提取。對于圖像數(shù)據(jù)來說,卷積層采用卷積核對圖像數(shù)據(jù)進(jìn)行特征提取。卷積核是一個方陣,其大小m為奇數(shù)。通過使用卷積核依次對圖像上的每個像素做卷積運(yùn)算可以獲得圖像的特征圖。對于彩色圖像,它分為RGB 3個單色通道,因此需要對RGB 3個通道的每個通道單獨進(jìn)行卷積運(yùn)算。通過使用小尺寸的卷積核可以提高特征圖的局部感受野[37]。卷積層提取的特征圖輸入池化層進(jìn)行處理。在池化層中,特征圖經(jīng)過下采樣過程,使用一定大小的窗口函數(shù)對特征圖進(jìn)行池化。窗口函數(shù)也是一個卷積核,但其對特征圖的卷積過程并不是對每個像素進(jìn)行,而是設(shè)定一定的步長。因此,在池化的過程中就會跳過單位步長的像素[38]。這樣做得到的特征圖降低了尺寸,但在識別小尺寸目標(biāo)時可能會導(dǎo)致特征信息丟失。為盡量減少特征信息丟失問題,本文將步長設(shè)定為2。窗口函數(shù)分為最大值池化和平均值池化兩種。下采樣過程增大了特征圖局部感受野,聚合特征并降低了特征圖的尺寸。經(jīng)過多層卷積層和池化層后,由全連接層綜合所有特征并輸出。
前向傳播時,各層之間使用激活函數(shù)連接。激活函數(shù)都是非線性函數(shù),以在計算過程為線性的卷積神經(jīng)網(wǎng)絡(luò)引入非線性效應(yīng),增強(qiáng)學(xué)習(xí)能力。激活函數(shù)對加權(quán)求和后的結(jié)果進(jìn)行計算并輸出。常見激活函數(shù)有Sigmoid函數(shù)、tanh函數(shù)、Softmax函數(shù)及Relu函數(shù)等。其中,Relu函數(shù)相比其他函數(shù),能夠有效解決梯度消失現(xiàn)象[39]。反向傳播過程使用損失函數(shù)來計算最終輸出與真實值之間的誤差,稱為損失值。通過一定的算法不斷減小損失值,可使卷積神經(jīng)網(wǎng)絡(luò)的性能優(yōu)化到最佳。最基本的算法是梯度下降算法,使用梯度來調(diào)整損失值,直至接近最小值。在梯度下降算法中,用學(xué)習(xí)率來表示對輸入量每次的調(diào)整度。
YOLO(You Only Look Once)是一種目標(biāo)檢測算法,它包含特征提取、編碼、解碼3個部分。其中前兩個部分在卷積神經(jīng)網(wǎng)絡(luò)中分別對應(yīng)特征提取網(wǎng)絡(luò)和編碼器。解碼部分則是使用解碼器將神經(jīng)網(wǎng)絡(luò)處理圖像的輸出結(jié)果轉(zhuǎn)化為圖像中對目標(biāo)的標(biāo)記,輸出標(biāo)記目標(biāo)位置的矩形框、標(biāo)記目標(biāo)類型和準(zhǔn)確率作為預(yù)測結(jié)果。YOLO目標(biāo)檢測算法有多個版本,本文使用的是YOLOv3算法[40],其特征提取網(wǎng)絡(luò)為DarkNet53。YOLOv4[41]在YOLOv3的基礎(chǔ)上作出許多改進(jìn),但直接使用YOLOv4訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型在本文開發(fā)的系統(tǒng)中使用效果不佳,這可能是由于YOLOv4對于性能要求較高,系統(tǒng)無法滿足。本文嘗試保留YOLOv3的大部分結(jié)構(gòu),不使用YOLOv4的特征提取網(wǎng)絡(luò)CSPDarkNet53,僅將編碼器換為YOLOv4使用的編碼器,它在YOLOv3的編碼器基礎(chǔ)上引入了空間金字塔池化(spatial pyramid pooling,SPP)[42]和PAN-net[43],以增強(qiáng)其多尺度檢測的能力。
YOLOv3的特征提取網(wǎng)絡(luò)對輸入圖像數(shù)據(jù)進(jìn)行處理后,可以得到3種大小的目標(biāo)框,用于標(biāo)定目標(biāo)位置、尺寸以及特征信息。每種目標(biāo)框都是一個三維張量。3種目標(biāo)框的大小與輸入圖像的尺寸以及目標(biāo)的類別數(shù)量有關(guān)。如果輸入圖像的尺寸為a,目標(biāo)類別為b,那么3種目標(biāo)框的初始大?。ㄓ纱蟮叫。﹎,n,p如式(1)~(3)所示:
本文使用的輸入圖像為RGB三通道圖像,尺寸為416×416。使用的藻類共4類,因此目標(biāo)類別即4類。根據(jù)尺寸數(shù)據(jù)和目標(biāo)類別數(shù)據(jù),可以得到(m,n,p)分別為(52,52,27),(26,26,27),(13,13,27)。由于m目標(biāo)框長寬尺寸為n目標(biāo)框的兩倍,p目標(biāo)框的4倍,將輸入圖像按13×13的尺寸大小分為多個檢測圖。在每個檢測圖中,每個像素都設(shè)定以其為中心的3種初始大小的目標(biāo)框。對于每一個框都需要9個變量來修正目標(biāo)框,又由于輸入圖像為RGB三通道圖像,因此變量數(shù)為27個。每個框單一通道的9個變量中,一個用于描述置信度、兩個用于描述目標(biāo)框中心點偏移坐標(biāo)(tx,ty)、兩個用于描述目標(biāo)框尺寸的變化比例(th,tw)、5個用于描述目標(biāo)類別。
置信度是一個位于0和1之間的值,用于描述目標(biāo)框有多大的概率存在一個真實目標(biāo)。該值越接近1,則目標(biāo)框內(nèi)存在一個真實目標(biāo)的可能越大,反之則越小。在使用置信度時通常會設(shè)置一個閾值,若置信度高于該閾值,則認(rèn)為該目標(biāo)框內(nèi)檢測到物目標(biāo),反之則認(rèn)為未檢測到目標(biāo)。以此區(qū)分目標(biāo)框是否檢測到目標(biāo)。tx,ty分別表示目標(biāo)框中心坐標(biāo)在x,y兩個方向相對初始目標(biāo)框左上角坐標(biāo)的偏移量。th,tw分別描述最終目標(biāo)框的長寬相對初始目標(biāo)框的變化比例。若(sx,sy)為像素在其所屬檢測圖中的坐標(biāo),(h,w)分別為初始目標(biāo)框的長和寬,則最終得到的目標(biāo)框位(s′x,s′y)和長寬尺寸(h′,w′)的解碼公式如下所示:
在求出目標(biāo)框位置和長寬尺寸后,使用softmax函數(shù)對4個變量進(jìn)行處理,分別得到目標(biāo)屬于4種微藻的概率。在得到所有的目標(biāo)框之后,使用非極大值抑制將檢測到同一個目標(biāo)的多個目標(biāo)框刪除,僅留下一個置信度最高的目標(biāo)框。至此一輪使用算法對CNN的訓(xùn)練完成。
本文CNN的特征提取網(wǎng)絡(luò)使用的是DarkNet53特征提取網(wǎng)絡(luò),其結(jié)構(gòu)如圖1所示。輸入圖像進(jìn)入DarkNet53后,首先進(jìn)行卷積和下采樣。使用32個卷積核提取圖像中特征信息,再使用64個卷積核進(jìn)行下采樣。這個過程在提取特征再提取特征信息的同時降低了特征圖尺寸。
在進(jìn)行初步卷積下采樣之后,將提取出的特征圖經(jīng)過多層由殘差層和下采樣層組成的模組繼續(xù)提取特征。其中,殘差層將特征圖進(jìn)行卷積標(biāo)準(zhǔn)化之后與其本身相加,用以增強(qiáng)卷積結(jié)果和特征圖本身之間的聯(lián)系。在DarkNet53中,在經(jīng)過初步卷積和下采樣層之后,特征圖依次經(jīng)過5個部分,分別為1、2、8、8、4個殘差層與一個下采樣層組成的模塊。在整個特征提取過程中,在如圖所示的3個位置獲得編號為0、1、2的3個輸出結(jié)果,用于后續(xù)的目標(biāo)識別及分類過程。編號0的輸出通道數(shù)為1 024,對應(yīng)最小尺寸的特征圖;編號1的輸出通道數(shù)為512,對應(yīng)的特征圖尺寸為編號0的2倍;編號2的輸出通道數(shù)為256,對應(yīng)的特征圖尺寸為編號1的2倍。
Fig. 1 Structure of DarkNet53 feature extraction network (plot with NN-SVG[44])
在對CNN的編碼輸出結(jié)果進(jìn)行解碼得到最終結(jié)果之前,需要對模型經(jīng)過多輪訓(xùn)練,以盡可能使神經(jīng)網(wǎng)絡(luò)對輸入圖像的目標(biāo)識別與分類性能達(dá)到最佳。在每一輪訓(xùn)練結(jié)束后,需要使用損失函數(shù)計算損失,以調(diào)整神經(jīng)網(wǎng)絡(luò)的參數(shù)。將輸出結(jié)果與真實目標(biāo)框的參數(shù)通過損失函數(shù)得到損失。損失為置信度損失、位置損失和分類損失3個部分的和。其中,置信度損失為真實值與輸出結(jié)果之間的二元交叉熵,位置損失為真實值與輸出結(jié)果的坐標(biāo)損失與長寬損失的和,類別損失為各類別與輸出結(jié)果類別的二元交叉熵的和。通過計算出每個目標(biāo)對于3種尺寸的目標(biāo)框損失值之和,可以使用優(yōu)化算法進(jìn)行反向傳播,進(jìn)行模型訓(xùn)練。
為了在訓(xùn)練過程中綜合衡量CNN的性能,需要引入除損失值外的指標(biāo)。常用的指標(biāo)有準(zhǔn)確率(precision)、召回率(recall)、F1值和平均精度(mean average precision,mAP)值等。其中,準(zhǔn)確率和召回率通常是矛盾的,需要一個參數(shù)綜合考慮準(zhǔn)確率和召回率。本文采用mAP值作為綜合衡量CNN性能的指標(biāo)。通過觀察mAP值隨訓(xùn)練輪次的變化可以了解神經(jīng)網(wǎng)絡(luò)的訓(xùn)練狀況和當(dāng)前性能。
訓(xùn)練過程中,需要將初始圖像數(shù)據(jù)制作為數(shù)據(jù)集對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在數(shù)據(jù)集中,所有圖像數(shù)據(jù)按8∶1∶1的比例分為訓(xùn)練集、驗證集和測試集。訓(xùn)練集直接用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,作為輸入圖像;驗證集則在一輪訓(xùn)練結(jié)束后,通過反向傳播過程調(diào)整神經(jīng)網(wǎng)絡(luò)的參數(shù);測試集則在每輪訓(xùn)練過程結(jié)束后用于評估神經(jīng)網(wǎng)絡(luò)的性能,僅用于評估,不參與神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程。
如圖2所示,跨區(qū)域殘差連接機(jī)制是將輸入殘差層之前的特征圖和經(jīng)殘差層處理后的特征圖進(jìn)行張量相加,將得到的新特征圖作為輸出的機(jī)制。使用此機(jī)制輸出的特征圖與原來未使用此機(jī)制輸出的特征圖尺寸是相同的,因此可以直接用于后續(xù)目標(biāo)識別和分類。
Fig. 2 Structure of cross-region residual connetcions
注意力選擇機(jī)制根據(jù)各個特征圖的重要性調(diào)整權(quán)重,它增加重要特征圖的權(quán)重并降低次要特征圖的權(quán)重,以提高特征提取能力和CNN對目標(biāo)的學(xué)習(xí)能力。本文使用的注意力選擇機(jī)制結(jié)構(gòu)基于CBAM(convolutional block attention module)[45]構(gòu)建。輸入的特征圖首先經(jīng)過通道最大值池化和通道平均池化獲得各通道的最大值和平均值,然后經(jīng)過兩次卷積可以完成注意力選擇過程(圖3)。之后,根據(jù)權(quán)重對輸入特征圖進(jìn)行卷積,得到單通道的權(quán)重選擇圖。將權(quán)重選擇圖與空間池化之前的特征圖相乘,得到注意力選擇后的特征圖。
Fig. 3 Structure of attention selection
本文設(shè)計了一套光學(xué)顯微成像系統(tǒng)并結(jié)合深度學(xué)習(xí)技術(shù)實現(xiàn)微藻的快速自動檢測,詳細(xì)情況如下。
實驗過程中,本文使用了4種微藻:小球藻(Chlorellasp.)、集胞藻(Synechocystissp.PCC6803)、三角褐指藻(Phaeodactylum tricornutum)以及紫球藻(Porphyridium cruentum)。這4種微藻由中國科學(xué)院煙臺海岸帶研究所合作課題組提供。
4種微藻的培養(yǎng)環(huán)境如下:三角褐指藻的培養(yǎng)溫度為16~17℃,光量子強(qiáng)度為100 μmol?m-2?s-1;其余3種微藻的培養(yǎng)溫度為23℃,光照強(qiáng)度為50 μmol?m-2?s-1。光照周期均為12L∶12D,均用標(biāo)準(zhǔn)的f2培養(yǎng)基培養(yǎng)。
微藻樣品制備過程如下:各取100 μl 4種微藻樣品加入400 μl蒸餾水混合均勻,得到4種微藻的稀釋液。取4種稀釋液各100 μl全部混合均勻,得到400 μl混合液。取適量混合液滴在載物臺的凹槽中,用蓋玻片壓平。靜置5 min,待微藻樣品液沉降完畢即可進(jìn)行顯微成像。對于每種微藻樣品液,更改物鏡視野獲取10張分辨率為1 760×1 180的圖像,用于制作圖像數(shù)據(jù)集進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
實驗過程中使用的光學(xué)顯微成像系統(tǒng)是基于明場顯微成像原理搭建,主要分為照明光路和成像光路兩部分。照明光路由白光光源和準(zhǔn)直光路組成(圖4),其中白光光源是白光LED,產(chǎn)生白色照明光,經(jīng)過準(zhǔn)直光路后變?yōu)榫鶆蛘彰鞴?,用于照明微藻樣品液。成像光路由載物臺、物鏡、反射鏡、成像透鏡以及圖像采集設(shè)備組成。載物臺用于存放微藻樣品液,使用蓋玻片按壓,將螺旋藻液限制在樣品臺的凹槽內(nèi),以便于成像。物鏡使用一塊20倍物鏡(型號PLN20X,奧林巴斯),用于對螺旋藻進(jìn)行成像。反射鏡用于轉(zhuǎn)折光路,方便圖像采集。成像透鏡是一塊消色差膠合透鏡(型號MAD418-A,麓邦光電),將物鏡收集的圖像信息投影到成像設(shè)備上。圖像采集設(shè)備是一臺CMOS工業(yè)相機(jī)(型號MV-SUF401GC,邁德威視),可拍攝最高2 048×2 048分辨率的彩色圖像。將相機(jī)通過USB與計算機(jī)相連,可使用相關(guān)配套軟件獲得其采集的螺旋藻圖像,并使用微型計算機(jī)對圖像進(jìn)行處理,輸出結(jié)果。控制系統(tǒng)為一部微型計算機(jī)(Raspberry Pi4 model B)。
本實驗中使用的數(shù)據(jù)集經(jīng)過圖像采集、預(yù)處理等過程制作。首先取3.1中制作的4種微藻樣液各20 μl,加入320 μl蒸餾水混合均勻。從400 μl微藻液中取適量微藻液,使用搭建的光學(xué)顯微成像系統(tǒng)進(jìn)行成像,將獲得的微藻圖像分割為尺寸為416×416的圖像。使用labelimg軟件對圖像進(jìn)行手動標(biāo)記,標(biāo)記出每個目標(biāo)的真實目標(biāo)框(圖5)。標(biāo)記結(jié)束后軟件為每個圖像新建一個同名xml文件,以記錄各目標(biāo)框的信息。這些信息包括目標(biāo)框的左上角和右下角坐標(biāo)、目標(biāo)框內(nèi)目標(biāo)的種類。一共使用了500張分割好的圖片作為數(shù)據(jù)集,其中400張為訓(xùn)練集,50張為驗證集,50張為測試集。這些圖像經(jīng)過一定的預(yù)處理,包括隨機(jī)裁剪、翻轉(zhuǎn)、對比度調(diào)整等方法。
數(shù)據(jù)集制作完成后即輸入神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。訓(xùn)練開始時,初始學(xué)習(xí)率設(shè)為0.000 1,進(jìn)行200輪訓(xùn)練。當(dāng)訓(xùn)練進(jìn)行到100輪時,學(xué)習(xí)率降為初始學(xué)習(xí)率的10%,進(jìn)行到150輪時,學(xué)習(xí)率降為初始學(xué)習(xí)率的1%。
Fig. 4 Schematic diagram (a) and structural image (b) of the microscopy imaging system
Fig. 5 Image labeling using labelimg
使用3.2中制作的數(shù)據(jù)集和訓(xùn)練方式進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果如圖6所示。其中,前4輪訓(xùn)練時神經(jīng)網(wǎng)絡(luò)尚處于不穩(wěn)定狀態(tài),mAP值無法計算。
Fig. 6 Curves of loss (a) and mAP value (b) of the convolution neural network
由圖6a可知,神經(jīng)網(wǎng)絡(luò)的損失值在初始階段快速降低,經(jīng)過一定輪次的訓(xùn)練之后,損失值的降低變緩,并最終在一定范圍內(nèi)上下波動。這說明神經(jīng)網(wǎng)絡(luò)可以有效提取輸入圖像的特征,并將目標(biāo)用目標(biāo)框標(biāo)記出來。由圖6b可知,在訓(xùn)練的開始階段,mAP值快速增長。在訓(xùn)練到約50輪時,神經(jīng)網(wǎng)絡(luò)的mAP值增長放緩,并開始出現(xiàn)上下波動。在訓(xùn)練到200輪后,神經(jīng)網(wǎng)絡(luò)的mAP值和損失值在一定范圍內(nèi)上下波動,但整體上沒有明顯變化。此時可以認(rèn)為神經(jīng)網(wǎng)絡(luò)已經(jīng)達(dá)到最好的訓(xùn)練效果,若繼續(xù)訓(xùn)練,神經(jīng)網(wǎng)絡(luò)不再進(jìn)行“學(xué)習(xí)”過程,而是轉(zhuǎn)為“記憶”過程。在此過程中,神經(jīng)網(wǎng)絡(luò)會出現(xiàn)過擬合現(xiàn)象,因此在200輪停止訓(xùn)練。最高的mAP值在191輪出現(xiàn),為0.84。該mAP值說明,即使卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)訓(xùn)練到接近最好效果,其性能仍然未達(dá)到足以準(zhǔn)確識別微藻的要求(mAP值在0.9附近)。因此,需要對卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和目標(biāo)檢測算法進(jìn)行一定的改進(jìn)。
本文在卷積神經(jīng)網(wǎng)絡(luò)和目標(biāo)檢測算法的基礎(chǔ)上對使用的特征提取網(wǎng)絡(luò)進(jìn)行了一定的改進(jìn),之后使用改進(jìn)后的特征神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以進(jìn)一步達(dá)到要求。注意到Y(jié)OLOv4在YOLOv3的基礎(chǔ)上引入了注意力機(jī)制并更改了殘差連接的機(jī)制,本文使用兩種方法分別進(jìn)行改進(jìn),分別在殘差層中引入跨區(qū)域殘差連接機(jī)制和引入注意力選擇機(jī)制。
分別使用加載跨區(qū)域殘差連接機(jī)制和加載注意力選擇機(jī)制的DarkNet53特征提取網(wǎng)絡(luò)進(jìn)行訓(xùn)練。其中,前者將輸出進(jìn)行殘差連接,后者將DarkNet53的殘差層增加CBAM。將兩種神經(jīng)網(wǎng)絡(luò)加載之前的數(shù)據(jù)集進(jìn)行訓(xùn)練。訓(xùn)練過程略有改動,在訓(xùn)練過程中,初始學(xué)習(xí)率仍為0.000 1,但前20輪將學(xué)習(xí)率設(shè)為初始學(xué)習(xí)率的50%。從第21輪開始,學(xué)習(xí)率恢復(fù)初始學(xué)習(xí)率。在訓(xùn)練輪次達(dá)到100輪時,學(xué)習(xí)率調(diào)整為初始學(xué)習(xí)率的10%。在訓(xùn)練輪次達(dá)到150輪時,學(xué)習(xí)率調(diào)整為初始學(xué)習(xí)率的1%。與此同時,使用2.3中使用的卷積神經(jīng)網(wǎng)絡(luò)(特征提取網(wǎng)絡(luò)為原有DarkNet53)以本文的訓(xùn)練方式訓(xùn)練,作為對照。在訓(xùn)練的前4輪,神經(jīng)網(wǎng)絡(luò)處于不穩(wěn)定狀態(tài),無法進(jìn)行mAP值的計算。從第5輪開始計算每輪訓(xùn)練結(jié)束后的mAP值作為訓(xùn)練結(jié)果,如圖7所示。
Fig. 7 Curves of original and improved convolution neural networks
可以認(rèn)為,加載注意力選擇機(jī)制對原有卷積神經(jīng)網(wǎng)絡(luò)并沒有明顯的優(yōu)化作用,而加載跨區(qū)域殘差連接機(jī)制有一定的優(yōu)化作用?;诩虞d跨區(qū)域殘差連接機(jī)制的DarkNet53,本文進(jìn)行了進(jìn)一步優(yōu)化,將卷積神經(jīng)網(wǎng)絡(luò)中原進(jìn)行反向傳播時使用的優(yōu)化器改為Adam優(yōu)化器[46],并使用多階段多方法組合策略。除此之外,其他訓(xùn)練條件保持不變。訓(xùn)練結(jié)果如表1所示。與加載跨區(qū)域殘差連接機(jī)制的DarkNet53相比有一定提高。
當(dāng)CNN的訓(xùn)練結(jié)束后,可以將其部署在微型計算機(jī)上。部署過程中,由于微型計算機(jī)性能和存儲容量的限制,對CNN進(jìn)行一定的模型優(yōu)化,在盡量降低對神經(jīng)網(wǎng)絡(luò)的性能損失的條件下縮小神經(jīng)網(wǎng)絡(luò)的尺寸,提高對圖像的處理速度。優(yōu)化后,根據(jù)微型計算機(jī)的運(yùn)行環(huán)境加載神經(jīng)網(wǎng)絡(luò)。
部署完成后,使用新制的微藻液樣品對系統(tǒng)性能進(jìn)行測試。微藻樣品制備完成后,使用本系統(tǒng)進(jìn)行微藻識別分類。拍攝一張原始圖像輸入系統(tǒng)對,經(jīng)過處理后,以多張尺寸為416×416的照片輸出結(jié)果,部分輸出結(jié)果如圖8所示,使用目標(biāo)框?qū)⒉煌愋秃统叽绲奈⒃宸诸悩?biāo)記。
Table 1 Traning results of original and improved convolution neural networks
使用微藻顯微檢測系統(tǒng)可以有效檢測出4種藻類并分類,使用對應(yīng)大小的目標(biāo)框?qū)⑵湓趫D像中標(biāo)注出來,準(zhǔn)確率較高(圖8)。另外,圖片中有部分預(yù)測集胞藻的目標(biāo)框概率較低。推測出現(xiàn)這種現(xiàn)象的原因是系統(tǒng)檢測到了保留部分特征的死亡集胞藻。對于一些離焦微藻,系統(tǒng)并沒有檢測出,這可能是因為制作數(shù)據(jù)集時,并沒有對離焦微藻進(jìn)行標(biāo)注。系統(tǒng)對各種尺寸的氣泡和異物都有較好的區(qū)分能力,沒有出現(xiàn)將其誤檢為微藻的情況。
Fig. 8 Output of the microalgae microscopy detection system
在系統(tǒng)處理完成后,獲取系統(tǒng)對模型的統(tǒng)計數(shù)據(jù),得到結(jié)果為小球藻12個、集胞藻218個、三角褐指藻15個以及紫球藻8個。使用人工對同一張原始圖像進(jìn)行計數(shù),對比可以發(fā)現(xiàn):小球藻全部檢出,沒有誤檢;集胞藻漏檢5個,均為離焦漏檢,誤檢1個,將一個離焦微藻誤檢為集胞藻;三角褐指藻沒有漏檢,但是將一個離焦微藻誤檢為三角褐指藻;紫球藻全部檢出,沒有誤檢?;谝陨蠑?shù)據(jù),按公式(8)計算系統(tǒng)每種藻類檢測結(jié)果的相對誤差,并對每種藻類檢測結(jié)果的相對誤差取平均值,作為系統(tǒng)誤差的最終結(jié)果。其中x′代表人工計數(shù)結(jié)果,x代表系統(tǒng)處理結(jié)果。經(jīng)過計算,得到本系統(tǒng)的檢測誤差為2.47%。
為了滿足對微藻養(yǎng)殖過程中定期實時檢測生長狀況的需求,彌補(bǔ)傳統(tǒng)光學(xué)檢測方法的不足,本文提出一種基于深度學(xué)習(xí)的微藻顯微檢測系統(tǒng)。系統(tǒng)基于深度學(xué)習(xí)搭建卷積神經(jīng)網(wǎng)絡(luò),使用目標(biāo)檢測算法對微藻進(jìn)行顯微檢測。系統(tǒng)基于明場成像原理搭建,將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)部署在微型計算機(jī)上,具有小型化便攜特點,可以對微藻進(jìn)行實時檢測,具有一定的應(yīng)用意義。
本文使用YOLOv3目標(biāo)檢測算法,使用DarkNet53特征提取網(wǎng)絡(luò)。經(jīng)過初步測試發(fā)現(xiàn),神經(jīng)網(wǎng)絡(luò)對微藻的檢測性能不足,因此對其進(jìn)行一定的改進(jìn)。通過分別引入跨區(qū)域殘差連接機(jī)制和注意力選擇機(jī)制,發(fā)現(xiàn)跨區(qū)域殘差連接機(jī)制能夠提高神經(jīng)網(wǎng)絡(luò)的mAP值至最高0.90。在此基礎(chǔ)上,將優(yōu)化器由原有梯度下降算法改為Adam優(yōu)化器,并使用多階段多方法組合策略,將mAP值進(jìn)一步提高到最高0.92。使用未參與訓(xùn)練的測試圖像進(jìn)行測試,得到其誤差為2.47%??紤]到本系統(tǒng)大大提高了檢測速度,對檢測條件的要求低,這一誤差是可以接受的。綜上所述,本文提出的微藻顯微檢測系統(tǒng)具有檢測精度較高,檢測速度較快,設(shè)備便攜的特點。