楊 穎
(浙江農(nóng)林大學(xué) 信息工程學(xué)院,浙江 臨安311300)
神經(jīng)網(wǎng)絡(luò),命名為MobileNet[1]。其能夠有效的減少網(wǎng)絡(luò)層間的計算量,同時保證目標(biāo)識別的精準(zhǔn)度。
昆蟲是世界上數(shù)量最多的物種,已被認(rèn)定的就有150多萬種,約占全球生物的80%。蝴蝶屬于昆蟲的一種,種類繁多,經(jīng)科學(xué)家估計蝶類昆蟲的數(shù)量大約在1.6萬~2萬種之間。由于蝴蝶的種類較多,通過人工對蝶類昆蟲進行種類的鑒定識別及分類,較為耗時。目前,對蝶類識別的實際市場需求日益增加,以現(xiàn)有的分類學(xué)專家和研究人員數(shù)量遠遠不夠。通過便捷簡單的檢測識別操作,幫助昆蟲知識儲備不充足的廣大農(nóng)林從業(yè)者快速識別蝶類昆蟲具有重大意義。
得益于信息技術(shù)的飛速發(fā)展,科研人員已實現(xiàn)了通過機器學(xué)習(xí)自主識別圖像,從而代替人腦對圖像蘊含信息進行識別。卷積神經(jīng)網(wǎng)絡(luò)也由此而生,并且在當(dāng)今的學(xué)術(shù)研究中被廣泛應(yīng)用,但其往往在硬件資源有限的設(shè)備上沒有優(yōu)勢。對于嵌入式設(shè)備平臺的應(yīng)用,比如移動設(shè)備與機器人,需要匹配更輕量、更高效,同時又能保持高精度的網(wǎng)絡(luò)模型。因此,Google針對移動設(shè)備等嵌入式設(shè)備,提出一種輕量級的深層
MobileNet-SSD目標(biāo)檢測算法,是以MobileNet作為具體的網(wǎng)絡(luò)結(jié)構(gòu),使用MobileNet神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)替換傳統(tǒng)SSD算法當(dāng)中的VGG16的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用來提取特征,再結(jié)合SSD目標(biāo)檢測的一種算法[2]。SSD[3]以VGG16的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)作為基礎(chǔ),增加4個卷積層來提取特征信息,其沿用了YOLO[4]目標(biāo)檢測思想:一次完成回歸邊框和分類,再加入Faster R-CNN[5]中,使用anchor的思想來提升識別準(zhǔn)確性。SSD通過結(jié)合這兩種目標(biāo)檢測算法的優(yōu)點,使其在保證高效的識別速度的同時,還能使識別準(zhǔn)確性達到較高的水平。
MobileNet的網(wǎng)絡(luò)結(jié)構(gòu)中,第13層卷積層是其結(jié)構(gòu)中骨干網(wǎng)絡(luò)中的最后一層。如圖1所示,MobileNet-SSD網(wǎng)絡(luò)結(jié)構(gòu)中前13層卷積層的結(jié)構(gòu)與MobileNet的網(wǎng)絡(luò)結(jié)構(gòu)一致,而MobileNet-SSD是在第13層卷積層后面,增加8個卷積層用來進行檢測。MobileNet-SSD目標(biāo)檢測算法將MobileNet以及SSD的優(yōu)點相結(jié)合,在計算量小、測量速度快的前提下,還能保證檢測目標(biāo)精度準(zhǔn)確。
圖1 MobileNet-SSD模型結(jié)構(gòu)圖Fig.1 MobileNet-SSD model structure diagram
經(jīng)過收集、過濾特征殘缺及分辨率過低的圖像,本文共收集16種蝶類的1 615張圖像,數(shù)據(jù)集主要來源于開源的利茲蝴蝶數(shù)據(jù)集[6]。由于本文所收集的圖像樣本數(shù)量有限,有些種類的蝴蝶樣本甚至還不到100個,而深度學(xué)習(xí)模型通常需要通過大量的樣本數(shù)據(jù)學(xué)習(xí)才能提取有效的模式。因此,通常都會增加神經(jīng)網(wǎng)絡(luò)的深度和廣度,需對數(shù)據(jù)進行數(shù)據(jù)加強操作。數(shù)據(jù)增強[7]可以有效解決樣本量過少,過擬合問題[8]。經(jīng)過數(shù)據(jù)加強,將16種蝶類的1 615張圖像擴充至17 622張圖像,見表1。將數(shù)據(jù)增強后的圖像集進行特征提取,并使用labelImg框架[9]進行特征標(biāo)注[10],標(biāo)注后的數(shù)據(jù)集按照voc2007格式制作成所需數(shù)據(jù)集。
表1 蝴蝶種類及其數(shù)據(jù)增強擴充之后樣本數(shù)量Tab.1 Butterfly species and their data are enhanced and expanded after the sample size
本研究在Windows系統(tǒng)64位,顯卡配置為RTX2080TI,利用深度學(xué)習(xí)框架TensorFlow對卷積神經(jīng)網(wǎng)絡(luò)進行搭建,設(shè)置模型參數(shù)見表2?;贛obileNet-SSD算法進行蝶類圖像識別。模型檢測時間及模型訓(xùn)練結(jié)果見表3、表4。
表2 模型部分參數(shù)設(shè)置Tab.2 Some parameter settings in the model
表3 蝶類目標(biāo)檢測時間Tab.3 Butterfly object detection schedule
表4 蝶類圖像目標(biāo)檢測結(jié)果Tab.4 Table of experimental results of object detection for butterfly images
將訓(xùn)練模型以Web App的形式植入移動端,開發(fā)出識別蝶類昆蟲的應(yīng)用。通過在嵌入式移動端設(shè)備上對蝶類進行識別檢測,獲取快速精準(zhǔn)識別蝶類昆蟲的方法。Web App的形式可以同時植入Android、iOS系統(tǒng),開發(fā)一套代碼,就能夠快速實現(xiàn)多端應(yīng)用。
蝶類識別系統(tǒng)主要由移動端功能設(shè)計、服務(wù)端數(shù)據(jù)庫以及服務(wù)端接口設(shè)計調(diào)用組成。通過移動端手機的拍照功能,對蝶類昆蟲進行拍攝或者從相冊中對蝶類圖片進行選取識別;將蝶類昆蟲圖像通過服務(wù)端接口上傳;服務(wù)端調(diào)用訓(xùn)練模型腳本,獲得實驗檢測結(jié)果以及檢測識別時間,將所識別的種類與服務(wù)端數(shù)據(jù)庫進行匹配,拉取該蝶類昆蟲相關(guān)介紹數(shù)據(jù);通過接口,返回檢測識別圖、識別種類、檢測時間以及其相關(guān)介紹,識別系統(tǒng)流程如圖2所示。
圖2 蝶類識別系統(tǒng)流程圖Fig.2 Butterfly recognition system flow chart
2.3.1 移動端系統(tǒng)結(jié)構(gòu)
識別系統(tǒng)使用Xcode 11.3.1工具進行開發(fā),iPhone11設(shè)備iOS 13系統(tǒng)進行檢測。本研究核心功能是對蝶類進行識別,故iOS系統(tǒng)頁面盡量精簡。系統(tǒng)頁面共分為首頁,蝶類識別以及設(shè)置3個主要頁面,如圖3所示。
圖3 蝶類識別iOS系統(tǒng)頁面展示圖Fig.3 Butterfly recognition iOS system page display diagram
2.3.2 移動端系統(tǒng)運行測試
蝶類系統(tǒng)識別過程如圖4所示。頁面有拍照以及相冊選取兩種方式選擇蝶類圖像進行識別。以測試集一張黑脈金斑蝶為例,選取蝶類圖像之后點擊檢測識別,進行加載,請求后端接口,等待返回數(shù)據(jù),顯示識別結(jié)果。
圖4 基于iOS系統(tǒng)蝶類昆蟲識別過程Fig.4 Butterfly recognition process base on iOS system
使用蝶類識別系統(tǒng),通過服務(wù)端調(diào)用MobileNet-SSD目標(biāo)檢測方法所訓(xùn)練出的模型腳本,進行運算,檢測時間見表5。
表5 蝶類識別系統(tǒng)目標(biāo)檢測時間表Tab.5 Butterfly recognition system object detection schedule
本文提出了一種基于MobileNet-SSD的蝶類圖像目標(biāo)檢測算法,并結(jié)合移動端設(shè)備開發(fā)一套蝶類識別系統(tǒng)?;诘悎D像建立數(shù)據(jù)集,通過實驗,利用數(shù)據(jù)增強擴充數(shù)據(jù)能夠有效解決卷積神經(jīng)網(wǎng)絡(luò)過擬合問題。利用MobileNet-SSD技術(shù)進行目標(biāo)檢測,圖像識別的平均精準(zhǔn)度[11]高達99.63%,在移動端設(shè)備上檢測一張蝶類圖像僅需0.18 s,解決了在大自然環(huán)境下拍攝的蝶類圖像目標(biāo)識別普遍存在的效率低下和識別精度不高的問題,為今后對蝶類識別的研究提供新思路。