一、前言
本項(xiàng)目通過(guò)yolov8/yolov7/yolov5訓(xùn)練自己的數(shù)據(jù)集,并開(kāi)發(fā)可視化界面,實(shí)現(xiàn)了一個(gè)火災(zāi)煙霧實(shí)時(shí)檢測(cè)系統(tǒng),操作視頻和效果展示如下:
【yolov8/yolov7/yolov5火災(zāi)煙霧檢測(cè)系統(tǒng)-界面+視頻實(shí)時(shí)檢測(cè)+數(shù)據(jù)集(原創(chuàng)算法-畢業(yè)設(shè)計(jì))】 https://www.bilibili.com/video/BV1FG41127H3/?share_source=copy_web&vd_source=138d2e7f294c3405b6ea31a67534ae1a
1、項(xiàng)目介紹
火災(zāi)是一種常見(jiàn)而嚴(yán)重的安全威脅,可以造成人員傷亡和財(cái)產(chǎn)損失。因此,提前檢測(cè)并及時(shí)報(bào)警火災(zāi)發(fā)生對(duì)于保護(hù)人們的生命和財(cái)產(chǎn)具有重要意義。煙霧是火災(zāi)中最早出現(xiàn)的跡象之一,因此煙霧檢測(cè)系統(tǒng)在火災(zāi)預(yù)警和滅火工作中起著關(guān)鍵作用。本設(shè)計(jì)旨在開(kāi)發(fā)一個(gè)能夠及時(shí)、準(zhǔn)確地檢測(cè)火災(zāi)煙霧的系統(tǒng),其主要目標(biāo)包括:實(shí)時(shí)監(jiān)測(cè)環(huán)境中的煙霧并判定是否為火災(zāi)煙霧;提供可靠的火災(zāi)煙霧檢測(cè)結(jié)果。
我們的項(xiàng)目可為兄弟們的畢設(shè)、課設(shè)、大作業(yè)等提供參考,可訓(xùn)練自己的數(shù)據(jù)集,可以換成yolov8/yolov7/yolov5各種版本的權(quán)重。包含特別詳細(xì)的read.md文件和常見(jiàn)問(wèn)題解答,關(guān)于本項(xiàng)目的任何問(wèn)題都能在其中找到答案,對(duì)剛接觸深度學(xué)習(xí)、目標(biāo)檢測(cè)的小白非常友好,兄弟們放心哈。
2、圖片測(cè)試效果展示
可以看到,我們實(shí)驗(yàn)室的項(xiàng)目能對(duì)圖片、視頻中出現(xiàn)的火災(zāi)、煙霧情況進(jìn)行有效檢測(cè),且準(zhǔn)確率較高。
二、項(xiàng)目環(huán)境配置
不熟悉pycharm的anaconda的大兄弟請(qǐng)先看這篇csdn博客,了解pycharm和anaconda的基本操作。
https://blog.csdn.net/ECHOSON/article/details/117220445
anaconda安裝完成之后請(qǐng)切換到國(guó)內(nèi)的源來(lái)提高下載速度 ,命令如下:
conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
首先創(chuàng)建python3.8的虛擬環(huán)境,請(qǐng)?jiān)诿钚兄袌?zhí)行下列操作:
conda create -n yolov8 python==3.8.5
conda activate yolov8
1、pytorch安裝(gpu版本和cpu版本的安裝)
實(shí)際測(cè)試情況是yolov8/yolov7/yolov5在CPU和GPU的情況下均可使用,不過(guò)在CPU的條件下訓(xùn)練那個(gè)速度會(huì)令人發(fā)指,所以有條件的小伙伴一定要安裝GPU版本的Pytorch,沒(méi)有條件的小伙伴最好是租服務(wù)器來(lái)使用。GPU版本安裝的具體步驟可以參考這篇文章:https://blog.csdn.net/ECHOSON/article/details/118420968。
需要注意以下幾點(diǎn):
1、安裝之前一定要先更新你的顯卡驅(qū)動(dòng),去官網(wǎng)下載對(duì)應(yīng)型號(hào)的驅(qū)動(dòng)安裝
2、30系顯卡只能使用cuda11的版本
3、一定要?jiǎng)?chuàng)建虛擬環(huán)境,這樣的話各個(gè)深度學(xué)習(xí)框架之間不發(fā)生沖突
我這里創(chuàng)建的是python3.8的環(huán)境,安裝的Pytorch的版本是1.8.0,命令如下:
conda install pytorch==1.8.0 torchvision torchaudio cudatoolkit=10.2 # 注意這條命令指定Pytorch的版本和cuda的版本
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly # CPU的小伙伴直接執(zhí)行這條命令即可
安裝完畢之后,我們來(lái)測(cè)試一下GPU是否可以有效調(diào)用:
2、pycocotools的安裝
pip install pycocotools-windows
3、其他包的安裝
另外的話大家還需要安裝程序其他所需的包,包括opencv,matplotlib這些包,不過(guò)這些包的安裝比較簡(jiǎn)單,直接通過(guò)pip指令執(zhí)行即可,我們cd到y(tǒng)olov8/yolov7/yolov5代碼的目錄下,直接執(zhí)行下列指令即可完成包的安裝。
pip install -r requirements.txt
pip install pyqt5
pip install labelme
三、yolov8/yolov7/yolov5火災(zāi)煙霧檢測(cè)系統(tǒng)
1、yolov8火災(zāi)煙霧檢測(cè)算法
yolov8是yolo系列的最新算法,檢測(cè)效果優(yōu)于之前的所有的yolo算法。這里,我們采用了ultralytics官方版本的yolov8來(lái)檢測(cè)火災(zāi)煙霧。
在學(xué)習(xí)Yolov8之前,我們需要對(duì)Yolov8所做的工作有一定的了解,這有助于我們后面去了解網(wǎng)絡(luò)的細(xì)節(jié),Yolov8在預(yù)測(cè)方式上與之前的Yolo并沒(méi)有多大的差別,依然分為三個(gè)部分:分別是Backbone,F(xiàn)PN以及Yolo Head。
Backbone是Yolov8的主干特征提取網(wǎng)絡(luò),輸入的圖片首先會(huì)在主干網(wǎng)絡(luò)里面進(jìn)行特征提取,提取到的特征可以被稱作特征層,是輸入圖片的特征集合。在主干部分,我們獲取了三個(gè)特征層進(jìn)行下一步網(wǎng)絡(luò)的構(gòu)建,這三個(gè)特征層我稱它為有效特征層。
FPN是Yolov8的加強(qiáng)特征提取網(wǎng)絡(luò),在主干部分獲得的三個(gè)有效特征層會(huì)在這一部分進(jìn)行特征融合,特征融合的目的是結(jié)合不同尺度的特征信息。在FPN部分,已經(jīng)獲得的有效特征層被用于繼續(xù)提取特征。在YoloV8里依然使用到了Panet的結(jié)構(gòu),我們不僅會(huì)對(duì)特征進(jìn)行上采樣實(shí)現(xiàn)特征融合,還會(huì)對(duì)特征再次進(jìn)行下采樣實(shí)現(xiàn)特征融合。
Yolo Head是Yolov8的分類(lèi)器與回歸器,通過(guò)Backbone和FPN,我們已經(jīng)可以獲得三個(gè)加強(qiáng)過(guò)的有效特征層。每一個(gè)特征層都有寬、高和通道數(shù),此時(shí)我們可以將特征圖看作一個(gè)又一個(gè)特征點(diǎn)的集合,每個(gè)特征點(diǎn)作為先驗(yàn)點(diǎn),而不再存在先驗(yàn)框,每一個(gè)先驗(yàn)點(diǎn)都有通道數(shù)個(gè)特征。Yolo Head實(shí)際上所做的工作就是對(duì)特征點(diǎn)進(jìn)行判斷,判斷特征點(diǎn)上的先驗(yàn)框是否有物體與其對(duì)應(yīng)。Yolov8所用的解耦頭是分開(kāi)的,也就是分類(lèi)和回歸不在一個(gè)1X1卷積里實(shí)現(xiàn)。
因此,整個(gè)YoloV8網(wǎng)絡(luò)所作的工作依然就是 特征提取-特征加強(qiáng)-預(yù)測(cè)先驗(yàn)框?qū)?yīng)的物體情況。
2、算法界面設(shè)計(jì)
這里我們使用了Streamlit來(lái)實(shí)現(xiàn)火災(zāi)煙霧檢測(cè)系統(tǒng)界面的開(kāi)發(fā)。Streamlit 是一個(gè)開(kāi)源的 Python 庫(kù),用于創(chuàng)建交互式的數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)應(yīng)用程序。它使得構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的web應(yīng)用變得簡(jiǎn)單易用,無(wú)需繁瑣的前端開(kāi)發(fā),只需要使用 Python 進(jìn)行開(kāi)發(fā)即可。其實(shí)就是用Python語(yǔ)言寫(xiě)一個(gè)本地Web,應(yīng)用場(chǎng)景常常是機(jī)器學(xué)習(xí)可視化(當(dāng)然也可做其他的圖表分析等),不需要任何Web前后端開(kāi)發(fā)經(jīng)驗(yàn)(事實(shí)上我也沒(méi)有)。注意我們寫(xiě)出的Web只有本地可以訪問(wèn),要接入互聯(lián)網(wǎng)還需要其他進(jìn)階方法!我用下來(lái)整體體會(huì)是這個(gè)庫(kù)集成度很高,功能都是完整地打包入完整的API里了,所以使用起來(lái)非常簡(jiǎn)單快捷。但集成度高也有缺點(diǎn),例如設(shè)計(jì)的自由度較低,諸如前端說(shuō)明字的位置、大小等不能直接實(shí)現(xiàn),需要借助HTML、CSS樣式表等進(jìn)階手段完成。
如圖所示,在使用pycharm運(yùn)行我們這個(gè)火災(zāi)煙霧檢測(cè)系統(tǒng)時(shí),首先需在pycharm右下角選中Pytorch環(huán)境下的python解釋器(如新手小白沒(méi)有pytorch環(huán)境,參考http://t.csdn.cn/cI5BF進(jìn)行配置即可),然后點(diǎn)擊終端,點(diǎn)擊下拉,選擇Command Prompt進(jìn)入pytorch環(huán)境下的執(zhí)行終端。
然后,在該終端中輸入命令:
streamlit run app.py
初次使用需要輸入郵箱,如圖所示,隨便輸一個(gè)即可,然后按回車(chē)鍵,就能打開(kāi)我們項(xiàng)目的可視化界面進(jìn)行操作了。
另外,若pycharm出現(xiàn)如下版本提醒,可以不管,代碼一樣運(yùn)行,沒(méi)必要按它要求的版本重新裝包,親測(cè)有效。
運(yùn)行界面展示如圖,非常簡(jiǎn)潔易懂,容易上手。我們的項(xiàng)目支持圖片、視頻、實(shí)時(shí)攝像頭三種檢測(cè)模式,可以選擇調(diào)用自己訓(xùn)練的權(quán)重或yolo官網(wǎng)給出的權(quán)重進(jìn)行火災(zāi)檢測(cè)。這里我們提供了一個(gè)在自己數(shù)據(jù)集上訓(xùn)練的權(quán)重供兄弟們調(diào)用:fire_detecter.pt,這個(gè)權(quán)重測(cè)出來(lái)的map達(dá)到93.6%,對(duì)于畢業(yè)設(shè)計(jì)或者課程設(shè)計(jì)完全夠用。
四、火災(zāi)、煙霧檢測(cè)自建數(shù)據(jù)集
1、數(shù)據(jù)集介紹
我們實(shí)驗(yàn)室手動(dòng)收集、整理、標(biāo)注了一個(gè)高質(zhì)量的火災(zāi)、煙霧檢測(cè)數(shù)據(jù)集,包含6940張火災(zāi)圖片和對(duì)應(yīng)的xml格式標(biāo)簽。我們對(duì)圖片中的火焰(fire)、煙霧(smoke)使用軟件進(jìn)行了手動(dòng)標(biāo)注,并將其劃分為訓(xùn)練集、驗(yàn)證與測(cè)試集。本數(shù)據(jù)集可直接用于訓(xùn)練yolo系列等神經(jīng)網(wǎng)絡(luò),可提供給兄弟們的畢設(shè)、課設(shè)項(xiàng)目及企業(yè)課題進(jìn)行使用。數(shù)據(jù)集展示如下:
其中“annotations”包含了6940個(gè)手動(dòng)標(biāo)注的xml格式標(biāo)簽,“train_list”和“val_list”文件夾里面為訓(xùn)練集、驗(yàn)證集劃分對(duì)應(yīng)的txt,“images”文件夾里面為6940張JPG格式的包含火焰、煙霧的圖片。
五、訓(xùn)練曲線等介紹
我們的項(xiàng)目代碼還能自動(dòng)生成訓(xùn)練過(guò)程的loss損失曲線、map平均準(zhǔn)確度曲線,不用手動(dòng)畫(huà)(太麻煩了,能用代碼做的事盡量不手動(dòng)),兄弟可以直接將這些圖插入論文或課設(shè)報(bào)告中。當(dāng)然,也可以自己訓(xùn)練,重新生成對(duì)應(yīng)的圖。訓(xùn)練結(jié)束后,這些圖和訓(xùn)練數(shù)據(jù)會(huì)存放在根目錄下的runs文件夾中。
包含完整word版本說(shuō)明文檔,可用于寫(xiě)論文、課設(shè)報(bào)告的參考。
六、資源獲取(yolov8/yolov7/yolov5版本均可提供)
yolov8/yolov7/yolov5火災(zāi)煙霧檢測(cè)系統(tǒng)的實(shí)現(xiàn)和訓(xùn)練、數(shù)據(jù)的采集和標(biāo)注耗費(fèi)了我們實(shí)驗(yàn)室大量的時(shí)間和精力。所以有償提供使用,感謝兄弟們理解。有需要的兄弟可通過(guò)以下方式獲取資源。我們的代碼有詳細(xì)注釋?zhuān)讨笇?dǎo),任何問(wèn)題都可以隨時(shí)問(wèn)我。不過(guò)有的時(shí)候我太忙,可能不會(huì)及時(shí)回復(fù)消息,看到了肯定回你哈。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-756770.html
獲取整套代碼、測(cè)試圖片、火災(zāi)煙霧數(shù)據(jù)集、訓(xùn)練好的權(quán)重和說(shuō)明文檔(有償)
上交碩士,技術(shù)夠硬,也可以指導(dǎo)深度學(xué)習(xí)畢設(shè)、大作業(yè)等。
-------------- 3582584734 ->qq ------------
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-756770.html
到了這里,關(guān)于YOLOv8/YOLOv7/YOLOv5-火災(zāi)檢測(cè)、煙霧檢測(cè)系統(tǒng)-界面+視頻實(shí)時(shí)檢測(cè)+數(shù)據(jù)集(算法-畢業(yè)設(shè)計(jì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!