重慶師范大學 彭明杰
昆蟲的有效識別是農林業病蟲害防治的必要環節,也是研究和維護生態環境的重要前提。蜻蜓是一種理想型環境指示昆蟲,蜻蜓的識別研究在環境檢測和保護方面有著重要的現實意義。本文使用收集的處于生態環境中的蜻蜓數據集,采用多模態深度學習網絡模型設計思路,構建了以SqueezeNet為主干分類網絡的蜻蜓識別系統,識別準確率高于傳統手工設計特征的算法,并且避免了傳統算法只能識別標本圖片的局限性。
昆蟲的有效識別是農林業病蟲害防治的必要環節,也是研究和維護生態環境的重要基礎。蜻蜓是一種水陸兩息的昆蟲,因此是一種理想的環境指示昆蟲,在環境檢測和保護領域有著極其重要的研究價值。國內外均有蜻蜓識別相關的研究,但利用機器學習技術進行蜻蜓的自動識別研究還有欠缺。傳統的蜻蜓識別方法是在生物學專家采集蜻蜓樣本,通過觀察蜻蜓的顏色形狀和形態結構等特征后,進行人為設計的蜻蜓特征提取,然后與已有的模式照樣本進行對照鑒定,從而判斷出蜻蜓的種類。此類方法費時費力且依賴于蜻蜓識別知識的掌握,極大的限制了蜻蜓識別的普適性。同時其識別準確率也很低,并且只能識別標本圖片,對處于生態環境下的蜻蜓沒有識別能力。隨著計算機視覺和機器學習技術的發展,利用神經網絡來進行圖像識別的方式在許多圖像分類問題上已取得了很好的效果。但是由于蜻蜓對象與自然環境緊密結合,生存環境復雜多變,導致蜻蜓的圖像背景對識別任務造成巨大的干擾,并且蜻蜓各種類之間差異小,一些種類尤其相似,這些原因不僅使得蜻蜓數據采集困難,也讓識別蜻蜓具有細粒度分類的特點。面對以上情況,本文采用多模態特征融合的方式對數據集進行處理和特征提取,利用改進的SqueezeNet達到了更好的識別準確率和較快的識別速率。
對同一物種的不同種類進行識別屬于典型的細粒度識別任務,現今人們已經將細粒度識別作為一個計算機視覺領域的基礎性問題來討論。在分類學的邏輯約束下,人為進行分類的某一群子類往往因同屬于一個大類而具有較高的相似度,這時區分各個子類的憑借只能是它們之間存在的一些細小的差異,這樣的特點使得細粒度識別任務更具挑戰性。如圖1所示,以小團扇春蜓和巨圓臀大蜓為例,兩者之間可用于區分的特征主要在于背側紋的不同,而這種差異是很細微的。
細粒度圖像分類隨著深度學習的發展,如今在各個領域都有著廣泛的研究和應用需求。在生活中,真正能滿足實際需求的不是區分“大象和冰箱”之類的粗分類,而是區分“250ml豆瓣醬和250ml甜面醬”這樣的細分類。在學術上,人們主要構建了公共的鳥、狗、花、車、飛機等公開圖像數據集來進行細粒度識別算法的研究。而尤其在生物學中,有效地識別不同的物種,是進行其他研究的重要前提,由此甚至誕生了生物分類學這一學科。因此,借助機器學習算法實現低成本的細粒度圖像識別,對我們的研究和生活都有重要的意義。

圖1 小團扇春蜓和巨圓臀大蜓
實驗采用平時比較常見的蜻蜓種類作為研究對象,以野外拍攝、網絡搜索和向他人索要等方式共采集到12類蜻蜓的圖片,共計1768張圖片,以此作為數據集。數據集樣本如圖2所示。

圖2 蜻蜓數據集
為了更加清晰地將目標與背景分離開來,得到目標完整的輪廓信息,本文使用富邊緣檢測的方法來對圖片進行預處理。具體步驟為:①首先對輸入的彩色圖像進行灰度處理,使用公式(1)來計算灰度值,把RGB圖像轉換為灰度圖。其中R,G,B分別表示色彩通道中的紅、綠、藍三個通道的數值;

②對訓練樣本添加隨機的椒鹽噪聲以模擬圖像在傳輸、處理等過程中受到的干擾信息,從而增強算法的魯棒性;③再使用中值濾波器對上一個步驟輸出的灰度圖進行降噪處理,得到輸出圖像X1;④再使用Sobel算子對圖像X1進行邊緣檢測,得到圖像X2;⑤再使用Canny算子對圖像X2進行邊緣檢測,得到圖像X3;⑥將上兩個步驟得到的圖像X2與X3進行疊加,從而最終獲得富邊緣檢測圖像。處理結果如圖3所示。

圖3 圖像預處理過程結果圖
深度學習模型比常規的算法有著更龐大的計算量,意味著需要更優良的設備,如GPU,TPU等等,隨著智能移動端的發展,將深度學習模型嵌入至移動端設備成為了現如今的業界的需求,國內外研究者們提出了一系列降低卷積神經網絡計算量的方法,如Andrew Howard等研究者提出的MobileNet(G.Howard,M.Zhu,B.Chen,D.Kalenichenko,W.Wang,T.Weyand,M.Andreetto,H.Adam.Mobilenets:Efficient convolutional neural Networks for mobile vision applications)系列和另一種輕量級的卷積神經網絡SqueezeNet。它利用FireModule模塊降低卷積神經網絡的參數量,使得其準確率在與AlexNet的同時參數量卻僅為后者的五十分之一。另外,單一特征的輸入不利于以復雜自然環境為背景的蜻蜓圖片的識別,因此本文提出了一種基于SqueezeNet的多模態特征輸入的蜻蜓識別網絡。
本文采用兩種圖像特征作為輸入。一種是蜻蜓的RGB原圖,由可見光攝像頭采集的三通道圖像,第二種是經富邊緣檢測處理后的單通道灰度圖像,RGB圖能夠描述物體的表觀,顏色以及部分紋理的信息,而富邊緣檢測后的單通道灰度圖能夠描述物體的形狀,尺度以及空間幾何的信息,因此兩種特征的圖像具備互補性,兩種圖像采用特征融合的方式,輸入圖像是RGB圖像和富邊緣檢測后的單通道灰度圖像,在經過2個FireModule之后生成的特征圖在三維空間中沿著第一個維度進行拼接,將拼接完的特征圖再經過7個FireModule進入全連接層。網絡模型結構圖如圖4所示。
由于數據集的每一類的樣本數量處于非均衡狀態,例如第一類的數據有179張,而第二類僅有43張,如表1所示。大范圍的數據比例失衡會破壞交叉熵損失,若是以傳統的損失函數去構造目標函數,會導致部分類別發生欠擬合的情況。

圖4 模型結構圖
而一般而言,常用的多分類交叉熵損失定義為:

其中pgroundtruth為數據集的標簽,ppredict為預測的類別概率。針對數據集類別分布不均勻的問題,本文采用Tsung-Yi Lin(Lin T Y,Goyal P,Girshick R,et al.Focal Loss for Dense Object Detection)等研究者提出的Focal Loss損失函數的方法構造蜻蜓識別的目標函數。多分類Focal Loss公式為:


表1 各類蜻蜓樣本數量表
α和γ是平衡參數,分別用來平衡正樣本與負樣本數量比例不均(即類別不均衡)的問題和簡單樣本與復雜樣本的權重平衡問題。只設置α可以平衡正樣本和負樣本的在訓練過程中的權重問題,但是無法解決簡單樣本與復雜樣本的權重問題,因此引入γ參數來調節簡單樣本權重,使之保持一個動態降低的速率,當γ為0時即為交叉熵損失函數,后續實驗結果也證明使用FocalLoss后整體準確率有明顯的提升。
本實驗采用Python3.6、TensorFlow-gpu 1.8.0以及Keras2.2.4框架搭建模型。并且采用Cuda8.0、Cudnn為Titan XP GPU提供深度學習的驅動支持。超參數設置包括BathchSize為128,學習效率為1e-3,權重衰減率為5e-6,優化器采用Adam優化器,優化器參數Beta1、Beta2分別設置為0.9、0.999,迭代次數為200次。
我們在收集的數據集上對不同算法進行了對比實驗以驗證本文方法的有效性。將本文提出的方法分別與包括支持向量機(Support vector machine,SVM)、貝葉斯神經網絡方法(Bayesian neural network,BNN)和殘差網絡ResNet18(Convolutional neural network)在內的三種算法在蜻蜓識別準確率上進行了對比。除本文方法外,其他算法均采用單一特征輸入的方式進行實驗,即只使用蜻蜓RGB圖像的顏色直方圖來表征訓練樣本的特征圖,SVM算法的核函數選擇高斯核函數。不同算法的準確率結果如表2所示。可以看出,在使用支持向量機時,算法對蜻蜓的識別準確率較低;傳統的卷積神經網絡在小數據集上則容易發生過擬合現象,因此在該方法下的蜻蜓識別準確率也不高;貝葉斯神經網絡方法與本文方法相似,但因其只使用單一輸入特征,其準確率也低于本文方法使用多特征融合的多模態輸入神經網絡。總的來看,本文方法與上述3種算法相比,平均識別準確率提高了11到35.6個百分點,平均提高了23.8個百分點。

圖4 蜻蜓自動識別系統

表2 算法結果對比圖
將本文訓練的網絡模型搭載在基于python的圖形界面開發包QT5編寫的GUI上,搭建一個輕便的蜻蜓識別系統。該系統能夠根據用戶傳入的蜻蜓圖片給出準確的分類信息,主要分為兩個模塊:輸入模塊與輸出模塊,輸入模塊首先判斷傳入對象是否為蜻蜓,其次對圖像進行預處理,處理完成后對圖像放入網絡進行預測。輸出模塊主要來自于給出預測的結果,判斷蜻蜓所屬類別及其概率,并且給出該類別的蜻蜓示例圖。系統示例圖如圖4所示。
結論:本文將圖像處理技術和深度學習技術相結合,采用多模態輸入的方式搭建卷積神經網絡,有效地實現了蜻蜓圖像的自動識別。實驗主要采用Sony IMX300攝像頭以及通過Google搜索引擎進行數據的采集,分類上細分到每個類別中的雄雌性,使用RGB圖與富邊緣檢測圖像處理相結合的方法,在更加清晰地將目標與背景分離開來,得到目標完整的輪廓信息的同時,保證了圖片的色彩信息。提出了一種基于SqueezeNet多模態特征融合的蜻蜓識別網絡對數據進行訓練,從而對蜻蜓的種類進行分類,克服了傳統蜻蜓識別方法中需要通過手工設計和提取目標特征的缺點,為蜻蜓鑒別任務節省了時間成本。另外,由于圖像的質量將直接影響到分類的效果,基于本文算法搭建的蜻蜓識別系統對于質量較好的蜻蜓圖片識別率較高,對背景復雜和模糊的圖像識別率較低,這是值得進一步研究的地方。