穆文秀 洪蕾 王瀚

摘要:以智能昆蟲分目識別系統為背景,本文運用卷積神經網絡原理提出基于Vgg16的昆蟲圖像識別方法,提高自然環境下昆蟲的智能識別效率。本文利用Vgg16神經網絡的預訓練模型來進行昆蟲圖像的特征提取,從而實現昆蟲的智能識別,仿真實驗證明本優化算法確實對智能昆蟲識別有著較高的應用價值。
關鍵詞:圖像識別;CNN卷積神經網絡;昆蟲分目;深度學習;Vgg16
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1007-9416(2018)11-0118-02
0 引言
傳統的昆蟲識別方法是昆蟲專家觀察昆蟲的外部特征,對照模式標本鑒定識別,費時費力。或者農戶憑借自身經驗對昆蟲進行識別,但是農戶所認識的昆蟲畢竟有限,且僅憑借肉眼觀察對于外形相似的昆蟲難以進行明確的判斷。傳統的昆蟲識別的費時費力,準確度不高,嚴重影響后期對昆蟲防治工作的開展。
如今,圖像處理和識別技術的發展給昆蟲的準確識別帶來了可能。及時、快速地發現并識別農作物昆蟲,為及時正確采取相應措施防治蟲害,減少蟲害帶來的損失具有重要意義。本文旨在通過分析昆蟲圖像特征提取和優化方法、智能識別算法基礎上,依據昆蟲分目識別研究方法的基本流程模塊,力爭在智能識別體系構建思路、辦法和途徑上有所創新,大大提高識別精度。
1 CNN卷積神經網絡的三個基本層
1.1 卷積層(Convolutional Layer)
卷積層(Convolutional layer),卷積神經網絡中每層卷積層由若干卷積單元組成,每個卷積單元的參數都是通過反向傳播算法最佳化得到的。卷積運算的目的是提取輸入的不同特征,第一層卷積層可能只能提取一些低級的特征如邊緣、線條和角等層級,更多層的網路能從低級特征中迭代提取更復雜的特征。
由于每個神經元都和相鄰層的神經元相連接,傳統的三層神經網絡需要大量的參數,顯然這種方式不是必須的。全連接層的方式對于圖像數據來說顯得很繁瑣,因為圖像本身具有“二維空間特征”,即局部特性。譬如看一只昆蟲的圖片,看到昆蟲的某個典型局部特征就可以知道昆蟲的種類。但是出現一張新圖時,CNN并不能準確地知道已有的特征(features)如何匹配,因此它會在原圖中每一個可能的位置嘗試匹配。匹配的過程就被稱為卷積操作,卷積的第一個參數通常稱為輸入,第二個參數稱為核函數。
在機器學習的應用中,輸入通常是多維數組的數據,而核通常是由學習算法優化得到的多維數組的參數。因為在輸入與核中的每一個元素都必須明確地分開存儲,通常假設在存儲了數值地有限點集以外,這些函數地值都為零。這意味著在實際操作中,可以通過對有限個數組元素的求和來實現無限求和。
1.2 池化層(Pooling Layer)
池化層0是對輸入的特征圖進行壓縮,一方面使特征圖變小,簡化網絡計算復雜度;一方面進行特征壓縮,利用卷積獲得的特征(features)去做分類。池化層的主要目的是對輸入做降采樣,在不影響圖像質量的情況下,壓縮圖片,減少參數。池化層還能降低輸出結果的維度,并能保留顯著的特征。
1.3 全連接層(Fully Connected Layer)
全連接層的作用是將經過多個卷積層和池化層的特征圖中的特征進行整合,將獲取的圖像特征用于圖像分類。在卷積神經網絡中,全連接層將卷積層產生的特征圖映射成一個固定長度(一般為輸入圖像數據集中的圖像類別數)的特征向量。這個特征向量包含了輸入圖像所有特征的組合信息,雖然丟失了圖像的位置信息,但是該向量將圖像中含有最具有特點的圖像特征保留了下來以此完成圖像分類任務。從圖像分類任務的角度來看,計算機只需要對圖像內容進行判定,計算輸入圖像具體所屬類別數值,將最有可能的類別輸出即可完成分類任務。
2 昆蟲圖像識別模型的建立
2.1 建立昆蟲圖像集
實驗前期每個目選出10000張昆蟲圖像,并對這些圖像進行特征提取,建立昆蟲數據集。由于同一昆蟲的圖像相似性很高,并且為了防止出現過擬合現象,同時使圖像數據更為豐富,在對圖像進行特征提取之前,先做數據提升操作,將圖像分別從水平和豎直方向做一定幅度的偏移,以及以圖像的某個點為中心實現圖像的轉動,從而使提取的特征更具代表性。
2.2 特征降維處理
利用神經網絡進行的特征提取通常維數較高并且存在大量冗余信息,因此需要對這些特征進行降維處理。假設一個數據集有N個樣本,每個樣本是M維,則該數據集可表示為AN*M。降維就是說把A變成A'N*K,其中K<M,這樣樣本可以由更少維度的特征來表示。常用的降維算法有主成分分析算法PCA、有監督的線性降維算法LDA,局部線性嵌入LLE等。幾種算法中,PCA是丟失原始信息最少的一種方法并且計算方法也比較簡潔,適合圖像識別的使用。
實際上PCA是要找到樣本空間中的一組新的基(維度更低),將原數據在這組新基上進行投影,使得投影后的方差最大或者說投影使損失最小。利用PCA算法將數據集中樣本的維度降為K維,則降維后數據集可表示為AN*K。利用PCA降維的過程主要有以下幾個步驟:
(1)數據表示為A={,,…,}對數據A進行中心化得新矩陣B={,,…,}={-,-,...,-},其中=(這里的向量都是列向量);
(2)求B的協方差矩陣:cov(B)=BB/(n-1);
(3)對協方差矩陣cov(B)進行特征值分解;
(4)取特征值矩陣中最大的K個特征值對應的“k-特征向量”矩陣P;
(5)將原數據A乘以P得到降維后的新矩陣。
2.3 相似性檢索算法
機器學習中的相似性度量方法有很多,例如閔可夫斯基距離,切比雪夫距離,余弦相似度等。由于提取的圖像特征是作為向量來進行處理的,所以本文采用余弦相似度的方法來進行相似度匹配。
3 具體實現過程
在本文在實驗過程中,從每個目中選10000張昆蟲圖像建立數據集,利用Vgg16神經網絡的預訓練模型進行特征提取并作為昆蟲圖像的特征向量進行存儲,之后通過PCA進行降維處理,通過余弦相似度的算法對昆蟲圖像進行匹配。實驗表明,對昆蟲圖像的數據集進行特征降維,識別的準確率高達82.34%。
第一步:數據預處理,為提高昆蟲圖像識別的準確率,在建立數據集的時候就選取清晰的昆蟲圖像,并對昆蟲圖像從數量和角度兩個方面進行數據提升。以一張大頭麗蠅圖像為例,對該圖像進行數據提升。
第二步:每個目取10000張圖像構成最終的數據集。輸入Vgg16神經網絡的預訓練模型。該網絡以大小為224×224的圖片作為輸入,以4096維向量作為昆蟲圖像的特征向量輸出,最后將提取的800×4096的張量作為圖像數據集的特征向量保存至相應文件中。
第三步:將保存的原始向量空間,利用PCA,進行空間映射將并保存降維后的特征向量空間。
第四步:利用余弦相似度算法計算相似度。夾角余弦越大表示兩個向量的夾角越小,夾角余弦越小表示兩向量的夾角越大。
4 結語
本文針對昆蟲的智能識別建立在上述原理及實驗上,CNN最大的特點就是在于卷積的權值共享,利用空間結構減少學習的參數量,防止過擬合的同時減少計算量。在對CNN深入研究基礎上,提出了一種可以直接作用于昆蟲識別的方法。傳統昆蟲識別方法依據經驗人為地從昆蟲外表中提取特征,再在該特征上查找索引表進行分類識別,存在盲目性、操作復雜和分類精度低等缺陷,基于CNN的昆蟲識別方法不存在上述缺點,并且實驗結果證明了該方法在昆蟲識別時的高效可靠。
參考文獻
[1]伊恩·古德費洛,約書亞·本吉奧,亞倫·庫維爾.深度學習[M].趙申劍,黎彧君,符天凡李凱譯.北京:人民郵電出版社,2017:201-226.
[2]龔丁禧,曹長榮.基于卷積神經網絡的植物葉片分類[J].計算機與現代化,2014(04):12-15+19.
[3]于林森,張田文,張開越.圖像檢索中的相似性判別及索引方法綜述[J].小型微型計算機系統,2007,28(2):356-360.
[4]張惠凡,羅澤.基于卷積神經網絡的鳥類視頻圖像檢索研究[J].科研信息化技術與應用,2017(5):50-57.
Insect Recognition Based on Machine Learning
MU Wen-xiu, HONG Lei, WANG Han
(School of Software Engineering,Jinling Institute of Technology, Nanjing? Jiangsu? 211169)
Abstract:Based on the intelligent insect eye-shadow recognition system, this paper proposes a Vgg16-based insect image recognition method based on the convolutional neural network principle to improve the intelligent recognition efficiency of insects in the natural environment. In this paper, the pre-training model of Vgg16 neural network is used to extract the features of insect images, so as to realize the intelligent recognition of insects. The simulation experiment proves that the optimization algorithm has a high application value for intelligent insect identification.
Key words:image identification;convolutional neural network;insects;? deep learning; Vgg16