張 梅,錢其燕,羅桂蘭
(大理大學(xué) 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,云南 大理 671003)
昆蟲是動物界中種類最多,數(shù)量最大,分布最廣,適應(yīng)能力甚強(qiáng),與人類關(guān)系極為密切的一類動物。由于昆蟲的種類多,數(shù)據(jù)集的收集也較為困難,且昆蟲的種類對農(nóng)作物的生長和產(chǎn)量以及生長環(huán)境都有重大影響。傳統(tǒng)情況下,或是農(nóng)戶根據(jù)自己的經(jīng)驗(yàn)進(jìn)行昆蟲識別,或者是昆蟲專家通過觀察昆蟲的外觀,根據(jù)模型樣本來做識別,但卻需要大量人力。因此,一種精確、可靠且易操作的自動昆蟲識別方法對經(jīng)濟(jì)、社會和環(huán)境的發(fā)展都具有重要意義。
隨著深度學(xué)習(xí)、人工智能等技術(shù)的快速興起,使得通過計(jì)算機(jī)技術(shù)來自動識別昆蟲種類成為了可能。昆蟲種類的識別方法主要有2種:昆蟲的圖像識別和聲音識別。近年來,基于圖像處理技術(shù)的昆蟲識別已成為研究熱點(diǎn)。竺樂慶等人在2013年基于稀疏編碼和SCG BPNN的對鱗翅目昆蟲圖像進(jìn)行識別,達(dá)到較高的識別率,但此方法數(shù)據(jù)樣本數(shù)不大,且程序?qū)ハx標(biāo)本的位置和姿態(tài)有一定的依賴性。Bao等人提出了一種基于復(fù)頻域變換和多特征融合的昆蟲識別算法。楊穎基于蝶類圖像數(shù)據(jù)集,使用MobileNet-SSD目標(biāo)檢測方法,對蝶類昆蟲進(jìn)行識別檢測,達(dá)到了較高的識別率。林達(dá)坤等人基于開源的利茲蝴蝶數(shù)據(jù)集和拍攝的以森林鱗翅目昆蟲為主的數(shù)據(jù)集,采用改進(jìn)的差分進(jìn)化算法實(shí)現(xiàn)了鱗翅目昆蟲圖像識別,其識別率分別達(dá)到了81.73%和88.18%。Luo等人在2019年基于IOS移動平臺,利用支持向量機(jī)(SVM)機(jī)器學(xué)習(xí)設(shè)計(jì)了一種微型的昆蟲圖像智能識別系統(tǒng),其平均識別率達(dá)到了87%。在這些研究中,支持向量機(jī)分類識別率相對較高,但大規(guī)模訓(xùn)練還存在一定的困難。由于卷積神經(jīng)網(wǎng)絡(luò)具有學(xué)習(xí)功能和很強(qiáng)的識別能力,因此利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對昆蟲圖像特征進(jìn)行學(xué)習(xí)訓(xùn)練,達(dá)到識別昆蟲類別的目的是一種非常有效的方法,同時也使得快速大量運(yùn)算成為了可能。雖然,近幾年也有不少研究者開始將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到昆蟲圖像識別當(dāng)中,但這些研究大多都停留在實(shí)驗(yàn)室理論算法研究階段,很少在實(shí)際環(huán)境中付諸識別應(yīng)用。
洱海位于云南省大理市郊區(qū),是云南省第二大淡水湖,北起洱源,長約42 km,周邊有豐富的濕地資源,生態(tài)系統(tǒng)保存較完整,昆蟲物種較多。在洱海濕地昆蟲群落普適生境網(wǎng)絡(luò)生態(tài)行為研究中,發(fā)現(xiàn)洱海濕地昆蟲大多是鞘翅目、半翅目、鱗翅目、直翅目、膜翅目等。這些昆蟲具有非常微小,難以識別等特點(diǎn),目前對于濕地昆蟲識別的研究也仍不多見。本文擬在大理洱海濕地這一特定物理環(huán)境下,基于卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行昆蟲的分目識別研究。
本文于國家自然科學(xué)基金項(xiàng)目“洱海濕地昆蟲群落普適生境網(wǎng)絡(luò)生態(tài)行為研究”,選取了洱源東湖濕地、洱海月濕地和羅時江濕地為樣本采集區(qū)域。采集到昆蟲樣本;再將采集到的昆蟲置于鑒定盤里進(jìn)行初步分類;最后,根據(jù)昆蟲分類法利用體視鏡成像鑒定出昆蟲的綱、目等信息,具體的昆蟲數(shù)據(jù)樣本采集信息見表1。
表1 洱海濕地昆蟲數(shù)據(jù)樣本采集信息Tab.1 Collection information of Erhai Wetland insects data samples
由于實(shí)際采集到的樣本集中不同目昆蟲的圖片數(shù)量相差很大,會出現(xiàn)樣本不均衡的問題,使卷積神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)量少的目的特征提取和分辨能力降低。為此,本文刪除了一些昆蟲圖片數(shù)量較少的目,只留下一些昆蟲圖片數(shù)量大致相當(dāng)?shù)哪?,來均衡?xùn)練樣本數(shù)據(jù),減小由于各個目昆蟲的圖像分布不均勻所導(dǎo)致的識別效果的差異。最終選取了6個目、共452張昆蟲圖片組成的昆蟲數(shù)據(jù)集用于本文的研究,具體信息見表2。
表2 洱海濕地昆蟲樣本集Tab.2 Erhai Wetland insects samples set
由于從洱海濕地采集到的昆蟲圖片數(shù)據(jù)量較小,而采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行識別需要大量的訓(xùn)練樣本,才能有更好的效果。在做訓(xùn)練之前首先需要擴(kuò)充洱海濕地昆蟲圖像訓(xùn)練樣本,減輕或者防止模型訓(xùn)練的過擬合現(xiàn)象,本文通過Python平臺中的keras庫自帶的數(shù)據(jù)增強(qiáng)函數(shù)對昆蟲圖像樣本進(jìn)行數(shù)據(jù)增強(qiáng),共得到3 564張昆蟲圖片,樣本集中數(shù)據(jù)分布見表3。
表3 數(shù)據(jù)增強(qiáng)后的昆蟲樣本集Tab.3 Insects samples set after data augmentation
將所有半翅目的圖片都打上標(biāo)簽0,鱗翅目的圖片打上標(biāo)簽1,膜翅目的圖片打上標(biāo)簽2,鞘翅目的圖片打上標(biāo)簽3,雙翅目的圖片打上標(biāo)簽4,蜘蛛目的圖片打上標(biāo)簽5。打好標(biāo)簽后,將其放入一個行6列的數(shù)組里,得到的值為(3 564,6);再對標(biāo)簽進(jìn)行獨(dú)熱編碼。將原始特征變量轉(zhuǎn)換成以原始特征值分類的多維度的變量,并用是否為0或1這種方式的新特征值來代替和量化。
本文將所有采集到的圖片的格式都轉(zhuǎn)換成了PNG和RGB通道,并將每張圖片的大小都處理為224×224,維度統(tǒng)一擴(kuò)展成四維。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種常用于圖像、聲音分類的深度學(xué)習(xí)框架,分為卷積層、池化層、全連接層,每一層的信號都通過不同的方法加以處理,最后將互不相連的信息進(jìn)行連接分類。本文主要是通過卷積神經(jīng)網(wǎng)絡(luò)的VGG16模型對洱海濕地昆蟲圖像進(jìn)行特征提??;通過全連接層連接所有特征,加權(quán)計(jì)算結(jié)果輸出送給分類器,實(shí)現(xiàn)洱海濕地昆蟲的分目識別。研究給出的分目識別步驟,可做闡釋分述如下。
(1)將洱海濕地昆蟲圖片傳入到VGG16卷積神經(jīng)網(wǎng)絡(luò)的預(yù)訓(xùn)練模型中,用數(shù)據(jù)驅(qū)動模型。
(2)通過前、后向傳播,學(xué)習(xí)和更新參數(shù)和權(quán)值。
(3)通過卷積、補(bǔ)零、池化、激活等一系列操作提取特征。
(4)通過全連接層連接所有的特征,通過加權(quán)計(jì)算得出結(jié)果。
(5)將輸出值傳送至分類器。
(6)傳入?yún)?shù),開始訓(xùn)練模型,查看訓(xùn)練集和測試集的準(zhǔn)確率。
在特征提取部分,擬展開研究論述如下。
(1)卷積。卷積神經(jīng)網(wǎng)絡(luò)中每層卷積層由若干單元組成,每個卷積單元的參數(shù)都是通過反向傳播算法最佳化得到的。本文通過對輸入的洱海濕地昆蟲圖像做卷積運(yùn)算達(dá)到提取特征的目的。
本文中所用的VGG16模型包含13個卷積層,卷積層的寬度就是每一層的通道數(shù),設(shè)置很小。在第一層卷積層中,卷積核通過一定的步長掃描洱海濕地昆蟲圖片,輸入會不斷地變化;用卷積核中的固定大小的卷積步長遍歷全圖,對昆蟲圖像濾波,這樣就可以提取出原圖中符合卷積核特征的特征,得到昆蟲圖像特征圖;將得到的特征圖作為下一層卷積層的輸入,在每一層用多個卷積核濾波,得到不同特性的昆蟲特征圖。卷積運(yùn)算的過程如圖1所示。這里,研究推得的數(shù)學(xué)公式可寫為:
圖1 卷積運(yùn)算過程Fig.1 Convolutional operation process
在圖1中,綠色框中數(shù)值表示原洱海濕地昆蟲圖像素值,紅色框中數(shù)值表示卷積核中的參數(shù),黃色框表示一個3×3的卷積核。本文選用的3×3卷積核,不僅可以使得決策函數(shù)更具有判別性,還能夠減少參數(shù)的數(shù)量,提高訓(xùn)練的效率。
(2)補(bǔ)零。因?yàn)榫矸e后圖像變小,得到的矩陣也比原來小,所以在每次卷積操作前,要在原圖最外圈補(bǔ)0,這樣不僅能使輸入圖像與輸出圖像的尺寸相同,也能方便提取圖像邊緣的特征。
(3)池化。通過卷積層的計(jì)算,卷積運(yùn)算自動完成了對輸入特征圖的降維和特征抽取,但經(jīng)過處理后的特征圖維數(shù)依舊很高,容易導(dǎo)致過擬合。引入池化技術(shù),從某種程度上就相當(dāng)于在保留顯著特征時的降維。本文采用了最大池化,將輸入的昆蟲特征圖像按照一定的方法分割成相同尺寸大小的區(qū)域,選擇被劃分出來的區(qū)域中的最大值來作為這一區(qū)域的參數(shù)。在不影響圖像本身質(zhì)量的情況下,壓縮輸入特征,減少參數(shù)的計(jì)算量,提升訓(xùn)練時間性能。
(4)激活函數(shù)。卷積運(yùn)算是線性操作,而卷積神經(jīng)網(wǎng)絡(luò)要擬合的是非線性的函數(shù),因此需要加上激活函數(shù)。洱海濕地昆蟲圖片也不一定是線性可分的,可以使用激活函數(shù)來解決這個問題。本文選用的是修正線性單元()激活函數(shù),不需要輸入歸一化來防止達(dá)到飽和,對此可表示為:
使用該激活函數(shù)的目的是將卷積后特征小于零的數(shù)值都變?yōu)榱?,大于零的?shù)值還是其本身,方便后續(xù)的矩陣運(yùn)算。
(5)圖像特征提取。載入VGG16模型,剝除其全連接層,將預(yù)處理后的昆蟲圖像數(shù)據(jù)作為輸入來進(jìn)行特征提取。在特征提取階段,會存在特征冗余。有的不同目的昆蟲某些局部特征相差并不大,容易導(dǎo)致誤識別。在網(wǎng)絡(luò)的訓(xùn)練過程中,會按照一定的概率將網(wǎng)絡(luò)中的神經(jīng)元丟棄,有效防止過擬合。
通過將昆蟲圖像特征輸入到全連接層計(jì)算,再送入分類器實(shí)現(xiàn)洱海濕地昆蟲的分目識別。對此將做剖析詳述如下。
(1)全連接層。導(dǎo)入VGG16模型時,將原有的全連接層剝除了,要利用序貫?zāi)P椭匦聵?gòu)建一個全連接層。而此處的全連接層可以連接經(jīng)過多個卷積層和池化層的特征圖中的特征并進(jìn)行整合,將獲取的昆蟲圖像特征用于昆蟲的分目識別,通過加權(quán)計(jì)算得出結(jié)果,將輸出值送到分類器。
本文所用的卷積神經(jīng)網(wǎng)絡(luò)共有3個全連接層。激活函數(shù)也用于全連接層中,用以創(chuàng)建稀疏矩陣,從而消除數(shù)據(jù)中的冗余,盡可能保留數(shù)據(jù)特征,但是最后一個全連接層只需要交給分類器,不用函數(shù)激活。
(2)分類器。完成洱海濕地昆蟲的分目識別,輸出值就要滿足2個條件。一是所有的輸出都大于或等于零,另一個是所有的輸出和為1,這里輸出指的是概率。即希望輸出之間是有競爭性的,其中一個多了,其他的就得少,而就能滿足這2個條件。所以本文采用分類器,函數(shù)的數(shù)學(xué)表述見如下:
其中,表示類別數(shù)。
(3)模型的訓(xùn)練與優(yōu)化。在訓(xùn)練模型過程中,因?yàn)榇罱ǖ哪P?、?shù)據(jù)的問題,會導(dǎo)致在訓(xùn)練的過程中結(jié)果出現(xiàn)誤差,在實(shí)驗(yàn)的過程中要對所用模型進(jìn)行優(yōu)化,提高準(zhǔn)確性。而優(yōu)化算法的作用就是在網(wǎng)絡(luò)訓(xùn)練的過程中縮短訓(xùn)練時間,并在一定程度上提高模型的精度,將網(wǎng)絡(luò)中的損失值降到最低,常見的優(yōu)化算法有Adam、SGD、Adagrad三種。使用這3種算法訓(xùn)練,得到這3種優(yōu)化算法在本文所用的卷積神經(jīng)網(wǎng)絡(luò)中的精確度和損失函數(shù)值,見表4。
表4 優(yōu)化算法的精確度及損失函數(shù)的比較Tab.4 Comparison of accuracy and loss function value of optimization algorithms
從表4中可以看出,無論是在精確度、還是損失函數(shù)值上,都是Adam優(yōu)化算法的學(xué)習(xí)效果更佳,所以本文最終選取Adam優(yōu)化算法。Adam可以替代傳統(tǒng)的梯度下降過程,在訓(xùn)練過程中能動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率,且收斂速度很快,學(xué)習(xí)效果較明顯。
(4)洱海濕地昆蟲分目識別結(jié)果分析。本文按照一定的洱海濕地昆蟲種類比例進(jìn)行昆蟲圖像數(shù)據(jù)集的劃分。洱海濕地昆蟲圖像數(shù)據(jù)集的劃分采用從每個類別中按照一定比例隨機(jī)抽取的策略。將測試集和訓(xùn)練集按1∶3做隨機(jī)分割,通過前、后向傳播來更新網(wǎng)絡(luò)權(quán)值。
本文研究中,一共劃分出891張圖像作為測試集,2 673張作為訓(xùn)練集。經(jīng)過迭代訓(xùn)練,訓(xùn)練集的平均準(zhǔn)確率達(dá)到了95.80%,測試集的平均準(zhǔn)確率達(dá)到了87.20%。訓(xùn)練集及測試集的昆蟲分目識別結(jié)果見表5。
表5 昆蟲分目識別結(jié)果Tab.5 Identification results of insects classification
將測試集的圖片輸入訓(xùn)練好的模型,預(yù)測的部分結(jié)果如圖2所示,證明了此模型的效果是較好且穩(wěn)定的。
圖2 部分預(yù)測結(jié)果圖Fig.2 Part of the prediction results
基于云南大理洱海濕地這一特定物理環(huán)境,本文選取了采集到的6個目(半翅目、鱗翅目、膜翅目、鞘翅目、雙翅目和蜘蛛目)的昆蟲圖片,將采集到的圖片進(jìn)行增強(qiáng)處理,并將訓(xùn)練集圖片的每個目都打上標(biāo)簽,再進(jìn)行標(biāo)簽獨(dú)熱編碼、格式轉(zhuǎn)換和預(yù)處理。同時,以224×224的彩色圖像輸入到剝除全連接層的VGG16模型中,通過卷積、補(bǔ)零、池化等一系列操作進(jìn)行特征提取,再將圖片輸入到重構(gòu)的全連接層進(jìn)行分目識別。將訓(xùn)練集按比例隨機(jī)分為測試集和驗(yàn)證集,通過前后向傳播進(jìn)行網(wǎng)絡(luò)權(quán)值更新。經(jīng)過迭代訓(xùn)練,訓(xùn)練集的準(zhǔn)確率達(dá)到了95.80%,驗(yàn)證集的準(zhǔn)確率達(dá)到了87.20%。該研究結(jié)果能為大理洱海濕地昆蟲研究提供智能化信息處理技術(shù)支持。隨著信息技術(shù)的不斷發(fā)展,智能信息處理技術(shù)在昆蟲識別領(lǐng)域中的應(yīng)用還有很大的空間。本文目前所能識別的昆蟲種類仍然非常有限,如何在昆蟲種類增加的情況下,進(jìn)行大量的圖像學(xué)習(xí)和訓(xùn)練,進(jìn)一步提高昆蟲識別的準(zhǔn)確率,并開發(fā)相應(yīng)的昆蟲識別系統(tǒng)則是未來的研究重點(diǎn)。