• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Xception與ResNet50模型的蘑菇分類方法

      2020-08-13 10:02:58沈若蘭黃英來
      黑河學(xué)院學(xué)報 2020年7期
      關(guān)鍵詞:蘑菇卷積函數(shù)

      沈若蘭 黃英來 溫 馨 張 嵐

      (東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,黑龍江 哈爾濱 150040)

      蘑菇產(chǎn)業(yè)是中國農(nóng)業(yè)部門發(fā)展最快的產(chǎn)業(yè)之一,其也作為一種食用食材,在許多農(nóng)業(yè)大省都處于較高的地位[1]。同時,我國存在許多種類的毒蘑菇,誤食會很危險。當(dāng)人們遇見未知的蘑菇時,傳統(tǒng)方法為將蘑菇外在信息在瀏覽器窗口進(jìn)行查詢,其搜索結(jié)果依賴于描述者的文本信息,具有較強(qiáng)的主觀性。隨著科技的發(fā)展,人們可以通過圖片上傳,從而識別圖像種類,在傳統(tǒng)的識別方法中常用為,先除去背景多余信息再進(jìn)行特征提取與模型訓(xùn)練[2]。此方法的模型泛化能力較差且受多種客觀因素影響。

      近年來,深度學(xué)習(xí)方法得到不斷發(fā)展,在圖像識別、語音處理等領(lǐng)域都取得了許多進(jìn)展,許多相關(guān)研究工作也隨之展開。同時,目前許多現(xiàn)有的智能識別方法僅停留在實(shí)驗(yàn)階段,缺乏與用戶進(jìn)行交互的應(yīng)用設(shè)計(jì),但隨著識別技術(shù)與智能交互技術(shù)更加廣泛的發(fā)展,智能識別技術(shù)將逐漸走出實(shí)驗(yàn)室,應(yīng)用于生活實(shí)踐[3]。

      本文以搭建蘑菇識別APP平臺為主要展現(xiàn)形式,基于深度學(xué)習(xí)模型的遷移學(xué)習(xí)為主要訓(xùn)練方法,對蘑菇圖像進(jìn)行識別與分類,并返回相關(guān)信息。

      1 神經(jīng)網(wǎng)絡(luò)及其經(jīng)典模型

      1.1 基于深度學(xué)習(xí)的遷移學(xué)習(xí)

      深度學(xué)習(xí)由Hinton[4]等人在2006年提出,其通過對樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次進(jìn)行學(xué)習(xí)信息,并通過此信息進(jìn)行圖像分類、語音識別等任務(wù),是一種復(fù)雜的機(jī)器學(xué)習(xí)算法。其具備許多不同的學(xué)習(xí)模型,如卷積神經(jīng)網(wǎng)絡(luò)CNN,是一種經(jīng)過不斷優(yōu)化且發(fā)展深入的學(xué)習(xí)模型,通過對其結(jié)構(gòu)的不斷改進(jìn),使其更加適用于圖像識別與分類方向。

      由于樣本量較少,本文采用遷移學(xué)習(xí)[5]的方法進(jìn)行實(shí)驗(yàn)。其主要為利用前人在基于大規(guī)模數(shù)據(jù)集ImageNet上,通過消耗大量時間計(jì)算成本設(shè)計(jì)出現(xiàn)了許多驗(yàn)證集準(zhǔn)確率高的經(jīng)典網(wǎng)絡(luò),并可利用其基本參數(shù)進(jìn)行模型的參數(shù)初始化代替隨機(jī)初始化,減少實(shí)驗(yàn)時間。遷移學(xué)習(xí)方法可行性高且模型泛型能力強(qiáng)是由于模型低層CNN主要學(xué)習(xí)低級的邊緣和顏色信息特征,此基礎(chǔ)特征信息在圖像分類任務(wù)中提取順序不變,其后CNN主要學(xué)習(xí)的則是圖像特定的高層特征[6]。

      本文借鑒其參數(shù)與模型結(jié)構(gòu),發(fā)揮利用在本蘑菇識別的實(shí)驗(yàn)中,以達(dá)到更快、更高的識別能力。

      1.2 ResNet50與Xception模型

      本文實(shí)驗(yàn)采用ResNet50與Xception模型作為實(shí)驗(yàn)?zāi)P停M(jìn)行蘑菇圖像處理和模型訓(xùn)練。

      1.2.1 ResNet50模型

      ResNet50模型[7]為深度殘差模型,其于2015年被提出,并在檢測、分割、識別等多個領(lǐng)域取得優(yōu)績。其出現(xiàn)在于解決隨著網(wǎng)絡(luò)加深,訓(xùn)練集準(zhǔn)確率下降的問題,同時具有易于優(yōu)化、計(jì)算量小等特點(diǎn)。

      ResNet50包含了49個卷積層和一個全連接層,其中主要包含兩種模塊:一種為Identity模塊,一種為Conv模塊。Identity模塊其輸入輸出維度不變,其經(jīng)常用于串聯(lián)多個模型,Conv模塊為添加維度的殘差塊,其輸入輸出維度不同,其主要功能為改變特征向量維度,每一個殘差塊都包含三個卷積層。ResNet模型采用Shortcut Connection跨層連接傳遞的方式。其殘差連接模塊如圖1所示。

      圖1 ResNet50基本模塊

      此連接可以將經(jīng)過卷積處理后的特征與輸入特征進(jìn)行合并,而不會增加參數(shù)和計(jì)算復(fù)雜度,同時將底層網(wǎng)絡(luò)訓(xùn)練更加充分,使其達(dá)到網(wǎng)絡(luò)深度增加,精確率也不斷提升的作用。其中的1×1卷積層被稱為瓶頸層,采用1×1卷積層首先進(jìn)行降維,再通過其卷積進(jìn)行維度的恢復(fù),降低計(jì)算種的參數(shù)量。

      如圖2所示的模塊連接過程中,添加了關(guān)于x的恒等映射,函數(shù)關(guān)系為F(x)=H(x)-x,其中H(x)為殘差網(wǎng)絡(luò)的輸出,F(xiàn)(x)為經(jīng)過中間卷積處理的輸出。此函數(shù)在模型梯度消失時,可以使原輸入恒等映射輸出,相當(dāng)于輸入特征復(fù)制轉(zhuǎn)移的過程,通過此處理可以使模型結(jié)果不會受到梯度消失的不良影響。

      圖2 ResNet50函數(shù)映射

      1.2.2 Xception模型

      Xception模型是在InceptionV3模型上進(jìn)行的改進(jìn)模型,Chollet F[8]提出一種新的深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用深度可分卷積替代Inception模塊,稱為Xception。組成主要由殘差網(wǎng)絡(luò)與深度可分離卷積組成。Xception包含36個卷積層,分為14塊,中間12塊都包含線性殘差連接。同時,模型參照深度可分卷積[9]的特點(diǎn),對輸入數(shù)據(jù)的每一個通道獨(dú)立進(jìn)行空間逐層卷積,再對其結(jié)果進(jìn)行逐點(diǎn)卷積。

      如圖3所示的Xception模型結(jié)構(gòu)介于普通卷積與以上可分卷積之間,第一步通過1×1卷積進(jìn)行通道分離,第二步獨(dú)立繪制每個輸出通道的空間相關(guān)性,用3×3單獨(dú)處理,最后合并。

      圖3 Xception基本模塊

      2 實(shí)驗(yàn)與結(jié)果分析

      2.1 實(shí)驗(yàn)數(shù)據(jù)與預(yù)處理

      實(shí)驗(yàn)過程硬件方面為64位windows操作系統(tǒng),GPU為1 080Ti。軟件方面:使用jupyter notebook作為開發(fā)平臺,采用python3.7進(jìn)行編寫設(shè)計(jì),選擇keras與pytorch框架作為程序框架。

      實(shí)驗(yàn)結(jié)果采用驗(yàn)證集精度和Top1精確率作為結(jié)果評判標(biāo)準(zhǔn)。其中Top1精度為識別結(jié)果與標(biāo)簽相同的準(zhǔn)確率。

      2.2 實(shí)驗(yàn)數(shù)據(jù)與預(yù)處理

      本文數(shù)據(jù)集來源于Kaggle中,采集了共6 714張蘑菇圖像。實(shí)驗(yàn)數(shù)據(jù)集總共包含九類蘑菇,包括菌類有落葉松蕈,傘形毒菌, 牛肝菌屬, 阿美尼亞絲膜菌, 肉色粉褶蕈, 緋紅濕傘, 乳菇, 紅菇, 乳牛肝菌。

      實(shí)驗(yàn)對數(shù)據(jù)集以4:1的比例進(jìn)行訓(xùn)練集(80%)和驗(yàn)證集(20%)的分割,所分訓(xùn)練集數(shù)量為5 367張,驗(yàn)證集數(shù)據(jù)集為1 347張。每一種蘑菇的樣本圖例如圖4所示。

      圖4 九類蘑菇圖像數(shù)據(jù)

      對蘑菇數(shù)據(jù)集圖像進(jìn)行數(shù)據(jù)增強(qiáng)處理,通過平移、分割等圖像預(yù)處理,增加數(shù)據(jù)集樣本的數(shù)量,減少由于實(shí)驗(yàn)樣本過少所引起的過擬合現(xiàn)象。同時,將數(shù)據(jù)集圖像統(tǒng)一整理輸入大小為224×224,規(guī)范模型輸入,對圖像數(shù)據(jù)進(jìn)行隨機(jī)打亂順序處理。

      2.3 初步模型實(shí)驗(yàn)

      由于卷積神經(jīng)網(wǎng)絡(luò)需要大量樣本進(jìn)行實(shí)驗(yàn),而本文采用的是小樣本,為了解決樣本量過少對模型訓(xùn)練結(jié)果造成的影響,實(shí)驗(yàn)引入遷移學(xué)習(xí)進(jìn)行訓(xùn)練。實(shí)驗(yàn)采用的模型為Xception模型和ResNet50模型,并利用此模型預(yù)訓(xùn)練參數(shù)作為模型初始參數(shù)進(jìn)行實(shí)驗(yàn)。以下為初步對模型進(jìn)行的實(shí)驗(yàn)處理過程。

      (1)建立BatchNormalization,對模型輸出進(jìn)行歸一化處理,即將一批不標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行統(tǒng)一處理,將特征值標(biāo)準(zhǔn)正態(tài)化,落入對于Relu函數(shù)變化敏感的區(qū)間,從而達(dá)到避免梯度消失、收斂更快的目的。

      (2)分別建立神經(jīng)元個數(shù)為256和128的全連接層,激活函數(shù)為Relu函數(shù),并再次進(jìn)行BatchNormalization處理。

      (3)搭建分類層,激活函數(shù)為Softmax函數(shù),設(shè)輸出神經(jīng)元個數(shù)為9。

      (4)編譯時將迭代輪次設(shè)置為40次,steps_per_epoch為16,訓(xùn)練中設(shè)定初始學(xué)習(xí)率為0.001,設(shè)定最小學(xué)習(xí)率為1e-8,優(yōu)化器選為sgd。

      以上步驟與參數(shù)條件下,實(shí)驗(yàn)結(jié)果如表1所示。

      表1 實(shí)驗(yàn)一結(jié)果

      在此種參數(shù)條件下,ResNet50模型訓(xùn)練結(jié)果較差,驗(yàn)證集精確度低于Xception模型約18%。

      2.4 模型調(diào)整實(shí)驗(yàn)

      在此步主要對兩模型的參數(shù)和結(jié)構(gòu)進(jìn)行調(diào)整,進(jìn)行下一步實(shí)驗(yàn),進(jìn)一步提高驗(yàn)證集精確率。

      (1)對兩類經(jīng)典模型原最后全連接層進(jìn)行層內(nèi)參數(shù)修改,將輸出參數(shù)修改為9。

      (2)損失函數(shù)為CrossEntropyLoss交叉熵函數(shù)。此函數(shù)將九類輸入數(shù)據(jù)進(jìn)行sigmoid函數(shù)處理,將輸入映射到[0,1]區(qū)間,輸入數(shù)據(jù)越大則標(biāo)簽屬于1的概率就越大,并通過增加負(fù)log對數(shù)求和處理轉(zhuǎn)化為多類別概率輸出。

      (3)添加Dropout處理,減少過擬合現(xiàn)象。將舍棄率設(shè)為50%,即該全連接層神經(jīng)元在每次迭代訓(xùn)練時有50%的可能性被隨機(jī)丟棄不參與訓(xùn)練,極大減少了參數(shù)的數(shù)量。

      (4)模型編譯時,將momentum動量參數(shù)設(shè)定為0.9,采用余弦退火函數(shù)CosineAnnealingLR調(diào)整學(xué)習(xí)率,學(xué)習(xí)率呈余弦函數(shù)型衰減,其變化和epoch的大小相匹配。設(shè)置實(shí)驗(yàn)迭代輪次為100次,綜合實(shí)驗(yàn)GPU 條件,將batch_size批次樣本數(shù)設(shè)為64。

      (5)調(diào)整模型微參數(shù),將初始學(xué)習(xí)率設(shè)為0.001,優(yōu)化器調(diào)整為Adam,在實(shí)驗(yàn)過程中函數(shù)對參數(shù)進(jìn)行自動調(diào)整。

      以上步驟的實(shí)驗(yàn)結(jié)果如表2和圖5所示。

      表2 實(shí)驗(yàn)二結(jié)果

      通過此實(shí)驗(yàn),可以看出Xception模型比ResNet50模型Top1精確率高約2%。由此得出,對于此細(xì)顆粒蘑菇圖像數(shù)據(jù)集Xception模型比ResNet50模型在圖像分類任務(wù)上更適合。同時Xception模型收斂也相對更快,其損失函數(shù)下降趨勢相對快且平穩(wěn),在20輪次時下降達(dá)到0.30。而ResNet50在接近60輪次時,損失曲線趨勢才相對平穩(wěn),下降達(dá)到0.31。

      圖5 Xception&ResNet50實(shí)驗(yàn)數(shù)據(jù)

      實(shí)驗(yàn)繪制了對于微調(diào)整后的Xception模型驗(yàn)證集圖像預(yù)測的混淆矩陣,結(jié)果如圖6所示。

      可以從混淆矩陣清晰看出第四類蘑菇檢測結(jié)果相對偏低,得知其對應(yīng)數(shù)據(jù)集量偏少,同時數(shù)據(jù)集需要進(jìn)行一定的調(diào)整,其蘑菇顏色等信息與其他蘑菇具有一定的相似性。同時具有較高識別率的第五類中有兩張圖片被識別為第六類,第二中有兩張被識別為第一類,兩張被識別為第七類,有三張被識別為第八類。從圖6也可以看出,對于蘑菇驗(yàn)證集各類蘑菇種類之間的相似類別,以及本模型具有較高識別準(zhǔn)確率。

      圖6 X c e p t i o n混淆矩陣

      Xception模型對于九類蘑菇圖像的識別時間如表3所示。根據(jù)結(jié)果顯示,除第一類蘑菇第一張識別速度較慢以外,其他八類蘑菇第一張圖像平均識別時間為0.013s完成圖像預(yù)測??傮w蘑菇圖像平均識別時間為0.013s左右,體現(xiàn)了通過遷移學(xué)習(xí)并進(jìn)行微調(diào)的Xception模型具有較快的圖像識別預(yù)測速度。

      表3 九類蘑菇圖像識別時間

      3 系統(tǒng)實(shí)現(xiàn)

      3.1 系統(tǒng)概述

      隨著安卓系統(tǒng)手機(jī)的普及與發(fā)展,市場與各研究中出現(xiàn)了許多基于圖像識別功能的系統(tǒng)設(shè)計(jì)研發(fā)[10]。但菌類識別軟件缺乏,本文將從此角度設(shè)計(jì)蘑菇識別系統(tǒng),并以APP形式展現(xiàn)。

      總體設(shè)計(jì)目標(biāo)為用戶通過拍照或者上傳本地蘑菇圖片,上傳到后臺深度學(xué)習(xí)平臺,后臺返回相應(yīng)蘑菇品種及對應(yīng)知識,同時APP提供給軟件用戶,即蘑菇學(xué)習(xí)者一個便捷的交流平臺。

      蘑菇分類整體系統(tǒng)框架如圖7所示。

      圖7 系統(tǒng)整體框架

      3.2 APP界面設(shè)計(jì)及識別

      Android客戶端的應(yīng)用程序在Window10平臺下基于Visual Studio code + Android Studio開發(fā)環(huán)境中進(jìn)行開發(fā),通過Android Studio生成.apk文件,安裝設(shè)備為安卓系統(tǒng)手機(jī)。

      客戶端界面設(shè)計(jì)使用Flutter框架與Andriod Studio布局管理器進(jìn)行頁面搭建,并與服務(wù)器端進(jìn)行交互,APP設(shè)計(jì)界面如圖8所示。APP系統(tǒng)后端采用JAVA語言編程實(shí)現(xiàn),連接深度學(xué)習(xí)平臺并與蘑菇數(shù)據(jù)庫聯(lián)系調(diào)用相關(guān)種類信息。

      圖8 APP界面顯示圖

      4 結(jié)語

      本文提出了將蘑菇圖像分類與兩種經(jīng)典預(yù)訓(xùn)練模型進(jìn)行遷移學(xué)習(xí)的實(shí)驗(yàn)設(shè)計(jì),同時設(shè)計(jì)了對應(yīng)蘑菇識別APP系統(tǒng),提供了更便捷、快速的識別方式,目的是解決生活中蘑菇識別應(yīng)用軟件缺乏與訓(xùn)練模型時間成本較大的問題。實(shí)驗(yàn)中,由于樣本量不足,采用了在ImageNet大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練的模型網(wǎng)絡(luò)及其參數(shù)進(jìn)行初始化,在原有模型上修改全連接分類層。實(shí)驗(yàn)首先通過對Xception與ResNet50模型進(jìn)行遷移測試實(shí)驗(yàn),得到ResNet50模型與Xception模型精度分別為72.17%、90.33%的實(shí)驗(yàn)結(jié)果。再對兩種模型同時進(jìn)行調(diào)整微參數(shù)實(shí)驗(yàn),兩種模型精確率都有所提升,ResNet50模型精確率提升約21.29%,Xception模型提升約4.77%。由此可以得出,Xception模型比ResNet50模型更適合于細(xì)顆粒蘑菇數(shù)據(jù)集的圖像識別任務(wù),同時體現(xiàn)出遷移學(xué)習(xí)方法對圖像分類任務(wù)具有泛化能力強(qiáng)、簡化模型訓(xùn)練的特點(diǎn),同時可以有效減少實(shí)驗(yàn)時間,在短時間內(nèi)提高實(shí)驗(yàn)效果,為計(jì)算機(jī)輔助識別蘑菇圖像進(jìn)行分類處理提供可行性實(shí)驗(yàn)論證。

      猜你喜歡
      蘑菇卷積函數(shù)
      二次函數(shù)
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      第3講 “函數(shù)”復(fù)習(xí)精講
      二次函數(shù)
      函數(shù)備考精講
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      爆圖團(tuán)
      婦女之友(2016年9期)2016-11-07 19:39:58
      蘑菇
      蘑菇傘
      南开区| 红河县| 新泰市| 讷河市| 外汇| 嫩江县| 株洲县| 马关县| 肃北| 惠来县| 黄龙县| 龙陵县| 吉安县| 广丰县| 梓潼县| 博白县| 建德市| 辉南县| 娄烦县| 无极县| 长白| 桃园县| 察隅县| 荆门市| 石台县| 鸡西市| 呼图壁县| 赫章县| 宝丰县| 绥滨县| 民乐县| 惠安县| 岳阳县| 舞钢市| 威信县| 望奎县| 册亨县| 临海市| 祁东县| 唐海县| 鄯善县|