版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
湖南商務職業(yè)技術學院畢業(yè)設計
目錄
1引言...............................................................................................................................1
1.1項目背景............................................................................................................1
1.2項目目標............................................................................................................1
2相關技術與工具介紹...................................................................................................2
2.1數(shù)據(jù)采集技術....................................................................................................2
2.2YOLO模型概述...................................................................................................2
2.3分類識別技術....................................................................................................4
2.4PyQt5..................................................................................................................5
2.5開發(fā)環(huán)境與工具................................................................................................6
2.5.1Python簡介............................................................................................6
2.5.2PyCharm簡介..........................................................................................6
2.5.3第三方庫簡介.........................................................................................7
2.5.4Keras框架..............................................................................................7
3方法設計與實現(xiàn)...........................................................................................................8
3.1數(shù)據(jù)集收集與預處理........................................................................................8
3.1.1數(shù)據(jù)集的獲取.........................................................................................8
3.1.2數(shù)據(jù)集預處理...........................................................................................9
3.2深度學習模型選擇與設計..............................................................................11
3.2.1深度學習模型選擇.................................................................................11
3.2.2模型設計.................................................................................................12
3.3模型的編譯與訓練..........................................................................................14
3.4模型的評估與優(yōu)化...........................................................................................16
3.4.1模型的評估.............................................................................................16
3.4.2模型的優(yōu)化.............................................................................................17
3.5前端設計與實現(xiàn)...............................................................................................18
3.5.1系統(tǒng)前端設計.........................................................................................18
3.5.2設計效果展示及分析...........................................................................19
I
湖南商務職業(yè)技術學院畢業(yè)設計
4小結.............................................................................................................................19
參考資料.........................................................................................................................21
II
湖南商務職業(yè)技術學院畢業(yè)設計
基于深度學習YOLO模型的動物識別系統(tǒng)設計
1引言
1.1項目背景
隨著人工智能技術的快速發(fā)展,計算機視覺領域也得到了極大的發(fā)展和進
步。近年來,深度學習技術的興起和普及,使得計算機視覺領域在圖像分類、
目標檢測、語義分割、實例分割、人臉識別等方面都取得了重大的進展。計算
機視覺是指通過計算機及相關技術對圖像、視頻、三維物體等視覺信息進行處
理和分析的技術領域。該領域涉及到圖像處理、模式識別、計算機圖形學等多
個方面,是人工智能技術中的一個重要分支。在過去的幾十年中,計算機視覺
技術已經(jīng)取得了長足的發(fā)展,目前已經(jīng)廣泛應用于人臉識別、智能監(jiān)控、自動
駕駛、醫(yī)學影像處理等多個領域。
在生態(tài)保護方面,動物識別可以幫助野生動物保護機構更好地監(jiān)測和保護
野生動物,以防止野生動物的非法捕獵和盜獵等行為。其次,通過動物識別,
可以對動物的行為進行研究,如動物的活動范圍、生活習性、社交行為等,進
而對動物的生態(tài)行為進行更深入的了解。對于農(nóng)業(yè)養(yǎng)殖領域,動物識別可以用
于監(jiān)測動物的飲食、活動和生長狀態(tài),以更好地控制和提高養(yǎng)殖效率。同時動
物識別在智能監(jiān)控領域也有廣泛的應用,可以用于動物園、動物繁殖場、家庭
寵物監(jiān)控等領域,實現(xiàn)對動物的實時監(jiān)控和管理。
1.2項目目標
傳統(tǒng)的動物識別方法存在一些限制和問題,比如對于不同種類的動物和不
同的場景,需要手動調(diào)整參數(shù)或者重新訓練模型,耗時耗力。而深度學習技術
能夠自動學習圖像特征,無需手動調(diào)整參數(shù),且能夠適應不同種類的動物和不
同的場景,提高動物識別的準確率和效率。因此,結合深度學習技術進行動物
識別具有重要的應用價值和研究意義。
項目目標旨在基于深度學習YOLO模型對動物進行識別,用戶通過系統(tǒng)上
傳動物圖片,系統(tǒng)通過訓練好的YOLO模型對動物圖片進行識別,識別圖片中
的動物類型。
1
湖南商務職業(yè)技術學院畢業(yè)設計
2相關技術與工具介紹
2.1數(shù)據(jù)采集技術
在深度學習中,數(shù)據(jù)采集技術是非常重要的,因為深度學習模型需要大量
的高質(zhì)量數(shù)據(jù)來進行訓練和優(yōu)化。對于數(shù)據(jù)集的采集常用技術有標注數(shù)據(jù)、數(shù)
據(jù)爬取、數(shù)據(jù)增強、數(shù)據(jù)清洗及預處理等。
深度學習模型通常需要有標注的數(shù)據(jù),也就是人工對數(shù)據(jù)進行分類、注釋
或標記。例如在對圖像數(shù)據(jù)進行物體識別、分割或關鍵點標注,需要人工對數(shù)
據(jù)集中的動物標注。而圖片數(shù)據(jù)的爬取可以通過網(wǎng)絡爬蟲或API接口等方式,
從互聯(lián)網(wǎng)上收集所需數(shù)據(jù)。例如從社交媒體、新聞網(wǎng)站或電子商務平臺等獲取
文本、圖像或音頻數(shù)據(jù)。爬取到數(shù)據(jù)圖像之后,可以通過對已有數(shù)據(jù)進行變換、
旋轉(zhuǎn)、裁剪、噪聲添加等操作,生成更多的訓練樣本。這可以增加模型對于各
種變化和噪聲的魯棒性。
在數(shù)據(jù)采集中,可以利用一定的策略,從未標注的數(shù)據(jù)中選擇最有價值的
樣本進行標注,以最小化標注成本并提高模型性能。處理通過爬蟲獲取數(shù)據(jù)之
外,還可以利用眾包平臺,通過向廣大用戶征集數(shù)據(jù),從而獲得大規(guī)模的、多
樣化的數(shù)據(jù)集。例如通過眾包平臺收集圖像標注、文本分類等任務的數(shù)據(jù)。
在收集到圖像數(shù)據(jù)后,進行數(shù)據(jù)的清洗、去噪和預處理是至關重要的步驟,
以保證數(shù)據(jù)的質(zhì)量和一致性。這通常涉及處理缺失數(shù)據(jù)、進行數(shù)據(jù)平衡、異常
值的處理等操作。數(shù)據(jù)采集過程中需要注意保護用戶隱私和數(shù)據(jù)安全,確保符
合相關法規(guī)和道德準則。此外,合理選擇數(shù)據(jù)采集技術,并充分考慮數(shù)據(jù)的多
樣性、數(shù)量和質(zhì)量,對于深度學習模型的性能和泛化能力至關重要。
2.2YOLO模型概述
2015年,YOLO(YouOnlyLookOnce)算法騰空出世,YOLO是一種使用
卷積神經(jīng)網(wǎng)絡進行目標檢測的算法。YOLO是其中速度較快的物體檢測算法之
一。雖然它不是最準確的物體檢測算法,但是在需要實時檢測并且準確度不需
要過高的情況下,它是一個很好的選擇。與識別算法相比,檢測算法不僅預測
類別標簽,還檢測對象的位置。因此,它不僅將圖像分類到一個類別中,還可
以在圖像中檢測多個對象。該算法將單個神經(jīng)網(wǎng)絡應用于整個圖像。這意味著
該網(wǎng)絡將圖像分成區(qū)域,并為每個區(qū)域預測邊界框和概率。這些邊界框是由預
測的概率加權的。
2
湖南商務職業(yè)技術學院畢業(yè)設計
YOLO沒有用到Anchor機制,整個檢測過程是一個單一的網(wǎng)絡,因此檢測
速度非常快。因為YOLO算法將目標檢測看作成一個回歸問題,所以它可以很
好的學習目標的一般特征。
其中YOLO算法的損失函數(shù)由三部分組成:位置損失、分類損失和置信度
損失。
位置損失計算Boundingbox的位置坐標損失,分類損失計算每個檢測框
輸出的類別標簽,置信度損失計算每個邊界框的概率。YOLO系列算法的損失
函數(shù)都是由這三部分構成的,其中YOLO的損失函數(shù)是MSE(均方誤差損失函
數(shù))。因為YOLO是犧牲精度為代價來提高檢測速度,所以YOLO算法的檢測
精度不高于以往的基于區(qū)域建議框的算法,對于小目標不太友好,尤其是對于
一些聚類對象,因為在一個單元內(nèi)只能預測一類對象。
YOLOv2是在YOLO的基礎上進行了改進,得到了YOLOv2,從而提高對物
體檢測的精確度。在YOLOv2算法中并沒有手動選擇錨點框,而是引入了Faster
R-CNN的思想,使用了K-means聚類算法生成錨點框。具體操作是YOLOv2
算法在訓練集的真實框上使用K-means聚類算法自動找到合適大小的
Anchors。YOLOv2算法采用了DarkNet-19作為骨干網(wǎng)絡,該網(wǎng)絡是一個全卷
機網(wǎng)絡,同時也是一個殘差網(wǎng)絡。因為骨干網(wǎng)絡中沒有全連接層,所以參數(shù)量
會極大減少。預測框的位置極大決定了預測的穩(wěn)定性,因此YOLOv2的特征提
取網(wǎng)絡直接輸出坐標的偏移量。針對YOLO只能進行單一大小圖像的檢測的問
題,YOLOv2算法引入了多尺度訓練,隨機選擇訓練圖像的大小,因此骨干網(wǎng)
絡可以對多種不同大小的圖像進行檢測。經(jīng)過這些改進后生成了YOLOv2算法,
可以較好的檢測大物體,但對于小目標檢測依然存在缺陷。
2018年JosephRedmon等人提出了YOLOv3,在速度和精確度方面達到
了均衡,取得了極大的成就。其算法總體架構與YOLOv2不盡相同,主要還是
對于特征提取網(wǎng)絡進行了改進。YOLOv3提出了一種新的特征提取網(wǎng)絡
DarkNet-53作為骨干網(wǎng)絡,該網(wǎng)絡有53個卷積層,同時擁有更多的殘差部分
和更深的網(wǎng)絡層。其中每個殘差塊使用了3×3和1×1卷積層,殘差塊數(shù)量
為[1,2,8,8,4]。YOLOv3在DarkNet53網(wǎng)絡后增加了特征金字塔網(wǎng)絡結構。因為
特征金字塔結構的存在,YOLOv3最終輸出3個不同大小的特征圖,每個特征
圖負責預測不同尺寸的物體,分別對應尺寸13×13、26×26、52×52。其中
13×13的特征圖負責預測大物體,26×26負責預測中等物體,52×52負責
預測小物體,因此YOLOv3對于小物體的檢測有顯著的提高。YOLOv3采用的
損失函數(shù)是交叉熵損失函數(shù),其中包括位置損失、分類損失和置信度損失,總
3
湖南商務職業(yè)技術學院畢業(yè)設計
損失值就是三個損失值的總和
YOLO僅利用卷積層,使其成為一個全卷積網(wǎng)絡(FCN)。在YOLOv3中
提出了一個名為Darknet-53的更深的特征提取器架構。正如其名稱所示,它包
含53個卷積層,每個卷積層后面跟隨批量歸一化層和LeakyReLU激活函數(shù)。
沒有使用任何形式的池化,而使用帶有步長2的卷積層來降采樣特征圖。這有
助于防止池化經(jīng)常歸因于低級特征的丟失。
YOLO對輸入圖像的大小不變。然而,在實踐中,由于我們在實現(xiàn)算法時
可能遇到各種問題,因此我們可能希望堅持使用恒定的輸入大小。其中一個重
要問題是,如果我們想以批量方式處理圖像(GPU可以并行處理批量圖像,從
而提高速度),則需要所有圖像具有固定的高度和寬度。這是將多個圖像連接
成大批量所需的。
在圖像處理和計算機視覺任務中,網(wǎng)絡通過一個稱為網(wǎng)絡步長的參數(shù)來實
現(xiàn)對圖像的下采樣或降采樣。在神經(jīng)網(wǎng)絡中,步長等于該層的輸出比輸入的因
子。
2.3分類識別技術
深度學習的分類識別技術是指利用深度神經(jīng)網(wǎng)絡模型對輸入的數(shù)據(jù)進行分
類和識別的方法。常用的深度學習分類識別技術有卷積神經(jīng)網(wǎng)絡(CNN)、循
環(huán)神經(jīng)網(wǎng)絡(RNN)、長短時記憶網(wǎng)絡(LSTM)、注意力機制(Attention)、
遷移學習(TransferLearning)、集成學習(EnsembleLearning)、生成對抗網(wǎng)
絡(GAN)等。
卷積神經(jīng)網(wǎng)絡(CNN)是一種先進的深度學習模型,專門用于處理圖像數(shù)
據(jù)。它通過多層卷積層和池化層的組合,能夠有效地提取圖像的特征表示。隨
后,通過全連接層進行分類和預測。CNN在圖像分類、物體檢測和圖像分割等
領域取得了顯著的成果,展現(xiàn)出卓越的性能和準確度。
RNN是一種能夠處理序列數(shù)據(jù)的深度學習模型。它通過循環(huán)連接的方式,
可以捕捉序列數(shù)據(jù)中的時序關系。RNN在語言模型、機器翻譯和語音識別等任
務中表現(xiàn)出色。
LSTM是一種特殊類型的RNN,是一種強大的循環(huán)神經(jīng)網(wǎng)絡模型,其獨特
的記憶單元和門控機制能夠有效地克服傳統(tǒng)RNN中的梯度消失和梯度爆炸問
題。通過這種機制,LSTM能夠更好地捕捉序列數(shù)據(jù)中的長期依賴關系,從而
在語言建模、機器翻譯和語音識別等任務中展現(xiàn)出優(yōu)異的表現(xiàn)。
4
湖南商務職業(yè)技術學院畢業(yè)設計
能夠有效地解決傳統(tǒng)RNN中的梯度消失和梯度爆炸問題。LSTM具有記憶
單元和門控機制,能夠更好地捕捉序列中的長期依賴關系。
注意力機制是一種用于加強模型對輸入中不同部分的關注程度的技術。它
可以自動地學習和選擇對分類任務更重要的特征或上下文信息,提高模型的性
能。
遷移學習是指將已經(jīng)在大規(guī)模數(shù)據(jù)上訓練好的深度學習模型應用于新的任
務上。通過遷移學習,可以利用已有模型的特征提取能力和泛化能力,加快新
任務上的訓練和提升性能。
集成學習是通過組合多個不同的模型或模型的預測結果,來提高分類識別
性能的技術。常見的集成學習方法包括投票法、平均法和堆疊法等。
生成對抗網(wǎng)絡,GAN是一種由生成器和判別器組成的對抗性模型。通過生
成器生成虛假的數(shù)據(jù),并通過判別器對真實和虛假數(shù)據(jù)進行區(qū)分,從而進行分
類識別。這些分類識別技術在深度學習中得到廣泛應用,并取得了顯著的成果。
隨著技術的不斷發(fā)展和創(chuàng)新,深度學習分類識別技術將進一步提升模型的性能
和泛化能力。
2.4PyQt5
Qt是一個跨平臺的C++圖形用戶界面庫。QT一度被諾基亞擁,后出售給
芬蘭的軟件公司DigiaOyj。PyQt5是基于Digia公司Qt5的Python接口,由一
組Python模塊構成。
PyQt5是基于Qt框架的Python綁定庫,它可以讓開發(fā)者使用Python語言
來創(chuàng)建跨平臺的圖形用戶界面(GUI)應用程序。PyQt5提供了豐富的功能和工
具,使開發(fā)者能夠輕松地創(chuàng)建各種類型的應用程序,包括桌面應用程序、嵌入
式系統(tǒng)、移動設備應用程序等。
PyQt5具有良好的兼容性,可以在不同的操作系統(tǒng)上運行,包括Windows、
MacOS、Linux等。它提供了一系列的模塊,包括QtWidgets、QtGui、QtCore
等,這些模塊提供了豐富的類和方法,用于創(chuàng)建窗口、按鈕、文本框、表格等
各種GUI元素,并實現(xiàn)與用戶的交互。
PyQt5還支持QtDesigner工具,它可以讓開發(fā)者使用可視化界面來設計和
布局應用程序的界面,而無需編寫大量的代碼。開發(fā)者可以使用QtDesigner創(chuàng)
建UI文件,然后使用PyQt5將其加載和使用。
總之,PyQt5是一個強大的Python庫,適用于GUI應用程序的開發(fā),它結
5
湖南商務職業(yè)技術學院畢業(yè)設計
合了Python的簡潔和易用性以及Qt框架的強大功能,為開發(fā)者提供了豐富的
工具和資源來創(chuàng)建高質(zhì)量的應用程序。
2.5開發(fā)環(huán)境與工具
2.5.1Python簡介
在荷蘭荷牛科技大學設計和開發(fā),起初是為了作為一種簡單易學的腳本語
言,但是隨著時間的推移,Python已成長為一種全功能的編程語言,被廣泛用
于Web開發(fā)、科學計算、人工智能、數(shù)據(jù)分析等領域。
Python開源的特性,使得全世界都可以參與它的開發(fā)和推廣。Python社區(qū)
龐大,有豐富的文檔、教程、代碼庫和第三方擴展包,讓Python成為眾多開發(fā)
人員和科學家的首選編程語言之一。
2.5.2PyCharm簡介
PyCharm是一款由JetBrains推出的Python集成開發(fā)環(huán)境(IDE),旨在提
供一整套工具,以增強用戶在Python語言開發(fā)中的效率。該IDE提供了豐富的
功能,包括調(diào)試、語法高亮、項目管理、代碼導航、智能提示、自動完成、單
元測試和版本控制等。此外,PyCharm還針對Django框架的專業(yè)Web開發(fā)提
供了一些高級功能,使得開發(fā)者能夠更加便利地進行Web應用程序的構建和調(diào)
試。
隨著版本的迭代,jetbrains在pycharm中內(nèi)置了更多的支持,從Django到
輕量化的flask到接地氣的pyramid再到結合最新特性的異步web框架fastAPI,
pycharm都能勝任。另外pycharm因為同系列軟件的加持(webstorm),所以
在pycharm也可以直接進行前端開發(fā)(支持bootstrap,angular,react,加插件
也可支持vue)。
此外pycharm還支持科學計算。在科學計算領域,matlab一直都是獨占鰲
頭,但是python出現(xiàn)打破了這個局面,python具有的優(yōu)勢(眾多優(yōu)秀的第三方
庫(生態(tài)完整且強壯),較易學習,開源免費,語法優(yōu)美)讓其在科學計算領
域也分得一杯羹,而作為pythonIDE中最強大的存在,pycharm也對科學計算
提供了完美的支持。
最后,jetbrain擁有豐富的插件市場,pycharm也能享受到這些豐富的插件,
安裝了這些插件你就能得到最好的開發(fā)體驗。
6
湖南商務職業(yè)技術學院畢業(yè)設計
2.5.3第三方庫簡介
requests:最友好的網(wǎng)絡爬蟲功能庫,非常簡潔,相比于urllib使用非常容
易,第三方庫都需要先安裝才能去使用。
NumPy是Python中最受歡迎的科學計算庫之一,主要用于處理大型數(shù)組和
矩陣運算。NumPy還提供了許多有用的函數(shù)和工具,例如FFT、線性代數(shù)、隨
機數(shù)生成等。
pandas:數(shù)據(jù)分析并保存為csv文件,python數(shù)據(jù)分析高層次應用庫,還
可以進行數(shù)據(jù)清洗。
matplotlib:繪圖庫,主要是偏向于二維繪圖包括折線圖、條形圖、扇形圖、
散點圖、直方圖等等。
Scikit-learn是一個廣泛使用的Python機器學習庫,提供了許多流行的機器
學習算法和模型,例如分類、回歸、聚類和降維等方法。Scikit-learn還包括許
多有用的工具,如數(shù)據(jù)預處理、特征選擇和模型評估等。
BeautifulSoup是一個用于解析HTML和XML文檔的Python庫,能夠幫
助我們輕松地從網(wǎng)頁中提取需要的信息。它支持各種不同的解析器,并且可以
非常方便地遍歷和搜索文檔內(nèi)容。
2.5.4Keras框架
Keras是一個開源的高級深度學習庫,使用Python編寫,并可在TensorFlow
或Theano上運行。它由Google工程師作為主要作者和維護者,采用MIT開源
許可證。Keras以最少的代碼和時間建立深度學習模型,進行訓練、準確性評估
和預測。相比于低級的TensorFlow庫,雖然能夠完全控制深度學習模型的細節(jié),
但需要編寫更多的代碼和更長的開發(fā)時間。TensorFlow具有強大的功能和高執(zhí)
行效率,支持多種平臺,但學習門檻較高。Keras作為高級深度學習庫,對初學
者來說門檻較低,可以輕松構建深度學習模型,并進行訓練和預測。對于大多
數(shù)讀者來說,如果一開始就學習TensorFlow,需要面對其特殊的編程模式,并
自行設計張量運算,可能會感到沮喪。而先學習Keras可以輕松構建并使用深
度學習模型。等讀者對深度學習模型有了一定了解后,再學習TensorFlow就不
會感到那么困難了。
Keras是一個高級的神經(jīng)網(wǎng)絡API,它使用純Python編寫,可以基于
TensorFlow、Theano和CNTK等后端進行操作。Keras具有高度模塊化、簡潔
和可擴展的特性,支持卷積神經(jīng)網(wǎng)絡(CNN)、循環(huán)神經(jīng)網(wǎng)絡(RNN)以及兩
7
湖南商務職業(yè)技術學院畢業(yè)設計
者的結合,并且能夠無縫地在CPU和GPU之間切換。
Keras是一個模型層次的深度學習庫,主要處理模型的建立、訓練和預測等
功能。底層的深度學習運算,如張量運算,需要與后端引擎進行配合。目前Keras
提供了兩種后端引擎選項:Theano和TensorFlow。Keras的開發(fā)者只需關注模
型的構建,而底層的操作細節(jié),如張量運算,Keras會自動轉(zhuǎn)化為相應的Theano
或TensorFlow指令。如果選擇TensorFlow作為后端引擎,可以使用Keras進行
深度學習的建模、訓練和預測等任務,所以TensorFlow具備的好處都具備。
3方法設計與實現(xiàn)
3.1數(shù)據(jù)集收集與預處理
3.1.1數(shù)據(jù)集的獲取
本次的動物識別系統(tǒng)的數(shù)據(jù)集獲取采用爬蟲的方式進行獲取。動物圖片數(shù)
據(jù)集的爬取通過/網(wǎng)站接口進行爬取。
Pexels網(wǎng)站的官方網(wǎng)址是。Pexels是一個廣受歡迎的免費
圖片和視頻庫網(wǎng)站,提供高質(zhì)量的免費素材資源。該網(wǎng)站的目標是為用戶提供
免費、可商用的素材,滿足各種創(chuàng)意和設計需求。在Pexels網(wǎng)站上,用戶可以
搜索并下載各種類型的圖片和視頻,包括但不限于風景、人物、動物、自然等。
該平臺上的素材由全球的攝影師社區(qū)貢獻,確保了內(nèi)容的多樣性和專業(yè)性。
Pexels網(wǎng)站的使用非常便捷,用戶可以通過關鍵詞或主題進行搜索,也可以瀏
覽編輯精選的照片和視頻。每個素材都具有高分辨率和出色的質(zhì)量,適用于個
人和商業(yè)用途,并且不需要進行版權歸屬或支付費用。除了提供免費素材,Pexels
還為用戶提供了一些實用的功能和工具。例如,用戶可以創(chuàng)建收藏夾來保存和
組織感興趣的素材,還可以根據(jù)瀏覽和下載歷史獲得相關的素材推薦。
總之,Pexels是一個受歡迎的免費素材庫網(wǎng)站,提供高質(zhì)量的圖片和視頻
資源,適用于各種個人和商業(yè)創(chuàng)意需求。該網(wǎng)站的簡潔易用和豐富多樣的內(nèi)容
使其成為許多人首選的素材來源之一。下圖為數(shù)據(jù)集獲取的核心代碼。
8
湖南商務職業(yè)技術學院畢業(yè)設計
圖3-1動物識別系統(tǒng)的數(shù)據(jù)集獲取核心代碼
3.1.2數(shù)據(jù)集預處理
在對爬取之后的動物分類數(shù)據(jù)集進行預處理時,常見的操作包括數(shù)據(jù)圖像
的大小設置、使用DataGenerator對數(shù)據(jù)增強,數(shù)據(jù)集的劃分等處理。
圖像數(shù)據(jù)的同一大小設置常常通過resize函數(shù),由于爬取到的動物分類數(shù)
據(jù)集中的圖像可能具有不同的大小和分辨率,需要將它們統(tǒng)一為相同的輸入大
小。常見的做法是使用resize操作將圖像調(diào)整為固定的尺寸,例如224x224或
者256x256像素。
數(shù)據(jù)增強是一種通過對原始圖像進行一系列隨機變換來擴充數(shù)據(jù)集大小、
減少過擬合并提高模型的泛化能力的技術。常見的數(shù)據(jù)增強操作包括隨機旋轉(zhuǎn)、
平移、縮放、剪切、翻轉(zhuǎn)、亮度和對比度調(diào)整等。這些操作可以通過使用圖像
處理庫(如OpenCV或PIL)在訓練過程中實時應用于圖像。
數(shù)據(jù)生成器(DataGenerator):數(shù)據(jù)生成器是一種用于在訓練模型時動態(tài)
加載批量圖像數(shù)據(jù)并進行預處理的工具。數(shù)據(jù)生成器可以避免將整個數(shù)據(jù)集加
載到內(nèi)存中,而是在每個訓練批次中按需加載和處理圖像數(shù)據(jù)。這對于處理大
型數(shù)據(jù)集和節(jié)省內(nèi)存是非常有用的。通過數(shù)據(jù)生成器,可以將預處理操作(如
9
湖南商務職業(yè)技術學院畢業(yè)設計
resize和數(shù)據(jù)增強)直接應用于每個圖像。通過resize操作將圖像調(diào)整為相同尺
寸后,可以將其輸入到深度學習模型中進行訓練。在訓練過程中,使用數(shù)據(jù)生
成器按需加載和預處理圖像數(shù)據(jù),在每個訓練批次中應用數(shù)據(jù)增強操作來增加
數(shù)據(jù)集的多樣性,下圖為數(shù)據(jù)預處理核心代碼。
圖3-2動物識別系統(tǒng)的數(shù)據(jù)預處理核心代碼
動物分類數(shù)據(jù)集的預處理常見步驟包括resize操作將圖像調(diào)整為相同尺寸,
數(shù)據(jù)增強操作增加數(shù)據(jù)集的多樣性,并使用數(shù)據(jù)生成器在訓練過程中動態(tài)加載
和處理圖像數(shù)據(jù)。這些步驟可以幫助提高模型的性能和泛化能力。下圖為動物
識別系統(tǒng)的數(shù)據(jù)可視化。
10
湖南商務職業(yè)技術學院畢業(yè)設計
圖3-3動物識別系統(tǒng)的數(shù)據(jù)可視化
3.2深度學習模型選擇與設計
3.2.1深度學習模型選擇
深度學習在識別方面的模型有很多種,其中一些常見的包括:YOLO(You
OnlyLookOnce)系列、FasterR-CNN、SSD(SingleShotMultiBoxDetector)、
RetinaNet等。每個模型都有其獨特的優(yōu)勢和適用場景。
YOLO系列模型以單次前向傳播的方式進行目標檢測,速度較快,適用于
實時應用。YOLO系列模型可以在不同尺度的圖像上進行目標檢測,對于多尺
度目標有較好的適應性。YOLO系列模型的設計相對簡單,容易理解和實現(xiàn)。
但是其模型的精度相對較低,相比其他模型,YOLO系列模型在精度上可能稍
遜一籌,尤其是在小目標檢測方面。FasterR-CNN具有較高的準確度,F(xiàn)aster
R-CNN在目標檢測的準確度上表現(xiàn)較好,尤其對于小目標的檢測有較好的效
果。FasterR-CNN可以很容易地進行擴展和調(diào)整,適應不同的任務和數(shù)據(jù)集。
但是FasterR-CNN的速度相對較慢,不太適用于實時應用。FasterR-CNN的模
型結構相對復雜,實現(xiàn)和訓練相對困難。SSD(SingleShotMultiBoxDetector)是
以單次前向傳播的方式進行目標檢測,速度較快。SSD在較小目標的檢測上表
11
湖南商務職業(yè)技術學院畢業(yè)設計
現(xiàn)較好,同時在速度和準確度之間取得了較好的平衡。但是其模型對大目標的
檢測可能不夠準確。并且相對于其他模型,需要更多的計算資源。RetinaNet在
目標檢測的準確度上表現(xiàn)優(yōu)秀,尤其適用于小目標檢測。RetinaNet使用了Focal
Loss來處理目標檢測中的類別不平衡問題,提升了模型的性能。但是RetinaNet
的速度較慢,不太適用于實時應用。并且RetinaNet的模型結構比較復雜,實現(xiàn)
和訓練的難度較大。
綜合考慮模型的速度、準確度、復雜度以及應用場景的要求。在動物識別
系統(tǒng)中,采用了YOLO系列模型作為深度學習動物識別系統(tǒng)的模型。
3.2.2模型設計
YOLOv4算法原理是將輸入原圖的大小調(diào)整成416×416的分辨率作為網(wǎng)
絡輸入,使用上采樣和特征融合操作,然后將原圖按照特征圖比例劃分成13×
13、26×26和52×52的網(wǎng)格,在多尺度特征圖上進行預測。首先對每個尺寸
的網(wǎng)格使用三個錨框來預測目標對象的邊界。其次,使用預測的高維特征向量
和目標對象的實際邊界框和類別標簽作為輸入。最后,對邊界框進行回歸訓練。
YOLOv4的結構的示意圖如下圖所示。
圖3-4YOLOv4網(wǎng)絡結構圖
該模型在輸入階段實施了一種稱為Mosaic的圖像增強技術,該技術通過組
合四張不同的圖像來創(chuàng)建新的視覺效果。Mosaic技術通過隨機選擇并裁剪四張
圖片的特定部分,然后將這些部分合并成一張單一的圖像,以此作為模型訓練
12
湖南商務職業(yè)技術學院畢業(yè)設計
的輸入。同時可以提高模型訓練輸入的Batch_size,在標準化BN計算的時候
會同時計算四張圖片的數(shù)據(jù)。YOLOv4模型的構建核心代碼如下圖所示。
圖3-5YOLOv4網(wǎng)絡構建
YOLOV4網(wǎng)絡結構采用CSP連接,主要以下優(yōu)點,增強CNN的學習能力,
使得在輕量化的同時保持準確性,降低計算瓶頸同時降低內(nèi)存成本。YOLOv4
利用上面的CSP連接,下圖為Darknet-53作為特征提取的主干網(wǎng)絡的網(wǎng)絡模型
13
湖南商務職業(yè)技術學院畢業(yè)設計
概要。
圖3-6模型概要圖
3.3模型的編譯與訓練
在YOLO算法中,基于IoU的度量方式也被使用在NMS非極大值抑制
過程中,該過程主要是為了抑制預測階段產(chǎn)生的冗余的邊界框,解決多個檢測
框重疊的問題。在非極大值抑制過程中,YOLO算法首先會對所有預測框按照
置信度得分進行排序,從中選擇出擁有最大置信度得分的預測框,并將其作為
最終檢測結果框輸出。然后對于剩余的預測框,計算它們與所有檢測結果框的
IoU指標,若大于預設閾值,則將對應的預測框刪除,經(jīng)過這個過程就抑制掉
了冗余的預測框。然后一直重復輸出檢測結果和抑制冗余預測框的過程,直至
所有的預測框都處理完畢。這一過程中需要進行大量的預測框與檢測結果框之
14
湖南商務職業(yè)技術學院畢業(yè)設計
間的IoU計算,因此如果采用計算相對更為復雜NWD來替代IoU以優(yōu)化檢
測效果,將會導致計算量大大增加,從而大幅度的減慢目標檢測速度。因此NWD
并不適用于目標檢測算法的NMS非極大值抑制過程中。
在編譯過程中,需要選擇適當?shù)膿p失函數(shù)和優(yōu)化器。損失函數(shù)用于衡量模
型的預測結果與真實值之間的差異,優(yōu)化器用于更新模型的權重和偏置。下圖
為動物識別系統(tǒng)的YOLO模型的損失函數(shù)的核心代碼。
圖3-7模型的損失函數(shù)代碼
下圖為模型的訓練過程圖。
15
湖南商務職業(yè)技術學院畢業(yè)設計
圖3-8YOLOv4模型訓練過程圖
3.4模型的評估與優(yōu)化
3.4.1模型的評估
在目標識別分類任務中,常用的評價指標有以下幾種:準確率(Precision)、
召回率(Recall)、平均精度(AveragePrecision,AP)、全類平均精度(mAP)。
這里需要首先引入分類任務中的一些概念,在二分類問題中,通常用四個
指標來衡量模型的分類效果,這些指標分別是真正例(TruePositive,TP)、假
正例(FalsePositive,FP)、真反例(TrueNegative,TN)和假反例(FalseNegative,
FN)。其中,TP指模型正確地將正例判斷為正例的數(shù)量,也就是模型成功檢
測到的正例數(shù)。例如,在目標檢測中,如果模型能夠正確地將一只狗檢測為狗,
則該檢測結果可以視為一次真正例。FP指模型錯誤地將反例判斷為正例的數(shù)
量,也就是模型錯誤地將反例標記為了正例。即如果模型將一只貓錯誤地檢測
為狗,則該檢測結果可以視為一次假正例。TN指模型正確地將反例判斷為反
例的數(shù)量,也就是模型成功檢測到的反例數(shù)。即如果模型正確地將一張不包含
任何目標的圖像標記為反例,則該標記結果可以視為一次真反例。FN指模型
錯誤地將正例判斷為反例的數(shù)量,也就是模型錯誤地將正例標記為了反例。即
如果模型未能檢測到一只實際上存在于圖像中的狗,則該檢測結果可以視為一
次假反例。在分類結果中,TP和TN表示正確分類的樣本數(shù)量,而FP和FN表
示分類錯誤的樣本數(shù)量。
這些指標在計算準確率、召回率、mAP等評價指標時會使用到,以更全面
地評價模型的分類性能。
AP(AveragePrecision)用于衡量模型在不同置信度閾值下的準確率和召回
率的平均值。在目標檢測任務中,每個檢測框都會有一個置信度分數(shù),表示該
框中是否包含目標,這個分數(shù)通常是由檢測模型預測得出的。AP指標衡量的
是在不同置信度分數(shù)閾值下,模型預測出的檢測框與真實目標框之間的匹配程
度。AP的計算方式是先計算出模型在每個置信度閾值下的準確率和召回率,
然后對準確率和召回率進行插值,最終得到一個平均精度值。AP值越高表示
模型在檢測目標方面的性能越好。
mAP(meanAveragePrecision)是所有類別AP值的平均值,用來綜合評
估模型在多個類別的目標檢測任務上的性能。在目標檢測任務中,可能會有多
個不同的目標類別需要被檢測,如人、車、動物等。每個類別都有一個對應的
16
湖南商務職業(yè)技術學院畢業(yè)設計
AP值,表示在該類別下,模型的檢測性能如何。mAP通過計算所有類別的
AP值的平均值來綜合評估模型在多類別目標檢測任務中的性能。計算mAP
需要先計算每個類別的AP值,然后將所有類別的AP值求平均。在實際的目
標檢測任務中,mAP是一個非常重要的評估指標。通過對不同算法和模型的比
較,可以幫助了解哪些算法和模型在不同的場景和數(shù)據(jù)集下表現(xiàn)更好。
mAP值能很好的反應模型的性能,動物識別系統(tǒng)的mAP評估結果如下所
示。
圖3-9YOLO模型評估
3.4.2模型的優(yōu)化
神經(jīng)網(wǎng)絡模型的訓練很容易出現(xiàn)過擬合,導致對驗證集的數(shù)據(jù)預測結果不
夠準確。由于預測框與真實框之間不相交的時候,IOU=0,無法進行梯度計算,
相同的IOU會反映不出實際預測框與真實框之間的情況,對于這種情況,引入
了GIOU進行模型的優(yōu)化,GIOU可以很好地解決不重疊情況下,也就是IOU=0
的情況,從而讓訓練繼續(xù)進行下去。除此之外,YOLOv4使用的是CIOU損失,
損失函數(shù)必須考慮三個幾何因素,重疊面積,中心點距離,長寬比。
優(yōu)化之后的模型,整體架構可以分為三個主要組件:主干網(wǎng)絡、特征金字
塔網(wǎng)絡和預測頭。
主干網(wǎng)絡:YOLOv4使用了一個強大的主干網(wǎng)絡作為特征提取器。主干網(wǎng)
絡通常使用預訓練的卷積神經(jīng)網(wǎng)絡,如Darknet-53等,來提取輸入圖像的特征。
這些特征將被傳遞到接下來的組件中進行進一步處理。
特征金字塔網(wǎng)絡:特征金字塔網(wǎng)絡用于處理來自主干網(wǎng)絡的特征,并提取
多尺度的特征。這樣可以在不同尺度上檢測目標,從而提高檢測的準確性。
17
湖南商務職業(yè)技術學院畢業(yè)設計
YOLOv4使用了一個特殊的特征金字塔網(wǎng)絡,稱為SPP(SpatialPyramid
Pooling),它可以在不同尺度上提取特征,并將它們?nèi)诤显谝黄稹?/p>
預測頭:預測頭是YOLOv4的最后一部分,用于預測目標的位置和類別。
它根據(jù)特征金字塔網(wǎng)絡輸出的特征圖進行預測。YOLOv4使用了一種稱為
YOL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肇慶拆除施工方案(3篇)
- 苗木除草施工方案(3篇)
- 西藏鞋店施工方案(3篇)
- 車庫交叉施工方案(3篇)
- 邊疆捐贈活動策劃方案(3篇)
- 鐵網(wǎng)護欄施工方案(3篇)
- 門窗組織施工方案(3篇)
- 陶瓷路面施工方案(3篇)
- 高層基坑施工方案(3篇)
- 2026年安全監(jiān)管者的手冊全面解析安全隱患排查標準題庫
- 2026年中考英語復習專題課件:謂語動詞的時態(tài)和被動語態(tài)
- 糧食行業(yè)競爭對手分析報告
- 兒科MDT臨床技能情景模擬培訓體系
- 【高三上】2026屆12月八省聯(lián)考(T8聯(lián)考)語文試題含答案
- (人教版)必修第一冊高一物理上學期期末復習訓練 專題02 連接體、傳送帶、板塊問題(原卷版)
- 護理不良事件根本原因分析
- 社會心理學考試題及答案
- 門窗工程掛靠協(xié)議書
- 醫(yī)療器械經(jīng)營企業(yè)質(zhì)量管理體系文件(2025版)(全套)
- 出鐵廠鐵溝澆注施工方案
- 2025年中小學教師正高級職稱評聘答辯試題(附答案)
評論
0/150
提交評論