基于目標檢測的車位定位的研究與應(yīng)用_第1頁
基于目標檢測的車位定位的研究與應(yīng)用_第2頁
基于目標檢測的車位定位的研究與應(yīng)用_第3頁
基于目標檢測的車位定位的研究與應(yīng)用_第4頁
基于目標檢測的車位定位的研究與應(yīng)用_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-[14]等作者提出一種輕量級車位檢測方法OG-YOLOv5。首先,針對采用YOLOv5網(wǎng)絡(luò)的改進中,新增了車位分隔線方位的回歸分支,以實現(xiàn)精準預(yù)測車位方位,這樣能夠直接根據(jù)網(wǎng)絡(luò)預(yù)測結(jié)果推斷完整的車位信息。其次,進行了模型優(yōu)化,采用了檢測尺度裁剪和Ghost模塊的改進,使得模型更加輕量化。同時,在網(wǎng)絡(luò)的骨干部分引入了ECA注意力機制和優(yōu)化的損失函數(shù)。以增強目標預(yù)測的準確性。經(jīng)過對比實驗驗證,結(jié)果表明,所提出的OG-YOLOv5網(wǎng)絡(luò)在mAP@0.5指標上達到了98.8%,其模型參數(shù)量和計算量僅為原模型的32.0%和28.3%,在GPU和CPU上的檢測時間分別減少了16.2%和28.1%。車位檢測準確率和召回率分別達到了97.75%和96.87%。綜合國內(nèi)外研究現(xiàn)狀,YOLO模型在目標檢測板塊可以保持高檢測精度和低時延目標檢測。比較傳統(tǒng)的目標檢測方法,YOLO模型則可以在一張圖像上預(yù)測除多個目標的位置及類別,提高檢測的速度。YOLO模型自誕生以來不斷發(fā)展和演進,從最初的YOLOv1到后來的YOLOv3、YOLOv5、YOLOv8等版本,每一代模型都在保持實時性的同時不斷提高檢測精度和性能,使得YOLO模型始終處于目標檢測領(lǐng)域的前沿位置。1.2.1目標檢測算法研究現(xiàn)狀目標檢測是計算機視覺領(lǐng)域的一項重要任務(wù),主要是為了從數(shù)字圖像或者視頻中自動地識別出目標,并且可以準確地標記物體的位置和類別。與簡單的目標識別任務(wù)相比,目標檢測要求系統(tǒng)能夠精確地定位圖像中的多個目標,并且能夠處理不同大小、形狀和姿態(tài)的目標,同時識別該目標屬于預(yù)定義的一組類別中的哪一個。近年以來,深度學(xué)習方法,尤其是卷積神經(jīng)網(wǎng)絡(luò)(CNN),在目標檢測領(lǐng)域取得巨大的成功。這些網(wǎng)絡(luò)能夠?qū)W習到豐富的特征表示,使得它們能夠更準確地定位和識別目標。目前,F(xiàn)asterR-CNN、YOLO(YouOnlyLookOnce)以及SSD(SingleShotMultiBoxDetector)等目標檢測算法備受青睞并處于領(lǐng)先地位。FasterR-CNN以區(qū)域提議網(wǎng)絡(luò)(RegionProposalNetwork,RPN)為基礎(chǔ),將區(qū)域提議和目標分類相融合,使得檢測速度和準確率顯著提高。YOLO算法是一種實時目標檢測方法,它將目標檢測任務(wù)視為回歸問題,并將整個圖像網(wǎng)格化,每個網(wǎng)格負責預(yù)測該區(qū)域是否存在目標、目標位置和類別。YOLO模型具有快速的檢測速度和高準確率。適用于需要實時性能的場景。SSD是一種單次多框檢測器,主要利用在不同尺度上進行同時預(yù)測目標的位置和類別,實現(xiàn)了更快的檢測速度和更好的準確率。SSD在處理多尺度目標時表現(xiàn)出色,并且具有較高的定位精度。YOLOv5是YOLO系列的最新版本,引入了一系列改進,包括更高的檢測精度、更快的速度以及更簡單的訓(xùn)練流程。在COCO數(shù)據(jù)集上,YOLOv5的mAP50高達50.6%,在單個TeslaP100GPU上,其檢測的速度超過140FPS。該版本的發(fā)布引起了車位檢測領(lǐng)域的關(guān)注,其優(yōu)異的性能表現(xiàn)使其成為研究者和從業(yè)者的首選。EfficientDet是一種高效的目標檢測算法,于2020年提出。該算法通過設(shè)計輕量級的網(wǎng)絡(luò)結(jié)構(gòu)和改進模型參數(shù),可以實現(xiàn)高檢測精度,并且能夠大幅度減少計算的成本和模型的大小。EfficientDet在速度和準確度之間取得了很好的平衡,適用于資源受限的設(shè)備和實時應(yīng)用場景。PP-YOLO是一種基于PaddlePaddle框架的目標檢測算法,于2021年提出。在COCO數(shù)據(jù)集上,PP-YOLO的mAP50高達45.2%,在單個TeslaV100GPU上,其檢測速度能夠達到72FPS。該算法通過引入預(yù)測頭部解耦和跨層特征聚合等技術(shù),進一步提升了車位檢測的精度和速度。在車位檢測任務(wù)上,PP-YOLO展現(xiàn)了出色的性能,為實現(xiàn)更高效的車位檢測提供了新的解決方案。1.3研究內(nèi)容和創(chuàng)新本論文是提供了一種基于YOLO-NAS的車位定位解決方案,使用YOLO-NAS模型,對輸入的目標檢測的圖像信息中的車位進行精確定位并分類,基于目標檢測的車位定位可以對復(fù)雜環(huán)境中的車位信息準確性和實時性更高,易部署性可以降低停車場管理成本。1.實時檢測:YOLO-NAS是一種最新的實時目標檢測模型,推理速度和低時延方面優(yōu)于YOLOv6和YOLOv8模型,這使得在停車位的管理過程中會更加的快捷準確。2.高精度檢測:在YOLO-NAS進行車位檢測的過程中,檢測精度非常的高,在實踐環(huán)境下,可以在相對復(fù)雜的車輛環(huán)境將車位信息進行車位定位和車位占用分類,對于現(xiàn)實中復(fù)雜的停車環(huán)境非常有幫助。1.4論文結(jié)構(gòu)及其安排第一個部分為緒論。闡述了本文的研究背景及其意義,并簡述了國內(nèi)外針對于目標檢測領(lǐng)域的算法在車位檢測和定位方面的主要研究與發(fā)展,對本論文的主要工作和創(chuàng)新進行詳細的說明。第二個部分主要是關(guān)于深度學(xué)習的卷積神經(jīng)網(wǎng)絡(luò)理論基礎(chǔ)和基本架構(gòu),以及目標檢測算法所采用的理論基礎(chǔ)和方法,我們進行介紹。第三個部分為YOLO-NAS模型原理,基于YOLO-NAS的模型設(shè)計。第四個部分為YOLO-NAS模型的實現(xiàn)。先是針對實驗環(huán)境進行搭建和數(shù)據(jù)集進行篩選,再對數(shù)據(jù)集預(yù)處理,搭建訓(xùn)練模型,對模型性能進行評估與分析,設(shè)計詳細的對比實驗。第五個部分為總結(jié)及其未來展望。2理論基礎(chǔ)及相關(guān)技術(shù)介紹本章主要介紹了卷積神經(jīng)網(wǎng)絡(luò)的理論基礎(chǔ)和YOLO系列模型的算法基礎(chǔ),先是介紹卷積神經(jīng)網(wǎng)絡(luò)的原理和基本組件,該組件是實現(xiàn)針對圖像信息中的特征提取工作的重要理論基礎(chǔ),再介紹了YOLO模型的基礎(chǔ)架構(gòu),YOLO算法在圖像分類領(lǐng)域中的應(yīng)用十分廣泛,本文采用了最新的YOLO系列模型中的YOLO-NAS進行車位定位。2.1卷積神經(jīng)網(wǎng)絡(luò)在過去幾年中,隨著計算機算力的持續(xù)增強以及YOLO(YouOnlyLookOnce)系列目標檢測算法的快速發(fā)展,YOLO在圖像分類應(yīng)用方面的廣泛應(yīng)用變得更加明顯。特別值得注意的是,YOLO-NAS(YouOnlyLookOnceNeuralArchitectureSearch)在YOLOv6和YOLOv8系列的基礎(chǔ)上進行改進,極大地提高了目標檢測的性能。本章旨在深入研究深度學(xué)習的理論基礎(chǔ)和傳統(tǒng)圖像處理機器學(xué)習的基礎(chǔ)知識,以更好地理解其工作原理,為基于YOLO-NAS框架的車位定位研究提供基礎(chǔ)。卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,簡稱CNN)是在深度學(xué)習板塊非常重要的算法之一,具有局部連接、權(quán)值共享等特點。該模型在處理圖像方面表現(xiàn)突出,尤其在圖像識別等機器學(xué)習問題上表現(xiàn)出色,例如在圖像的分類、檢測、分割等視覺任務(wù)中都有明顯的效果提升。卷積神經(jīng)網(wǎng)絡(luò)(CNN)擁有學(xué)習特征表示的能力,能夠?qū)崿F(xiàn)對輸入信息進行平移不變分類,適用于監(jiān)督學(xué)習和無監(jiān)督學(xué)習。CNN中的卷積核參數(shù)在隱藏層內(nèi)共享,層間連接稀疏,使得CNN可以通過較小的計算量學(xué)習格點化特征(比如像素和音頻),同時能夠穩(wěn)定地適應(yīng)不同的數(shù)據(jù),減少了對額外特征工程的需求。因此,CNN被廣泛運用于計算機視覺、自然語言處理等領(lǐng)域。如圖2.1所示圖2.1神經(jīng)網(wǎng)絡(luò)模型在深度學(xué)習中,卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,CNN)作為一個非常重要的模型結(jié)構(gòu),在圖像的處理等方面取得巨大的成功。這種網(wǎng)絡(luò)結(jié)構(gòu)主要是由輸入層、卷積層、激活函數(shù)、池化層和全連接層等組成的,每一層都承擔著不同的功能,共同構(gòu)建了整個網(wǎng)絡(luò)的架構(gòu)。1.輸入層輸入層的設(shè)計在計算機視覺領(lǐng)域的神經(jīng)網(wǎng)絡(luò)中扮演著關(guān)鍵角色。其結(jié)構(gòu)和大小的選擇通常依賴于輸入數(shù)據(jù)的特性和格式。以圖像分類任務(wù)為例,輸入層通常由二維輸入神經(jīng)元組成,其大小則是由輸入圖像的寬度和高度所決定(對于灰度或RGB通道的圖像而言)。對于文本處理任務(wù),根據(jù)文本中的單詞或字母數(shù)量來選擇合適的尺寸,通常使用獨熱編碼作為輸入方式。在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,數(shù)據(jù)會通過各個層進行流動,每一層都會轉(zhuǎn)換輸入數(shù)據(jù)并提取其特征。因此,輸入層的主要作用是將原始數(shù)據(jù)轉(zhuǎn)換為神經(jīng)網(wǎng)絡(luò)可以處理的格式,并將其引入網(wǎng)絡(luò)流中。在每一層之后,輸入數(shù)據(jù)通常會被加權(quán),并傳遞至下一層進行計算。因此,輸入層的設(shè)計和實現(xiàn)至關(guān)重要,它直接影響著神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和性能表現(xiàn)。2.卷積層卷積層是至關(guān)重要的組成部分。卷積操作在網(wǎng)絡(luò)中實現(xiàn)了特征的提取和降維。每個卷積層基本都是由卷積核、偏置項和激活函數(shù)組成的。卷積核是一組權(quán)重,其主要通過在輸入數(shù)據(jù)上滑動并執(zhí)行卷積操作來提取特征。偏置項是一個常數(shù),用于調(diào)整輸出特征圖的整體偏移。激活函數(shù)則引入了非線性,使得網(wǎng)絡(luò)能夠?qū)W習復(fù)雜的數(shù)據(jù)表示。通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)的層次優(yōu)化設(shè)計和訓(xùn)練,使其能夠?qū)崿F(xiàn)從原始數(shù)據(jù)中獲得高度抽象的特征。該特征可以在分類、檢測等任務(wù)中發(fā)揮出重要的作用,實現(xiàn)了高效的圖像處理和理解。3.激活函數(shù)神經(jīng)網(wǎng)絡(luò)中引入激活函數(shù),給網(wǎng)絡(luò)賦予了非線性特性,這對于處理復(fù)雜數(shù)據(jù)至關(guān)重要。在接下來的內(nèi)容中,將介紹一種新型的神經(jīng)網(wǎng)絡(luò)模型,即卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN),其可以處理各種形狀、大小和分布的數(shù)據(jù)。在卷積神經(jīng)網(wǎng)絡(luò)中,比如通過線性激活函數(shù)、直接經(jīng)過邏輯回歸方法,或不使用激活函數(shù),其效果都會類似。這是因為線性激活函數(shù)導(dǎo)致網(wǎng)絡(luò)輸出與輸入之間呈線性關(guān)系,因此無法引入非線性變換。如果在沒有隱藏層的情況下,該線性關(guān)系則會限制網(wǎng)絡(luò)的表達能力,使其與感知器模型類似。所以為了增強網(wǎng)絡(luò)的非線性的特性,則需要進一步引入非線性的激活函數(shù)。Sigmoid函數(shù)是一種常見的激活函數(shù),擁有將輸入映射到0到1之間的特性。然而,Sigmoid函數(shù)在接近0或1時的導(dǎo)數(shù)變化非常小,這容易導(dǎo)致梯度消失的問題如公式2-1所示。此外,與其他激活函數(shù)相比,Sigmoid函數(shù)的計算成本較高,因為它涉及指數(shù)運算,這會導(dǎo)致計算機運行速度變慢。Sigmoid函數(shù)圖像如圖2.2所示:fx=11圖2.2Sigmoid函數(shù)ReLU激活函數(shù),也被稱為修正線性單元,因為它是一個分段線性函數(shù),具有高效的計算性能。然而,ReLU函數(shù)的一個劣勢是不集中在0點。正數(shù)或0的輸入可能會引起下一層神經(jīng)網(wǎng)絡(luò)中激活值的偏移,這可能會導(dǎo)致梯度下降的速度變慢。。如公式2-2所示。ReLU函數(shù)圖像如2.3所示。fx=x,圖2.3ReLU激活函數(shù)4.池化層池化層在卷積神經(jīng)網(wǎng)絡(luò)中的主要功能是降低特征圖的維度,其通過局部統(tǒng)計的方式將卷積層得到的結(jié)果進行壓縮,特征值的轉(zhuǎn)換不僅可以降低數(shù)據(jù)量,還可以有效減少網(wǎng)絡(luò)參數(shù)的數(shù)量,進而降低過擬合的風險,提升網(wǎng)絡(luò)的魯棒性和泛化能力。池化層的參數(shù)有兩個,分別是池化窗口的尺寸和池化步長。池化窗口的大小決定了每次池化操作考慮的輸入數(shù)據(jù)區(qū)域,通常由窗口的高度和寬度共同確定。在進行池化操作時候,網(wǎng)絡(luò)會從輸入數(shù)據(jù)中選取具有相應(yīng)大小的窗口進行處理。而池化步長則決定了窗口在豎直和水平方向上每次移動的距離。Pooling層的超參數(shù)選擇對卷積神經(jīng)網(wǎng)絡(luò)的性能和效果具有重要的影響。池化的窗口大小決定了特征提取范圍,而池化的步長則是決定特征提取的密度。因此,合理選擇池化層的參數(shù)能夠有效地優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),提升其性能。如圖2.4所示。圖2.4池化層5.全連接層全連接層是充當分類器的重要組成部分,其職責是對提取的圖像特征進行分類判斷。全連接層的輸出反映了被測試樣本所屬的各個類別,進而完成分類任務(wù)。全連接層內(nèi)含有大量權(quán)重參數(shù),需要通過訓(xùn)練來優(yōu)化這些參數(shù),以達到更優(yōu)秀的分類效果。在神經(jīng)網(wǎng)絡(luò)中,正向傳播時,全連接層通過對上一層輸出進行線性組合,并生成當前層輸出。為了增強表達能力,在線性組合的基礎(chǔ)上,全連接層引入非線性變換,通常通過添加一個m維偏置向量與權(quán)重矩陣相加來實現(xiàn)。全連接層的功能主要是將信息映射到高維空間,以提升網(wǎng)絡(luò)的表達和學(xué)習能力。在深度學(xué)習中,全連接層通過利用前幾層提取的高維特征空間來執(zhí)行分類、回歸等任務(wù)。通過線性組合和偏置項的引入,可以將輸入特征映射到高維空間,實現(xiàn)更為復(fù)雜的函數(shù)擬合和預(yù)測。如圖2.5所示。圖2.5全連接層2.2一階段目標檢測方法2.2.1YOLO系列YOLO系列網(wǎng)絡(luò)是一階段目標檢測方法,其具備檢測速度快、準確率高等特點。把圖像輸入到Y(jié)OLO系列網(wǎng)絡(luò)的時候,網(wǎng)絡(luò)會將圖像先劃分為一個S×S的網(wǎng)格。只要物體的中心點位于某個網(wǎng)格內(nèi),網(wǎng)格即成為目標檢測的參考。與此同時,神經(jīng)網(wǎng)絡(luò)會產(chǎn)生一個邊界框來定位目標位置,進而確定其類別。YOLOv3是在Darknet-53主干特征提取網(wǎng)絡(luò)的基礎(chǔ)上加入了殘差網(wǎng)絡(luò)結(jié)構(gòu)。除了初始的卷積層外,其余部分均由殘差塊構(gòu)成。殘差網(wǎng)絡(luò)結(jié)構(gòu)最初是在ResNet-50上提出的,由兩部分組成。主干部分依然進行卷積、激活函數(shù)、標準化等操作,而另一部分則與普通的卷積有所不同,它會有一個殘差線從旁邊引出,與主干的輸出進行相加連接,形成殘差網(wǎng)絡(luò)的一個單元,直接映射到后面的一個特征層中。殘差邊的引入使得網(wǎng)絡(luò)更容易進行優(yōu)化和訓(xùn)練。大多數(shù)目標檢測方法僅利用了深層信息,并沒有充分的利用淺層的信息。為了加強特征提取的網(wǎng)絡(luò),YOLOv3采用了特征金字塔的網(wǎng)絡(luò)(FeaturePyramidNetworks,FPN),以在不同的特征層上進行對應(yīng)的目標預(yù)測。YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)包含即特征提取層、特征聚合層和目標預(yù)測層。最基本的構(gòu)建單元是標準卷積層Conv,包含卷積層、歸一化卷積層和激活函數(shù)。利用張量拼接的方法,實現(xiàn)了不同通道數(shù)特征圖的深度相加,擴展了張量的維度,同時保持了原始寬高。在特征提取層中引入CrossStagePartial(CSP)網(wǎng)絡(luò)模塊,用于將基礎(chǔ)層特征映射分流再合并,有效阻止了重復(fù)梯度信息的產(chǎn)生。這種設(shè)計不僅降低了計算復(fù)雜度,還保持了準確性。還引入了Focus結(jié)構(gòu),對特征圖進行切片操作,以減輕算法的計算負擔。在特征聚合層中采用特征金字塔思想,增大感受野,更有效地分離上下文的特征,從而提升了網(wǎng)絡(luò)的性能和效率。如圖2.6所示。圖2.6YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)2.3兩階段目標檢測方法相對于傳統(tǒng)目標檢測方法,兩階段目標檢測方法最顯著的進步在于提升了檢測精度,并且加快了檢測速度。這些方法一般是基于候選區(qū)域進行特征提取和目標檢測,總體而言可分為兩步:先是得到候選區(qū)域,然后是針對這些候選區(qū)域中的目標進行分類和坐標回歸。兩階段檢測法以其高準確率而著稱,然而其識別速度相對較慢,實時性能較低。代表性的算法包括R-CNN、FastR-CNN和FasterR-CNN。FasterR-CNN通過改善R-CNN的方法顯著提升了性能。新方法中不再采用傳統(tǒng)的選擇算法來生成候選框,在引入卷積神經(jīng)網(wǎng)絡(luò)之前,提出了候選框產(chǎn)生網(wǎng)絡(luò),將分類回歸、特征提取和候選框生成等模塊融合為一個端到端的目標檢測網(wǎng)絡(luò)。共享卷積層的應(yīng)用顯著提高了候選框生成的速度。先利用VGG16網(wǎng)絡(luò)作為主干網(wǎng)絡(luò)提取圖像特征,然后將這些特征輸入到區(qū)域建議網(wǎng)絡(luò)中。隨后,在區(qū)域建議網(wǎng)絡(luò)中采用3x3的卷積核在共享特征圖上移動,產(chǎn)生不同尺寸的錨點。最后,經(jīng)過ROI池化層將輸入的錨點和特征圖整合,提取建議特征圖,并通過全連接層進行類別分類。相較先前的算法,F(xiàn)asterR-CNN作者做出了巨大的創(chuàng)新。它將特征提取模塊和候選區(qū)域生成模塊整合在一起,從而大大減少了生成候選框所需的時間。在特征提取方面,融入了更深層次的共享卷積層以提升特征信息,從而提高了檢測的準確性。尤其是對于小目標的檢測效果更加顯著。然而,由于網(wǎng)絡(luò)的深度增加,計算量也隨之增加,因此其實時性能仍有待進一步提高。如圖2.7所示。圖2.7FasterR-CNN網(wǎng)絡(luò)結(jié)構(gòu)2.4章節(jié)小結(jié)本章主要介紹了目標檢測領(lǐng)域主要的算法基本原理,分別介紹了卷積神經(jīng)網(wǎng)絡(luò)、一階段目標檢測方法、二階段目標檢測方法,以及不同方法之間的區(qū)別和優(yōu)劣,主要展開介紹了YOLO系列的YOLOv3和YOLOv5技術(shù)方法。3基于YOLO-NAS的車位檢測與定位3.1基于YOLO-NAS的車位檢測與定位的整體結(jié)構(gòu)設(shè)計YOLO-NAS(神經(jīng)架構(gòu)搜索)是最新發(fā)布的目標檢測基礎(chǔ)模型。主要解決之前YOLO模型的局限性。YOLO-NAS算法結(jié)合了量化感知模塊和選擇性量化技術(shù),從而實現(xiàn)了最佳性能表現(xiàn)。將模型轉(zhuǎn)換為INT8量化版本后,精度僅有微小下降,但相比其他模型卻有顯著提升。最終形成了一個卓越的架構(gòu),具有強大的目標檢測能力和出色的性能。本篇文章是基于YOLO-NAS的車位檢測與定位模型設(shè)計,系統(tǒng)結(jié)構(gòu)主要包括以下幾個步驟,如圖3.1所示。圖3.1系統(tǒng)結(jié)構(gòu)圖YOLO-NAS以精度-速度性能提供了最先進的(SOTA)性能,優(yōu)于YOLOv5、YOLOv6、YOLOv7和YOLOv8等其他型號?,F(xiàn)在存在的YOLO模型面臨一些限制,例如量化支持不足和準確性延遲權(quán)衡不足的問題。為了解決此類存在的問題,YOLO-NAS模型在包括COCO、Objects365和Roboflow100在內(nèi)的知名數(shù)據(jù)集上進行了預(yù)訓(xùn)練,使其非常適合生產(chǎn)環(huán)境中的下游對象檢測任務(wù)。YOLO-NAS在目標檢測模型領(lǐng)域,在推理性能和精確度方面有明顯的提升,成功地解決了一些傳統(tǒng)模型中面臨的限制。此外,YOLO-NAS還為各種任務(wù)和硬件提供了很好的適應(yīng)性,為實際應(yīng)用中的對象檢測任務(wù)提供了更多可能性。YOLO-NAS的網(wǎng)絡(luò)結(jié)構(gòu)由幾個主要部分組成,包括主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)、頭部網(wǎng)絡(luò)、STEM(Squeeze-and-ExcitationModule)以及特定組件。主干網(wǎng)絡(luò)是提取特征的第一步,通常由一系列卷積層組成,用于從輸入圖像中提取特征。頸部網(wǎng)絡(luò)連接主干網(wǎng)絡(luò)和頭部網(wǎng)絡(luò),進一步處理特征圖,可能包含路徑聚合網(wǎng)絡(luò)(PAN)等技術(shù)以提高檢測能力。頭部網(wǎng)絡(luò)根據(jù)提取的特征進行目標的分類和定位,通常包含一系列卷積層和預(yù)測層。STEM模塊通過應(yīng)用注意力機制增強模型的表現(xiàn)。特定組件如DetectHead專門用于目標檢測,WidthMultiplier調(diào)整網(wǎng)絡(luò)寬度,QSPBlock和QCIBlock是量化感知塊,CBR1x1是一種殘差塊,2XQARepVGG是重復(fù)的VGG模塊,SPP是空間金字塔池化技術(shù),concat用于特征圖的合并和融合。通過這些組件和模塊,YOLO-NAS實現(xiàn)了高效的特征提取和目標檢測。應(yīng)用NAS技術(shù)使得YOLO-NAS能夠自動發(fā)現(xiàn)最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),而量化感知設(shè)計則確保了模型在量化后仍能保持高性能。這些特點使得YOLO-NAS在車位定位方面的現(xiàn)實復(fù)雜場景的實際應(yīng)用提供了強大的競爭力,特別是在實時處理和低延遲方面。如圖3.2所示圖3.2YOLO-NAS模型結(jié)構(gòu)圖3.2YOLO-NAS的基礎(chǔ)模型結(jié)構(gòu)3.2.1Backbone(主干網(wǎng)絡(luò))在該任務(wù)中,Backbone作為YOLO-NAS網(wǎng)絡(luò)的核心組成部分,其設(shè)計和優(yōu)化對于車位檢測系統(tǒng)的性能和準確性具有深遠影響。首先,Backbone利用堆疊的卷積層構(gòu)建深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以從輸入圖像中提取特征。這些卷積層采用異質(zhì)的濾波器(卷積核),每一層對圖像執(zhí)行卷積運算,從而捕捉圖像中的局部特征。例如,對于車位檢測任務(wù),這些特征可能包括停車線的邊緣、車輛的輪廓和顏色信息等。這種特征提取過程為后續(xù)的車位檢測任務(wù)提供了豐富的特征表示,為系統(tǒng)的準確性奠定了基礎(chǔ)。其次,隨著網(wǎng)絡(luò)深度的增加,Backbone逐漸減小了特征圖的空間維度,并增加了特征圖的通道數(shù)。這一設(shè)計思想使得網(wǎng)絡(luò)能夠在不同層次上提取特征,從較低級別的局部特征到較高級別的語義特征。在車位檢測中,低級別特征可以包括停車線的邊緣和顏色信息,而高級別特征則可能涉及到車輛的形狀和停放位置。這種層次化的特征提取方式使得系統(tǒng)能夠更好地理解圖像內(nèi)容,提高了檢測的準確性和魯棒性。再利用神經(jīng)架構(gòu)搜索(NAS)技術(shù)對Backbone進行設(shè)計和優(yōu)化,可以進一步提升車位檢測系統(tǒng)的性能。NAS能夠自動搜索并發(fā)現(xiàn)最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),以適應(yīng)特定任務(wù)的需求。在車位檢測中,NAS可以嘗試不同的網(wǎng)絡(luò)組件、層數(shù)、卷積核大小等參數(shù),以找到最適合車位檢測任務(wù)的網(wǎng)絡(luò)配置。因此系統(tǒng)就能夠更好地適應(yīng)不同場景下的車輛檢測需求,提高了檢測的效率和準確性。通過充分利用Backbone在特征提取方面的優(yōu)勢,并結(jié)合神經(jīng)架構(gòu)搜索技術(shù)的應(yīng)用,可以有效提高車位檢測系統(tǒng)的性能和準確性。如圖3.3所示圖3.3Backbone結(jié)構(gòu)圖3.2.2Neck(頸部網(wǎng)絡(luò))在YOLO-NAS中,Neck扮演著連接Backbone和Head的關(guān)鍵角色,其工作原理和功能在車位檢測與定位的任務(wù)中具有十分重要的意義。Neck模塊的主要功能是對源自Backbone模塊的特征圖進行進一步處理,以便更好地用于目標分類和定位任務(wù)。它通常包含不同尺寸的特征圖,如192、128、256等,這些特征圖經(jīng)過卷積層和可能的上采樣或下采樣操作進行處理。Neck的設(shè)計理念通常采用特征金字塔的概念,主要是利用融合不同尺度的特征圖來提高模型針對不同大小目標的檢測能力。Neck部分接收來自與Backbone不同層級的特征圖,這些特征圖具有不同的語義信息和空間分辨率。通過綜合這些特征圖,Neck能夠有效地綜合考慮圖像的局部和全局信息,為后續(xù)的目標檢測任務(wù)提供更全面的特征表示。特征融合是Neck的核心步驟之一,其通過對來自不同層級的特征圖進行融合,以獲取更豐富和多樣化的特征表示。這涉及到一系列操作,如卷積、池化、上采樣、下采樣等,以整合不同尺度的特征圖,提高模型對目標的檢測和定位能力。Neck會對特征圖進行進一步的調(diào)整,以進一步提升檢測性能。例如,使用注意力機制以強化特定區(qū)域的特征,或者通過減弱特定區(qū)域的特征權(quán)重來抑制背景信息。這些調(diào)整有助于使模型更加關(guān)注目標區(qū)域,提高檢測的準確性和穩(wěn)定性。經(jīng)過Neck處理后的特征圖將被送入Head網(wǎng)絡(luò),進行目標的最終分類和定位。因此,Neck在輸出準備階段需要確保特征圖的質(zhì)量和多樣性,以保證最終目標檢測的性能。通過Neck的有效工作,可以提高車位檢測系統(tǒng)的準確性和穩(wěn)定性。如圖3.4所示。圖3.4Neck結(jié)構(gòu)圖3.2.3Head(頭部網(wǎng)絡(luò))在YOLO-NAS中,Head(頭部網(wǎng)絡(luò))承擔著將來自Neck(頸部網(wǎng)絡(luò))的特征圖轉(zhuǎn)換為最終檢測結(jié)果的關(guān)鍵任務(wù),其設(shè)計和實現(xiàn)對于模型的性能有著至關(guān)重要的影響。頭部網(wǎng)絡(luò)的功能主要包括目標分類、邊界框定位、對象存在概率預(yù)測以及多尺度檢測。先通過卷積層來提取圖像特征,再利用全連接層或1x1卷積層來對圖像中的不同目標類別進行識別。以提供每個類別的概率估計。接著,需要預(yù)測目標位置,通過預(yù)測邊界框的中心坐標和寬高來確定。同時,還需要預(yù)測每個邊界框內(nèi)目標存在的概率,以區(qū)分真實目標和誤檢目標,從而提高模型的魯棒性。最后,由于Neck生成了不同尺度的特征圖,頭部網(wǎng)絡(luò)需要處理這些特征圖,并在每個尺度上進行目標的檢測,以確保模型能夠同時檢測到不同大小的目標,提高檢測的全面性。在設(shè)計原則方面,頭部網(wǎng)絡(luò)需要考慮到高效性、準確性和靈活性。首先,需要保證頭部網(wǎng)絡(luò)的設(shè)計在計算效率上具備高效性,特別是在需要實時或近實時檢測的場景中,通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)數(shù)量來減少計算負擔,提高檢測速度。其次,在追求高效性的同時,頭部網(wǎng)絡(luò)的設(shè)計也要保證檢測的準確性,可能需要通過增加網(wǎng)絡(luò)的復(fù)雜度或者引入新的網(wǎng)絡(luò)結(jié)構(gòu)來實現(xiàn),但需要注意避免過度增加計算負擔。最后,頭部網(wǎng)絡(luò)的設(shè)計應(yīng)當具備一定的靈活性,以適應(yīng)不同的輸入尺寸和特征圖尺度,確保模型在不同的硬件和應(yīng)用場景中都能夠表現(xiàn)出良好的性能。3.3YOLO-NAS的模型結(jié)構(gòu)改進3.3.1RepVGGRepVGG是一種基于VGG的卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu)的改進版本,其目標是解決傳統(tǒng)VGG架構(gòu)在速度和內(nèi)存使用方面的效率問題。盡管VGG架構(gòu)因其簡單有效而廣受歡迎,但其深度和復(fù)雜性在實時處理或資源受限的應(yīng)用場景中面臨著挑戰(zhàn)。為了應(yīng)對這些挑戰(zhàn),RepVGG引入了可重復(fù)參數(shù)化技術(shù),以在保持性能的同時顯著提高速度和減少內(nèi)存占用。其主要特點包括多分支訓(xùn)練和單分支推理。在訓(xùn)練階段,RepVGG可以采用多分支架構(gòu),從而利用更多計算資源學(xué)習復(fù)雜特征表示,從而提高模型準確性。而在推理階段,通過可重復(fù)參數(shù)化技術(shù),多分支結(jié)構(gòu)可以轉(zhuǎn)換為單分支結(jié)構(gòu),從而顯著降低計算量和內(nèi)存需求,實現(xiàn)更快的推理速度和更高的內(nèi)存效率。RepVGG的設(shè)計理念是在保持性能的同時提高深度學(xué)習模型的實用性和可部署性。通過在訓(xùn)練和推理階段采用不同的架構(gòu),RepVGG成功地平衡了模型的性能和效率,使其更適合于資源受限的環(huán)境。同時,RepVGG的提出也為其他深度學(xué)習架構(gòu)的優(yōu)化提供了新的思路和借鑒。在YOLO-NAS中,RepVGG(ReparameterizationVGG-likeblock)扮演著至關(guān)重要的角色,其作用主要體現(xiàn)在以下幾個方面。首先,RepVGG通過其獨特的重參數(shù)化技術(shù),在保持模型性能的同時,顯著降低了計算復(fù)雜度和內(nèi)存占用,尤其適用于資源受限的設(shè)備,這對于目標檢測任務(wù)至關(guān)重要。其次,RepVGG塊在推理過程中能夠?qū)⒍喾种ЫY(jié)構(gòu)轉(zhuǎn)換為單分支結(jié)構(gòu),從而有效地減少了前向傳播時間,加速了目標檢測流程,在實時處理或近實時處理的場景中具有重要意義。并且YOLO-NAS利用AutoNAC技術(shù)進行神經(jīng)架構(gòu)搜索,而RepVGG塊作為高效的構(gòu)建模塊被集成到模型中,從而優(yōu)化了整體架構(gòu)的性能。RepVGG塊的設(shè)計還充分考慮到了量化的需求,當與量化技術(shù)相結(jié)合時,能夠進一步提高模型的推理速度和減少內(nèi)存占用。最后,通過在YOLO-NAS中采用RepVGG塊,模型能夠更好地適應(yīng)不同的硬件平臺和應(yīng)用需求,提升了模型的通用性和適應(yīng)性。所以RepVGG在YOLO-NAS中的作用是多方面的,不僅提高了模型的效率和速度,還增強了模型的通用性和適應(yīng)性,使得YOLO-NAS能夠在各種應(yīng)用場景中實現(xiàn)高性能的目標檢測。如圖3.5所示圖3.5RepVGG結(jié)構(gòu)圖3.3.2量化感知訓(xùn)練技術(shù)在YOLO-NAS中,量化感知訓(xùn)練(Quantization-AwareTraining,簡稱QAT)是一項關(guān)鍵技術(shù),該技術(shù)的作用體現(xiàn)在多個方面。首先,QAT是一種在訓(xùn)練進行的過程中考慮量化效應(yīng)的方法,使得模型能夠意識到量化對其權(quán)重和激活的影響,并相應(yīng)地進行調(diào)整。在QAT中,量化過程通過校準步驟集成到訓(xùn)練階段,模型學(xué)習最小化量化版本和非量化版本之間的差異。QAT使用偽量化技術(shù),將模型的激活和梯度在前向和后向傳遞中量化到較低的精度,但實際的模型參數(shù)保持在較高精度,這有助于模型適應(yīng)量化效應(yīng)。QAT允許端到端的訓(xùn)練方法,使得模型能夠在量化約束下表現(xiàn)良好。QAT的主要優(yōu)勢包括顯著提高量化模型的準確性、更快的推理速度以及減小模型大小。通過在訓(xùn)練期間考慮量化,模型對量化效應(yīng)變得更加魯棒。然而,QAT也面臨一些挑戰(zhàn)和考慮因素,包括增加的訓(xùn)練時間、硬件支持的要求以及校準和調(diào)整的需要。如圖3.6所示。圖3.6量化感知訓(xùn)練流程1.量化函數(shù)(QuantizationFunction):量化函數(shù)主要是可以把連續(xù)值映射到離散值的一個函數(shù)。給定一個浮點數(shù)x,量化函數(shù)Q將其映射到一個離散的整數(shù)y,其中bitsbits表示量化的位數(shù)。具體地,對于一個浮點數(shù)x,量化函數(shù)的應(yīng)用可以表示如公式3-1所示:y=Q(x,bits) 2.偽量化(Pseudo-Quantization):偽量化主要是一種在訓(xùn)練過程中模擬量化的技術(shù)。它不實際改變參數(shù)的值,而是在計算梯度時使用量化的值。對于一個張量t,偽量化可以表示如公式3-2所示:?t=Q(x,bits在前向傳播和反向傳播過程中使用偽量化的張量?t,但實際上更新的是原始張量t。3.量化損失(QuantizationLoss):量化損失是用來衡量原始模型和量化模型之間區(qū)別的一種指標。通過比較兩者的輸出來計算量化損失,其中原始模型的輸出可以表示為y,量化后的輸出可以表示為Q(y,bits)。量化損失通常以歐氏距離的平方表示如公式3-3所示:Lquant=|y-Qy,bits|2 式(3-3)在YOLO-NAS中,采用了量化感知塊(Quantization-AwareBlocks)和選擇性量化(SelectiveQuantization)技術(shù),這一設(shè)計旨在優(yōu)化性能,同時平衡了準確性損失和延遲/吞吐量提升之間的關(guān)系。其中,自適應(yīng)量化(AdaptiveQuantization)策略是實現(xiàn)這一目標的重要手段之一。自適應(yīng)量化是一種動態(tài)量化方法,其決策基于每一層的重要性和對最終性能的影響。該方法允許模型在關(guān)鍵層保持較高的精度,而在對性能影響較小的層上使用較低的精度。這種方式旨在最小化整體的準確性損失,同時提高模型的推理速度和吞吐量。另一方面,量化感知塊是一種特殊的層或模塊,在設(shè)計時就考慮到了量化的影響。這些塊在訓(xùn)練期間可以模擬量化的效果,使得模型能夠在訓(xùn)練時適應(yīng)量化帶來的變化。這樣,當模型被轉(zhuǎn)換為INT8量化版本時,能夠更好地保持其性能。YOLO-NAS中的這些技術(shù)手段共同為優(yōu)化性能提供了有效的解決方案,使得模型能夠在量化的前提下保持較高的準確性,并提高推理速度和吞吐量。3.3.3分布焦點損失分布焦點損失(DistributionFocalLoss,簡稱DFL)是一種創(chuàng)新的損失函數(shù),通過將邊界框回歸問題轉(zhuǎn)化為分類任務(wù)來工作。將邊界框預(yù)測離散化為一組有限的值,并在這些值上預(yù)測概率分布,最終通過加權(quán)求和轉(zhuǎn)換為最終預(yù)測。DFL的數(shù)學(xué)表達式通過加權(quán)交叉熵損失的形式來表示,其中γ是用于調(diào)節(jié)損失焦點的參數(shù)。數(shù)學(xué)上,分布焦點損失可以表示如公式3-4所示:DFL=i=1N(其中,N是離散化的值的數(shù)量,yi是預(yù)測的概率分布,γ3.4章節(jié)小結(jié)本章是針對實現(xiàn)基于YOLO-NAS的車位檢測與定位的模型做出詳細的闡述。首先闡述了實現(xiàn)車位檢測與定位的系統(tǒng)架構(gòu)整體設(shè)計,介紹了YOLO-NAS基礎(chǔ)模型架構(gòu)中的主干網(wǎng)路、頸部網(wǎng)絡(luò)和頭部網(wǎng)絡(luò)的設(shè)計,然后針對YOLO-NAS框架改進的細節(jié)進行了詳細介紹,主要從RepVGG、量化感知訓(xùn)練技術(shù)、分布焦點損失等幾個優(yōu)勢改進進行了說明,并且介紹了其優(yōu)勢及其運用的數(shù)學(xué)公式。4車位檢測與定位的實現(xiàn)4.1實驗環(huán)境搭建本次實驗在基于Windows操作系統(tǒng)的計算機上進行,利用本地的Anaconda平臺進行實驗。實驗所使用的主要硬件包括NVIDIAGeForceGTX1650顯存。為了實現(xiàn)目標檢測算法YOLO-NAS,選擇PyTorch作為了深度學(xué)習的框架。因為PyTorch提供了豐富的功能以及工具,包含張量計算、自動微分、神經(jīng)網(wǎng)絡(luò)模塊、優(yōu)化器、數(shù)據(jù)加載和處理等,為實驗的順利進行提供了支持。通過這一硬件和軟件環(huán)境的搭建,可以有效地進行YOLO-NAS模型的開發(fā)、訓(xùn)練和測試,為研究目標檢測領(lǐng)域提供了有力的實驗基礎(chǔ)。如表4.1所示。表4.1環(huán)境配置軟件/硬件環(huán)境配置CPUI7-10870HGPUGTX1650內(nèi)存16G框架Pytorch操作系統(tǒng)Windows11平臺AnacondaPyTorch作為一個開源深度學(xué)習框架,由Facebook的人工智能研究團隊開發(fā)以及維護。它提供了一個靈活而強大的平臺,用于構(gòu)建和訓(xùn)練各種深度學(xué)習模型,包括神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等。PyTorch提供了張量操作的強大庫,這些張量類似于NumPy的數(shù)組,但能夠在GPU上進行加速計算,用于表示模型的輸入、輸出和中間計算結(jié)果。其次,PyTorch的動態(tài)計算圖使得編寫和調(diào)試模型變得更加靈活和直觀,通過自動微分功能,用戶可以自動計算張量的梯度,簡化了反向傳播的過程。此外,PyTorch的神經(jīng)網(wǎng)絡(luò)模塊包含了構(gòu)建神經(jīng)網(wǎng)絡(luò)所需的全部基礎(chǔ)組件,如層、激活函數(shù)和損失函數(shù),這些組件可用于定義模型的結(jié)構(gòu)。在訓(xùn)練的過程中,PyTorch提供了多種優(yōu)化算法和優(yōu)化器,用戶可以采用SGD、Adam和RMSprop等一系列優(yōu)化器中選擇合適的優(yōu)化器最小化損失函數(shù),并更新模型參數(shù)。另外,PyTorch還提供了用于加載和處理數(shù)據(jù)的工具,以及簡單的API來保存和加載模型的狀態(tài)字典,使得模型的訓(xùn)練和部署變得更加高效和簡單??偟膩碚f,PyTorch在本次項目的實現(xiàn)過程中發(fā)揮了關(guān)鍵作用,為深度學(xué)習模型的開發(fā)、訓(xùn)練和部署提供了一個強大而靈活的平臺。4.2數(shù)據(jù)集的篩選及處理本文模型是通過kaggle平臺提供公開數(shù)據(jù)集進行實驗。此數(shù)據(jù)集包含了大量的各種復(fù)雜情況下的停車場車位圖像,數(shù)據(jù)集主要包含停車場原始圖像,這些圖像是從不同的視角、光照條件和環(huán)境中捕獲的。圖像的多樣性對于訓(xùn)練一個魯棒的模型至關(guān)重要,能夠識別各種情況下的停車場。包含了與原始圖像相對應(yīng)的邊界框標注文件。每個文件通常包含了停車場的位置和大小信息、圖像xml標簽。包含了所有圖像的邊界框坐標和標簽annotations.xml,是一個XML格式的文件,車位信息主要分為free-parking-space和not-free-parking-space1.數(shù)據(jù)預(yù)處理本研究利用了多種Python庫來進行數(shù)據(jù)處理和分析。具體而言,使用了xml.etree.ElementTree庫來解析XML文件,os和glob庫用于處理文件路徑和模式匹配,pandas和numpy庫用于數(shù)據(jù)處理和數(shù)值計算,cv2(OpenCV)庫用于圖像處理,并結(jié)合matplotlib庫進行數(shù)據(jù)可視化。首先,定義了XML文件的路徑,這類文件包含了圖像的標注信息,例如目標的類別和位置。再利用ElementTree模塊進行逐個的解析XML文件,得到每個文件的根節(jié)點,并循環(huán)查找其中的polygon元素,這些元素代表圖像中的多邊形標注。從polygon元素的points屬性中提取坐標點,并將其轉(zhuǎn)換為浮點數(shù)列表,以表示多邊形的頂點。再創(chuàng)建了一個列表來存儲所有圖像的信息,包括圖像ID、名稱、尺寸以及對應(yīng)的多邊形標注信息。對于每個圖像,構(gòu)建了一個包含圖像名稱、寬度、高度和多邊形標注的字典,并將這些字典添加到數(shù)據(jù)集列表中。將數(shù)據(jù)集列表轉(zhuǎn)換為pandas的DataFrame,以便進行進一步的數(shù)據(jù)分析和處理。如圖4.1所示圖4.1數(shù)據(jù)預(yù)處理坐標結(jié)果 使用OpenCV和matplotlib庫進行圖像處理和可視化操作是計算機視覺領(lǐng)域中常見的實踐。采用了cv2.cvtColor函數(shù)把圖像從BGR格式轉(zhuǎn)換成RGB格式。這是因為攝像頭和許多圖像處理庫(包括OpenCV)通常使用BGR格式,而在進行圖像可視化時,通常使用RGB格式。再創(chuàng)建一個與原始圖像大小相同的全零數(shù)組,這個數(shù)組將作為掩模圖像,用于在其上繪制多邊形。對數(shù)據(jù)集中的前5個多邊形進行處理。在每次迭代中,從數(shù)據(jù)集中提取多邊形的坐標點列表。這些坐標點通常是從XML標注文件中提取的。將坐標點列表轉(zhuǎn)換為NumPy數(shù)組,并調(diào)整其形狀以適應(yīng)OpenCV的fillPoly函數(shù)。再使用fillPoly函數(shù)在掩模的圖像上填充好指定的多邊形區(qū)域,顏色設(shè)置為綠色。接著使用cv2.addWeighted函數(shù)將原始圖像和帶有綠色多邊形的掩模圖像按照一定的權(quán)重疊加起來,生成最終的可視化圖像。這里,原始圖像和掩模圖像的權(quán)重都設(shè)置為0.5,意味著兩者的像素值將平均混合。使用matplotlib的subplots和imshow函數(shù)在一個新的圖形窗口中顯示疊加后的圖像。plt.show()函數(shù)用于顯示這個圖形窗口。如圖4.2所示。圖4.2疊加圖像效果2.數(shù)據(jù)標注在目標檢測任務(wù)中,標簽信息的提取是通過解析XML文件中的label屬性來實現(xiàn)的,該屬性包含了每個多邊形標注的類別信息。在坐標點處理階段,針對每個多邊形標注,需要將坐標點字符串轉(zhuǎn)換為坐標點列表,并計算多邊形的邊界框,其中包括最小x坐標(xmin)、最大x坐標(xmax)、最小y坐標(ymin)和最大y坐標(ymax)。再對邊界框坐標進行歸一化處理,將其范圍映射到0到1之間,這有助于提高模型訓(xùn)練的通用性和效率。通過將圖像文件名和對應(yīng)的標注信息組合,生成相應(yīng)的txt文件。再將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集。如圖4.3所示。圖4.3數(shù)據(jù)標注結(jié)果4.3車位檢測與定位的實現(xiàn)1.數(shù)據(jù)加載器super_gradients庫是一個針對深度學(xué)習任務(wù)的Python庫,其設(shè)計旨在簡化模型訓(xùn)練和驗證的過程,提供了一系列實用工具和模塊。其中,數(shù)據(jù)加載器模塊是該庫中的一個重要組成部分,負責配置和加載數(shù)據(jù)集,并執(zhí)行必要的預(yù)處理操作;在YOLO-NAS的實驗中,我們使用了super_gradients庫中的dataloaders模塊來配置數(shù)據(jù)加載器,以便有效地管理數(shù)據(jù)集的加載和預(yù)處理。dataloaders模塊是super_gradients庫的一個關(guān)鍵組件,它簡化了數(shù)據(jù)的加載和處理過程,并提供了靈活的配置選項。通過dataloaders模塊,可以輕松地批量加載圖像和標注數(shù)據(jù),并對其進行必要的預(yù)處理操作,例如圖像歸一化、大小調(diào)整等。此類預(yù)處理的步驟有助于保證輸入的數(shù)據(jù)符合模型的基本要求,并能夠提高模型的訓(xùn)練效果。在配置數(shù)據(jù)加載器時,我們可以設(shè)置多個參數(shù),如批量大小、圖像大小、均值和標準差等,以滿足不同數(shù)據(jù)集和模型的需求。此外,dataloaders模塊支持常見的數(shù)據(jù)集格式,如ImageNet、CIFAR等,同時也可以處理自定義數(shù)據(jù)集,為用戶提供了廣泛的適用性和靈活性??偟膩碚f,通過使用super_gradients庫中的dataloaders模塊,我們能夠更加高效地配置和加載數(shù)據(jù)集,為深度學(xué)習任務(wù)的訓(xùn)練和驗證提供了便利和支持。如圖4.4所示。圖4.4部分訓(xùn)練數(shù)據(jù)2.模型定義(1)優(yōu)化器AdamW優(yōu)化器是對Adam優(yōu)化器的一種變體,主要為了提高模型訓(xùn)練的效率和魯棒性。在深度學(xué)習的過程中,Adam優(yōu)化器是一種經(jīng)常使用的梯度下降算法,結(jié)合了動量(momentum)和自適應(yīng)學(xué)習率(adaptivelearningrate)的特性。它基于一階梯度和二階梯度矩估計來更新模型參數(shù),具有較快的收斂速度和良好的適應(yīng)性,適用于大多數(shù)深度學(xué)習任務(wù)。AdamW主要解決了Adam優(yōu)化器在應(yīng)用權(quán)重衰減(weightdecay)時的一些問題。傳統(tǒng)的Adam優(yōu)化器在計算梯度時會將權(quán)重衰減項直接添加到梯度上,這可能會導(dǎo)致參數(shù)更新過程中的偏差。而AdamW通過將權(quán)重衰減項添加到參數(shù)更新的步驟中,并沒有在梯度計算時,從而可以更準確地實現(xiàn)權(quán)重衰減,有效避免了參數(shù)更新時的偏差。AdamW通過將權(quán)重衰減項添加到參數(shù)更新的步驟中,而不是在梯度計算時,更準確地實現(xiàn)了權(quán)重衰減,從而避免了參數(shù)更新時的偏差。相比于傳統(tǒng)的Adam優(yōu)化器,首先,AdamW能夠帶來更穩(wěn)定的訓(xùn)練過程,減少了訓(xùn)練過程中的震蕩和不穩(wěn)定性。其次,它能夠更好地控制模型的復(fù)雜度,防止過擬合,提高了模型的泛化能力。此外,在某些情況下,由于減少了參數(shù)更新過程中的偏差,AdamW可以帶來更快的收斂速度,加速模型的訓(xùn)練過程。在設(shè)置AdamW優(yōu)化器的參數(shù)時,可以根據(jù)具體任務(wù)和模型的特點進行調(diào)整,例如學(xué)習率的設(shè)置、權(quán)重衰減的系數(shù)等,以達到最佳的訓(xùn)練效果。在YOLO-NAS模型訓(xùn)練中,選擇了"AdamW"優(yōu)化器,并在train-params字典中進行了相應(yīng)的配置。其中,"weight-decay"參數(shù)用于控制L2正則化項的系數(shù),以防止模型過擬合。此外,通過設(shè)置"zero-weight-decay-on-bias-and-bn"選項,可以靈活地排除偏置項和批歸一化層的參數(shù)不受權(quán)重衰減的影響,以避免對模型訓(xùn)練產(chǎn)生不必要的影響。假設(shè)當前的參數(shù)為θ,梯度為gt,動量為mt,和二階動量為計算一階動量估計如公式4-1所示:mt計算二階動量估計如公式4-2所示:vt修正一階和二階動量的偏差如公式4-3,公式4-4所示:mt=mvt=v其中,t表示當前的迭代次數(shù)。更新參數(shù)如公式4-5所示:θt+1=其中,μ是學(xué)習率,?是一個很小的常數(shù)用于數(shù)值穩(wěn)定性,φ是權(quán)重衰減系數(shù),用于控制正則化項的影響。(2)損失函數(shù)PPYoloELoss是專門為YOLO模型設(shè)計的復(fù)合損失函數(shù),在YOLO-NAS模型的訓(xùn)練中發(fā)揮著核心作用。該損失函數(shù)旨在優(yōu)化模型在目標檢測任務(wù)中的性能,同時處理分類、定位和對象存在概率預(yù)測。在YOLO-NAS中,PPYoloELoss的各個組成部分和相關(guān)參數(shù)發(fā)揮著重要作用。首先,分類損失用于評估模型對每個目標類別的預(yù)測準確性,對于每個檢測到的邊界框,模型會預(yù)測一個類別概率分布,并將其與真實的類別標簽進行對比。計算交叉熵損失函數(shù)以提高分類精度。定位損失用于衡量模型對邊界框位置的預(yù)測和實際邊界框之間的差異,通常會使用平滑的L1損失函數(shù)進行計算。這有助于提高模型在定位物體方面的性能,并使其更加魯棒地對待邊界框坐標的小偏差。對象存在損失用于衡量模型預(yù)測的邊界框是否包含對象。每個邊界框都會預(yù)測一個對象存在概率值,并通過交叉熵損失函數(shù)懲罰模型在預(yù)測對象存在方面的誤差,這對于提高模型檢測對象的能力至關(guān)重要。除了這些主要組成部分外,PPYoloELoss中的其他參數(shù),如use-static-assigner和reg-max,也對損失函數(shù)的行為產(chǎn)生重要影響。例如,use-static-assigner控制是否使用靜態(tài)分配器來為每個訓(xùn)練樣本分配最佳的錨點,而reg-max則可能與正則化相關(guān),限制在訓(xùn)練過程中應(yīng)用的正則化項的最大值。綜合來看,PPYoloELoss通過綜合考慮分類、定位和對象存在概率預(yù)測的損失分量,為YOLO-NAS模型提供了一個全面的損失函數(shù)。其設(shè)計旨在優(yōu)化模型在目標檢測任務(wù)中的訓(xùn)練效果,確保模型能夠準確地識別和定位圖像中的對象。在實踐中,PPYoloELoss被廣泛應(yīng)用于YOLO-NAS等目標檢測模型的訓(xùn)練過程中,以實現(xiàn)高精度和高效率的目標檢測性能。研究人員和開發(fā)者可以通過調(diào)整損失函數(shù)中的各個參數(shù)來優(yōu)化模型的訓(xùn)練,以適應(yīng)不同的應(yīng)用場景和數(shù)據(jù)集特點。對象存在損失(ObjectnessLoss)衡量了模型預(yù)測的對象存在概率與實際存在的對象之間的差異。對于每個邊界框,使用二元交叉熵損失來計算對象存在損失,如公式4-6所示:Lobjectness其中,B是邊界框的數(shù)量,yi是邊界框i包含對象的真實標簽(0或1),pi是模型預(yù)測邊界框分類損失(ClassificationLoss)衡量了模型對每個邊界框中對象的類別預(yù)測準確性。對于每個類別c和邊界框i,分類損失可以表示如公式4-7所示:Lclassification其中,C是類別的總數(shù),yi,c是邊界框i中對象屬于類別c的真實標簽(通常使用one-hot編碼),pi,c是模型預(yù)測邊界框定位損失是用來衡量模型預(yù)測的邊界框位置與實際邊界框位置之間的差異的指標。針對于邊界框的每個坐標的預(yù)測,通過平滑L1損失來計算如公式4-8所示:Llocalization其中,vi,j是模型預(yù)測的邊界框i的第j個坐標值,而v3.模型訓(xùn)練在YOLO-nas模型的訓(xùn)練過程中,我們做出了一系列關(guān)鍵性的選擇和配置,以確保模型能夠達到預(yù)期的性能水平。首先,我們利用AdamW優(yōu)化器作為模型訓(xùn)練過程中的優(yōu)化器。AdamW是對Adam優(yōu)化器的一種改良,它在權(quán)重衰減方面有所改進,有助于增強模型的泛化能力和訓(xùn)練穩(wěn)定性。我們在優(yōu)化器參數(shù)中設(shè)置了權(quán)重衰減參數(shù)為0.0001,以實現(xiàn)對模型參數(shù)的L2正則化,以進一步防止過擬合。其次,我們采用了余弦退火的學(xué)習率衰減模式。在訓(xùn)練開始階段,我們通過線性步長進行學(xué)習率的熱身,初始學(xué)習率被設(shè)定為1e-6。隨后,在經(jīng)過3個周期后,我們逐漸增加學(xué)習率,使其達到初始學(xué)習率的水平,然后采用余弦退火衰減學(xué)習率的方式,以提高訓(xùn)練的效率和性能。我們還啟用了指數(shù)移動平均(EMA),通過設(shè)置衰減系數(shù)為0.9,并選擇閾值型的衰減方式,來平滑模型參數(shù)的更新過程,從而進一步提高模型的泛化能力。在訓(xùn)練過程中,我們設(shè)定了最大訓(xùn)練周期數(shù)為30個周期,即模型將在數(shù)據(jù)集上進行30次完整的訓(xùn)練迭代。最后,我們選擇了PPYoloELoss作為損失函數(shù)。這是為YOLO模型專門設(shè)計的一種綜合損失函數(shù),涵蓋了目標存在損失、分類損失和定位損失,旨在優(yōu)化模型在目標檢測任務(wù)中的表現(xiàn)。通過以上配置和選擇,我們能夠在模型訓(xùn)練過程中高效地控制參數(shù)更新,平衡模型的復(fù)雜度,防止過擬合,并優(yōu)化目標檢測任務(wù)的性能。如圖4.5所示。圖4.5訓(xùn)練模型參數(shù)4.模型預(yù)測對劃分的測試集的圖片進行預(yù)測,在本實驗中,采用best-model.predict方法的調(diào)用,該方法接受了兩個參數(shù):tpaths和conf。其中,tpaths代表圖像文件路徑的列表,而conf則是置信度閾值,用于過濾預(yù)測結(jié)果。在預(yù)測過程中,首先對圖像進行加載,并針對每個圖像執(zhí)行了前向傳播操作,即將圖像輸入到模型中以獲取預(yù)測結(jié)果。隨后,對模型的輸出進行了后處理,包括應(yīng)用非極大值抑制(NMS)來去除重疊的預(yù)測框,只保留最有可能的預(yù)測結(jié)果。然后,根據(jù)預(yù)先設(shè)定的置信度閾值conf,篩選預(yù)測結(jié)果,只保留置信度高于閾值的預(yù)測。預(yù)測結(jié)果如圖4.6所示。圖4.6測試結(jié)果4.4實驗結(jié)果與分析在選擇目標檢測的框架,對所選擇的同一個數(shù)據(jù)集進行不同模型的處理方法得到模型的準確性、召回率和mAP(平均精度均值)進行清楚的比較,如表4.2所示。表4.2模型比較方法準確率召回率mAPYOLO-NAS84.2%98.3%93.8%YOLOv874.2%81.2%82.4%YOLOv663.5%76.2%71.6%針對實驗結(jié)果,我們進行了深入的分析,同時與YOLOv8和YOLOv6進行了對比,以評估YOLO-NAS在車位檢測與定位任務(wù)中的性能表現(xiàn)。首先,我們觀察到Y(jié)OLO-NAS在整體效果上表現(xiàn)較好。YOLO-NAS在召回率方面具有顯著優(yōu)勢,能夠捕捉到大多數(shù)車位,尤其是在復(fù)雜場景和光照條件下。這表明YOLO-NAS在特征提取和多尺度目標檢測方面擁有良好的性能,為車位檢測任務(wù)提供了可靠的解決方案。其次,與YOLOv8和YOLOv6相比,YOLO-NAS在精確度方面也表現(xiàn)出色。盡管YOLOv8和YOLOv6在一些情況下可能具有更高的精確度,但綜合考慮召回率和精確度,YOLO-NAS在性能上仍然更為出色。這可能歸因于YOLO-NAS采用的NAS優(yōu)化架構(gòu),能夠更好地平衡性能和效率,從而在高精確度要求下取得更好的綜合效果。此外,YOLO-NAS的另一個優(yōu)勢在于其對不同尺度目標的檢測能力。在車位檢測任務(wù)中,停車位的大小和位置可能會因停車場的不同而異,而YOLO-NAS通過其強大的特征提取能力,能夠有效地檢測和定位不同尺度的車位,具有更強的適應(yīng)性和泛化能力。還值得注意的是,YOLO-NAS注重實時性能的設(shè)計,能夠在保持高召回率的同時實現(xiàn)快速推理。相比之下,YOLOv8和YOLOv6可能在推理速度上略有不足,這在需要實時反饋的智能停車場管理系統(tǒng)等應(yīng)用場景下尤為重要。綜上所述,實驗結(jié)果表明YOLO-NAS在車位檢測與定位任務(wù)中具有明顯的優(yōu)勢,其高召回率、高精確度、多尺度目標檢測能力以及快速推理的特性,使其成為一種強大的目標檢測解決方案。在未來的研究中,將進一步探索優(yōu)化YOLO-NAS模型,以進一步提高其性能和適用性,以應(yīng)對更廣泛的實際場景需求。5總結(jié)及展望5.1總結(jié)本文的研究主要是為了解決城市化進程的不斷推進過程中,車輛數(shù)量的迅速增加使得傳統(tǒng)的停車位管理方法難以應(yīng)對日益增長的停車需求,提高車位管理的精度與效率。YOLO-NAS模型展現(xiàn)了其在車位檢測與定位任務(wù)中的有效性。通過結(jié)合神經(jīng)架構(gòu)搜索(NAS)技術(shù)和先進的目標檢測策略,YOLO-NAS在處理實時檢測任務(wù)時表現(xiàn)出了高召回率和快速的推理能力。實驗結(jié)果表明,模型能夠準確地識別出大多數(shù)車位,尤其適用于需要快速響應(yīng)的智能停車解決方案。在數(shù)據(jù)預(yù)處理和增強方面,采取了一系列措施來提高數(shù)據(jù)質(zhì)量,并增強模

溫馨提示

  • 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

提交評論