關(guān)鍵詞:邊緣計(jì)算;深度學(xué)習(xí);Jetson Nano;YOLO;模型蒸餾
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)28-0023-04
0 引言
多年的實(shí)踐表明,傳統(tǒng)基于單一傳感器的火災(zāi)預(yù)警系統(tǒng)經(jīng)常面臨誤報(bào)和漏報(bào)等問(wèn)題[1]。與此同時(shí),基于云計(jì)算的多源感知火災(zāi)報(bào)警系統(tǒng)在節(jié)點(diǎn)數(shù)據(jù)處理中給數(shù)據(jù)中心帶來(lái)了巨大的計(jì)算分析壓力[2]。為應(yīng)對(duì)這一挑戰(zhàn),本文選用了Jetson Nano和樹(shù)莓派作為智能硬件平臺(tái),結(jié)合深度學(xué)習(xí)中的YOLO算法,提出了一種基于邊緣計(jì)算的智能物聯(lián)網(wǎng)網(wǎng)關(guān)。該系統(tǒng)不僅能夠有效改善誤報(bào)、漏報(bào)以及數(shù)據(jù)中心計(jì)算壓力大的問(wèn)題,同時(shí)降低了對(duì)云計(jì)算的依賴(lài),從而提升了系統(tǒng)的實(shí)時(shí)性和可靠性。這一創(chuàng)新設(shè)計(jì)為消防安全提供了更為靈活的解決方案。
1 智能網(wǎng)關(guān)的結(jié)構(gòu)框架
在消防物聯(lián)網(wǎng)領(lǐng)域,智能網(wǎng)關(guān)充當(dāng)連接終端設(shè)備和云端的橋梁,通過(guò)邊緣計(jì)算實(shí)現(xiàn)對(duì)節(jié)點(diǎn)數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè)和分析。為滿足網(wǎng)關(guān)的實(shí)時(shí)性和智能化需求,采用了三層架構(gòu)來(lái)實(shí)現(xiàn),包括環(huán)境感知層、實(shí)時(shí)分析層和核心決策層。其示意圖如圖1所示。
環(huán)境感知層集成了多種傳感模塊,包括攝像頭、煙霧監(jiān)測(cè)傳感器和火災(zāi)報(bào)警監(jiān)測(cè)傳感器等。這些傳感模塊承擔(dān)著實(shí)時(shí)采集環(huán)境數(shù)據(jù)的任務(wù),為后續(xù)的分析和處理提供基礎(chǔ)數(shù)據(jù)。
實(shí)時(shí)分析層則負(fù)責(zé)數(shù)據(jù)的實(shí)時(shí)分析。基于邊緣計(jì)算的理念,該層將計(jì)算任務(wù)從傳統(tǒng)的集中式云端向網(wǎng)絡(luò)邊緣推移,以實(shí)現(xiàn)更低延遲、更高實(shí)時(shí)性的數(shù)據(jù)處理[3]。在該層中,主要使用Jetson Nano作為嵌入式運(yùn)算平臺(tái),同時(shí)樹(shù)莓派充當(dāng)輔助硬件平臺(tái)。
核心決策層主要依賴(lài)于YOLO算法對(duì)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行實(shí)時(shí)智能檢測(cè),并采用MongoDB數(shù)據(jù)庫(kù)以有效存儲(chǔ)和管理數(shù)據(jù)。
通過(guò)以上三層構(gòu)建,該網(wǎng)關(guān)在智能消防任務(wù)中具備了相對(duì)完整的數(shù)據(jù)處理和分析能力。網(wǎng)關(guān)能夠在本地進(jìn)行火災(zāi)檢測(cè),一旦檢測(cè)到火災(zāi),就將相關(guān)信息上傳至云端,由云端執(zhí)行系統(tǒng)預(yù)警。智能網(wǎng)關(guān)的結(jié)構(gòu)框架經(jīng)過(guò)模塊化設(shè)計(jì),層次清晰,具有較高的維護(hù)性和可擴(kuò)展性。
1.1硬件的選擇與配置
Jetson Nano是由NVIDIA推出的一款嵌入式系統(tǒng)開(kāi)發(fā)板,搭載了NVIDIA Maxwell架構(gòu)的GPU[4]。在網(wǎng)關(guān)中,Jetson Nano承擔(dān)了處理圖像數(shù)據(jù)、運(yùn)行實(shí)時(shí)目標(biāo)檢測(cè)算法的任務(wù),以實(shí)現(xiàn)對(duì)消防場(chǎng)景的智能分析。
樹(shù)莓派作為低成本、高性能的單板計(jì)算機(jī),廣泛應(yīng)用于物聯(lián)網(wǎng)和嵌入式系統(tǒng)[5]。在本項(xiàng)目中,其主要任務(wù)是輔助Jetson Nano,連接環(huán)境感知層的傳感模塊及執(zhí)行環(huán)境數(shù)據(jù)采集等任務(wù)。
操作系統(tǒng)選擇了Ubuntu 18.04,將其燒錄至SD 卡,并根據(jù)系統(tǒng)需求進(jìn)行配置,包括驅(qū)動(dòng)安裝、環(huán)境搭建和網(wǎng)絡(luò)設(shè)置。安裝完成后,需要進(jìn)一步安裝Pad?dleX深度學(xué)習(xí)基礎(chǔ)框架[6],以支持后續(xù)算法的實(shí)現(xiàn)。同時(shí),為充分發(fā)揮Jetson Nano的GPU性能,必須安裝并配置CUDA和cuDNN庫(kù)。
實(shí)際搭建完成的網(wǎng)關(guān)系統(tǒng)如圖2所示。其中,顯示器顯示的是Jetson Nano中安裝的Ubuntu 18.04,其下方設(shè)備從左至右依次是:Jetson Nano、樹(shù)莓派、攝像頭和二氧化碳煙霧傳感器。
1.2 數(shù)據(jù)庫(kù)的設(shè)計(jì)與配置
在核心決策層中,選擇MongoDB 作為數(shù)據(jù)庫(kù)系統(tǒng),以滿足消防物聯(lián)節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)和高效管理需求。首先,需要對(duì)MongoDB進(jìn)行安裝和配置,以確保其能夠在網(wǎng)關(guān)上正常運(yùn)行。隨后,進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建和初始化,建立適用于環(huán)境感知層數(shù)據(jù)的數(shù)據(jù)庫(kù)結(jié)構(gòu)。合理設(shè)計(jì)的數(shù)據(jù)庫(kù)結(jié)構(gòu)能夠更高效地存儲(chǔ)和檢索消防監(jiān)測(cè)數(shù)據(jù),其結(jié)構(gòu)如表1所示。
通過(guò)以上操作,網(wǎng)關(guān)能夠有效保存環(huán)境感知層采集的實(shí)時(shí)數(shù)據(jù),為后續(xù)的智能分析提供基礎(chǔ)。
2 算法的評(píng)估與優(yōu)化
在核心決策層中,不僅需要實(shí)現(xiàn)節(jié)點(diǎn)數(shù)據(jù)的高效存儲(chǔ)和管理,還需采用YOLO 算法進(jìn)行火災(zāi)檢測(cè)。YOLO算法以快速、準(zhǔn)確的圖像識(shí)別能力著稱(chēng),有效支持實(shí)時(shí)火災(zāi)事件監(jiān)測(cè)[7]。為滿足智能網(wǎng)關(guān)的需求,需對(duì)不同版本的YOLO算法進(jìn)行篩選并進(jìn)行相應(yīng)優(yōu)化。
2.1 算法性能評(píng)估
為了評(píng)估YOLO算法的性能,選取了4項(xiàng)評(píng)價(jià)指標(biāo):mAP(mean Average Precision) 、IoU(Intersection overUnion) 、Speed 和 FLOPs(Floating Point Operations perSecond) 。其中,mAP代表精度均值,用于綜合評(píng)估模型在不同類(lèi)別上的表現(xiàn);IoU,即交集比(也稱(chēng)JaccardIndex) ,用于衡量模型預(yù)測(cè)的邊界框與真實(shí)邊界框之間的重疊程度,是檢測(cè)準(zhǔn)確性的評(píng)價(jià)指標(biāo);Speed指推理速度,即算法在檢測(cè)過(guò)程中處理單個(gè)圖像所需的時(shí)間,單位為毫秒(ms) ;FLOPs表示每秒浮點(diǎn)運(yùn)算次數(shù),衡量神經(jīng)網(wǎng)絡(luò)模型計(jì)算復(fù)雜度的指標(biāo)。以上4項(xiàng)指標(biāo)綜合評(píng)估YOLO 算法在檢測(cè)過(guò)程中的準(zhǔn)確性和全面性。
限于篇幅,僅比較YOLOv3和YOLOv5在3種不同類(lèi)型的火焰數(shù)據(jù)集上的性能表現(xiàn)。數(shù)據(jù)集包括室外火焰數(shù)據(jù)集、室內(nèi)火焰數(shù)據(jù)集和煙霧數(shù)據(jù)集,如圖3所示。每個(gè)數(shù)據(jù)集包含3種分辨率的圖片,分別為250×250、416×416、640×640;每種分辨率包含5 100 張圖片,其中訓(xùn)練集為3 570張,驗(yàn)證集為1 020張,測(cè)試集為510 張。實(shí)驗(yàn)所用環(huán)境為:Core i9-10900K,RTX2060,CUDA 11.2,Python 3.8.17。具體數(shù)據(jù)比較請(qǐng)參見(jiàn)表3和表4。
由上述數(shù)據(jù)可以看出,YOLOv5在所有數(shù)據(jù)集和分辨率下的mAP都相對(duì)較高,表現(xiàn)優(yōu)于YOLOv3。在高分辨率圖片下,mAP通常更高,因?yàn)楦叻直媛实膱D片可以提供更多的細(xì)節(jié)。YOLOv5在不同數(shù)據(jù)集和分辨率下的IoU表現(xiàn)相較于YOLOv3更好,表明其對(duì)目標(biāo)定位更加準(zhǔn)確。然而,YOLOv3在低分辨率下的推理速度稍快,這使其在一些資源受限的環(huán)境中更具優(yōu)勢(shì)。YOLOv5的FLOPs相對(duì)較高,這與其更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)有關(guān)。
盡管YOLOv5模型的檢測(cè)性能更優(yōu),但在嵌入式系統(tǒng)中,YOLOv3由于其推理速度更快而更具優(yōu)勢(shì)。如果將YOLOv5部署在Jetson Nano上,因?yàn)槠銰PU性能相對(duì)有限,可能無(wú)法達(dá)到Y(jié)OLOv5在更強(qiáng)大硬件上的推理速度。而且,Jetson Nano的CPU和內(nèi)存性能也有限,可能導(dǎo)致模型整體性能下降,進(jìn)而影響實(shí)際檢測(cè)中的響應(yīng)速度。此外,在長(zhǎng)時(shí)間高負(fù)載的情況下,設(shè)備容易過(guò)熱,這會(huì)影響其穩(wěn)定性和壽命。因此,在核心決策層中,選擇YOLOv3作為核心算法,并且為了實(shí)現(xiàn)速度和準(zhǔn)確性之間的平衡,選擇分辨率為416×416的圖像。
2.2 算法性能優(yōu)化
根據(jù)上述評(píng)估結(jié)果,盡管YOLOv3的推理速度較快,但其目標(biāo)檢測(cè)性能仍有待進(jìn)一步提高。為此,采用模型蒸餾方法對(duì)YOLOv3進(jìn)行優(yōu)化。該方法是一種將復(fù)雜模型的知識(shí)傳遞給簡(jiǎn)單模型的方法[8],能夠在保持模型規(guī)模和計(jì)算成本的同時(shí),提高簡(jiǎn)單模型的性能。具體操作包括:將較復(fù)雜且表現(xiàn)優(yōu)異的模型作為“教師模型”,而將較簡(jiǎn)單的模型作為“學(xué)生模型”。教師模型首先在原始數(shù)據(jù)集上進(jìn)行訓(xùn)練,然后學(xué)生模型根據(jù)教師模型的預(yù)測(cè)結(jié)果進(jìn)行訓(xùn)練;這樣,學(xué)生模型的目標(biāo)是學(xué)習(xí)教師模型的概率分布,而不是直接學(xué)習(xí)原始數(shù)據(jù)集上的標(biāo)簽,從而使學(xué)生模型的輸出盡可能逼近教師模型。具體做法如下:
1) 模型準(zhǔn)備。選擇YOLOv5作為教師模型,YO?LOv3作為學(xué)生模型。這樣做的目的是在保持YOLOv3 速度優(yōu)勢(shì)的前提下,使其檢測(cè)性能盡可能逼近YOLOv5。
2) 軟標(biāo)簽生成。在訓(xùn)練集上,使用YOLOv5生成軟標(biāo)簽。這些軟標(biāo)簽是概率分布,而不是傳統(tǒng)的類(lèi)別標(biāo)簽和邊界框信息(硬標(biāo)簽),反映了YOLOv5對(duì)火焰及煙霧位置的置信度分布。對(duì)于每個(gè)目標(biāo)的置信度分?jǐn)?shù),使用Softmax函數(shù)將其轉(zhuǎn)換為概率分布,計(jì)算方式如下:
4) 優(yōu)化后的模型評(píng)估。在模型訓(xùn)練中,為了在性能和速度之間取得平衡,只選擇了416×416分辨率的圖片進(jìn)行訓(xùn)練。訓(xùn)練完成后,通過(guò)測(cè)試和評(píng)估,得出了改進(jìn)后YOLOv3的平均精度(mAP) 值和交并比(IoU) 值,結(jié)果如表5、表6及圖4、圖5所示。
通過(guò)以上數(shù)據(jù)可以看出,在416×416分辨率下,當(dāng)λ 值在0.5至0.7之間時(shí),改進(jìn)后的YOLOv3模型能夠取得較好的性能表現(xiàn)。然而,當(dāng)λ 值大于0.7時(shí),性能反而會(huì)下降。這是因?yàn)檫^(guò)大的λ 值會(huì)導(dǎo)致模型過(guò)于關(guān)注分類(lèi)損失,從而影響回歸損失,導(dǎo)致邊界框的位置和大小不夠準(zhǔn)確。
最終可以得出結(jié)論:改進(jìn)后的YOLOv3在性能上有了明顯提升,其平均精度(mAP) 和交并比(IoU) 值進(jìn)一步逼近YOLOv5,達(dá)到了優(yōu)化的目的。
3結(jié)論與展望
通過(guò)深入研究邊緣計(jì)算理論,提出并實(shí)現(xiàn)了一種基于邊緣計(jì)算的智能消防物聯(lián)網(wǎng)網(wǎng)關(guān),以解決傳統(tǒng)消防物聯(lián)網(wǎng)系統(tǒng)中的誤報(bào)、漏報(bào)等問(wèn)題。在網(wǎng)關(guān)構(gòu)建中,利用三層架構(gòu)實(shí)現(xiàn)了對(duì)數(shù)據(jù)的高效存儲(chǔ)和實(shí)時(shí)智能分析。在算法性能評(píng)估中,通過(guò)實(shí)驗(yàn)對(duì)比YOLOv3 和YOLOv5在不同數(shù)據(jù)集和分辨率下的性能,最終選擇了適用于嵌入式系統(tǒng)的YOLOv3作為核心算法,從而平衡了推理速度和目標(biāo)檢測(cè)性能。為了進(jìn)一步提高YOLOv3的性能,通過(guò)模型蒸餾方法對(duì)其進(jìn)行了優(yōu)化,優(yōu)化后的模型在平均精度(mAP) 和交并比(IoU) 等指標(biāo)上取得了明顯提升,證明了優(yōu)化方法的有效性。
然而,算法的優(yōu)化仍然存在一些改進(jìn)空間。未來(lái)可以引入溫度參數(shù)來(lái)調(diào)整軟標(biāo)簽的分布,并利用梯度下降法進(jìn)一步減小損失函數(shù),以提高目標(biāo)檢測(cè)的準(zhǔn)確性。此外,還可以考慮拓展其應(yīng)用領(lǐng)域,將邊緣計(jì)算技術(shù)應(yīng)用于其他安全領(lǐng)域,以實(shí)現(xiàn)更廣泛的社會(huì)影響。