基于深度學習YOLOv5模型的人臉表情分類方法設(shè)計_第1頁
基于深度學習YOLOv5模型的人臉表情分類方法設(shè)計_第2頁
基于深度學習YOLOv5模型的人臉表情分類方法設(shè)計_第3頁
基于深度學習YOLOv5模型的人臉表情分類方法設(shè)計_第4頁
基于深度學習YOLOv5模型的人臉表情分類方法設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

目錄

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

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

1.2Python簡介.................................................................................................2

1.2.1Pytorch簡介....................................................................................2

1.2.2PyCharm簡介....................................................................................2

1.2.3Python第三方庫簡介......................................................................2

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

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

2.2數(shù)據(jù)集采集功能分析..............................................................................3

2.3人臉表情分類關(guān)鍵技術(shù)分析..................................................................4

2.3.1Yolov5網(wǎng)絡(luò)結(jié)構(gòu)的簡介..................................................................4

2.3.2輸入端...............................................................................................4

2.3.3主干網(wǎng)絡(luò)(Backbone)...................................................................5

2.3.4Neck...................................................................................................5

2.3.5輸出端...............................................................................................5

3數(shù)據(jù)采集.................................................................................................................5

3.1數(shù)據(jù)集需求分析......................................................................................5

3.2數(shù)據(jù)集獲取分析......................................................................................6

3.3數(shù)據(jù)集獲取..............................................................................................7

4數(shù)據(jù)集處理.............................................................................................................7

4.1數(shù)據(jù)預(yù)處理..............................................................................................8

4.2讀取訓練集,驗證集與測試集..............................................................8

4.3查看數(shù)據(jù)集大小......................................................................................9

5模型構(gòu)建及評估分析...........................................................................................10

5.1模型構(gòu)建................................................................................................10

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu).................................................................................10

I

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

5.1.2創(chuàng)建模型.........................................................................................11

5.2模型編譯................................................................................................12

5.2.1優(yōu)化器設(shè)置.....................................................................................12

5.2.2損失函數(shù)設(shè)置.................................................................................13

5.2.3模型訓練設(shè)置.................................................................................14

5.2.4學習率調(diào)優(yōu).....................................................................................15

5.2.5batch_size設(shè)置............................................................................15

5.2.6Epoch設(shè)置......................................................................................16

5.3模型部署................................................................................................16

5.3.1系統(tǒng)前端設(shè)計.................................................................................17

5.3.2系統(tǒng)效果展示以及分析.................................................................17

6小結(jié).......................................................................................................................19

參考資料.....................................................................................................................20

II

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

基于深度學習YOLOv5模型的人臉表情分類方法設(shè)計

1引言

隨著人工智能技術(shù)的發(fā)展,人臉表情識別已成為計算機視覺領(lǐng)域的探討熱

點之一。人臉表情分類是指根據(jù)人臉圖像中表情的特征,將其歸為某一類別,

如開心、生氣、驚訝等。該技術(shù)在實際應(yīng)用中有著廣泛的應(yīng)用,如人機交互、

智能客服、情感分析等方面。

傳統(tǒng)的人臉表情分類方法多基于人工特征提取和機器學習算法,存在一定

的局限性。而深度學習模型在人臉表情分類任務(wù)中具有很好的性能,尤其是基

于目標檢測算法的YOLOv5模型,其快速的檢測速度和高精度的表情分類效果,

使其在實際應(yīng)用中具有很大的優(yōu)勢。

本文旨在基于YOLOv5模型的人臉表情分類方法,并針對該方法的特點進行

優(yōu)化。首先,介紹了人臉表情識別技術(shù)的現(xiàn)狀及發(fā)展趨勢。其次,詳細介紹了

YOLOv5模型的結(jié)構(gòu)和原理,并了其在人臉表情分類中的應(yīng)用。最后,對基于

YOLOv5模型的人臉表情分類方法進行實驗驗證,對比傳統(tǒng)方法的性能表現(xiàn),證

明了該方法在表情分類任務(wù)中具有較高的準確率和魯棒性,具有一定的應(yīng)用前

景。

1.1項目背景

人臉表情識別已經(jīng)成為一個備受關(guān)注的方向,人臉表情識別技術(shù)的應(yīng)用非

常廣泛,如人機交互、智能客服、情感分析等領(lǐng)域。在這些領(lǐng)域中,人臉表情

分類技術(shù)是非常重要的一部分。

傳統(tǒng)的人臉表情分類方法多基于人工特征提取和機器學習算法,例如支持

向量機(SVM)、k近鄰(k-NN)等。然而,這些方法存在一定的局限性,如手

動提取特征難以適應(yīng)不同數(shù)據(jù)集和環(huán)境,分類效果受到限制等。因此,深度學

習方法逐漸成為人臉表情分類領(lǐng)域的主流方法。

深度學習模型在人臉表情分類任務(wù)中具有很好的性能,例如卷積神經(jīng)網(wǎng)絡(luò)

(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等。目標檢測算法YOLO(YouOnlyLookOnce)

因其快速的檢測速度和高精度的表情分類效果,也被廣泛應(yīng)用于人臉表情分類

任務(wù)中。YOLOv5模型是YOLO系列中最新的版本,其在速度和精度方面均有了很

大的提升。

1

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

1.2Python簡介

Python在1989由GuidoRossum創(chuàng)造。

2005-2012年,Google大量使用python,這推進了python的一大發(fā)展。

由于云計算以及AI都使用到python,加上入門低、開發(fā)效率高,促使

python進一步發(fā)展。

今天,它已經(jīng)發(fā)展成為一種廣泛使用的高級編程語言。它可用于各種領(lǐng)域,

如網(wǎng)絡(luò)爬蟲、機器學習、數(shù)據(jù)分析和可視化,其特點是開源(免費)、庫豐富、

易于學習、可移植性強等。

1.2.1Pytorch簡介

PyTorch是一個以動態(tài)變化為基礎(chǔ)的深度學習的框架,用于試驗、測試,

探討和創(chuàng)造。具有創(chuàng)建動態(tài)圖的功能,有利于動態(tài),生動地描述變化。并且

與python有著非常緊密的聯(lián)系。PyTorch具有以下特點:可以用動態(tài)圖表示

代碼。和Python編程語言有著緊密,不可分割的聯(lián)系。高級和低級API的

融合。可以在多個GPU上直接實現(xiàn),能夠為導(dǎo)出和生產(chǎn)構(gòu)建無Python模

型表示。使用Caffe框架擴展到海量數(shù)據(jù)。PyTorch的核心優(yōu)勢在于快速原

型實驗和測試想法的能力,另外具備將實驗轉(zhuǎn)化為生產(chǎn)性、可部署資源的可能

性的能力。PyTorch是一種理解深度學習概念的相對簡單的方式。它只需幾行

代碼即可解決常見的分類問題。

1.2.2PyCharm簡介

PyCharm是一種支持多語言編程的集成開發(fā)環(huán)境,支持像.py文件.css文

件.js文,還持網(wǎng)頁.html文件編寫。具備許多快捷,高效率的功能,比如代碼

跳轉(zhuǎn),智能提示,版本控制,單元測試,調(diào)試,語法高亮等等。使得用戶在利

用python進行代碼調(diào)試,測試的時候效率大幅度提升。除此之外,PyCharm還

提供了一些高級功能,比如支持Django框架下的專業(yè)Web開發(fā),支持用戶在

Google的基礎(chǔ)框架上運行自己的應(yīng)用程序,Google將會為用戶自動提供“服務(wù)

器”。

1.2.3Python第三方庫簡介

requests:最友好的網(wǎng)絡(luò)爬蟲功能庫,是Python實現(xiàn)的簡單易用的HTTP庫,

使用起來比urllib更簡潔很多,Python第三方庫在使用前要先進行安裝。

2

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

Re:正則表達式解析和處理功能庫,里面包含了多種字符串匹配的方法。

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

從中提取相關(guān)信息;還可以對所提供的任何格式進行相關(guān)的數(shù)據(jù)爬取,而且對

它進行樹形解析。

NumPy庫是Python數(shù)據(jù)分析的基礎(chǔ),是處理數(shù)組的Python庫,NumPy庫的

數(shù)據(jù)結(jié)構(gòu)比Python自帶的更加高效。

pandas:數(shù)據(jù)分析并保存為csv文件,python數(shù)據(jù)分析高層次應(yīng)用庫,還

可以進行數(shù)據(jù)清洗。

2需求分析

2.1可行性需求分析

1.技術(shù)可行性

Python編程語言通俗易懂、是一種動態(tài)的面對對象的腳本語言。這讓它對

于爬蟲領(lǐng)域有著巨大的優(yōu)勢,是當前爬蟲的首選語言。本項目便是利用python

采集數(shù)據(jù),通過python第三方庫進行數(shù)據(jù)分析、與數(shù)據(jù)可視化的展示。Tableau

是一款對人操作十分友好的軟件,利用它對數(shù)據(jù)可視化進行展示和分析也十分

便捷。

2.項目可行性

人臉表情分類是近幾年一直討論的話題,可以應(yīng)用在人臉識別,公安等領(lǐng)

域上,所使用的范圍比較廣。對于表情識別項目,訓練集的容量比較小,訓練

時間短并且項目輕易上手,項目實用性強。

3.編譯器的選用

編譯器選用Pycharm(community版本),Pycharm簡單易操作,最重要的是

它有這強大的Anaconda3環(huán)境庫,較好滿足人臉表情識別分類這一項目的實施。

2.2數(shù)據(jù)集采集功能分析

此次項目的數(shù)據(jù)集是收集了部分影視劇的演員人臉表情以及一些其他人物

的人臉表情,人臉表情一共分為了六種開心,生氣,驚訝,厭惡,悲傷,恐懼

表情。數(shù)據(jù)清洗后共300條記錄,以此盡可能保證數(shù)據(jù)可靠性。

本次收集了部分影視劇的演員人臉表情以及一些其他人物的人臉表情,主

要獲得了以下信息:醫(yī)療服務(wù)方面,可以通過對病患的人臉情感識別判斷其痛

3

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

苦情況,輔助醫(yī)生進行診斷;交通安全方面,通過對車輛駕駛員進行實時人臉情

感識別,可以在疲勞駕駛和突發(fā)情況時及時給予提示;公共安全方面,通過人臉

情感識別可以預(yù)測人們的心理變化,從而預(yù)防惡性事件的發(fā)生;教育方面,可以

通過實時的人臉情感識別來反映學生的學習狀態(tài)。.

2.3人臉表情分類關(guān)鍵技術(shù)分析

2.3.1Yolov5網(wǎng)絡(luò)結(jié)構(gòu)的簡介

YOLOv5網(wǎng)絡(luò)模型分為四個部分,包括輸入、主干網(wǎng)絡(luò)(Backbone)、Neck

模塊和輸出。

首先,YOLOv5算法使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)從輸入圖像中提取特征。然后,

YOLOv5算法使用多個檢測層來檢測圖像中的目標。每個檢測層都有多個邊界框,

每個邊界框?qū)?yīng)于圖像的一個區(qū)域。每個領(lǐng)域都有一個置信度和一些預(yù)測值(例

如,類別、中心點坐標等)。最后,Y0L0v5算法使用非極大值免疫抑制(NMS)

算法來過濾掉最可能的目標,并分配一個目標邊界框和類別。

2.3.2輸入端

(1)Mosaic數(shù)據(jù)增強

概述:Mosaic數(shù)據(jù)增強是通過隨機挑選4張圖片并將它們拼接在一起來創(chuàng)

建一個新的合成圖像,然后對這個新的合成圖像進行數(shù)據(jù)增強操作,包括翻轉(zhuǎn)、

縮放和色彩增強等,以增加訓練集的多樣性和魯棒性

優(yōu)點:

1、增強了數(shù)據(jù)類型的多樣化。

2、目標個數(shù)擴充

3、四張圖片拼接在一起變相地提高了batch_size,在進行BN操作時的時

候可以更好的統(tǒng)計均值和方差

缺點:

如果在我們的數(shù)據(jù)集中,存在著許多的較小的目標。那么Mosaic數(shù)據(jù)增強

會讓原本的數(shù)據(jù)集的目標變得甚至更少。最終會導(dǎo)致訓練模板的泛化能力變差

(2)自適應(yīng)增強

概述:在yolo算法中,每個不同的數(shù)據(jù)集都會有不同長度以及寬度的。自

適應(yīng)增強算法會測算出不同類型數(shù)據(jù)集最優(yōu)的錨框值。

優(yōu)點:自適應(yīng)能力強,對數(shù)據(jù)集的處理能力強。

4

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

缺點:訓練耗時長,迭代次數(shù)不太好設(shè)定。

(3)自適應(yīng)圖片的縮放

概述:因為每個數(shù)據(jù)集中的圖片的尺寸大部分都是不同的,所以自適應(yīng)圖

片縮放就是將數(shù)據(jù)集中的圖片統(tǒng)一尺寸。

優(yōu)點:統(tǒng)一圖片的尺寸,有利于快速便捷的計算與檢測。

缺點:如果縮放或者填充圖片邊緣過多,會影響到推理的效率。

2.3.3主干網(wǎng)絡(luò)(Backbone)

(1)Focus結(jié)構(gòu):

概述:focus是一種對特征圖的切片操作,把圖片的寬度和高度的信息合

并到同一維度h,因此高度和度寬都縮小到原來的一半,同一維度h則會擴大到

原來的4倍。

優(yōu)點:Focus模塊設(shè)計大部分用來降低每秒浮點的運算次數(shù)和提高檢測的

效率

缺點:focus某些設(shè)備不支持,且不友好,開銷很大,另外切片對不齊模型

就容易失敗。

2.3.4Neck

概述:采用FPN+PAN,這兩種結(jié)構(gòu)用來檢出小目標,以及對不同層次的特征

進行融合,尤其是PAN有著下向上的特征金字塔結(jié)構(gòu),保留了更多的底層位置

特點。

優(yōu)點:增加了網(wǎng)絡(luò)特征的融合能力,有利于增強整體特征提取能力。

缺點:性能易損傷。

2.3.5輸出端

概述:主要運用損失函數(shù)以及非極大值抑制。

優(yōu)點:得到預(yù)測模型以及更新模型參數(shù)。

3數(shù)據(jù)采集

3.1數(shù)據(jù)集需求分析

打開Google瀏覽器:找到搜索引擎并且搜索百度照片,進入官網(wǎng)輸入關(guān)鍵

字:人臉表情,人臉表情分類,表情識別。數(shù)據(jù)網(wǎng)址頁面如圖3-1所示。其URL

5

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

為:同時觀察URL,發(fā)現(xiàn)URL沒有變化。

圖3-1數(shù)據(jù)網(wǎng)址頁面

點擊鼠標右鍵,點擊檢查,調(diào)用開發(fā)工具。按F12調(diào)出開發(fā)者工具,刷新

頁面,如圖3-2。利用全局搜索工具定位所需數(shù)據(jù)位置,點擊開發(fā)者工具上面的

Headers字段,如圖3-2所示。分析這是個什么請求,發(fā)現(xiàn)這個是一個POST請

求,那我們需要尋找它的的fromdata往下翻找,在最后找到了表單數(shù)據(jù)Form

Data。

圖3-2數(shù)據(jù)網(wǎng)址Headers字段頁面

3.2數(shù)據(jù)集獲取分析

定位到我們所需要的數(shù)據(jù)所在的位置,復(fù)制一個表情名稱:開心,調(diào)出全

局搜索框搜索,點擊數(shù)據(jù)預(yù)覽Preview,如圖3-6,可以看到我們剛才復(fù)制的復(fù)

制一個表情名稱如3-3所示。接下來我們分析他是以什么形式的數(shù)據(jù)存放的。

顯然這是一個json數(shù)據(jù)。

6

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖3-3網(wǎng)址數(shù)據(jù)集分析

3.3數(shù)據(jù)集獲取

打開Google瀏覽器:找到搜索引擎并且輸入網(wǎng)址:

/s/1WS8g3V0UbyAY_5zyXkma8Q?

下載數(shù)據(jù)集并且保存到當前項目,如圖3-4所示:

數(shù)據(jù)集說明:此數(shù)據(jù)集是從百度照片通過搜索關(guān)鍵字happy,sad,surprised

通過python爬蟲爬取,存在著些許的誤差。共120張照片,包含開心,傷心,

難過3類表情,進行統(tǒng)一分類。這些數(shù)據(jù)集有些照片有手遮擋和其他物體的遮

擋。為了減少python爬蟲帶來的誤差,總共進行訓練300次。

圖3-4數(shù)據(jù)集展示

4數(shù)據(jù)集處理

數(shù)據(jù)清理是指識別和修復(fù)或刪除數(shù)據(jù)集中不正確、損壞、重復(fù)或不完整的

數(shù)據(jù)的過程。這一點很重要,因為它有助于消除可能影響結(jié)果和算法的準確性

和可靠性的錯誤和不一致性。數(shù)據(jù)清洗發(fā)生在數(shù)據(jù)采集和數(shù)據(jù)分析之間,數(shù)據(jù)

錄入或采集期間的數(shù)據(jù)驗證等措施可以幫助最小化所需的數(shù)據(jù)清洗量。數(shù)據(jù)清

理在確保數(shù)據(jù)準確性和可靠性方面起著至關(guān)重要的作用。

7

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

4.1數(shù)據(jù)預(yù)處理

導(dǎo)入測試集與訓練集的相關(guān)庫。導(dǎo)入測試集所需庫如圖4-1所示。導(dǎo)入訓

練集所需庫如圖4-1所示:

圖4-1數(shù)據(jù)清洗準備頁面

os庫提供通用的、基本的操作系統(tǒng)交互功能,是Python標準庫,包含幾百

個函數(shù),常用的有路徑操作、進程管理、環(huán)境參數(shù)等??梢詫崿F(xiàn)簡單的文件夾

和文件操作。

Numpy是一個開源的Python的科學計算庫,用于快速處理任意維度的數(shù)組。

Numpy支持常見的數(shù)組及矩陣的操作。

Torch一直聚焦于大規(guī)模的機器學習應(yīng)用,尤其是圖像或者視頻應(yīng)用等領(lǐng)域。

pandas是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。

4.2讀取訓練集,驗證集與測試集

1.首先將數(shù)據(jù)集打亂順序

數(shù)據(jù)集有人物圖片與表情標注圖片,先將兩者文件捆綁再打亂順序。這里

我定的比例是7:1:2。通過zip函數(shù)捆綁。參考圖4-2:

8

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖4-2數(shù)據(jù)集打亂示意圖

2.再將兩個文件分割

圖4-3文件分割

3.分別用三個列表儲存一下圖片和標注文件的元素

圖4-4列表存儲文件

4.劃分好展示:

圖4-5數(shù)據(jù)集劃分結(jié)果展示

4.3查看數(shù)據(jù)集大小

1.通過python中shape函數(shù)主要用于讀取數(shù)組維度,通過調(diào)用shape可

以獲得數(shù)組及其對應(yīng)行列的維度,輸入的參數(shù)也可以是一個常數(shù),也可以是一

個矩陣。查看訓練集測試集驗證集,得到了訓練集的大小為60000,3;驗證

集大小為6000,3;測試集大小為10000,3。如圖4-6所示:

圖4-6shape函數(shù)查看

2.取出訓練集內(nèi)容

9

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖4-7訓練及內(nèi)容部分展示

5模型構(gòu)建及評估分析

5.1模型構(gòu)建

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)

YOLOv5的模型結(jié)構(gòu)可以分為兩個主要部分:骨干網(wǎng)絡(luò)和檢測頭。

骨干網(wǎng)絡(luò):YOLOv5使用了一種稱為CSPDarknet53的骨干網(wǎng)絡(luò)結(jié)構(gòu),它采用

了CrossStagePartial連接(CSP連接)和殘差網(wǎng)絡(luò)的結(jié)構(gòu)。CSPDarknet53包

括了52個卷積層和1個池化層,其中卷積層采用3x3的卷積核大小,池化層采

用2x2的最大池化操作。骨干網(wǎng)絡(luò)可以將輸入的圖像逐層提取特征,提高模型

對物體的表示能力和抗干擾能力。

檢測頭:YOLOv5的檢測頭由SPP模塊模塊組成。SPP模塊采用了空間金字

塔池化(SpatialPyramidPooling)的結(jié)構(gòu),將特征圖分別進行不同尺度的池

化操作,并將池化結(jié)果拼接起來,以增強模型對不同尺度物體的識別能力。同

時,檢測頭還包括了最終的預(yù)測層,用于輸出檢測結(jié)果,包括檢測框的位置和

類別。

5.1.2創(chuàng)建模型

YOLOv5是一個基于PyTorch實現(xiàn)的物體檢測模型,由Ultralytics公司開

發(fā)。相較于其前身YOLOv4,YOLOv5在模型架構(gòu)和訓練策略上進行了一些改進,

具有更高的檢測精度和更快的檢測速度。YOLOv5的模型架構(gòu)主要由骨干網(wǎng)絡(luò)和

檢測頭兩部分組成。骨干網(wǎng)絡(luò)用于提取圖像特征,而檢測頭則用于預(yù)測物體的

類別和位置。

(1)YOLOv5的骨干網(wǎng)絡(luò)采用的是CSP(CrossStagePartial)網(wǎng)絡(luò),這

是一種新型的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以在保證準確率的前提下降低

模型的計算復(fù)雜度。CSP網(wǎng)絡(luò)通過將特征圖在通道維度上劃分成兩個

部分,然后將每個部分分別進行卷積操作和殘差連接,最后再將它

們合并起來,實現(xiàn)了特征圖的跨層連接和部分重用。這種設(shè)計能夠

提高特征的表征能力,并減少了計算復(fù)雜度和內(nèi)存消耗。以下是實

現(xiàn)代碼:

10

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖5-1導(dǎo)入csp網(wǎng)絡(luò)結(jié)構(gòu)

(2)在YOLOv5的檢測頭中,采用的是SPP(SpatialPyramidPooling)結(jié)

構(gòu)和PAN(PathAggregationNetwork)模塊。SPP結(jié)構(gòu)能夠在不同尺度上對特

征圖進行池化操作,并將池化結(jié)果合并起來,從而提高檢測精度。PAN模塊則能

夠?qū)μ卣鲌D進行跨層連接和上下文信息聚合,進一步提高特征表征能力。以

下是實現(xiàn)代碼:

圖5-2導(dǎo)入SPP結(jié)構(gòu)

YOLOv5的輸出層包括了類別預(yù)測和邊界框預(yù)測兩部分。對于每個物體,模

型會預(yù)測出其類別和位置信息,然后根據(jù)置信度和類別得分對其進行篩選和排

11

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

序。YOLOv5的輸出層包括了類別預(yù)測和邊界框預(yù)測兩部分。同時,YOLOv5還采

用了一些技巧,如類別特征空間轉(zhuǎn)換(CSP-SWT),進一步提升了模型的檢測能

力和泛化性能

圖5-3導(dǎo)入CSP結(jié)構(gòu)模型

5.2模型編譯

5.2.1優(yōu)化器設(shè)置

YOLOv5使用的是一種稱為AdamW的優(yōu)化器。AdamW是Adam優(yōu)化器的一種改

進版本,它在Adam的基礎(chǔ)上引入了L2正則化項(weightdecay),用于控制模

型的過擬合問題。同時,AdamW還采用了一種稱為“warmup”策略的學習率調(diào)整

方法,即在訓練初期使用較小的學習率,逐漸增加到最大值。

具體來說,YOLOv5中AdamW的超參數(shù)設(shè)置如下:

學習率(learningrate):初始學習率為0.001,最大學習率為0.01。

動量(momentum):默認為0.937。

權(quán)重衰減(weightdecay):默認為0.0005。

批次大?。╞atchsize):默認為16。

訓練周期(epochs):默認為300。

此外,YOLOv5還使用了一種稱為“GradualWarmupScheduler”(漸進式學

習率調(diào)度器)的學習率調(diào)度器,用于在訓練初期使用較小的學習率,逐漸增加

到最大值。具體來說,這個調(diào)度器在前5個周期內(nèi)逐漸增加學習率,然后在剩

余的訓練周期內(nèi)使用最大學習率。通過以上優(yōu)化器設(shè)置,YOLOv5可以獲得更快

速和更準確的模型收斂和泛化能力。以下是實現(xiàn)代碼:

圖5-4優(yōu)化器設(shè)置

5.2.2損失函數(shù)設(shè)置

YOLOv5中使用的損失函數(shù)包括三個部分:分類損失、定位損失和obj損失。

具體來說,YOLOv5使用的是一種稱為FocalLoss的損失函數(shù),它可以緩解類別

不平衡問題,即背景類別數(shù)量遠多于前景類別數(shù)量的問題。FocalLoss的核心

12

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

思想是降低容易分類的樣本的權(quán)重,從而更加關(guān)注難分類的樣本。以下是實現(xiàn)

代碼:

圖5-5損失函數(shù)實現(xiàn)

5.2.3模型訓練設(shè)置

圖5-6模型訓練

需要注意的是,在訓練YOLOv5模型時,由于模型具有較高的計算復(fù)雜度和

內(nèi)存占用,需要使用高性能計算平臺,如GPU或TPU進行訓練,同時也需要對

數(shù)據(jù)集進行合理的采樣和增強,以提高模型的魯棒性和泛化能力。以下是實現(xiàn)

代碼:

13

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖5-7數(shù)據(jù)集增強訓練

5.2.4學習率調(diào)優(yōu)

學習率是訓練神經(jīng)網(wǎng)絡(luò)時非常重要的超參數(shù)之一,它直接影響著模型的收

斂速度和最終的性能。OneCycle是一種優(yōu)化神經(jīng)網(wǎng)絡(luò)訓練的方法,它通過動態(tài)

調(diào)整學習率和動量來加速模型的收斂速度和提高模型的泛化能力,學習率設(shè)置

為0.001。OneCycle方法由LeslieSmith于2018年提出,它的核心思想是讓

學習率在整個訓練過程中呈現(xiàn)一種先快速上升再緩慢下降的“一次函數(shù)”形狀。

通過測試,該模型學習率為0.001。

圖5-8學習率調(diào)優(yōu)

5.2.5batch_size設(shè)置

一般來說,如果GPU的內(nèi)存較小,batch_size需要適當縮小,以避免顯存

溢出問題;如果訓練數(shù)據(jù)集較大,則可以適當增大batch_size,以提高訓練效

率。此外,對于yolov5模型而言,較小的batch_size可能會導(dǎo)致模型收斂速

度較慢,但是可以提高模型的泛化能力,因為小的batch_size可以增加數(shù)據(jù)的

隨機性,避免過擬合的風險。

一般來說,可以通過實驗來確定最佳的batch_size值??梢詮妮^小的值開

始,逐步增加batch_size,直到出現(xiàn)性能下降的情況為止。一般情況下,

batch_size取值在16-64之間比較常見,但具體取值還需要根據(jù)具體情況進行

調(diào)整。本文的初始batch_size為32。代碼展示如下:

14

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖5-9batch_size展示

5.2.6Epoch設(shè)置

Epoch:即一般完成一個完整的epoch之后,去計算模型的損失函數(shù)、準確

率之類的數(shù)據(jù),最好不要在中間就去計算。一個epoch就是遍歷一遍完整的數(shù)

據(jù)集。該模型設(shè)置為50。

圖5-10Epoch設(shè)置

5.3模型部署

圖5-11預(yù)測結(jié)果展示

進行yolov5模型的測試需要先準備好測試數(shù)據(jù)集,并對模型進行加載和編

譯。在測試過程中,可以使用測試數(shù)據(jù)集中的圖片對模型進行推理,并計算出

模型對于每張圖片中物體的檢測結(jié)果。以下是實現(xiàn)流程:

15

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

(1)加載yolov5模型并編譯。

(2)準備測試數(shù)據(jù)集,并將數(shù)據(jù)集中的圖片按照模型要求進行resize。

(3)對測試數(shù)據(jù)集中的每張圖片進行推理,并輸出模型對于每張圖片的

檢測結(jié)果。以下是實現(xiàn)代碼:

5.3.1系統(tǒng)前端設(shè)計

實現(xiàn)步驟:

一、先進行模型選擇,并且在此模型基礎(chǔ)上進行圖片識別;

二、使用攝像頭實時監(jiān)控人臉表情進行監(jiān)控;

三、選擇一張人臉圖片,對其中的表情進行識別。選擇一張圖片測試識別效

果,如下圖所示:

圖5-12前端展示圖

5.3.2系統(tǒng)效果展示以及分析

通過直方圖,我們可以直觀的了解人臉表情識別模型的效果,即各類表情

的占

溫馨提示

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

評論

0/150

提交評論