yolo目標檢測技術之yolov11項目實戰(三)

yolo目標檢測技術之yolov11項目實戰(三)

文章目錄

  • yolo目標檢測技術之yolov11項目實戰(三)
  • 一、 基于 YOLO11 的火焰與煙霧檢測系統(實戰+代碼)
    • 項目目標
    • 環境搭建
      • 創建虛擬環境
      • 安裝依賴
    • 1.1 數據集準備
      • 1. 下載地址
      • 2. 數據格式轉換(XML → TXT)
    • 1.2 模型訓練
      • 方法1:命令行訓練
      • 方法2:Python 腳本訓練(推薦)
    • 1.3 模型推理
      • 方法1:命令行推理
      • 方法2:Python 腳本推理(推薦)
    • 1.4 常用參數對照表
    • 1.5 性能驗證
    • 1.6 模型優化建議
    • 1.7 項目結構建議
    • 結語


一、 基于 YOLO11 的火焰與煙霧檢測系統(實戰+代碼)

使用 YOLO11 實現實時火焰與煙霧檢測,支持圖像/視頻/攝像頭/RTSP 流輸入,適合部署與演示。


項目目標

功能支持內容
模型YOLO11(支持檢測/分割)
輸入圖像、視頻、攝像頭、RTSP
輸出火焰/煙霧檢測框、置信度
部署方式Python + PyTorch + OpenCV
可視化界面可擴展(如 Streamlit/Gradio)

環境搭建

創建虛擬環境

conda create -n yolov11_env python=3.12
conda activate yolov11_env

安裝依賴

# CUDA 12.1(根據你顯卡驅動選擇)
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu121# 安裝 ultralytics(YOLO11)
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

1.1 數據集準備

1. 下載地址

  • GitHub:DFS-FIRE-SMOKE-Dataset
  • 百度云:鏈接(提取碼:pnxx

2. 數據格式轉換(XML → TXT)

YOLO 格式要求:class_id x_center y_center width height(歸一化)

import os
import xml.etree.ElementTree as ETclasses = ['_background_', 'fire', 'other', 'smoke']def parse_xml(xml_path, txt_path):for xml_file in os.listdir(xml_path):file_name = xml_file.split('.')[0]tree = ET.parse(os.path.join(xml_path, xml_file))root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)with open(os.path.join(txt_path, file_name + '.txt'), 'w') as f:for obj in root.findall('object'):cls = obj.find('name').textcls_id = classes.index(cls)bndbox = obj.find('bndbox')xmin = float(bndbox.find('xmin').text)ymin = float(bndbox.find('ymin').text)xmax = float(bndbox.find('xmax').text)ymax = float(bndbox.find('ymax').text)x_center = ((xmin + xmax) / 2) / wy_center = ((ymin + ymax) / 2) / hwidth = (xmax - xmin) / wheight = (ymax - ymin) / hf.write(f"{cls_id} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}\n")# 使用示例
if __name__ == '__main__':parse_xml('datasets/fire/Annotations', 'datasets/fire/labels')

1.2 模型訓練

方法1:命令行訓練

yolo detect train data=ultralytics/cfg/datasets/fire.yaml model=yolo11s.pt epochs=10 imgsz=640 batch=8 device=0 project=runs

方法2:Python 腳本訓練(推薦)

from ultralytics import YOLOif __name__ == "__main__":model = YOLO("yolo11s.pt")  # 加載預訓練模型model.train(data="ultralytics/cfg/datasets/fire.yaml",epochs=10,batch=8,imgsz=640,device='0',project='runs')

1.3 模型推理

方法1:命令行推理

yolo predict model=runs/train/weights/best.pt source=datasets/fire/test.jpg save=True

方法2:Python 腳本推理(推薦)

from ultralytics import YOLOmodel = YOLO("runs/train/weights/best.pt")
results = model.predict(source="datasets/fire/test.jpg",save=True,conf=0.5,iou=0.6
)

1.4 常用參數對照表

參數名含義說明示例值
data數據集配置文件路徑fire.yaml
model模型權重路徑或結構路徑yolo11s.pt
epochs訓練輪數10
batch每批次圖像數量8
imgsz輸入圖像尺寸640 / 1280
conf置信度閾值(推理用)0.5
iouNMS 閾值(推理用)0.6
device訓練/推理設備0 / cpu
save是否保存推理結果True

1.5 性能驗證

yolo val model=runs/train/weights/best.pt data=ultralytics/cfg/datasets/fire.yaml conf=0.5 iou=0.6
類別mAP50mAP50-95
fire0.6170.408
smoke0.5340.337
other0.4020.257

1.6 模型優化建議

優化方式操作建議
提高輸入分辨率imgsz=1280
數據增強mixup=0.36, copy_paste=0.33
使用更大模型yolo11m.pt / yolo11l.pt
調整閾值conf=0.3~0.6, iou=0.5~0.7
加入注意力機制可嘗試 C2PSA 模塊

1.7 項目結構建議

ultralytics/
├── datasets/
│   └── fire/
│       ├── images/train
│       ├── images/val
│       ├── labels/train
│       └── labels/val
├── runs/
│   └── train/
│       └── weights/
│           ├── best.pt
│           └── last.pt
└── my_train.py / my_detect.py

結語

本項目適合作為 YOLO11 入門實戰項目,覆蓋從數據準備、訓練、推理到部署的完整流程。后續可擴展為:

  • Web 檢測界面(Gradio/Streamlit)
  • RTSP 實時流檢測
  • 邊緣設備部署(Jetson Nano)

如需完整源碼或部署腳本,歡迎留言或私信交流!


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918851.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918851.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918851.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CF思維小訓練(二)

清晰的繽紛的都可以 臟兮兮的甜的也都有轉機 不想太小心 錯過第一百零一場美麗 CF思維小訓練(二) 書接上回CF思維小訓練-CSDN博客 雖然代碼很短,都是每一道題的背后都思維滿滿; 目錄CF思維小訓練(二)Arbo…

分布式鎖:從理論到實戰的深度指南

1. 分布式鎖是啥?為什么它比單機鎖更“硬核”?分布式鎖,聽起來高大上,其實核心問題很簡單:在多個機器、進程或服務同時搶奪資源時,怎么保證不打架? 想象一下,你在雙十一搶購限量款球…

基于UniApp的智能在線客服系統前端設計與實現

了解更多,搜索“程序員老狼”一、引言在當今數字化時代,客戶服務已成為企業競爭力的重要組成部分。本文將詳細介紹一款基于UniApp框架開發的跨平臺智能客服系統前端實現方案,該系統不僅具備傳統客服功能,還融入了現代即時通訊和人…

react與vue的對比,來實現標簽內部類似v-for循環,v-if等功能

前言:在vue中我們提供了很多標簽方法,比如用的比較多的v-for循環內容,v-if/v-show等判斷,可以直接寫在標簽中,大大提高了我們的開發效率,那么在react中有沒有類似的方法呢?我們這里來說一說。re…

PCB工藝-四層板制作流程(簡單了解下)

一)流程:四層板的內層芯板,是由一張雙面覆銅板PP*2銅箔*2覆銅板蝕刻好線路,就是我們的芯板了PP全名叫半固化片,主體是玻璃纖維布環氧樹脂,是絕緣介質銅箔片,是單獨一張銅箔,很薄&…

無人機三維路徑規劃

文章目錄 1、引言 2、背景知識 3、核心算法 4、挑戰與優化 5、初始效果 6、需要改進地方 7、水平方向優化路線 8、垂直方向優化路線 9、與經過路線相交的網格都繪制出來 1、引言 介紹三維路徑規劃的定義和重要性:在無人機、機器人導航、虛擬現實等領域的應用。 概述文章目標和…

Spring-解決項目依賴異常問題

一.檢查項目的Maven路徑是否正確在確保新項目中的依賴在自己的電腦中已經存在的情況下:可以檢查項目的Maven路徑是否正確在拿到一個新項目時,要檢查這個項目的Maven路徑是自己電腦上設置好的Maven路徑嗎?如果不是,項目依賴會出問題…

系統設計——DDD領域模型驅動實踐

摘要本文主要介紹了DDD(領域驅動設計)在系統設計中的實踐應用,包括其在編碼規范、分層架構設計等方面的具體要求和建議。重點強調了應用層的命名規范,如避免使用模糊的Handler、Processor等命名,推薦使用動詞加業務動作…

開源衛星軟件平臺LibreCube技術深度解析

LibreCube技術深度解析:開源衛星軟件平臺的完整指南 LibreCube是一個專為CubeSat設計的模塊化開源衛星軟件平臺,它通過整合姿態控制、通信管理和任務調度等核心功能,為立方星開發者提供了完整的解決方案。本文將全面剖析LibreCube的技術架構…

React(四):事件總線、setState的細節、PureComponent、ref

React(四) 一、事件總線 二、關于setState的原理 1. setState的三種使用方式 (1)基本使用 (2)傳入一個回調 (3)第一個參數是對象,第二個參數是回調 2. 為什么setState要設置成異步 (1)提升性能,減少render次數 (2)避免state和props數據不同步 3. 獲取異步修改完數…

CPUcores-【硬核優化】CPU增強解鎖全部內核!可優化游戲性能、提升幀數!啟用CPU全內核+超線程,以更高優先級運行游戲!支持各種游戲和應用優化~

軟件介紹(文末獲取)CPUCores:游戲性能優化利器?這款工具,專為優化提升中低配電腦的幀數而生。其獨創的CPU資源調度技術,能讓老舊硬件煥發新生核心技術原理?采用「內核級隔離」方案,通過:系統進…

HQA-Attack: Toward High Quality Black-Box Hard-Label Adversarial Attack on Text

文本對抗性攻擊分為白盒攻擊和黑盒攻擊,其中黑盒攻擊更貼近現實,又可分為軟標簽和硬標簽設置,。這些名詞分別是什么意思 在文本對抗性攻擊中,“白盒攻擊”“黑盒攻擊”以及黑盒攻擊下的“軟標簽”“硬標簽”設置,核心差…

PyCharm性能優化與大型項目管理指南

1. PyCharm性能深度調優 1.1 內存與JVM配置優化 PyCharm基于JVM運行,合理配置JVM參數可顯著提升性能: # 自定義VM選項文件位置 # Windows: %USERPROFILE%\AppData\Roaming\JetBrains\<product><version>\pycharm64.exe.vmoptions # macOS: ~/Library/Applicat…

基于Java飛算AI的Spring Boot聊天室系統全流程實戰

在當今數字化時代&#xff0c;實時通訊已成為現代應用不可或缺的核心功能。從社交平臺到企業協作&#xff0c;從在線客服到游戲互動&#xff0c;實時聊天功能正以前所未有的速度滲透到各行各業。然而&#xff0c;開發一個功能完善的聊天室系統絕非易事——傳統開發模式下&#…

在 Conda 環境下編譯 C++ 程序時報錯:version `GLIBCXX_3.4.30‘ not found

報錯信息如下 ERROR:/root/SVF/llvm-16.0.4.obj/bin/clang: /opt/miniconda3/envs/py38/lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /root/SVF/llvm-16.0.4.obj/bin/clang)根據錯誤信息&#xff0c;問題是由于 Conda 環境中的libstdc.so.6缺少GLIBCXX_3…

vue+flask基于Apriori算法規則的求職推薦系統

文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站&#xff0c;有好處&#xff01;編號&#xff1a;F069 基于Apriori關聯規則職位相似度的推薦算法進行職位推薦 基于決策樹、隨機森林的預測薪資 vueflaskmysql爬蟲 設計求…

機器學習第九課之DBSCAN算法

目錄 簡介 一、dbscan相關概念 二、dbscan的API 三、案例分析 1. 導入所需庫 2. 數據讀取與預處理 3. 數據準備 4. DBSCAN 參數調優 5. 確定最佳參數并應用 總結 簡介 本次我們將聚焦于一款極具特色的聚類算法 ——DBSCAN。相較于 K-means 等需要預先指定簇數量的算法…

給AI開一副“健忘藥”:Dropout如何治愈神經網絡的死記硬背癥

**——解讀《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》**想象一位學生備考時&#xff0c;只反復背誦三套模擬題答案&#xff0c;卻在真正的考場上面對新題型束手無策——這種**死記硬背不會舉一反三**的問題&#xff0c;正是神經網絡中的“過擬合”…

【框架】跨平臺開發框架自用整理

Tauri 2.0 | Tauri https://github.com/tauri-apps/tauri 創建小型、快速、安全、跨平臺的應用程序 獨立于前端 將你現有的網絡技術棧帶到 Tauri 或開始新的項目。 Tauri 支持任何前端框架&#xff0c;所以你不需要改變你的技術棧。 跨平臺 使用單個代碼庫為 Linux、macOS、W…

web前端第三次作業

一、作業要求&#xff1a;使用js完成抽獎項目 效果和內容自定義&#xff0c;可以模仿游戲抽獎頁面二、代碼<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthde…