肖杰文 趙鋮博 李欣潔 劉鐘鈺 龐博 楊彝華 王建新
摘? 要:為了解決蘑菇圖像分類的問題,實現(xiàn)野生菌毒性快速識別,以7種蘑菇作為研究對象,提出了一種基于深度學習的蘑菇圖像分類的方法。所提出的分類方法在考慮了自然場景圖像的特點下,利用圖像像素信息進行特征提取,提取到的特征向量具有可辨別性、獨立性和魯棒性;輕量級ShuffleNetV2模型與作為其他常用CNN模型相比具有更高的精度。實驗表明,基于ShuffleNetV2的蘑菇分類模型的Top-1準確率為55.18%,Top-5準確率為93.55%,能夠一定程度上解決蘑菇圖像分類困難的問題。未來結合移動設備和嵌入式開發(fā),將能夠用于自然環(huán)境下野生菌的自動分類,為蘑菇產(chǎn)業(yè)智能化和自動化提供新的思路。
關鍵詞:深度學習;圖像分類;蘑菇;卷積神經(jīng)網(wǎng)絡
中圖分類號:TP399? ? ?文獻標識碼:A
Abstract: In order to cope with the problem of mushroom image classification and facilitate the rapid identification of wild mushroom toxicity, a method of mushroom image classification based on deep learning is proposed for seven kinds of mushrooms. The proposed classification method takes into account the characteristics of natural scene images and uses image pixel information for feature extraction. The extracted feature vectors are distinguishable, independent and robust; the lightweight ShuffleNetV2 model is used and has higher accuracy compared with other commonly used models such as CNN. Experiment results show that the mushroom classification model based on ShuffleNetV2 has a Top-1 accuracy of 55.18% and a Top-5 accuracy of 93.55%, which can solve, to some extent, the difficulty of mushroom image classification. If combined with mobile devices and embedded development in the future, it can be used for automatic classification of wild fungi in natural environments.
Keywords: deep learning; image classification; mushroom; convolutional neural networks
1? ?引言(Introduction)
蘑菇又稱大型真菌,野生的蘑菇也稱野生菌。據(jù)報告(State of the World's Fungi 2018)統(tǒng)計,世界共有14萬余種真菌被報道。隨著人們生活水平的不斷提高,營養(yǎng)價值高、附加值高的野生食用菌也逐漸進入大眾的視野[1]。在中國被報道的食用菌有1020種,藥用菌有692種,毒蘑菇480種[2]。但是目前我國野生菌市場魚龍混雜,多次出現(xiàn)野生菌致人中毒死亡事件[3]。我國食物中毒患者死亡案例中蘑菇中毒占比一成以上,蘑菇中毒為主要的食物中毒死亡原因之一[4]。所以,加強預防毒蘑菇中毒知識的宣傳教育,提高防范意識,提前預警、預報,避免誤采、誤食毒蘑菇是減少毒蘑菇中毒的有效措施[5]。
然而,目前毒蘑菇識別方法主要有通過外形辨別以及通過生化分析兩種手段[6]。野外場景難以進行生化分析,普通民眾在野外難以從形態(tài)學上辨別有毒野生菌。為此,國內(nèi)外學者展開了一些蘑菇毒性預測的研究,劉斌等人[7]通過貝葉斯分類算法可以從蘑菇的特征屬性出發(fā)預測蘑菇毒性。龐鳳麗[8]開發(fā)的基于Android移動終端的毒蘑菇輔助識別系統(tǒng),提取蘑菇的顏色和紋理作為特征向量,能夠利用BP神經(jīng)網(wǎng)絡對蘑菇毒性進行識別。然而,在野外情況下難以準確獲得野生菌的特征屬性,而且,由于野生菌的特征屬性與其種類息息相關,在缺少種類先驗知識的情況下,基于特征屬性的毒性預測模型在缺少種類先驗知識的情況下,其適應能力和泛化能力會大大降低。
因此,開發(fā)基于生境圖像的蘑菇分類的算法具有重大意義。盡管基于外觀和圖像的識別有一定的錯誤率,但相比于其他檢測方法有快速、方便和及時的特點,可以起到輔助毒性預警的作用。在植物分類[9,10]、識別[11]、疾病檢測[12]領域,圖像處理和深度學習技術已經(jīng)被廣泛應用,現(xiàn)有技術有希望移植到蘑菇分類領域。在蘑菇領域,羅宏波等人[13]在水平集復雜背景下已經(jīng)實現(xiàn)毒蘑菇圖像的提取。同時,圖像處理和深度學習技術在蘑菇的分級[14]、采摘[15,16]、定位[17]和識別[18]上發(fā)揮了重要的作用。然而,針對蘑菇圖像分類的研究相對較少,已有研究在數(shù)據(jù)集、方法上存著局限性。為此,本研究選擇7種蘑菇作為研究對象,建立了圖像數(shù)據(jù)集,提取了圖像像素作為特征,同時搭建了包括人工神經(jīng)網(wǎng)絡、卷積神經(jīng)網(wǎng)絡等多種圖像分類模型,對野外不同種類的蘑菇進行分類,為未來政府部門建立面向普通民眾的蘑菇中毒風險警示系統(tǒng)、食用菌生態(tài)旅游產(chǎn)業(yè)園識別服務,以及野生食用菌產(chǎn)業(yè)化生產(chǎn)中自動分揀等的實現(xiàn)提供新的思路。
2? 實驗數(shù)據(jù)集與預處理(Experimental data set and preprocessing)
數(shù)據(jù)集的構建在本研究中占有很大的工作量,是后續(xù)研究和實驗工作的基礎。在原始數(shù)據(jù)集的基礎上,我們做了數(shù)據(jù)預處理和數(shù)據(jù)增強等工作。
2.1? ?原始數(shù)據(jù)集構建
2.1.1? ?數(shù)據(jù)集類型
傳統(tǒng)訓練方法使用標識數(shù)據(jù)集進行訓練。標識符作為輸入源使得模型的應用受到極大的限制:在對于真實圖像的處理過程中必須要進行人工的復雜標注,和實際應用明顯脫節(jié)。
為更好地處理野外不同情況下的圖像,本研究以互聯(lián)網(wǎng)上收集的原始圖像為原始數(shù)據(jù),并以此為基礎進行預處理與輸入。這意味著該神經(jīng)網(wǎng)絡沒有蘑菇和背景差異的先驗知識。并且由于不同圖片的拍攝角度、地點、光線不同,這將能擴大模型的使用范圍。
為了提高模型的識別效果和增強系統(tǒng)的魯棒性,本文訓練圖像盡可能為多場景的、能反映不同復雜背景和蘑菇不同特征的、具有差異的蘑菇圖片,同一種類的圖像盡量來自形態(tài)特征明顯的不同個體,擁有不同的形態(tài)特征,其中包括:菌蓋、菌柄、菌褶、菌環(huán)、菌托的形狀、顏色。使用的圖像為RGB三通道彩色圖像,原始圖像分辨率均大于500×500。
2.1.2? ?數(shù)據(jù)集構架
為明確主要識別對象,最大化模型部署識別效能,首先對全國蘑菇中毒種類進行調(diào)查。在我國主要食用菌大省云南省,主要誤食毒野生菌種類為鵝膏[19]。結合相關毒性、品種常見程度,確定了七種野生菌種類。從百度和Google的圖庫中搜集了七種野生菌共1675張圖像,用于進行神經(jīng)網(wǎng)絡的訓練和測試。圖像包含七種不同的野生菌種類,由于一些野生菌種類的外觀太相似而無法標記,故這些種類被歸類為包括多個種的分類單元。例如,塊菌屬分類單元里各種類因為外觀非常相似而被分為同一組。
2.2? ?數(shù)據(jù)集聲明
所有圖像均來源于網(wǎng)絡,因此存在水印等少量人為引入的干擾元素。同時,圖像并未經(jīng)過基因?qū)用娴臋z測,主要通過互聯(lián)網(wǎng)標簽及二次外觀進行分類,可能存在少量錯誤標簽。
2.3? ?數(shù)據(jù)增強
考慮到蘑菇形態(tài)一般少見規(guī)則,所以蘑菇圖像對于對稱、旋轉(zhuǎn)、縮放操作具有敏感性;圖像為彩色三通道圖像,因此蘑菇圖像對顏色增強操作具有敏感性。所以使用顏色隨機增強、隨機旋轉(zhuǎn)、隨機裁剪和隨機水平翻轉(zhuǎn)對原始數(shù)據(jù)集進行數(shù)據(jù)增強處理,數(shù)據(jù)增強后總圖像數(shù)量為1675×5=8375張。
2.4? ?數(shù)據(jù)預處理
為了將原始圖像轉(zhuǎn)化為模型和算法所能作用的形式,所以對圖像進行裁剪和歸一化的預處理。
3? 蘑菇圖像分類模型(Mushroom image classification model)
由于蘑菇生長環(huán)境復雜,并且蘑菇本身特征較多,蘑菇圖像的背景和圖像采集條件復雜,因此蘑菇圖像分類識別較為困難。本文選擇多種深度學習模型對蘑菇圖像進行分類研究,包括ANN、LeNet-5、VGGNet-16、AlexNet和輕量級ShuffleNetV2。
3.1? ?人工神經(jīng)網(wǎng)絡
人工神經(jīng)網(wǎng)絡(Artificial Neural Network, ANN)又叫多層感知機(Multilayer Perceptron, MLP)。由眾多神經(jīng)元連接構成,各層間通過全連接的方式連接,因此ANN可以看作是由全連接層構成的神經(jīng)網(wǎng)絡。
本文構建的ANN由三層全連接層組成,除輸出層外的兩層隱含層大小均為100,激活函數(shù)為ReLu。
3.2? ?卷積神經(jīng)網(wǎng)絡
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)是一種特殊的深層前饋網(wǎng)絡,其基本結構包括:一個或多個卷積層、池化層、全連接層及一個輸出層。
一個基CNN學習器即一個獨立的CNN,CNN可自動提取圖像的特征,相比人工選擇、標記、識別圖像特征,CNN具有高效、便捷、可量化、自適應的特點。在本文中,CNN用于提取蘑菇的形態(tài)學特征,并且通過所提取特征給出圖像分類的概率,并且自適應調(diào)節(jié)自身參數(shù)。CNN通過卷積的方式提取蘑菇圖像的特征,并通過卷積層輸出特征圖,高層卷積層較低層卷積層提取的特征圖抽象。一般CNN結構包括輸入層、中間層和輸出層。具體地,輸入層即CNN的第一層,通常由卷積層構成,用于接收圖像。中間層一般由一個或多個卷積層、全連接層或卷積層與池化層的組合構成,其中全連接層連接所有的特征,池化層對輸入的特征圖進行壓縮,一方面使特征圖變小,簡化網(wǎng)絡計算復雜度;一方面進行特征壓縮,提取主要特征。輸出層一般由全連接層構成,用于將輸出值送給分類器,其中分類器對全連接層的輸出值進行分類,通常為softmax。
LeNet是最早的卷積神經(jīng)網(wǎng)絡之一,基于LeNet改進的經(jīng)典CNN模型有LeNet-5、AlexNet、ZF-Net、VGGNet、GoogLeNet、ResNet和DenseNet[20]。
1998年,LeCun設計了LeNet-5,LeNet-5最初在手寫數(shù)字識別上取得了較好的效果。本文使用的LeNet-5卷積神經(jīng)網(wǎng)絡的結構包括輸入層、卷積層、下采樣層、全連接層和輸出層。
VGGNet是牛津大學計算機視覺組(Visual Geometry Group)和Google DeepMind公司的研究員一起研發(fā)的深度卷積神經(jīng)網(wǎng)絡。本文使用的VGGNet為深度為16層的VGGNet-16結構。
AlexNet包含八個帶權重的網(wǎng)絡層,其中,前5層是卷積層,剩下的三層是全連接層。最后一層全連接層的輸出是k維softmax的輸入,softmax會產(chǎn)生k類標簽的分布。本文使用的AlexNet模型結構如表2所示。
4? 實驗結果與分析(Experimental results and analysis)
4.1? ?實驗平臺
實驗是在百度AI Studio平臺上使用單個Tesla V100GPU,顯存16GB,內(nèi)存32GB。編程環(huán)境為Python3.7,框架結構為PaddlePaddle。
4.2? ?模型訓練
實驗對本文構建的原始蘑菇數(shù)據(jù)集1675張圖像(共七種蘑菇)進行分類識別,預處理后圖像尺寸為224×224×3。
數(shù)據(jù)集劃分為訓練集、驗證集、測試集,比例為6:2:2。訓練集、驗證集、測試集中的圖片均為隨機選擇,用于并交叉驗證,以提高結果的可信度。
使用ShuffleNetV2進行實驗訓練,實驗過程設置80個迭代周期,學習率設置為0.001,學習率衰減設置為階梯形衰減,最后采用分類交叉熵損失函數(shù)。
實驗步驟具體包括:
(1)對原始數(shù)據(jù)集1675張圖片七種蘑菇進行數(shù)據(jù)增強和數(shù)據(jù)預處理,數(shù)據(jù)擴增至8375張,其中訓練集為5007張,驗證集1669張,測試集1669張。
(2)搭建和配置PaddlePaddle實驗環(huán)境,搭建并實現(xiàn)ShuffleNetV2網(wǎng)絡模型。
(3)設定相關參數(shù),將訓練集(圖6)喂入神經(jīng)網(wǎng)絡進行訓練,獲得訓練集的損失Loss和準確率Acc(圖2、圖3);每次迭代訓練結束后喂入驗證集,獲得模型在驗證集上的準確率Acc(圖4)。每批訓練網(wǎng)絡參數(shù)根據(jù)損失進行更新,并得到最后一層全連接參數(shù)如圖5所示。其中,第一層卷積層的特征圖如圖7所示。當訓練結束,將模型在測試集上測試,獲得最終模型的Top-1和Top-5準確率。
(4)選取ANN、LeNet-5、VGGNet-16,AlexNet模型分別使用的訓練參數(shù)和相同數(shù)據(jù)集進行實驗,分別得出Top-1和Top-5準確率作為對比,得出實驗結論。
4.3? ?實驗結果
經(jīng)過實驗對比ANN、LeNet-5、VGGNet-16、AlexNet和輕量級ShuffleNetV2的訓練和驗證效果如圖8和圖9??梢钥闯鯯huffleNetV2在整個訓練過程中都表現(xiàn)出比較好的效果,在訓練集和驗證集上的準確率上實現(xiàn)了最優(yōu)效果。
由于蘑菇生長在野外,其圖像特征較多,背景和圖像采集的情況復雜,故蘑菇圖像分類識別較為困難。本文使用的ShuffleNetV2模型在蘑菇分類的準確率有較優(yōu)的效果,能夠解決一定的蘑菇分類識別問題。與其他神經(jīng)網(wǎng)絡相比,ShuffleNetV2擁有較小的參數(shù)量、較快的運行速度,無論是將ShuffleNetV2運用在移動設備還是進行嵌入式開發(fā),都較其他神經(jīng)網(wǎng)絡擁有更好的性能,更適用于野外進行蘑菇分類任務。
本文的數(shù)據(jù)集還可以進一步擴充,特別對不同特征、不同場景、不同拍攝情況下對圖像進行擴充,還可以使用更多對數(shù)據(jù)增強方法擴充數(shù)據(jù)集,進一步擴大模型使用范圍和提高模型性能。本文的實驗使用線上平臺的GPU進行訓練,未來還能對訓練設備和方法等進行提升,提高模型訓練效率。實驗中還可以優(yōu)化更多的參數(shù),以獲得精度更高的模型,從而形成可以投入實際應用的蘑菇圖像分類器。本文模型再結合移動設備和嵌入式開發(fā),可以在野外實現(xiàn)蘑菇自動識別,具有重要的意義和應用價值。
5? ?結論(Conclusion)
本文使用輕量級卷積神經(jīng)網(wǎng)絡對野外復雜環(huán)境下的蘑菇圖像進行了分類,能夠在一定程度上解決蘑菇圖像分類困難的問題。通過在本文構建的蘑菇圖像數(shù)據(jù)集上的實驗,ShuffleNetV2能夠提取蘑菇圖像特征,實現(xiàn)蘑菇圖像的分類識別。綜合對比ANN、LeNet-5、VGGNet-16、AlexNet和ShuffleNetV2的實驗結果,ShuffleNetV2的Top-1和Top-5準確率最高(分別為55.18%和93.55%),訓練速度、收斂速度和測試速度最快。同時,ShuffleNetV2參數(shù)量小、運行速度快的優(yōu)點,讓其更適用于野外蘑菇分類任務,若結合移動設備和嵌入式開發(fā),將能夠用于自然環(huán)境下野生菌的自動分類。總之,基于深度學習的蘑菇圖像分類方法為未來為蘑菇產(chǎn)業(yè)智能化和自動化提供了新思路。
參考文獻(References)
[1] 白宏芬,楊彝華.論菌文化在楚雄州野生食用菌產(chǎn)業(yè)中的影響[J].中國食用菌,2017,36(02):1-4.
[2] Fang Wu, Li-Wei Zhou, Zhu-Liang Yang, et al. Resource diversity of Chinese macrofungi: edible, medicinal and poisonous species[J]. Fungal Diversity, 2019(98): 1-76.
[3] 江凱,熬亞平,羅海波,等.1999—2015年全國食物中毒情況分析[J].安徽農(nóng)業(yè)科學,2018,46(28):147-150;154.
[4] 陳興,侯天文,李瑋,等.我國急性中毒流行病學現(xiàn)狀分析[J].醫(yī)學綜述,2008,14(15):2374-2376.
[5] 趙江,湯欽嵐,閔向東,等.2010-2018年云南省毒蕈中毒事件分析[J].首都公共衛(wèi)生,2019,13(06):280-282.
[6] 朱元珍,張輝仁,祝英,等.古今毒蘑菇識別方法評價[J].甘肅科學學報,2008,20(04):40-44.
[7] 劉斌,張振東,張婷婷.基于貝葉斯分類的毒蘑菇識別[J].軟件導刊,2015,14(11):60-62.
[8] 龐鳳麗.基于Android的毒蘑菇識別系統(tǒng)研究與設計[D].內(nèi)蒙古工業(yè)大學,2019.
[9] Qingguo Xiao, Guangyao Li, Li Xie, et al. Real-world plant species identification based on deep convolutional neural networks and visual attention[J]. Ecological Informatics, 2018(48): 117-124.
[10] Mads Dyrmann, Henrik Karstoft, Henrik Skov Midtiby. Plant species classification using deep convolutional neural network[J]. Biosystems Engineering, 2016(151): 72-80.
[11] Youxiang Zhu, Weiming Sun, Xiangying Cao, et al. TA-CNN: Two-way attention models in deep convolutional neural network for plant recognition[J]. Neurocomputing, 2019, 365(6): 191-200.
[12] Kamlesh Golhani, Siva K Balasundram, Ganesan Vadamalai, et al. A review of neural networks in plant disease detection using hyperspectral data[J]. Information Processing in Agriculture, 2018, 5(3): 354-371.
[13] 羅宏波,曾海歐,周蘇娟,等.基于水平集復雜背景下毒蘑菇圖像的提取[J].自動化與信息工程,2015,36(02):27-29.
[14] 盧丹,王麗麗,鄭紀業(yè),等.基于圖像處理的雙孢蘑菇分級方法研究[J].山東農(nóng)業(yè)科學,2017,49(10):126-130.
[15] 袁興,王德勝,朱云霞,等.高端蘑菇智能圖像識別無損傷采摘系統(tǒng)的研究[J].科技創(chuàng)新導報,2018,15(17):93-95.
[16] 楊永強.基于機器視覺的蘑菇自動采摘系統(tǒng)關鍵技術研究[D].南京航空航天大學,2019.
[17] 白云,袁興,聞平.基于圖像軟件系統(tǒng)的蘑菇精準識別定位系統(tǒng)的研究[J].科技創(chuàng)新導報,2019,16(02):155-156.
[18] 于躍.基于卷積神經(jīng)網(wǎng)絡的平菇圖像識別研究[D].吉林農(nóng)業(yè)大學,2018.
[19] 鄧春英,康超,向準,等.貴州省毒蘑菇資源名錄[J].貴州科學,2018,36(05):24-30.
[20] 鄭遠攀,李廣陽,李曄.深度學習在圖像識別中的應用研究綜述[J].計算機工程與應用,2019,55(12):20-36.