基于深度學習yolo模型的口罩識別方法設(shè)計_第1頁
基于深度學習yolo模型的口罩識別方法設(shè)計_第2頁
基于深度學習yolo模型的口罩識別方法設(shè)計_第3頁
基于深度學習yolo模型的口罩識別方法設(shè)計_第4頁
基于深度學習yolo模型的口罩識別方法設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

目錄

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

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

1.2開發(fā)環(huán)境與工具..................................................................................................................2

1.2.1Python簡介....................................................................................................................2

1.2.2pytorch簡介...................................................................................................................2

1.2.3pycharm簡介.................................................................................................................3

1.2.4Python第三方庫簡介....................................................................................................4

2、需求分析...................................................................................................................................4

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

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

2.3關(guān)鍵技術(shù)分析......................................................................................................................6

2.3.1目標檢測........................................................................................................................6

2.3.2YOLOv5算法.................................................................................................................7

3、系統(tǒng)實現(xiàn)...................................................................................................................................9

3.1圖像采集...............................................................................................................................9

3.2圖像預處理.........................................................................................................................10

3.2.1彩色直方圖均衡..........................................................................................................10

3.2.2灰度處理......................................................................................................................11

3.2.3平滑處理......................................................................................................................12

3.3圖像標注.............................................................................................................................13

4、模型構(gòu)建及評估分析.............................................................................................................14

5、模型應用.................................................................................................................................19

6、總結(jié).........................................................................................................................................20

參考文獻.......................................................................................................................................22

I

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

基于深度學習yolo模型的口罩識別方法設(shè)計

1、引言

1.1項目背景

隨著現(xiàn)代化的發(fā)展,人們生活節(jié)奏越來越快,可以通過圖像進行交流。從用戶的角度

來看,圖像不受當?shù)卣Z言等因素的限制,能夠更好地表達和傳達人們的情感信息,可以作

為快速表達的載體。對我們來說,編輯文本是很容易的,但是圖像中傳遞的內(nèi)容和信息非

常大。因此,如何方便、有效地找到關(guān)鍵信息并利用圖像成為圖像處理領(lǐng)域的一個關(guān)鍵研

究問題。近年來,由于其在場景中的廣泛應用,圖像識別成為圖像研究領(lǐng)域的一個熱點。

在畜牧業(yè)中,我們可以通過監(jiān)測牲畜的生長狀況、活樁的形狀和形狀來判斷,定期定量喂

養(yǎng)牲畜,監(jiān)測其生長發(fā)育情況。在工業(yè)上,關(guān)鍵問題可以通過圖像識別來解決。在醫(yī)學上,

高清圖像可以用來掃描身體的各個部位。此外,圖像在日?;顒又幸财鹬陵P(guān)重要的作用,

如高速列車安檢中的人臉識別,以及機上乘客的身份信息;平日停車時,采用車牌識別技

術(shù)進入停車場;申請身份證時,每個公民都會輸入自己的指紋信息,以便將來進行安全驗

證??傊瑘D像在我們的日常生活中是不可或缺的。利用傳統(tǒng)方法或深度學習方法快速有

效地識別圖像和提取顏色特征信息具有重要意義。

在機器視覺中,圖像識別是一個關(guān)鍵問題。圖像識別的精度主要取決于圖像關(guān)鍵部位

的定位精度。首先,圖像處理是圖像預處理。經(jīng)過預處理后的圖像特征提取算法有sift、LBP

和Haar。通過一系列的步驟,我們可以準確地識別圖像的內(nèi)容。獲取圖像的方法有很多種,

但我們必須利用攝影工具將采集到的圖像數(shù)據(jù)存儲在數(shù)據(jù)庫中以備不時之需,而對受損圖

像的處理就是對圖像中我們需要的圖像進行切割,以確定其統(tǒng)一的格式和大小。對于圖像

質(zhì)量較差的圖像,可以對圖像進行去噪、增強和一系列的預處理,以方便以后的使用。獲

取完整的特征信息是反映用戶需求、服務于整個行業(yè)的關(guān)鍵,因此這一步是圖像識別的基

礎(chǔ)過程,細化來說就是先要提取需要去識別的圖像的特征,然后再利用分類器來把相同特

征的歸為一類,實現(xiàn)分組,從而實現(xiàn)對圖像的識別。

人工智能和機器學習的發(fā)展也為圖像識別提供了極好的資源。機器學習就是讓機器擁

有與人類相同的大腦,使機器能夠獨立地學習和分析問題。人類知識的獲得是一個漫長而

反復的過程。在人類進化的過程中,人們通過學習和理解知識來理解自己需要獲得的東西。

通過不斷的實踐,人們可以獲得相關(guān)的技能,并分析和總結(jié)在這個過程中獲得的經(jīng)驗。機

器學習類似于人腦的學習,使機器學習不再是科幻電影的場景。人類通過眼睛捕捉周圍的

所有信息,并將視網(wǎng)膜成像傳輸?shù)酱竽X,獲得相關(guān)的圖像特征。機器視覺就是通過各種設(shè)

備獲取相關(guān)的圖像。經(jīng)過特征提取,機器可以通過學習識別相關(guān)對象,并通過計算機或音

頻設(shè)備顯示學習的內(nèi)容。分類器訓練是機器學習的關(guān)鍵。通過不斷的訓練并對分類器進行

1

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

調(diào)整,得到分類器模型,對誤差范圍較小的目標進行識別。機器學習包括無監(jiān)督學習、有

監(jiān)督學習和半監(jiān)督學習。

而我們清楚的是人臉識別無論是數(shù)字圖像的處理方面還是在于計算機視覺領(lǐng)域的方

面,其地位都是很高的,它能利用攝像機采集信息,并對其進行檢測,還能快速識別出口

罩佩戴情況,所以說該項技術(shù)對于當下疫情控制的意義是非常高的,在該方面的投入也是

非常有必要的有價值的。面對突如其來的新一輪肺炎疫情,人們的生活秩序被嚴重擾亂。

與普通流感不同,這種流行病可以通過人類唾液傳播,并具有很強的感染他人的能力。最

近,面對疫情,市面上的口罩越來越少。新型冠狀病毒肺炎對該病的流行尤為重要。能有

效阻斷新型冠狀肺炎病毒的傳播。它能直接從源頭檢查,將人體唾液和氣流從第一道屏障

中隔離出來,有效保護自己和他人,不傳播病毒。在中國的公共場所必須戴口罩。然而,

在商場、餐廳、地鐵等人員密集場所,應對客流高峰期的措施往往讓人發(fā)自內(nèi)心。一些人

外出時不愛戴口罩,這給病毒提供了可乘之機,給自己和他人的生命帶來重大安全隱患。

如果有一套系統(tǒng),通過對數(shù)字圖像的采集和識別,識別出是否戴口罩的人,并做出相應的

預警和報警就顯得尤為重要和迫切。隨著計算機視覺技術(shù)的發(fā)展,基于圖像的面具識別迅

速引起人們的關(guān)注。

1.2開發(fā)環(huán)境與工具

1.2.1Python簡介

Python由荷蘭數(shù)學和計算機科學研究學會的吉多·范羅蘇姆于1990年代初設(shè)計,作為

一門叫做ABC語言的替代品。Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向

對象編程。Python語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本

和快速開發(fā)應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨

立的、大型項目的開發(fā)。

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

擴展新的功能和數(shù)據(jù)類型。Python也可用于可定制化軟件中的擴展程序語言。Python豐富

的標準庫,提供了適用于各個主要系統(tǒng)平臺的源碼或機器碼。

1.2.2pytorch簡介

是一個基于Python的開源機器學習框架,由Facebook的人工智能研究團隊開發(fā)和維

護。它提供了豐富的工具和庫,用于構(gòu)建深度神經(jīng)網(wǎng)絡模型和進行機器學習任務。

的設(shè)計理念是動態(tài)計算圖,這意味著你可以使用自然的方式定義和執(zhí)行計算圖,而不

需要預先定義靜態(tài)計算圖的結(jié)構(gòu)。這種靈活性使得模型構(gòu)建和調(diào)試變得更加直觀和方便,的

主要特點包括:

1.動態(tài)計算圖:允許用戶在運行時動態(tài)地構(gòu)建、修改和執(zhí)行計算圖,使得模型構(gòu)建和

調(diào)試更加靈活和直觀。

2

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

2.自動求導:能夠自動計算張量的梯度,大大簡化了反向傳播算法的實現(xiàn)。這使得模

型訓練過程更加便捷和高效。

3.強大的GPU加速支持:針對GPU進行了優(yōu)化,可以充分利用GPU的并行計算能

力,加速深度學習任務的訓練和推理。

4.大型社區(qū)支持:擁有龐大的開源社區(qū),提供了豐富的文檔、教程和示例代碼。這使

得學習和使用變得更加容易,同時也能夠從社區(qū)中獲取支持和解決問題。

5.兼容性和可擴展性:與其他Python庫(如NumPy)和常見的機器學習庫(如SciPy

和Scikit-learn)兼容性良好。此外,還提供了豐富的擴展庫和工具,可以滿足不同任務和

需求的擴展性需求。

總的來說,是一個功能強大、易用且靈活的機器學習框架,廣泛應用于學術(shù)界和工業(yè)

界。它的設(shè)計理念和特點使得模型構(gòu)建和調(diào)試更加直觀和高效,為深度學習任務提供了便

利和優(yōu)化的解決方案。

1.2.3pycharm簡介

PyCharm是一款由JetBrains開發(fā)的集成開發(fā)環(huán)境(IDE),專門用于Python開發(fā)。它

提供了許多強大的功能和工具,旨在提高開發(fā)者的生產(chǎn)力和代碼質(zhì)量,以下是PyCharm的

一些主要特點和功能:

1.代碼編輯和智能感知:PyCharm具有強大的代碼編輯功能,包括語法高亮、代碼補

全、自動縮進和錯誤檢查等。它還提供了智能感知功能,可以根據(jù)上下文提供代碼建議和

自動完成。

2.調(diào)試和測試:PyCharm內(nèi)置了強大的調(diào)試器,可以幫助開發(fā)者定位和修復代碼中的

問題。它還支持單元測試和集成測試,可以方便地編寫、運行和分析測試用例。

3.項目管理:PyCharm支持多個項目的管理,可以輕松切換和管理不同的Python項

目。它提供了項目導航、版本控制集成和依賴管理等功能,使得項目開發(fā)更加便捷。

4.版本控制:PyCharm與常見的版本控制系統(tǒng)(如Git、SVN和Mercurial)集成緊密,

可以直接在IDE中進行版本控制操作,如提交、拉取和合并代碼等

5.代碼重構(gòu)和分析:PyCharm提供了豐富的代碼重構(gòu)工具,可以幫助開發(fā)者進行代碼

重構(gòu)和優(yōu)化,提高代碼的可讀性和維護性。它還提供了靜態(tài)代碼分析功能,可以幫助檢測

潛在的錯誤和優(yōu)化建議。

6.插件和擴展性:PyCharm支持大量的插件和擴展,可以根據(jù)需要添加額外的功能和

工具,以滿足特定項目或開發(fā)需求。

總的來說,PyCharm是一個功能強大、易用且高度可定制的Python開發(fā)環(huán)境,適用于

各種規(guī)模的項目和開發(fā)者。它提供了豐富的功能和工具,幫助開發(fā)者提高開發(fā)效率、減少

錯誤,并保持代碼質(zhì)量。

3

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

1.2.4Python第三方庫簡介

Python是一種非常受歡迎的編程語言,因為它易于學習、使用和擴展。Python擁有

大量的第三方庫,這些庫可以幫助開發(fā)人員快速、輕松地實現(xiàn)各種任務。以下是幾個重要

的Python第三方庫簡介:

NumPy:NumPy是Python的一個科學計算庫,它提供了高效的多維數(shù)組對象、各種

派生對象、快速的數(shù)組操作方法以及大量的工具。

Pandas:Pandas是Python的一個數(shù)據(jù)處理庫,它提供了靈活和高效的數(shù)據(jù)結(jié)構(gòu),包

括數(shù)據(jù)幀和面向行和列的數(shù)據(jù)選擇、操作和分組方法。

Matplotlib:Matplotlib是Python的一個繪圖庫,它提供了創(chuàng)建各種類型圖表和可視

化的工具,包括條形圖、散點圖、區(qū)域圖和等高線圖等。

Scikit-learn:Scikit-learn是Python的一個機器學習庫,它包含了大量的基本算法和

模型,可以用于分類、回歸和聚類等任務。

Pytorch:Pytorch是一個開源的機器學習框架,它由Google開發(fā),是用于構(gòu)建人工

智能模型的重要工具之一。

Django:Django是Python的一個Web框架,它提供了一套完整的MVC架構(gòu)、

ORM和模板語言,可以幫助開發(fā)人員快速構(gòu)建復雜web應用程序。

Flask:Flask是Python的另一個微型Web框架,它提供了一個靈活的、易于擴展

的架構(gòu),可以用于搭建小型Web應用程序和API。

這些Python第三方庫提供了很多功能和工具,可以幫助開發(fā)人員更輕松、高效地進

行編程任務。使用這些庫可以大大提升Python在數(shù)據(jù)處理、科學計算、機器學習、Web

開發(fā)等方面的能力。

2、需求分析

2.1可行性需求分析

1.功能需求

2020年新冠肺炎席卷全球,佩戴口罩能夠有效切斷新冠肺炎病毒的傳播途徑,是預防

感染的有效措施。隨著疫情影響的逐步擴大,國內(nèi)公眾場合要求人們需要佩戴口罩,但是

也總有一些人因為特殊情況未能佩戴口罩,這有可能會對周圍人群的安全造成隱患。特別

是商場、餐飲、地鐵、車站等人員密集型的場所,由工作人員人工檢測體溫與監(jiān)督乘客口

罩佩戴情況,在人流量高峰時段的檢測往往應接不暇,經(jīng)常會出現(xiàn)大量人力的浪費,并且

吃力不討好,效率仍然低下。

隨著時代的快速發(fā)展,計算機視覺技術(shù)使得我們攝像機與計算機合而為一,一體化的

分析處理,快速高效的實現(xiàn)對人員來往是否佩戴口罩的檢測。本系統(tǒng)可以自動準確且快速

4

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

地識別圖片或視頻中人物是否佩戴口罩,有著重要的應用場景和市場前景。

2.性能需求

(1)系統(tǒng)在因特網(wǎng)正常狀況下全天候提供服務,用戶可以隨時使用該系統(tǒng)進行檢測。

(2)檢測速度要盡可能的快并且檢測結(jié)果盡可能準確。

(3)系統(tǒng)的安全性、可操作性、可維護性要較為完善。

3.運行需求

本系統(tǒng)采用了YOLOv5模型,Darknet深度學習框架,操作系統(tǒng)為Windows10,環(huán)境

為。這些技術(shù)目前都已經(jīng)很成熟,而且技術(shù)含量很高,使用起來很方便,安全性也有較大

保障。目前高性能的網(wǎng)絡組建大量涌現(xiàn),他們速度快、用量大、可靠性高、價格低,完全

可以滿足本系統(tǒng)的需要。

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

在使用本系統(tǒng)時,用戶首先需要選擇本地圖片或視頻并傳入系統(tǒng),系統(tǒng)對圖片進行

預處理后再對目標人臉的區(qū)域進行定位,然后對定位后的人臉區(qū)域進行是否佩戴口罩的

識別,最后將識別結(jié)果輸出。

根據(jù)上述描述,本系統(tǒng)應具備以下四個功能:

(1)圖片選擇:提供從本地文件夾中選擇待識別圖片的功能。用戶可以從本地文件

夾中獲取想要識別的圖片并傳入系統(tǒng)。

(2)圖像預處理:提供對傳入的圖片進行預處理的功能。該功能可以對傳入的圖片

進行灰度校正和平滑處理,為之后對圖像進行進一步分析和識別做準備。

(3)圖像識別:該功能是對已經(jīng)預計處理的圖像進行再一次進一步的分析,并通過

如此方式對于圖像特征提取,對于目標進行定位以及預處理之后的圖像進行進一步分析,

對圖像進行特征提取、目標定位和目標識別。

(4)結(jié)果輸出:該功能可以將已經(jīng)完成識別的圖像的結(jié)果進行輸出。

5

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

圖2-1系統(tǒng)功能結(jié)構(gòu)圖

2.3關(guān)鍵技術(shù)分析

2.3.1目標檢測

1.目標檢測的概念

目標檢測又被我們叫做目標提取,這是一種基于目標的幾何還有統(tǒng)計特征的圖像分割

方法。

它的作用在于,將原本需要兩步的目標分割還有識別合二為一,所以其以準確以及實

時著稱,特別是在許多復雜的場景之中,因為我們需要同時對多個目標進行相應的檢測處

理,它所具備的自動提取目標以及自動識別格外重要。在對國內(nèi)外諸多成果的研究中,

我們將目標檢測的算法通常分為兩類,第一種是較為傳統(tǒng)的目標檢測算法,第二種就是我

們要介紹到的基于深度學習的目標檢測算法,目前后者的用途十分廣泛該算法又分為One-

Stage目標檢測算法和Two-Stage目標檢測算法。

2.傳統(tǒng)目標檢測算法

(1)對于傳統(tǒng)的目標檢測方法,一般工作流程分為三個階段:即首先給定圖像選取

候選區(qū)域,選擇過后再提取相應特征,之后再用以及訓練好的分類器來對于各個數(shù)據(jù)進行

分類。這三個階段細化來說如下。

區(qū)域選擇:即定位,我們在分析處理之前首先應該確定位置,因為目標可能出現(xiàn)于任

何位置,且形狀比例會相應的產(chǎn)生一些變化,所以我們采用滑動窗口來保證將圖像所有位

置都有觀測到,簡單來說,就是窮舉法,這種方法可以完成任務,但是這種方法效率不高,

且時間浪費的太多,且多了許多不必要的的多于窗口,這對于后續(xù)工作的進行產(chǎn)生了影響,

6

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

也導致了整體系統(tǒng)的效率被拖慢。

(2)特征提?。阂驗橛^測目標不會相同,多種多樣,并且位置角度都有變化,所以

一個完美程序是特別困難的。但是對于目標特征的提取又是至關(guān)重要的,它直接決定系統(tǒng)

的結(jié)果是否準確,所以重要程度不言而喻。其中,SIFT、HOG等是這個階段常用的特征。

(3)分類:即根據(jù)第二步所提取出來具有相似特征的目標歸為一類,實現(xiàn)對數(shù)據(jù)的

分類。目前市面上的分類器主要包括SVM,AdaBoost等。

2.3.2YOLOv5算法

YOLOv5是一種高性能實時目標檢測算法,是YOLO系列(YouOnlyLookOnce)的

最新版本。它是由Ultralytics團隊開發(fā)的,旨在提供更快速、更準確的目標檢測能力。

與之前的版本相比,YOLOv5在模型結(jié)構(gòu)和訓練策略上進行了一些改進和優(yōu)化,以提

高檢測性能。下面是YOLOv5的一些特點:

1.網(wǎng)絡結(jié)構(gòu):YOLOv5采用了一種輕量級的網(wǎng)絡結(jié)構(gòu),由卷積層和池化層組成,通過

多個不同尺度的特征圖進行目標檢測。這種結(jié)構(gòu)能夠在保持準確性的同時提供較快的推理

速度。

2.強大的檢測能力:YOLOv5能夠同時檢測多個目標類別,并輸出它們的邊界框和類

別概率。它具有較高的準確性和召回率,能夠有效地處理復雜場景下的目標檢測任務。

3.多尺度訓練:YOLOv5采用了一種多尺度訓練策略,通過在不同尺度下訓練模型,

提高了模型對不同大小目標的檢測能力。這使得模型在處理大尺度和小尺度目標時都能取

得較好的效果。

4.數(shù)據(jù)增強和數(shù)據(jù)集增強:YOLOv5使用了多種數(shù)據(jù)增強技術(shù),如隨機裁剪、色彩擾

動和圖像翻轉(zhuǎn)等,以增加訓練數(shù)據(jù)的多樣性和數(shù)量。此外,還提供了數(shù)據(jù)集增強工具,可

以通過合成數(shù)據(jù)增加訓練樣本的豐富性。

5.高度可定制:YOLOv5提供了豐富的配置選項,可以根據(jù)任務需求進行靈活的模型

設(shè)置和訓練。用戶可以選擇不同的網(wǎng)絡尺寸、訓練參數(shù)和推理設(shè)置,以滿足特定的目標檢

測需求。

總的來說,YOLOv5是一種高性能的實時目標檢測算法,具有較快的推理速度和較高

的檢測準確性。它在多尺度訓練、數(shù)據(jù)增強和模型定制等方面提供了更多的靈活性和優(yōu)化

選項,適用于各種實際場景中的目標檢測任務。

7

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

YOLO網(wǎng)絡基于回歸算法,在很復雜的運算數(shù)據(jù)面前也能發(fā)揮很好的效果,實際運

用效果也是如此,該算法去的了不小的成就,獲得了可觀的效果。一般情況下YOLO網(wǎng)

絡將輸入的圖片劃分成大小為32*32的網(wǎng)格,檢測目標口罩,只要口罩的中心位置落入

某個網(wǎng)格中,則立即由該網(wǎng)格負責檢測目標。同樣的檢測地點檢測對象,該算法比較其

它任何算法都要更具優(yōu)勢,優(yōu)勢就在于其多尺度預測算法,特別是實時性方面,更加凸

現(xiàn)了該中算法的強大,更好地滿足人流量較大的需要。

Yolov5算法是在原有YOLO目標檢測架構(gòu)的基礎(chǔ)上,采用了近些年CNN領(lǐng)域中最

優(yōu)秀的優(yōu)化策略,從數(shù)據(jù)處理、主干網(wǎng)絡、網(wǎng)絡訓練、激活函數(shù)、損失函數(shù)等各個方面

都有著不同程度的優(yōu)化。

(1)Yolov5的貢獻

①開發(fā)了一個高效而強大的模型,使得任何人都可以使用一張1080Ti或者2080Ti

GPU去訓練一個超級快速和精確的目標檢測器。

②驗證了一系列state-of-the-art的目標檢測器訓練方法的影響。

③修改了state-of-the-art方法,使得他們在使用單個GPU進行訓練時更加有效和適

配,包括CBN,PAN,SAM等。

(2)Yolov5的訓練方法

①Bagoffreebies:只改變訓練策略或者只增加訓練成本,比如數(shù)據(jù)增強。

②Bagofspecials:插件模塊和后處理方法,它們僅僅增加一點推理成本,但是可以

極大地提升目標檢測的精度。

(3)Yolov5的網(wǎng)絡結(jié)構(gòu)

Yolov5目標檢測算法作為該算法的第四代,相比第三代,在網(wǎng)絡結(jié)構(gòu)上比更復雜,

因為其內(nèi)部使用了極多的訓練模式來提升整體神經(jīng)網(wǎng)絡的準確率,Yolov5通過引入

Mosaic數(shù)據(jù)增強方法,并選擇最優(yōu)超參數(shù),使用GA算法,進而對現(xiàn)有的方法進行改

進,并對其不斷進行訓練,使得其具有更為低的訓練門檻,使其下限更低,更好上手,

能夠在GPU資源有限的條件下盡可能的得到更加好的結(jié)果。在運算過程中Mosaic數(shù)據(jù)增

強方法每次隨機讀取四張圖片,并對這四張張照片進行一系列操作,翻轉(zhuǎn)、縮放等操

作,實現(xiàn)將四張圖合四為一,這種將四張圖片組合為一張圖片的方法可以更加豐富檢測

物體的背景。Yolov5的網(wǎng)絡結(jié)構(gòu)如圖1所示,主干網(wǎng)絡為CSPDarknet53,附加模塊設(shè)

置為SPPNeck,另外特征融合模塊使用PANet,使用第三代即,YOLOv3作為Head。在這

里面的Darknet53包含了5個大殘差塊,這5個大殘差塊包含的小殘差單元個數(shù)分別為

1、2、8、8、4。CSPDarknet53在Darknet53的每個大殘差塊上加上了CSPNet(Cross

StagePartialNetwork),并在后面通過梯度的變化,集成到特征圖中,同時將特征圖一分

為二,一部分進行卷積操作,另一部分與上一次的卷積結(jié)果進行結(jié)合。最后在目標檢測

8

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

問題中,CSP可以有效提升CNN的學習能力,同時減少計算量。PANet充分利用了特

征融合,Yolov5中還將融合的方法由加法改為乘法,使該網(wǎng)絡能夠得到更加精確的目標

檢測能力。

圖2-2Yolov5網(wǎng)絡結(jié)構(gòu)圖

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

3.1圖像采集

本系統(tǒng)共爬取了大約5000張圖片作為口罩佩戴檢測數(shù)據(jù)集,其中佩戴口罩和未佩戴

口罩的圖片數(shù)量基本持平。對于樣品的圖像,我們進行兩類標注,一類有口罩,一類未

戴口罩,一共訓練集有2200張不同的圖片,驗證集是訓練集的百分之十。在每一次同時

數(shù)據(jù)之中,存在著許許多多的不同,口罩角度,顏色各不相同,這樣的訓練有利于提升

我們的檢測佩戴情況的準確性。

9

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

圖3-1部分圖片展示

圖3-2部分圖片展示

3.2圖像預處理

圖像預處理的主要作用包括改善圖像質(zhì)量、突出特征、去除噪聲、調(diào)整尺寸、歸一化

和數(shù)據(jù)增強等。其中,彩色直方圖均衡用于增強對比度和改善圖像質(zhì)量,灰度處理可以降

低計算復雜度并提取圖像特征,平滑處理可以去除圖像中的噪聲。這些預處理技術(shù)都有助

于提高圖像處理和圖像識別的準確性和性能。

3.2.1彩色直方圖均衡

彩色直方圖均衡是一種圖像處理技術(shù),通過調(diào)整彩色圖像中每個顏色通道的像素值

分布,實現(xiàn)對比度增強、圖像質(zhì)量改善、視覺感知提升和圖像特征增強的效果。它能夠

10

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

使圖像亮度范圍更均勻地覆蓋整個范圍,突出細節(jié),使識別圖像的邊緣更清晰、自然、

生動,提高計算機對圖像的感知和識別能力。

圖3-3直方圖均衡代碼

圖3-4均衡化后圖片

使用圖片均衡化亮度均衡,口罩邊緣更清晰,更容易被計算機識別。

3.2.2灰度處理

在圖像處理中,處理三個通道的數(shù)據(jù)會比較復雜,因此需要先將圖像變灰,也就是

對圖像進行灰度處理,因為灰化后的照片可以盡可能的減少原始圖像的數(shù)據(jù),這樣便可

以減少計算量,增加計算精度,灰度處理,簡單來說,就是將各個像素點的RGB值統(tǒng)一

成同一個值,從而失去顏色,變?yōu)榛疑?,?jīng)過灰度處理后的圖像將由三通道變?yōu)閱瓮?/p>

道,而單通道的數(shù)據(jù),處理計算起來將會得到極大的簡便。

灰度處理后的圖像可以通過閾值變換轉(zhuǎn)換成黑白二值的圖像信息,也正是通過對于

灰度圖像二值化處理,所需目標的輪廓便可以得到凸出。

灰度閾值變換的基本公式為:

0xT

f(x)

255xT

11

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

其中T為指定的閾值。

類似于符號函數(shù),將灰度大于閾值的部分設(shè)置為最大灰度,灰度小于閾值的部分設(shè)

置為最小灰度。經(jīng)過閥值化的灰度值僅有兩個取值,最小值0與最大值255。閾值變換將

圖像內(nèi)容劃分為關(guān)心與不關(guān)心的2個部分,從復雜背景中可直接提取出感興趣的,主要

用于對圖像的分割。

二值化處理的灰度圖像,即就是將像素點閾值變換,講灰度設(shè)置到0或255,這樣的

設(shè)置,也就可以使整個圖像會出現(xiàn)明顯的黑白效果,也就是將256個亮度等級的灰度圖

像,通過適當?shù)拈撝颠x取,得到可以明顯顯出所需物體的二值化圖像,同時在數(shù)字化處

理之中,二值化圖像的圖像整體,以及局部特征,我們都知道,二值圖像在數(shù)字處理中

的的地位是很高的,特別是實用的圖像處理,在當下的生產(chǎn)生活,通過二值化圖像來處

理信息是很廣泛的,但要進行二值化處理,我們就需要先將灰度圖像二值化,得到二值

化圖像,因為二值化圖像才能進行二值化處理,因為圖像性質(zhì)只與灰度閾值點位置有

關(guān),不涉及像素多級值,這就使的對于圖像的處理變得簡單,,并且壓縮量少,占據(jù)空

間更小,而我們要得到滿足條件的理想型二值化圖像,我們通常都是采用封閉,以及聯(lián)

通的邊界定義不重合的區(qū)域,所有的灰度大于或等于閾值的物體,即為我們所需要的特

定物體,即將其灰度值表示為225,除此之外的的像素點都被排除在外,灰度值即為零,

表示為區(qū)域值之外是背景等區(qū)域,但如果特定物體內(nèi)部有著均勻的灰度值,并且處于一

個具有其他等級灰度值的均勻背景,使用閾值法就可以得到明顯的分割成果,如果物體

與背景灰度差值較大,即可以之間轉(zhuǎn)化為灰度的差值,利用灰度閾值選取分割,動態(tài)閾

值調(diào)節(jié)來幫助觀測。

而對于經(jīng)過處理的灰度圖像,是沒有固定的算法的,根據(jù)圖像區(qū)域之中的不同目標

有著不同算法,在實際之中的操作中,根據(jù)不同灰度我們能進行舍入處理,必須選擇為

灰度閾值中值等,但是這種處理的范圍過于寬廣,因為沒有根基圖像,所以效果不是很

理想。

3.2.3平滑處理

圖像在生成、獲取、傳輸?shù)冗^程中,由于受到光照、成像系統(tǒng)功能和噪聲等許多因

素的影響,往往會造成對比度偏低、清晰度下降以及產(chǎn)生干擾噪聲等結(jié)果。為了改善圖

像質(zhì)量,需要利用圖像增強技術(shù)獲得更便于后續(xù)分析和識別的圖像。圖像的平滑處理是

在盡量保留圖像原有信息的情況下,過濾圖像內(nèi)部的噪聲。通過圖像平滑處理,可以有

效過濾掉圖像內(nèi)的噪聲信息。

圖像平滑處理的基本原理是對圖像中與周圍像素點的像素差異值較大的像素點進行

處理,將其值調(diào)整為周圍像素點像素值的近似值。

12

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

圖像平滑處理的方法包括均值濾波、方框濾波、高斯濾波、中值濾波、雙邊濾波和

2D濾波等。

在該系統(tǒng)的均值處理方法之中,我們采取均值濾波方法方法來對圖像進行平滑處

理。均值濾波指的是當前像素點的周圍N*N個像素值的均值來代替當前像素點,而通過

這樣的方法來歷遍每一個像素點,這樣窮舉之后,即可以完成對于整個圖像的均值濾

波。

而在于數(shù)據(jù)處理之前,我們有必要先去考慮對于周圍的多少個像素點去研究,因為

我們需要去取平均值,然后當做中心點,對行數(shù)還有列數(shù)具有像素點取平均值,而對于

邊緣的像素點可以只取圖像內(nèi)存的領(lǐng)域點像素均值。

3.3圖像標注

本文使用LabelImg為yolov5算法構(gòu)建圖像數(shù)據(jù)集,保存格式為yolov5算法可供識別

的txt文本格。在標注過程中,需要注意的是要確保準確地標注口罩目標的邊界框,并為

每個目標制定正確的類別,本次標準將數(shù)據(jù)集分為兩類,分別是mask和nomask,具體操

作如圖所示:

圖3-5LabelImg操作窗口

打開LabelImg操作窗口后,以上是具體的操作模塊功能介紹,本文需要對口罩數(shù)據(jù)集

進行標注,打開數(shù)據(jù)集文件夾,導入圖片,直接按W鍵可以直接產(chǎn)生標注框,彈窗中填上

信息,如圖3-6所示,標注信息為mask:

13

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

圖3-6LabelImg標注

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

本章將會從模型的選擇,到模型參數(shù)調(diào)整以及訓練過程注意展示,最開始需要在github

中下載yolov5模型,如圖4-7所示:

圖4-1模型下載

Yolov5的項目目錄結(jié)構(gòu)主要需要修改的是data文件夾、utils文件夾以及models文件夾,

其中voc.yaml中可以修改nc類別參數(shù),指定識別標記,detect.py文件夾可修改運行數(shù)據(jù)

集、weight等,部分目錄結(jié)構(gòu)如圖4-8所示:

圖4-2模型結(jié)構(gòu)

下載完成后,在anaconda中安裝運行環(huán)境,環(huán)境如圖3-9所示:

14

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

圖4-3運行環(huán)境

運行環(huán)境搭建好后,在yolov5中調(diào)整模型配置文件,打開voc.yaml,其中定義了模型

的結(jié)構(gòu)和超參數(shù)。根據(jù)數(shù)據(jù)種類和錨框大小進行調(diào)整,以下是參數(shù)詳解:

(1)nc參數(shù):指定目標類別的數(shù)量,包括佩戴口罩和不佩戴口罩的人臉。

(2)anchors參數(shù):YOLOv5使用錨框(anchorbox)來檢測不同尺寸的物體。你可

以根據(jù)口罩的大小調(diào)整錨框的尺寸,以便更好地適應口罩的檢測。

(3)weights參數(shù):指定預訓練模型的權(quán)重文件路徑。從預訓練的YOLOv5模型中

加載權(quán)重,然后在該基礎(chǔ)上進行微調(diào)。

如圖3-10所示調(diào)整識別的nc值,制定目標識別種類和對應的標記。

圖4-4類別調(diào)整

如圖3-11所示,修改detect.py文件中的weights參數(shù),將模型指定為yolov5模型,修改data

參數(shù)為mask數(shù)據(jù)集。

圖4-5模型、數(shù)據(jù)集更改

其中activations.py中定義了模型的激活函數(shù),如圖所示定義了Silu和mish激活函

數(shù),使用mish激活函數(shù),是由于它有一種具有連續(xù)可導特性的非線性函數(shù)。與傳統(tǒng)的

ReLU激活函數(shù)相比,mish激活函數(shù)具有更寬的“平臺”區(qū)域,這意味著它可以更好地保

留輸入的絕對值較大的特征信息,對于口罩識別而言,可以隨著目標的位置、大小和形

15

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

狀等特征的不同尺度發(fā)生變化,引入激活函數(shù)可以使yolov5模型具有更強的非線性擬合

能力,部分代碼如圖4-12所示:

圖4-6激活參數(shù)修改

使用pycharm直接對yolov5模型進行訓練,為了確保模型可以在訓練之后仍保持校

準的檢測性,所以本系統(tǒng)的檢測我們選取真實人臉作為訓練樣本,通過對收集到的圖片

進行分類,標注時對人臉進行框選標注,講標注分為戴口罩和不戴口罩兩種類型,并規(guī)

定在本次訓練中模型訓練集和訓練圖片數(shù)量四比一,因此在選取的四千張照片之中,

3200張為訓練集,800張為測試集。

圖4-7劃分數(shù)據(jù)集

在對模型調(diào)整,數(shù)據(jù)集劃分完畢后,設(shè)置提取特征的訓練參數(shù)。該模型共訓練100

次,分為兩部分進行訓練。前期凍結(jié)主干網(wǎng)絡訓練50次,不訓練主干網(wǎng)絡只訓練后面檢

16

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

測層,主干網(wǎng)絡是用來提取特征,凍結(jié)主干網(wǎng)絡進行訓練可以加快訓練速度,后期50次

包括主干網(wǎng)絡全部訓練。

訓練前期50次設(shè)置學習率為0.001,動因子為0.95,每學習一次學習率衰減0.95,

學習率逐漸下降有利于進行收斂。

對口罩是否佩戴識別要分為兩步,分類與定位,分類就是利用算法遍歷圖片,判斷

其中的對象是不是包含我們要找的人臉。進而將一張圖片到多層卷積神經(jīng)網(wǎng)絡,之后會

得到一個結(jié)果即特征向量,同時反饋給softmax模塊,來對于圖片類型做一預測。

判斷出圖片類型之后就要對圖片中的目標人臉進行定位。在口罩佩戴檢測問題中,

一張圖片可以含有多個目標,并且單張圖片中可能會有多個不同分類的目標。

對于數(shù)據(jù)的處理之中,可以讓神經(jīng)網(wǎng)絡再次多輸出幾個,形成多重結(jié)果,首先輸出

一個邊界框,(xmin,ymin)和(xmax,ymax),圖片中的每個人臉都分別對應著是兩個

坐標,這樣就可以判斷出每張圖片中目標人臉的數(shù)量然后對其進行定位。

圖4-8前期訓練設(shè)置

訓練后期50次設(shè)置學習率為0.0001,動因子為0.95,每學習一次學習率衰減0.95。

17

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

圖4-9后期訓練設(shè)置

圖4-10模型訓練過程

如圖4-11為模型訓練過程,每張圖片的識別速度平均為0.2s,識別速度較快,在模

型訓練完畢后模型run文件夾下自動生成了loss、map和ap曲線的數(shù)據(jù)圖,以下將解釋

數(shù)據(jù)圖的具體含義。

圖4-11訓練和驗證的loss曲線

如上圖loss曲線是訓練過程中損失函數(shù)的變化情況的可視化表現(xiàn),上圖中測試集和

驗證集的損失都較小,可以看到準確率逐漸提高并基本達到穩(wěn)定。

18

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

圖4-12測試集的map曲線

AP曲線是衡量訓練出來的網(wǎng)絡模型在每個類別上的好與壞,這兩個AP曲線分別表

示每次測試中單個類別NoMask和Mask的正確率,是選取該模型中最好的模型繪制出來

的曲線圖。

圖4-13NoMask的AP曲線

map是衡量訓練之后的網(wǎng)絡模型在所有類別上的好與壞,兩個AP取平均值即為該模

型測試的正確率map??梢钥吹?,經(jīng)過訓練之后該模型的正確率已經(jīng)可以達到91.35%。

圖4-14模型的map值

5、模型應用

在進行了最終的實驗過后實現(xiàn)效果如圖所示,對于佩戴了口罩

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論