楊 穎
(浙江農林大學 信息工程學院,浙江 臨安311300)
神經網絡,命名為MobileNet[1]。其能夠有效的減少網絡層間的計算量,同時保證目標識別的精準度。
昆蟲是世界上數量最多的物種,已被認定的就有150多萬種,約占全球生物的80%。蝴蝶屬于昆蟲的一種,種類繁多,經科學家估計蝶類昆蟲的數量大約在1.6萬~2萬種之間。由于蝴蝶的種類較多,通過人工對蝶類昆蟲進行種類的鑒定識別及分類,較為耗時。目前,對蝶類識別的實際市場需求日益增加,以現有的分類學專家和研究人員數量遠遠不夠。通過便捷簡單的檢測識別操作,幫助昆蟲知識儲備不充足的廣大農林從業者快速識別蝶類昆蟲具有重大意義。
得益于信息技術的飛速發展,科研人員已實現了通過機器學習自主識別圖像,從而代替人腦對圖像蘊含信息進行識別。卷積神經網絡也由此而生,并且在當今的學術研究中被廣泛應用,但其往往在硬件資源有限的設備上沒有優勢。對于嵌入式設備平臺的應用,比如移動設備與機器人,需要匹配更輕量、更高效,同時又能保持高精度的網絡模型。因此,Google針對移動設備等嵌入式設備,提出一種輕量級的深層
MobileNet-SSD目標檢測算法,是以MobileNet作為具體的網絡結構,使用MobileNet神經網絡結構替換傳統SSD算法當中的VGG16的卷積神經網絡結構,用來提取特征,再結合SSD目標檢測的一種算法[2]。SSD[3]以VGG16的卷積神經網絡結構作為基礎,增加4個卷積層來提取特征信息,其沿用了YOLO[4]目標檢測思想:一次完成回歸邊框和分類,再加入Faster R-CNN[5]中,使用anchor的思想來提升識別準確性。SSD通過結合這兩種目標檢測算法的優點,使其在保證高效的識別速度的同時,還能使識別準確性達到較高的水平。
MobileNet的網絡結構中,第13層卷積層是其結構中骨干網絡中的最后一層。如圖1所示,MobileNet-SSD網絡結構中前13層卷積層的結構與MobileNet的網絡結構一致,而MobileNet-SSD是在第13層卷積層后面,增加8個卷積層用來進行檢測。MobileNet-SSD目標檢測算法將MobileNet以及SSD的優點相結合,在計算量小、測量速度快的前提下,還能保證檢測目標精度準確。

圖1 MobileNet-SSD模型結構圖Fig.1 MobileNet-SSD model structure diagram
經過收集、過濾特征殘缺及分辨率過低的圖像,本文共收集16種蝶類的1 615張圖像,數據集主要來源于開源的利茲蝴蝶數據集[6]。由于本文所收集的圖像樣本數量有限,有些種類的蝴蝶樣本甚至還不到100個,而深度學習模型通常需要通過大量的樣本數據學習才能提取有效的模式。因此,通常都會增加神經網絡的深度和廣度,需對數據進行數據加強操作。數據增強[7]可以有效解決樣本量過少,過擬合問題[8]。經過數據加強,將16種蝶類的1 615張圖像擴充至17 622張圖像,見表1。將數據增強后的圖像集進行特征提取,并使用labelImg框架[9]進行特征標注[10],標注后的數據集按照voc2007格式制作成所需數據集。

表1 蝴蝶種類及其數據增強擴充之后樣本數量Tab.1 Butterfly species and their data are enhanced and expanded after the sample size
本研究在Windows系統64位,顯卡配置為RTX2080TI,利用深度學習框架TensorFlow對卷積神經網絡進行搭建,設置模型參數見表2。基于MobileNet-SSD算法進行蝶類圖像識別。模型檢測時間及模型訓練結果見表3、表4。

表2 模型部分參數設置Tab.2 Some parameter settings in the model

表3 蝶類目標檢測時間Tab.3 Butterfly object detection schedule

表4 蝶類圖像目標檢測結果Tab.4 Table of experimental results of object detection for butterfly images
將訓練模型以Web App的形式植入移動端,開發出識別蝶類昆蟲的應用。通過在嵌入式移動端設備上對蝶類進行識別檢測,獲取快速精準識別蝶類昆蟲的方法。Web App的形式可以同時植入Android、iOS系統,開發一套代碼,就能夠快速實現多端應用。
蝶類識別系統主要由移動端功能設計、服務端數據庫以及服務端接口設計調用組成。通過移動端手機的拍照功能,對蝶類昆蟲進行拍攝或者從相冊中對蝶類圖片進行選取識別;將蝶類昆蟲圖像通過服務端接口上傳;服務端調用訓練模型腳本,獲得實驗檢測結果以及檢測識別時間,將所識別的種類與服務端數據庫進行匹配,拉取該蝶類昆蟲相關介紹數據;通過接口,返回檢測識別圖、識別種類、檢測時間以及其相關介紹,識別系統流程如圖2所示。

圖2 蝶類識別系統流程圖Fig.2 Butterfly recognition system flow chart
2.3.1 移動端系統結構
識別系統使用Xcode 11.3.1工具進行開發,iPhone11設備iOS 13系統進行檢測。本研究核心功能是對蝶類進行識別,故iOS系統頁面盡量精簡。系統頁面共分為首頁,蝶類識別以及設置3個主要頁面,如圖3所示。

圖3 蝶類識別iOS系統頁面展示圖Fig.3 Butterfly recognition iOS system page display diagram
2.3.2 移動端系統運行測試
蝶類系統識別過程如圖4所示。頁面有拍照以及相冊選取兩種方式選擇蝶類圖像進行識別。以測試集一張黑脈金斑蝶為例,選取蝶類圖像之后點擊檢測識別,進行加載,請求后端接口,等待返回數據,顯示識別結果。

圖4 基于iOS系統蝶類昆蟲識別過程Fig.4 Butterfly recognition process base on iOS system
使用蝶類識別系統,通過服務端調用MobileNet-SSD目標檢測方法所訓練出的模型腳本,進行運算,檢測時間見表5。

表5 蝶類識別系統目標檢測時間表Tab.5 Butterfly recognition system object detection schedule
本文提出了一種基于MobileNet-SSD的蝶類圖像目標檢測算法,并結合移動端設備開發一套蝶類識別系統。基于蝶類圖像建立數據集,通過實驗,利用數據增強擴充數據能夠有效解決卷積神經網絡過擬合問題。利用MobileNet-SSD技術進行目標檢測,圖像識別的平均精準度[11]高達99.63%,在移動端設備上檢測一張蝶類圖像僅需0.18 s,解決了在大自然環境下拍攝的蝶類圖像目標識別普遍存在的效率低下和識別精度不高的問題,為今后對蝶類識別的研究提供新思路。