陳麗娟, 林 菡, 邢婷婷, 陸寶林
福州工商學院, 福建 福州 350700
在動物界中,昆蟲種類最多、數(shù)量最大,對農(nóng)業(yè)生產(chǎn)、海關和森林病蟲害防治部門等會造成重大影響[1]。以前的昆蟲分類、鑒定工作主要是依靠昆蟲分類專家來完成的,但是每個專家的工作都比較局限,范圍僅限一個目、一個科甚至一個屬的昆蟲,這樣就出現(xiàn)了對昆蟲識別需求的增多與昆蟲鑒定專家相對較少的局面[2]。將計算機視覺技術應用到農(nóng)業(yè)生產(chǎn)以及昆蟲識別中改善了這一狀況,但是昆蟲識別率較低,如何有效地減少昆蟲識別中一些繁重的工作,改進識別系統(tǒng),優(yōu)化識別算法模型,提高昆蟲識別效率,是當前有待解決的問題[1]。
傳統(tǒng)的昆蟲識別方法目前已經(jīng)被昆蟲圖像識別技術代替。常用的昆蟲識別技術有生物光子檢測法、圖像識別法、取樣檢測法、聲測法和近紅外及高光譜法等。近幾年,人工智能應用到農(nóng)業(yè)生產(chǎn)中,已經(jīng)有很多研究人員將深度學習技術應用于昆蟲的圖像識別[3],例如周愛明 等[4]提出基于 CaffeNet 的蝴蝶自動識別算法,該算法效果遠好于支持向量機;袁哲明 等[5]提出基于深度學習的輕量化田間昆蟲識別及分類模型,可以應用到田間昆蟲識別,解決復雜的環(huán)境帶來的影響;劉姝珺 等[3]提出基于卷積神經(jīng)網(wǎng)絡和Tensorflow的昆蟲圖像識別研究,結果表明采用不同的優(yōu)化器可以提高識別準確率。因此本文提出了基于深度脈沖神經(jīng)網(wǎng)絡的昆蟲識別系統(tǒng),分析了深度卷積神經(jīng)網(wǎng)絡(deep convolutional neural networks,DCNN)和脈沖神經(jīng)網(wǎng)絡(spiking neural networks,SNN)的局限性,結合了兩者的優(yōu)勢,利用PyCharm和Pytorch搭建了深度脈沖神經(jīng)網(wǎng)絡模型,應用到昆蟲識別系統(tǒng)中,提高昆蟲識別率,為病蟲害識別問題提供新的思路。
DCNN是一種由多層神經(jīng)元組成的深度學習模型,解決很多計算機視覺上的問題。該模型主要是由池化、卷積、激活函數(shù)等部分組成,其核心是卷積層,可以很好地處理圖像傾斜、扭曲、平移等操作。該模型是將多個神經(jīng)元聚集起來并含有分層結構,其對應的公式如下。
(1)
卷積層的計算方法就是根據(jù)公式:conv=σ(imgMat。W+b),式中:b為偏置值,W為卷積核,σ為激活函數(shù), 。為卷積操作,imgMat為灰度圖像矩陣[6]。本文采用的深度卷積神經(jīng)網(wǎng)絡模型主要是由輸入層、卷積層、池化層、全連接層和Softmax 分類器構成。
SNN相對于傳統(tǒng)的人工神經(jīng)網(wǎng)絡,主要特點是使用尖脈沖作為信息傳輸?shù)幕疽?不需要環(huán)境的先驗知識,更加接近現(xiàn)實的性能,其神經(jīng)元模型主要采用累積放電模型(I&F模型),神經(jīng)元i的膜電位ui(t)對應的積分點火方程如下。
(2)
神經(jīng)元的放電速率可以根據(jù)以下公式計算,式中:t為時間變量,T為時間周期,F為放電速率。
(3)
神經(jīng)元的膜電壓與產(chǎn)生的相應脈沖序列隨時間變化的關系如圖1所示。圖像的像素表示神經(jīng)元的輸入,根據(jù)公式將像素轉(zhuǎn)換為相應的電流,然后再由電流轉(zhuǎn)換為相應的脈沖序列。
圖1 膜電壓與脈沖序列關系圖
結合2種神經(jīng)網(wǎng)絡的特點搭建的深度脈沖神經(jīng)網(wǎng)絡可以降低深度模型的功耗,提高模型的泛化能力,具有編碼為脈沖序列的深度學習能力。根據(jù)2種神經(jīng)網(wǎng)絡神經(jīng)元模型特點,對DSNN 神經(jīng)元進行轉(zhuǎn)換,轉(zhuǎn)換的主要原因是IAF(integrate and fire)神經(jīng)元不含任何泄漏項和不應期[7]。轉(zhuǎn)換方法是將對等的積分點火IAF神經(jīng)元由帶有ReLu激活函數(shù)的傳統(tǒng)神經(jīng)網(wǎng)絡的神經(jīng)元代替,ReLu神經(jīng)元的輸出公式如下所示[6]。
(4)
式中:wi表示神經(jīng)元i的權重,xi表示輸入。
IAF神經(jīng)元是一種特殊的神經(jīng)元,該神經(jīng)元只追蹤膜潛能值的變化,當膜潛能值超過設定的閾值時則產(chǎn)生脈沖,隨后膜潛能值會被重置為0。IAF神經(jīng)元關于時間t的函數(shù)如下所示。
(5)
式中:t為放電時間,ui表示神經(jīng)元i的膜電位,wi表示突觸前與突觸后神經(jīng)元i之間的連接值,xi表示輸入。
因為該部分并沒有引入神經(jīng)元動力學中的任何泄漏項,所以神經(jīng)元的輸出脈沖就依賴于閾值的設置。為了實現(xiàn)近無損的轉(zhuǎn)換,DSNN需要找到一種合適的閾值設定方法,因為ReLu函數(shù)的性質(zhì)是當突觸前與突觸后神經(jīng)元之間的連接為負值時,積分點火神經(jīng)元會把所有輸出活動的神經(jīng)元的膜潛能重置為 0[7]。
轉(zhuǎn)換過程中還要考慮傳統(tǒng)神經(jīng)網(wǎng)絡到SNN的轉(zhuǎn)換,因為該過程中有一個很關鍵的操作就是對偏置項的處理。在傳統(tǒng)的神經(jīng)網(wǎng)絡中偏置項可以調(diào)整神經(jīng)元的輸出,幫助神經(jīng)元更快地學習,更好地擬合數(shù)據(jù),優(yōu)化參數(shù)空間,幫助神經(jīng)網(wǎng)絡處理不平衡的數(shù)據(jù)集等。而 SNN在實際應用中并不存在偏置項,因此在轉(zhuǎn)換過程中,為了確保能夠?qū)崿F(xiàn)對等神經(jīng)元的轉(zhuǎn)換,對于偏置項最簡單的處理方式就是直接把傳統(tǒng)神經(jīng)網(wǎng)絡中的偏置項b設為0[7]。
構建昆蟲物種圖像數(shù)據(jù)集,采集昆蟲圖像,標注樣本的類別和目標位置,用于訓練算法模型;進行昆蟲圖像預處理,通過圖像傾斜校正、灰度增強、圖像去噪等方法對昆蟲圖像進行預處理;對處理后的圖像利用SNN進行邊緣特征提取,將昆蟲對象與背景分割出來,定位昆蟲對象;采用適合昆蟲圖像的特征提取方法,獲取其形態(tài)特征數(shù)據(jù),如顏色、紋理、游程長度、灰度共生矩陣和形狀不變矩等,這些綜合特征提取有利于昆蟲圖像的識別;結合深度神經(jīng)網(wǎng)絡和脈沖神經(jīng)網(wǎng)絡的特點,搭建深度脈沖神經(jīng)網(wǎng)絡模型,進行昆蟲圖像的訓練和測試。利用PyCharm和PyTorch搭建的昆蟲識別系統(tǒng)的框架,可以為算法提供接口,支持其他模型的部署和測試。系統(tǒng)流程如圖2所示。
圖2 昆蟲識別系統(tǒng)流程
本文主要利用脈沖神經(jīng)網(wǎng)絡模型對昆蟲圖像進行邊緣特征提取,定位昆蟲對象。該模型結構如圖3所示。利用感受野和脈沖神經(jīng)元進行邊緣特征提取,模型主要有3層。
圖3 脈沖神經(jīng)網(wǎng)絡模型
第1層輸入層。1個光感接受器對應圖像的1個像素。
第2層中間層。有4種類型的神經(jīng)元(N1、N2、N3、N4)對應4種不同方向的感受野,在突觸連接中的X代表興奮性突觸,Δ代表抑制性突觸,其中突觸權重矩陣相當于在感受野RFrept中檢測邊緣的一個濾波器。神經(jīng)元N1有突觸權重矩陣Wup,能夠響應上邊緣;神經(jīng)元N2有突觸權重矩陣Wdown,能夠響應下邊緣;神經(jīng)元N3有突觸權重矩陣Wleft,能夠響應左邊緣;神經(jīng)元N4有突觸權重矩陣Wright,能夠響應右邊緣。
第3層輸出層。每一個神經(jīng)元(x′,y′)累積來自中間層的4個神經(jīng)元矩陣的輸出,然后響應位于感受野RFrept任意方向的邊緣。通過繪制輸出層的脈沖頻率圖,就可以得到對應輸入圖像的邊緣圖[8]。
利用PyCharm和PyTorch框架搭建了深度脈沖神經(jīng)網(wǎng)絡模型,首先進行模型訓練,實例化模型、損失函數(shù)和優(yōu)化器等,在控制臺的輸出結果中,可以看到隨著迭代次數(shù)的增加,損失值在不斷地降低,精確性也在提高。模型訓練如圖4所示。
圖4 模型訓練圖
加載訓練好的模型進行測試識別,對1 000張昆蟲圖像進行識別,在不同的迭代次數(shù)下本系統(tǒng)的識別率不同,確定最佳的迭代次數(shù),有958張可以成功識別,42張錯誤識別,可以得出本系統(tǒng)的最佳識別率為95.8%,誤識率為4.2%。分析誤識率的原因可能是圖像背景太復雜、數(shù)據(jù)集不夠全面、特征提取分析不夠全面精準、模型訓練不夠等。由于深度脈沖神經(jīng)網(wǎng)絡模型只是訓練已知的物種,不能對未知的類別進行識別和檢測,因此遇到數(shù)據(jù)集中不存在的昆蟲物種,也沒辦法識別出來。
本文主要介紹了基于深度脈沖神經(jīng)網(wǎng)絡的昆蟲識別系統(tǒng),分別對昆蟲對象定位和深度脈沖神經(jīng)網(wǎng)絡模型訓練及測試進行了詳細的分析。該識別技術具有廣泛的應用前景,可以應用于植物病蟲害預測預報及其防治,幫助農(nóng)業(yè)工作者進行昆蟲識別,從而實現(xiàn)病蟲害的及時發(fā)現(xiàn),也能夠幫助昆蟲學家更快、更好地判別昆蟲種類,從而實現(xiàn)植物病蟲害的及時防治。由于客觀條件和時間的限制,本文提出的系統(tǒng)目前所能識別的昆蟲種類仍然非常有限,有很多方面需要進一步提高。