魯元平 羅志聰
摘要:隨著人類活動范圍的不斷擴張,生態(tài)環(huán)境的惡化,蛇類的生存環(huán)境受到威脅。為實現對蛇類的準確識別,輔助蛇類研究者對蛇類的識別與保護,通過對現有的解決方案進行分析,提出采用遷移學習方法對10種蛇類進行訓練識別。首先對現有數據集進行數據增強,從而讓訓練模型更好地收斂,采用基于Squeezenet模型具有更好的識別率,識別率達到了85.71%,效果良好。并對訓練好的模型進行加載,網絡模型識別耗時2.69s,有著更好實時性,同時還能保證識別精度,節(jié)省硬件資源,提升了模型的可移植性。
關鍵詞: 遷移學習; Squeezenet模型; 蛇類; 圖像識別
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)07-0012-03
Abstract: With the continuous expansion of human activities, the deterioration of the ecological environment, the living environment of snakes is threatened.In order to realize the accurate identification of snakes and assist the snake researchers in the identification and protection of snakes, this paper proposes to adopt the transfer learning method to train and identify 10 kinds of snakes by analyzing the existing solutions.Firstly, the existing data set was enhanced to promote better convergence of the training model. With the adoption of the Squeezenet model, the recognition rate reached 85.71%, with good effect.It takes 2.69s to identify the network model, which ensures better real-time performance, ensures recognition accuracy, saves hardware resources, and improves the portability of the model.
Key words:transfer learning; squeezenet model; snakes; image recognition
我國擁有十分豐富的蛇類資源,有200多種蛇類,其中我國南方地區(qū)的蛇類占我國蛇類種數的88%左右[1]。蛇類作為自然系統(tǒng)中的次級消費者,在生態(tài)系統(tǒng)中發(fā)揮著維系生態(tài)系統(tǒng)的能量流動和物質循環(huán)的重要作用。目前我國蛇類研究人員非常匱乏,且尚未有針對蛇類研究的公開數據集,在科研領域,蛇類圖像識別仍然是一個比較開放性的問題。近年來,隨著人類活動范圍的不斷擴張,蛇類的生存環(huán)境受到了巨大威脅,蛇類圖像識別對保護物種多樣性和維持生態(tài)平衡更具意義。James Alex對蛇類特征進行手工分類,構建了6中印度常見蛇類的特征數據庫,并采用貝葉斯網絡等13種分類器進行蛇類識別,效果良好[2]。Amir Amiza等人對22種馬來西亞常見蛇類進行顏色和邊緣方向的特征提取,并采用最近鄰分類器取得了89.22%的準確率[3]。浙江大學付永欽通過采集和收集蛇類圖像,建立了包含銀環(huán)蛇、竹葉青蛇、舟山眼鏡蛇、尖吻蝮、王錦蛇、黃金蟒、玉斑麗蛇、紅尾蚺、紅脖頸槽蛇和鉤盲蛇等10種中國常見蛇類共計10336幅圖像的CHINESESNAKES蛇類圖像數據集,對蛇類圖像分類問題進行了研究,設計了BRC卷積神經網絡結構,其在CHINESESNAKES蛇類圖像數據集上的分類準確率達到了89.061%[4]。近年來,深度學習和人工智能在圖像識別領域越來越受歡迎,而傳統(tǒng)的卷積神經網絡(Convolutional Neural Networks, CNN)不僅訓練時間長,而且需要大量的訓練樣本[5]。因此,在訓練樣本較少的情況下,采用遷移學習進行圖像識別,可以提高整體的識別性能。本文基于Squeezenet模型對10種蛇類進行圖像識別,該模型不僅網絡參數量相較Alexnet模型減少50倍左右,而且有著更快的識別速度,有更好的可移植性,對于快速識別蛇類意義重大,有利于蛇類研究者對蛇類的快速識別與保護。
1 Squeezenet網絡結構
1.1 Squeezenet模型
Squeezenet是由Landola提出的輕量級網絡結構,與Alexnet相比較而言,其結構內的參數更少,模型也更小,但是卻有著和Alexnet相當的識別精確度,且模型縮小50倍左右[6]。Squeezenet模型有2個卷積層、Fire模塊(Squeezenet的核心)、兩個最大池化層(max-pooling)和一個全局平均池化層(GAP,Global Average Pooling)以及最后的softmax函數[7]。Fire module結構如圖1所示,該結構主要由squeeze層和expand層構成。其中squeeze層開創(chuàng)性地將3*3的卷積核替換為1*1的卷積核,減少了特征通道數。除此之外,squeeze層的輸出是expand層的輸入,且expand層中不僅有1*1的卷積核,還有3*3的卷積,圖像經過兩種卷積后,有concat進行操作輸出。特征圖在經過Fire Module結構后,圖片的尺寸不會改變,但是由于經過了1*1的卷積核后,其參數量減少了很多,這也是Squeezenet相較Alexnet減少50倍左右的根本原因。Squeezenet模型結構圖如圖1所示。
1.2 池化層
池化層又稱下采樣層或欠采樣層,其目的就是對輸入特征圖進行壓縮,降低網絡模型的計算復雜度,在一定程度上能夠抑制過擬合現象的發(fā)生,提高模型的容錯率[8]。輸入的圖像經卷積層輸出相應的特征圖,由于輸出的特征圖過大,會導致后續(xù)的計算量復雜,因此根據圖像的靜態(tài)特征,在卷積神經網絡中引入池化層,降低計算復雜度。常見的池化方式有平均池化和最大池化,計算如下:
2 蛇類數據集
本文使用的數據集包含10種蛇類的圖片信息,所有的圖片統(tǒng)一處理為227*227*3(3為彩色圖片的顏色通道),此次實驗中對數據集以訓練集:驗證集=8:2的比例進行了劃分,最后每種蛇類隨機挑選100張作為測試集。由于現有的蛇類數據集樣本數量較少,且不同類別之間還存在數量不均等的情況,為了防止出現網絡過擬合嚴重和泛化效果差等現象,對蛇類數據集圖像進行數據增強處理,如對圖像進行旋轉,從而增加樣本數量。其中泥蛇的數據集原始樣本只有139張,而最多的銀環(huán)蛇數據集樣本有836張,樣本的之間數量差距過大會導致所訓練出的模型無法遷移到測試集進行準確測試。因此,為了解決該問題,數據集樣本較少的圖片進行數據增強處理(此次實驗樣本中的赤鏈蛇、侏儒響尾蛇、泥蛇、烏梢蛇和劍紋帶蛇)。
3 實驗及結果分析
3.1 實驗環(huán)境
實驗采用的是具有六核AMD Ryzen5 1600x Six-Core的CPU且裝備有8G內存的計算機,軟件平臺是Windows版的Matlab R2019b。
3.2 結果分析
雖然對蛇類數據集進行擴充和數據增強,但是數據集樣本仍然是小樣本,不適合從零開始訓練樣本,因此本文為了解決樣本數量過少的問題,采用遷移學習的方式訓練模型。本文采用的模型為Alexnet模型和Squeezenet模型,對原始數據樣本和擴充數據樣本進行訓練和驗證,本次實驗數據集原始樣本總共為4171張,擴充后的數據集樣本為5543張,將訓練集:驗證集=8:2的比例進行劃分。訓練模型參數設置:學習率為0.00001,每次輸入模型的批尺寸(Bachisize)為50,驗證頻數為500,訓練周期為30個epoch,并使用隨機梯度下降動量(SGDM)優(yōu)化器作為訓練選項。其中批尺寸是Alexnet模型和Squeezenet模型進行迭代訓練時處理圖片的數量,批尺寸越大,整個網絡的收斂速度也就越快,其訓練的時間也更短,但是會占用更多的GPU顯存,因此需要根據計算機的配置來進行相應的設定。學習率的設定也影響著網絡的收斂,其取值過大會導致損失函數(Loss)不穩(wěn)定,取值過小會導致網絡收斂速度過慢或過擬合現象的發(fā)生。如表是Alexnet和Squeezenet兩種模型在數據集擴充前后的性能比較:
從表1和表2中可以看出,擴充數據集后,雖然訓練時間更長了,模型也更大了,但是兩種模型的準確率都得到了提升,其中Alexnet模型擴充數據集后,識別率提高了3.72%,Squeezenet模型識別準確率提高了6.9%,因此擴充數據集能夠在一定程度上提高識別準確率。除此之外,Squeezenet模型在兩種數據集模式下,依然保持著相較Alexnet模型更好的性能,在實際應用中有更好的移植性,對硬件資源的要求更低,其服務器可以在同一時間處理更多的數據,提高了工作效率。
本文最終選取Squeezenet模型對10種蛇類圖像進行識別,此次實驗主要對比擴充數據集前后模型的收斂速度,圖中實線為訓練集,虛線為測試集,橫縱為迭代次數,縱軸為損失函數。從圖3和圖4中可以看出,數據集擴充以后,模型的收斂速度更快。原始數據在300個epoch開始收斂,而擴充后的數據集在200個epoch就已經開始收斂了。
擴充后的數據集在Squeezenet模型中訓練好后,將訓練好的模型進行加載,識別測試集中的圖片,測試集中每種蛇類有100張測試圖片。在加載模型下的識別速度為2.69s,所得混淆矩陣如圖5:
圖5中class1-10依次為斑背響尾蛇、赤鏈蛇、侏儒響尾蛇、泥蛇、菜花蛇、銀環(huán)蛇、烏梢蛇、劍紋帶蛇、銀環(huán)蛇和竹葉青,其中橫軸為準確率,縱軸為召回率。由于竹葉青顏色鮮艷且單一,其識別率最高,為97%。識別率較低的有三種蛇類,分別為菜花蛇、銀環(huán)蛇和烏梢蛇,由于這三種蛇類花紋較復雜,且銀環(huán)蛇和烏梢蛇有著比較相似的特征,導致識別率偏低。
4 結語
Squeezenet模型和Alexnet模型在同等條件下,Squeezenet始終保持著相對明顯的優(yōu)勢,訓練時間更短,模型也更小,能夠節(jié)約更多的硬件資源,并提升工作效率,同時也利于移植到小型硬件中,便于開發(fā)。擴充數據集能夠在一定程度上促進收斂,提高識別準確率。加載基礎模型能夠更快地獲得識別準確率,且分類效果良好,能夠在實際應用中實現更快更好地分類,滿足蛇類識別應用中的可靠性和實用性的要求。與此同時,在不損失數據集特征的情況下,如何提高蛇、銀環(huán)蛇和烏梢蛇的識別率是下一步亟待解決的問題。
參考文獻:
[1] 張樂,陶明寶,陳鴻平,等.常用蛇類藥材鑒別研究進展[J].中國實驗方劑學雜志,2017,23(4):222-227.
[2] James A P,Mathews B,Sugathan S,et al.Discriminative histogram taxonomy features for snake species identification[J].Human-Centric Computing and Information Sciences,2014,4(1):1-11.
[3] Felzenszwalb P F,Girshick R B,McAllester D,et al.Object detection with discriminatively trained part-based models[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2010,32(9):1627-1645.
[4] 付永欽.基于深度學習的蛇類圖像分類問題研究[D].杭州:浙江大學,2019.
[5] 謝小紅,李文韜.基于遷移學習的圖像分類訓練方法研究[J].信息與電腦(理論版),2020,32(7):53-55.
[6] Iandola F N,Han S,Moskewicz M W,et al.SqueezeNet:AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size[EB/OL].2016.
[7] 李坤倫,魏澤發(fā),宋煥生.基于SqueezeNet卷積神經網絡的車輛顏色識別[J].長安大學學報(自然科學版),2020,40(4):109-116.
[8] 張偉. 基于深度卷積神經網絡自學習特征的地表覆蓋分類研究[D].北京:中國科學院大學,2017.
【通聯編輯:唐一東】