基于深度學習VGG模型的花卉分類方法設計_第1頁
基于深度學習VGG模型的花卉分類方法設計_第2頁
基于深度學習VGG模型的花卉分類方法設計_第3頁
基于深度學習VGG模型的花卉分類方法設計_第4頁
基于深度學習VGG模型的花卉分類方法設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

湖南商務職業技術學院畢業設計

目錄

1引言..............................................................1

1.1項目背景...................................................1

1.2開發環境與工具.............................................1

1.2.1Python簡介.............................................1

1.2.2Anaconda實現步驟.......................................2

1.2.3Pycharm簡介............................................2

1.2.4Python第三方庫實現.....................................2

2需求分析..........................................................3

2.1可行性需求分析.............................................3

2.2數據集采集功能分析.........................................4

2.2.1數據集簡介.............................................4

2.2.2數據集特點.............................................5

2.3關鍵技術分析...............................................6

2.3.1數據采集技術...........................................6

2.3.2VGG網絡................................................7

2.3.3數據集可視化技術.......................................7

2.3.4卷積神經網絡...........................................8

3數據采集..........................................................9

3.1數據集需求分析.............................................9

3.2數據集獲取分析............................................10

3.3編程實現..................................................10

4數據集處理.......................................................11

4.1數據預處理................................................11

4.2數據增強..................................................12

4.3訓練集、驗證集和測試集的劃分..............................13

5模型構建及評估分析...............................................14

5.1模型構建..................................................14

I

湖南商務職業技術學院畢業設計

5.1.1模型網絡結構..........................................14

5.2模型編譯..................................................15

5.2.1優化器設置............................................15

5.2.2損失函數設置..........................................16

5.3模型訓練與調優............................................16

5.3.1模型訓練設置..........................................16

5.3.2學習率調優............................................17

5.3.3batch_size設置........................................18

5.3.4保留訓練權重..........................................18

5.4模型部署..................................................18

5.4.1系統前端設置..........................................18

5.4.2系統效果展示及分析....................................19

6小結.............................................................21

參考資料............................................................23

II

湖南商務職業技術學院畢業設計

基于深度學習VGG模型的花卉分類方法設計

1引言

植物分類是植物科學領域至關重要的基礎性工作,具有深刻的意義,其主

要通過觀察植物的葉、花、果實等外觀特征,從而對植物進行不同的分類?;?/p>

卉分類作為植物分類學中不可或缺的關鍵部分,其分類結果對于植物發現更是

起著至關重要的作用?,F如今,人工智能等技術的快速發展,使得人們對于花

卉圖像的獲取越來越簡單和便捷,只需要利用手機、相機等移動設備便可以輕

松獲取各類花卉圖像,但多數人都無法對獲取的花卉圖像種類進行準確地辨別。

與此同時,由于花卉分布范圍廣、不同種類間差異性小,往往需要專業人士對

花卉進行精確的分類,造成大量的人力損耗。因此,我們需要借助現代科技來

對花卉圖像進行分類識別,解決傳統的人工圖像分類方法所帶來的問題。

1.1項目背景

建立圖像識別技術的需求:隨著互聯網和智能終端的普及,圖像識別技術

在各個領域愈發重要,特別是在電商和個性化推薦等領域,識別花卉圖像,實

現對花卉的自動分類和標注,可以為用戶提供更加智能化便捷的體驗。

VGG模型的優勢:VGG模型是深度學習中的一種經典卷積神經網絡,其具

有深度和卷積思想,在圖像識別領域表現良好。VGG模型在ImageNet圖像識別

競賽中取得了很好的成績,因此在花卉識別領域的應用也備受關注。

傳統的花卉分類方法的不足:傳統的花卉分類方法通常需要人工提取特征,

且分類效果受到特征的選擇和手工設計的局限,而且工作量大、效率低,無法

滿足大規模圖像分類的需求。

綜上所述,基于VGG模型的花卉分類方法項目的開發,無疑是符合當前時

代需求,解決了傳統標注花卉分類方法的局限,并且可以為用戶提供更加智能

化便捷的體驗。

1.2開發環境與工具

1.2.1Python簡介

Python由荷蘭數學和計算機科學學會的吉多·范羅蘇姆于1990年代初設

計,作為一門叫做ABC語言的替代品。提供了高效的高級數據結構,還能簡單

1

湖南商務職業技術學院畢業設計

有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它

成為多數平臺上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語

言新功能的添加,逐漸被用于獨立的、大型項目的開發。

Python解釋器易于擴展,可以使用C語言或C++(或者其他可以通過C調

用的語言)擴展新的功能和數據類型。Python也可用于可定制化軟件中的擴展

程序語言。Python豐富的標準庫,提供了適用于各個主要系統平臺的源碼或機

器碼。

1.2.2Anaconda實現步驟

Anaconda,中文大蟒蛇,是一個開源的Anaconda是專注于數據分析的

Python發行版本,包含了conda、Python等190多個科學包及其依賴項。

Anaconda就是可以便捷獲取包且對包能夠進行管理,包括了python和很多

常見的軟件庫和一個包管理器conda。常見的科學計算類的庫都包含在里面了,

使得安裝比常規python安裝要容易,同時對環境可以統一管理的發行版本。

1.2.3Pycharm簡介

PyCharm是一種集成開發環境(IDE),專門用于Python開發。它由JetBrains

公司開發,提供了豐富的功能和工具,如代碼智能提示、自動補全、調試器、

版本控制等,可以幫助開發者更高效地開發Python應用程序。PyCharm有兩個

版本,分別是社區版和專業版。社區版是免費的,專業版則需要付費購買,并

提供更多高級功能。

1.2.4Python第三方庫實現

Scipy:數學、科學和工程計算功能庫,提供了一些數學算法及工程數據運

算功能;類似Matlab。

Seaborn:統計類數據可視化功能庫,主要展示數據間分布、分類和線性關

系等內容。

Dash:是一個比較新的軟件包,是用純Python構建數據可視化app的理想選

擇,所以特別適合任何處理數據的人。Dash是Flask、Plotly.js和React.js的混合。

BeautifulSoup:HTML和XML的解析庫,可以對HTML、XML格式進行

解析,從中提取相關信息;還可以對所提供的任何格式進行相關的數據爬取,

而且對它進行樹形解析。

NumPy庫是Python數據分析的基礎,是處理數組的Python庫,NumPy庫

2

湖南商務職業技術學院畢業設計

的數據結構比Python自帶的更加高效。

pandas:數據分析并保存為csv文件,python數據分析高層次應用庫,還可

以進行數據清洗。

matplotlib:高質量的二維數據可視化功能庫,超過100種數據可視化展示

效果;通過matplotlib.pyplot子庫調用各可視化效果。

pyecharts:繪圖。

Python擁有豐富的第三方庫生態系統,給開發者帶來了極大的便利。

2需求分析

2.1可行性需求分析

1.技術可行性

PyCharm是一款非常流行的Python集成開發環境(IDE),它具有許多功

能和工具,可以幫助Python開發人員更高效地編寫、調試和測試代碼。PyCharm

支持許多Python框架和庫,包括Django、Flask、Pyramid等,可以更輕松地開

發Web應用程序、數據分析和科學計算等各種應用。此外,PyCharm還提供了

許多有用的功能,如代碼自動完成、語法檢查、版本控制、調試器等,這些功

能可以幫助您更快速地開發Python項目。

使用VGG模型進行花卉分類是非??尚械募夹g。VGG模型是一個深度卷

積神經網絡,其在ImageNet數據集上取得了很好的效果,并在計算機視覺領域

得到廣泛應用。該網絡由多個卷積層和池化層組成,可以提取圖像特征,并將

其傳遞給全連接層進行分類。

對于花卉分類任務,可以使用VGG模型對花卉圖像進行訓練,并使用預訓

練的VGG模型作為特征提取器,然后將提取的特征輸入到一個分類器中進行分

類。此外,還可以通過微調預訓練的VGG模型,使其在花卉分類任務中表現更

好。

總之,使用VGG模型進行花卉分類是非常可行的技術,可以通過合理的訓

練和調整,獲得較好的分類效果。

2.項目可行性

VGG模型已經在大規模圖像識別任務上訓練過,可以提取出圖像的高級特

征。將這些特征輸入到全連接層進行分類,可以得到較好的分類效果。在使用

VGG模型進行花卉分類時,需要有一個足夠大的、包含各種類型花卉的數據集

進行訓練。同時,還需要對模型進行調參和優化,以獲得最佳性能??傊?/p>

3

湖南商務職業技術學院畢業設計

用VGG模型進行花卉分類是可行的。

3.操作可行性

基于VGG模型花卉分類的操作可行性較高,具體內容如下:

(1)數據收集:需要收集大量的花卉圖像數據,并進行標注??梢允褂霉?/p>

開的花卉數據集,如Oxford102FlowerDataset、Flower-17等,也可以自己搜集

數據。

(2)數據預處理:對數據進行預處理,包括圖像縮放、裁剪、歸一化等。

這些操作可以提高模型的訓練效果。

(3)模型選擇和訓練:選擇合適的VGG模型,并使用收集到的數據對模

型進行訓練。在訓練過程中,需要對模型進行充分的調參,以達到最佳的分類

效果。

(4)模型評估和優化:使用測試數據對模型進行評估,并根據評估結果進

行優化。可以使用各種指標來評估模型的性能,如準確率、精確率、召回率等。

(5)部署和應用:將訓練好的模型部署到實際應用中,對新的花卉圖像進

行分類??梢允褂酶鞣N工具和框架來實現部署,如TensorFlowServing、Flask等。

總之,基于VGG模型花卉分類的操作可行性較高,但需要注意數據收集和

預處理、模型選擇和訓練、模型評估和優化等方面的細節,以獲得最佳的分類

效果。

2.2數據集采集功能分析

此次項目的數據集來源于百度和公開的數據集,是通過python在百度搜索

關鍵字“花卉數據集”爬取下載好五類品種的花卉進行分類設計,數據清洗后共

500條記錄,以此盡可能保證數據可靠性。

爬取到這些花卉分類數據集的類別主要有:雛菊、蒲公英、玫瑰、郁金香、

向日葵。此次的主要目的是通過這些數據來分析哪一類花的置信度會更高,這

樣我們能根據需求量大小從而培育更多這類花卉。其次這些數據可以給一些與

花卉商戶提供發展建議與售賣標準。

2.2.1數據集簡介

一般而言,這類數據集應該包括大量的花卉圖像,每張圖像應該有對應的

標簽,即花卉的種類。在訓練模型時,應該將這些圖像隨機分為訓練集、驗證

集和測試集。訓練集用于模型的訓練和參數調整,驗證集用于模型訓練過程中

的驗證和參數選擇,測試集則用于測試模型的準確率。

4

湖南商務職業技術學院畢業設計

2.2.2數據集特點

為了提升模型的分類準確率,一個好的數據集應該具備以下特點:

1.代表性:數據集應該包含多種花卉的種類,并且每個分類應該包含足夠數

量的圖像,以保證模型可以學習到每種花卉的特征。

有5種類型{雛菊蒲公英玫瑰向日葵郁金香}等花,每種類型有600-900

張圖形,如圖2-1示

圖2-1數據集下載類型展示圖

2.一致性:在數據集中,每張圖像應該以相同的方式進行標注,以保證模型

可以正確地識別每個花卉的種類。如圖2-2示:

圖2-2鳶尾種類分辯圖

3.豐富性:數據集應該包含不同分辨率、光照、拍攝角度等因素下的花卉圖

像,以提高模型的魯棒性和泛化能力。如圖2-3、2-4所示

5

湖南商務職業技術學院畢業設計

圖2-3鳶尾數據集圖

圖2-4鳶尾特征分析圖

除此之外,為了確保數據集的質量和減少誤差,應該對數據集進行可視化

和數據清洗,以去除圖像中有缺陷、重復或不清晰的部分。

2.3關鍵技術分析

2.3.1數據采集技術

獲取到花卉分類數據集我們需要用到網絡爬蟲、數據庫、API、數據清洗工

具、數據可視化工具、編程語言、代理服務器、消息隊列。

網絡爬蟲:一種自動化程序,可以從互聯網上抓取數據。

6

湖南商務職業技術學院畢業設計

數據庫:用于存儲和管理采集到的數據。

API:一種接口,可以讓你從其他應用程序或者網站中獲取特定的數據。

數據清洗工具:用于清洗、去重、過濾和轉換數據,以便于分析和使用。

數據可視化工具:用于將數據轉換為可視化圖表和圖形,以便于理解和分

析數據。

編程語言:如Python,用于編寫和運行數據采集程序。

代理服務器:用于隱藏真實IP地址,防止被封禁或者限制訪問。

消息隊列:用于處理大量的異步任務,提高數據采集效率。

2.3.2VGG網絡

早在2014年,在萬眾矚目的ImageNet圖象挑戰賽中,VGG網絡一鳴驚人,

一舉拿下了分類第二名的優秀成績。盡管隨著人工智能的快速發展,VGG網絡很

快就被更多新生代的優越模型所超越,但其穩定的特征提取能力仍然備受學者

關注,使其在當前的實際應用中始終占有一席之地。VGG網絡通過使用多組尺寸

大小為3×3的小卷積,增加網絡深度,提高了其模型的分類準確率,改善了神

經網絡的性能。在實驗中,作者主要采用了六種不同深度的VGG網絡結構進行

測驗,其中VGG16的應用最為廣泛。除了使用小卷積替代大卷積外,VGG網絡結

構還在卷積層之間添加了多個池化層,增大感受野,降低了模型的參數量。并

利用Softmax函數將輸入特征值轉化為0到1的概率數值。VGG網絡結構如圖

2-5所示:

圖2-5VGG16網絡結構

2.3.3數據集可視化技術

爬取花卉分類數據集后,讀取數據集并實習數據集可視化:如圖2-6所示:

圖2-6數據集可視化

7

湖南商務職業技術學院畢業設計

VGG16網絡卷積層前36個通道效果可視化如圖2-7顯示:

圖2-7VGG16網絡卷積層前36個通道效果可視化

2.3.4卷積神經網絡

卷積神經網絡主要由卷積層、池化層和全連接層這三種網絡層組合而成。

1.卷積層

卷積層主要用來提取模型中的圖像特征,在實際生活中,待解決的問題越

復雜,卷積運算的維度越高。在卷積運算中,卷積核是發展的重心,每個卷積

核都承擔著提取特定特征的核心任務。卷積的計算方式如式(2-1):

lll1l

zwab(式2-1)

l1lk

式中zl表示第l層的凈輸入,表示第l1層激活值a和卷積核wR的

l

卷積,卷積核wlRk表示可學習的權重向量,bR表示可學習的偏置。

卷積最獨特的特征是局部連接與權值共享。前一層中的神經元都僅與當前

層中神經元連接,如圖2-1所示,這樣形成的局部連接良好地減少了卷積層間

的連接數,降低了參數量。權值共享則表明卷積核提取特征圖的種類。局部連

接與權值共享相輔相成,一方面減少了卷積神經網絡中冗余的參數量,另一方

面也讓神經網絡具有了平移、縮放等特性。

11111

-10-3011000-2-1

211-10000=224

*

0-112100-1-100

12111

圖2-8二維卷積示例

2.池化層

為了減少卷積神經網絡中存在的過擬合現象,池化層應運而生,通過在兩

個卷積層之間通過添加池化層,對上一個卷積層輸出特征圖做下采樣操作,可

以在降維時保留卷積神經網絡中的重要特征信息,增大感受。

8

湖南商務職業技術學院畢業設計

3數據采集

3.1數據集需求分析

在網站上爬到的花卉數據是通過以下操作獲?。捍蜷_瀏覽器,首先登錄

百度,在搜索欄中輸入關鍵字:花卉種類,花卉分類,花卉識別,工作地點選

擇全國點擊搜索,觀察圖3-1,其中URL為:,然后點擊頁面下方的分頁按鈕,

同時觀察URL,發現URL沒有變化。

圖3-1花卉數據網址頁面

按F12調出開發者工具,刷新頁面,如圖3-2。利用全局搜索工具定位所需

數據位置,點擊開發者工具上面的Headers字段,分析這是個什么請求,發現這

個是一個POST請求,那我們需要尋找它的的fromdata往下翻找,在最后找到

了表單數據FormData。

9

湖南商務職業技術學院畢業設計

圖3-2數據網址Headers字段頁面

3.2數據集獲取分析

定位到我們所需要的數據所在的位置,復制第一個花卉名稱:鳶尾花,調

出全局搜索框搜索,點擊數據預覽Preview,如圖3-3,接下來我們分析它是以

什么形式的數據存放。顯然這是一個json數據。

圖3-3花卉數據集網址分析

3.3編程實現

導入所需庫:

10

湖南商務職業技術學院畢業設計

圖3-4導入所需要的庫

從花卉數據集網站爬取圖片,提取前50頁數據,關鍵詞為“花卉”。同時

導入這些庫,使得我們的程序能夠更好的運行,畫圖工具也能更好幫助我們展

示出效果圖,如圖3-5為花卉數據集中玫瑰(rose)部分花卉展示圖:

圖3-5花卉數據集中玫瑰(rose)部分花卉展示圖

4數據集處理

數據清洗是指發現并改正數據文件中可識別的錯誤的最后一道關卡程序,

包括檢查數據一致性,處理無效值和缺失值等。

數據質量評估重要指標還包括數據處理,數據處理是實現空間數據有序化

的必要過程,是檢驗數據質量的關鍵環節,是實現數據共享的關鍵步驟。

VGG模型花卉分類數據集處理是指將花卉圖片數據集進行預處理和格式轉

換,以便于用于訓練VGG模型進行花卉分類。

4.1數據預處理

由于輸入圖片的尺寸在VGG網絡提取特征時會受到一定的限制,為了提高

VGG模型的訓練速度,需要對數據集中的圖片進行數據預處理操作。針對數據集

中的訓練集,將輸入的花卉圖片先進行鏡像填充,并隨機裁剪成固定尺寸;通

11

湖南商務職業技術學院畢業設計

過對數據集中的訓練集圖片數據隨機左右翻轉,以提高VGG網絡模型泛化能力;

將圖片進行轉換和歸一化,提高VGG網絡收斂速度。針對數據集的測試集,為

了與測試集輸入圖像數據尺寸保持一致,將輸入圖像中心裁剪成固定尺寸,同

時對測試集圖像進行格式轉換和歸一化操作。代碼圖如下:

圖4-1數據預處理代碼圖

4.2數據增強

數據增強:對訓練集進行數據增強操作,例如隨機旋轉、平移、縮放、添

加噪聲等,以增加數據集的豐富性和泛化能力。

一般保存數據的方式有如下幾種:

文件:txt、csv、excel、json等,保存的數據量小。

關系型數據庫:mysql、oracle等,保存的數據量大。

非關系型數據庫:Mongodb、Redis等鍵值對的形式存儲數據,保存的數據

量大。

二進制文件:保存爬取的圖片、視頻、音頻等格式數據。

這里我用to_csv()方法保存清洗后的數據,文件名為data,index=false輸出

12

湖南商務職業技術學院畢業設計

不顯示索引值,編碼方式為gbk,如圖4-2。

圖4-2保存數據代碼圖

以下是基于Vgg模型的花卉分類方法的數據集處理的數據增強代碼,

使用Keras的ImageDataGenerator實現:

在上面的代碼中,ImageDataGenerator類可以實現圖像數據的在線增強,包

括對圖像進行隨機旋轉、水平翻轉、隨機剪切等操作。我們首先定義了訓練數

據和驗證數據的數據生成器,分別對訓練數據和驗證數據進行了圖像增強和縮

放處理,然后定義生成器的批量大小、圖片尺寸和類別類型。最后,我們可以

使用這些生成器來訓練和評估VGG模型。

4.3訓練集、驗證集和測試集的劃分

將數據集隨機分成訓練集、驗證集和測試集。一般來說,對于小規模樣本

集(幾萬量級),常用的分配比例是60%訓練集、20%驗證集、20%測試集。

對于大規模樣本集(百萬級以上),只要驗證集和測試集的數量足夠即可,例

如有100w條數據,那么留1w驗證集,1w測試集即可。1000w的數據,同樣

留1w驗證集和1w測試集。超參數越少,或者超參數很容易調整,那么可以減

少驗證集的比例,更多的分配給訓練集。

對于圖像分類任務,需要將每個類別的樣本數量均勻分配到訓練集、驗證

集和測試集中,以確保各個集合中都包含不同類別的樣本。

對于VGG模型,通常使用ImageNet數據集進行訓練和驗證。在訓練階段,

使用訓練集進行模型訓練,使用驗證集進行模型調參。在測試階段,使用測試

集對模型進行評估。如圖4-3所示。

圖4-3訓練集、驗證集和測試集的劃分代碼

13

湖南商務職業技術學院畢業設計

5模型構建及評估分析

5.1模型構建

為比較不同神經網絡對花卉數據識別率的影響,本篇使用了深度卷積網絡

框架VGG模型進行花卉數據識別。本次主要采用了VGG網絡結構中應用最為

廣泛的VGG16和VGG19。VGG16的輸入為224×224的RGB圖像,輸出為1000

個類別的條件概率,具體結構如下:

第一模塊為兩個3×3的卷積層,輸出深度為64,之后是一個最大池化層。

第二模塊為兩個3×3的卷積層,輸出深度為128,緊跟著一個最大池化層。第三

模塊為兩個3×3的卷積層,輸出深度為256和一個1×1的卷積層,之后是最大

池化層。第四模塊為兩個3×3的卷積層,輸出深度為512和一個1×1的卷積層,

緊跟著為最大池化層。第五模塊為兩個3×3的卷積層,輸出深度為512和一個

1×1的卷積層,緊跟著為最大池化層和三個全連接層,神經元數量分別為4093、

4096和1000,最后還添加了Softmax層進行分類,提高模型的分類能力。如圖5-1

所示:

圖5-1模型構建代碼圖

5.1.1模型網絡結構

VGG模型是一種常用的卷積神經網絡模型,它的核心思想是通過使用多個

小尺寸的卷積核和池化層來構建深度網絡。輸入層:該層接收輸入圖像,并將

其傳遞給下一層。卷積層:該層使用多個卷積核對輸入圖像進行卷積操作,并

生成多個卷積特征圖。每個卷積核的大小為3x3,步長為1,填充為1,激活函

數為ReLU。池化層:該層對卷積特征圖進行下操作,以減小特征圖的尺寸

14

湖南商務職業技術學院畢業設計

每個池化層的大小為2x2,步長為2。卷積層:該層與第2層類似,但使用更多

的卷積核。池化層:該層與第3層類似。卷積層:該層與第2層類似,但使用

更多的卷積核,池化層:該層與第3層類似。卷積層:該層與第2層類似,但

使用更多的卷積核。池化層:該層與第3層類似。卷積層:該層與第2層類似,

但使用更多的卷積核。池化層:該層與第3層類似。全連接層:該層將所有的

卷積特征圖展平,并將其傳遞給一個具有4096個神經元的全連接層。激活函數

為ReLU。Dropout層:該層隨機地將一些神經元的輸出設置為0,以減少過擬

合。全連接層:該層與第12層類似,但具有更少的神經元。Dropout層:該層

與第13層類似。輸出層:該層將最終的輸出傳遞給softmax函數,以進行分類。

如圖5-2所示。

圖5-2模型網絡結構圖

5.2模型編譯

5.2.1優化器設置

SGD(StochasticGradientDescent)或Adam(AdaptiveMomentEstimation)是

通常使用的優化器。

SGD是一種基本的優化器,它在每一次迭代中沿著梯度的方向更新模型參

數。SGD優化器需要設置學習率,學習率決定了每次迭代的步長大小。通常初

始學習率為0.01,隨著迭代次數增加,可以動態地將學習率減小,以增加訓練

的穩定性。

15

湖南商務職業技術學院畢業設計

Adam是一種自適應的優化器,它結合了SGD和Momentum的優點,并且

針對學習率自適應地計算不同參數的權重,以實現更快的收斂和更穩定的訓練。

Adam優化器的默認學習率為0.001。如圖5-3所示。

圖5-3模型優化器設置

5.2.2損失函數設置

基于VGG模型的花卉分類方法通常使用的損失函數是交叉熵損失函數

(CrossEntropyLoss)。

交叉熵損失函數衡量了模型預測與實際標簽之間的差距,并將預測錯誤的

樣本的誤差放大。在花卉分類中,交叉熵損失函數有助于讓模型更好地區分不

同種類的花朵。在訓練過程中,我們通過優化器來最小化交叉熵損失函數,以

使模型的預測結果更加接近真實標簽。

需要注意的是,如果我們使用的是softmax層作為分類器,那么交叉熵損失

函數就可以直接套用。如果我們使用的是sigmoid層作為分類器,那么可以使用

二元交叉熵損失函數。如圖5-4所示。

圖5-4損失函數設置

5.3模型訓練與調優

5.3.1模型訓練設置

在基于VGG模型的花卉分類模型中將訓練集中的樣本輸入到模型中,計算

損失值,然后反向傳播求梯度,再根據梯度更新模型參數。訓練過程中還需要

對模型在驗證集上的性能進行監測,以避免過擬合。訓練的目的是通過不斷調

整模型參數來提高模型的分類準確率,代碼如圖5-5所示:

16

湖南商務職業技術學院畢業設計

圖5-5模型訓練代碼圖

在cmd終端中運行train.py進行訓練,圖5-6是訓練過程中的結果截圖。

圖5-6訓練過程中的結果截圖

5.3.2學習率調優

VGG模型是一種深度卷積神經網絡,它的結構相對簡單,但在很多計算機

視覺任務上表現出色。對于VGG模型的學習率調優,需要考慮以下幾點初始學

習率:初始學習率的選擇很重要,通常建議將初始學習率設置為較小的值,例

如0.001或0.0001,然后再根據實驗結果進行調整。學習率衰減:在訓練過程中,

可以使用學習率衰減技術來逐漸降低學習率常用的學習率衰減方式有余弦退火、

多項式退火等方法。批次大?。号未笮∫矔绊憣W習率的調優效果。通常情

況下,批次大小越大,學習率應該越小,以避免梯度爆炸或梯度消失的問題。

如圖5-7所示。

圖5-7學習率調優代碼

17

湖南商務職業技術學院畢業設計

5.3.3batch_size設置

batch-size中文翻譯是批量大小,所謂的批量是指學習樣本的數量,因為在

訓練模型時需要將樣本圖像全部讀入到內存中,這么做的原因是提升收斂速度。

如圖5-8所示。

圖5-8batch_size設置

5.3.4保留訓練權重

初始化權重,利用for循環,對卷積和池化層分別進行權重初始化,并對偏置

量bias置0,使用VGG網絡訓練cifar-10,保留訓練過程權重。如圖5-9所示:

圖5-9VGG網絡保留訓練權重

5.4模型部署

基于VGG模型的花卉分類系統包括兩部分:前端和后端。前端是用戶交互

界面,后端是處理花卉分類任務的系統。在這里,我們將介紹如何部署基于VGG

模型的花卉分類系統的后端。我們假設您已經訓練好了VGG模型,并且要使用

Python和Django框架來部署后端。

5.4.1系統前端設置

以下是基于VGG模型花卉分類方法的系統前端設置的一些步驟:

1.界面設計:根據應用場景和用戶習慣等因素,設計出符合使用體驗的前

端界面??梢钥紤]采用簡潔、美觀、易用的UI設計風格。

2.輸入方式:考慮用戶輸入分類圖片的方式,可以采用上傳圖片和拍照兩

18

湖南商務職業技術學院畢業設計

種方式。上傳圖片可以采用拖拽上傳或者選擇文件的方式,拍照可以采用調用

攝像頭的方式。

3.圖片處理:采用相關的JS庫或框架對上傳或拍攝的圖片進行處理和預處

理,比如調整圖片大小和質量、裁剪、旋轉等操作,以便于提高模型的準確率。

4.等待動畫:為了提高用戶體驗,可以在模型執行分類任務時,添加等待

動畫,提示用戶正在處理。

5.分類結果:當模型預測完成后,將用戶上傳或拍攝的圖片在前端頁面上

顯示,并顯示相應的分類結果,如花卉名稱和相應的概率。可以通過動態效果,

比如顏色和形狀變化,來吸引用戶的注意力。

6.錯誤提示:為了提高使用體驗,需要在模型預測出錯或上傳的圖片不能

被正確處理時,給出相應的錯誤提示,幫助用戶更好地理解問題和尋找解決方

案。

使用方法:

步驟一:登錄用戶,輸入密碼。

步驟二:隨機從文件夾選取一張花卉圖片。

步驟三:等待識別結果,查看預測值,識別完成,如圖5-10示:

圖5-10系統前端設計圖

5.4.2系統效果展示及分析

在深度學習的二分類算法中,通常采用準確率Acc(Accuracy)、精確率

Pre(Precision)、召回率Re(Recall)和F1(F1-Score)對分類模型預測效果進行評估,

各個指標的具體描述如公式(5-1)-(5-4)所示。

(式5-1)

19

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論