YOLO --- YOLO11模型以及項目詳解

YOLO — YOLO11模型以及項目詳解


文章目錄

  • YOLO --- YOLO11模型以及項目詳解
  • 一,開源地址
  • 二,重要模塊
    • 2.1 C3K2
    • 2.2 C2PSA
    • 2.3 檢測頭
  • 三,網絡結構
    • 3.1 整體結構劃分
    • 3.2 Backbone 結構分析(從下往上看)
    • 3.3 結構分析(特征融合)
    • 3.4 Head 檢測頭
    • 3.5 關鍵模塊說明
    • 3.7 模型主要特點
    • 3.8 模型對比
  • 四,開源項目
    • 4.1 下載源碼
    • 4.2 新建環境
    • 4.3 安裝包
    • 4.4 下載推理文件
    • 4.5 數據集
    • 4.6 檢測文件
    • 4.7 模型訓練
  • 五,優缺點


一,開源地址

  • 官方文檔:https://github.com/ultralytics/ultralytics

  • 開發文檔:https://docs.ultralytics.com/

二,重要模塊

2.1 C3K2

  • C3K2 模塊 是基于 C2F 模塊 的一種變體,它代碼中有一個設置

    • C3K2 參數為 False 時,模塊內部使用普通 Bottleneck
    • C3K2 參數為 True 時,模塊內部使用 C3k 結構
  • 代碼中的 C3K2 的使用:[-1, 2, C3k2, [256, False, 0.25]]

    • -1:該模塊的輸入來自哪一個模塊的輸出。-1 表示當前 C3k2 模塊的輸入 來自上一個模塊的輸出
    • 2:表示模塊內包含 2 個 C3k 或 Bottleneck 模塊(具體數量需要根據網絡版本的深度系數進行調整)
    • C3K2:模塊名稱,等于搭建該模塊的類的名稱,用于找到該類去搭建模塊
    • 256:輸出通道數(實際輸出通道數需要乘以寬度系數 width
    • False:True 表示內部使用 C3k 模塊;False 表示內部使用 Bottleneck
    • 0.25:用于控制 C3K2 模塊中的通道數
      請添加圖片描述

2.2 C2PSA

  • C2PSA 是對 C2f 模塊的擴展,它結合了 PSA(Pointwise Spatial Attention)塊,用于增強特征提取與和注意力機制,C2PSA 實現了加入 PSA 塊,實現了更強大的注意力機制,從而提高了模型對重要特征的捕捉能力
  • C2PSA 模塊由兩部分構成:C2f 分支結構PSA(Pointwise Spatial Attention)塊
  • 代碼中 C2PSA 的使用:[-1, 2, C2PSA, [1024]]
    • -1:該模塊的輸入來自哪一個模塊的輸出。-1表示 當前 C3k2 模塊的輸入 來自上一個模塊的輸出
    • 2:模塊內需要使用幾個 PSA 模塊(具體數量需要根據網絡版本的深度系數進行調整)
    • C2PSA:模塊名稱
    • 1024:輸出通道數(實際輸出通道數需要乘以寬度系數 width
      請添加圖片描述

2.3 檢測頭

  • YOLO11 在原先的 2 個解耦分類檢測頭中,進一步增加了兩個深度可分離卷積(DWConv),提高了模型的特征提取能力
  • 代碼中 C2PSA 的使用:[[16, 19, 22], 1, Detect, [nc]]
    • [16, 19, 22]:第16、19、22 模塊的的輸出,作為 Detect 檢測頭的輸入
    • 1:模塊重復次數,檢測頭的重復次數一般都為 1,檢測頭通常不重復
    • Detect:模塊名稱,等于搭建該模塊的類的名稱,用于找到該類去搭建模塊
    • nc:類別數
      請添加圖片描述

三,網絡結構

請添加圖片描述

3.1 整體結構劃分

模塊名稱作用備注
Backbone特征提取從輸入圖像中提取多尺度特征
Neck特征融合使用 FPN + PAN 結構進行多尺度特征融合
Head檢測頭輸出分類、框回歸、置信度等信息

3.2 Backbone 結構分析(從下往上看)

模塊輸出尺寸說明
輸入Input3×640×640輸入圖像
1CBS16×320×320初始卷積,通道從 3 → 16
2C3K232×160×160輕量級殘差模塊,通道翻倍,寬高減半
3CBS64×80×80繼續下采樣
4C3K264×80×80保持尺寸,增強特征
5CBS128×40×40下采樣
6C3K2128×40×40特征提取
7CBS256×20×20下采樣
8C3K2256×20×20特征提取
9SPPF256×20×20空間金字塔池化,增強感受野

3.3 結構分析(特征融合)

模塊輸出尺寸說明
10C2PSA256×20×20引入注意力機制(PSA)
11Upsample256×40×40上采樣
12Contact384×40×40與 Backbone 中同尺寸特征拼接
13C3K2256×40×40融合特征
14Upsample128×80×80繼續上采樣
15Contact192×80×80與更淺層特征拼接
16C3K2128×80×80輸出 P3 層(小目標)
17CBS128×40×40下采樣
18Contact384×40×40與中層特征拼接
19C3K2256×40×40輸出 P4 層(中目標)
20CBS256×20×20下采樣
21Contact512×20×20與深層特征拼接
22C3K2256×20×20輸出 P5 層(大目標)

3.4 Head 檢測頭

模塊輸出尺寸說明
P3/P4/P5Conv2d每個尺度輸出:類別數 + 4(框) + 1(置信度)對應小/中/大目標檢測頭

3.5 關鍵模塊說明

模塊名作用
CBSConv + BN + SiLU,標準卷積塊
C3K2類似 C3,但使用更輕量的 bottleneck(K=2)
C2PSA引入 PSA(Pyramid Squeeze Attention)注意力機制
SPPF快速空間金字塔池化,提升感受野
Contact特征拼接(concatenate)操作
Upsample上采樣,用于特征融合

3.7 模型主要特點

  • YOLO11采用改進的骨干和頸部架構,增強了特征提取能力,提高了物體檢測的精確度

  • 針對效率和速度優化:精細的架構設計和優化的訓練流程在保持準確性和性能之間最佳平衡的同時,提供更快的處理速度

  • 更少的參數,更高的準確度:YOLO11m 在 COCO 數據集上實現了比 YOLOv8m 更高的 mAP,參數減少了 22%,提高了計算效率,同時不犧牲準確度

  • 跨環境的適應性:YOLO11 可以無縫部署在邊緣設備、云平臺和配備 NVIDIA GPU的系統上,確保最大的靈活性

  • 支持廣泛的任務范圍:圖像分類、目標檢測、實例分割、姿態估計、定向對象檢測 (OBB)、多目標跟蹤等

請添加圖片描述

3.8 模型對比

下圖是 YOLOV11 各個模型在 COCO 數據集上的表現:

  • mAP50:IOU 閾值為 0.50 時的平均精度,評估較為寬松,主要反映模型的粗略檢測能力
  • mAP50-95:在不同 IOU 閾值下(從 0.50 到 0.95,步長 0.05,共 10 個值)計算 AP 的均值,是更為嚴謹和全面的性能指標,在報告模型性能時,mAP50-95 能值夠更好地衡量模型的總體表現,更具參考價值請添加圖片描述
    和其他 YOLO 版本性能對比圖請添加圖片描述

四,開源項目

4.1 下載源碼

第一步:下載 yolo11 源碼,前面的步驟已經完成

4.2 新建環境

第二步:新建環境,見
https://blog.csdn.net/m0_73338216/article/details/146123256

4.3 安裝包

  • 在 yolov11_env 虛擬環境中安裝庫:

    • 在 Python≥3.8 的環境中先根據計算機是否支持 GPU 安裝 Pytorch>=1.8,如果沒有 GPU 可以不執行這一步【這個下載命令有的有問題,盡量選擇 pip 命令下載,如果 cuda 版本太低,先去更新驅動】
    # CUDA 12.1
    pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu121
    
    • 安裝 ultralytics 包及其所有需求
    pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
    

4.4 下載推理文件

先下載 yolov11 的權重文件,選擇下載一個即可,然后放入項目文件夾中請添加圖片描述
執行檢測命令:可以選擇命令方式,也可以選擇代碼方式,可以參考網站https://docs.ultralytics.com/zh/modes/predict/#key-features-of-predict-mode

4.5 數據集

第六步:數據集標注

  • 模型訓練的數據、驗證的數據都是由專門的人標注制作的,常用的標注工具labelImg、labelme。 這里介紹 labelImg 的使用
    - 新建虛擬環境,略

  • 激活環境,輸入命令pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple安裝 labelimg 庫
    在激活環境下,執行命令labelimg打開 labelimg請添加圖片描述
    標注完成后的數據集,圖示:

  • images:存放需要被標注的圖片信息

  • labels:存放標注的圖片的位置、類型信息
    在這里插入圖片描述

4.6 檢測文件

from ultralytics import YOLO
# 加載訓練好的模型,改為自己的路徑
model = YOLO('yolo11s.pt')
# 修改為自己的圖片路徑及文件名
source = 0
# 運行推理,并附加參數
model.predict(source, show=True, save=True)
# model.predict(source,  # 圖片或視頻的源目錄
#               conf=0.5,  # 用于檢測的 對象置信閾值,只有置信度高于此閾值的對象才會被檢測出來
#               iou=0.7,  # 非極大值抑制(NMS)的交并比(loU)值
#               imgsz=160,  # 輸入圖像尺寸
#               half=False,  # 使用半精度(FP16)
#               device=0,  # 運行設備,如device=0或device = cpu
#               max_det=300,  # 每個圖像的最大檢測數
#               # vid_srtide=False,# 視頻幀率步長,預測試圖片需要注釋
#               stream_buffer=False,  # 緩沖所有流幀( True )或 返回最近的幀( Fa1se )
#               visualize=False,  # 是否可視化模型特征
#               augment=False,  # 是否對預測源應用圖像增強
#               agnostic_nms=False,  # 是否使用類別不可知(無關)的非極大值抑制(NMS)
#               classes=None,  # 按類別篩選結果,即classes=0或classes=[0,2,3]
#               retina_masks=False,  # 是否使用高分辨率的分割掩膜
#               embed=None,  # 返回給定層的特征向量/嵌入
#               show=False,  # 如果環境允許,是否顯示預測的圖像和視頻
#               save=True,  # 是否保存預測的圖像和視頻
#               save_frames=False,  # 是否保存預測的單個視頻幀
#               save_txt=False,  # 是否將結果保存為 .txt 文件
#               save_conf=False,  # 是否將檢測結果與置信度分數一起保存
#               save_crop=False,  # 是否保存裁剪的圖像與結果
#               show_labels=False,  # 是否顯示預測標簽
#               show_conf=False,  # 是否顯示預測置信度
#               show_boxes=False,  # 是否顯示預測邊界框
#               line_width=None,  # 邊界框的線寬(如果為 None ,則縮放為圖像大小)
#               ))

4.7 模型訓練

from ultralytics import YOLO
"""參數	    默認值	                說明model	None	                用于訓練的模型文件的路徑data	None	                數據集配置文件的路徑(例如 coco8.yaml)epochs	100	                    訓練歷元總數batch	16	                    批量大小,可調整為整數或自動模式imgsz	640	                    用于訓練的目標圖像大小device	None	                用于訓練的計算設備,如 cpu, 0, 0,1或 mpssave	True	                可保存訓練檢查點和最終模型權重project None                    保存訓練結果的項目目錄名稱
"""
if __name__ == "__main__":# 加載模型結構和配置文件model = YOLO("yolo11s.pt")# 開始訓練results = model.train(data="ultralytics/cfg/datasets/animal.yaml",epochs=25,batch=8,imgsz=640,device='0',project='runs',)

五,優缺點

維度優點缺點
檢測精度? 在 COCO 上 mAP 比 YOLOv8 高 1-2 pp(小目標提升更明顯)
? 引入 C2PSA(Pyramid Squeeze Attention),增強遮擋、小目標檢測
? 對極端長寬比、旋轉密集目標仍有漏檢
? 極低分辨率輸入時精度下降明顯
推理速度? 仍保持單階段架構,速度>300 FPS(YOLO11-n,T4 GPU)
? 支持 TensorRT / OpenVINO 高效部署
? 注意力模塊帶來 5-10 % 額外延遲
? 參數量略大于同規模 YOLOv8,邊緣端需量化
模型大小? 提供 n/s/m/l/x 五級權重,可按需選擇
? 引入 C3K2 輕量瓶頸,參數量控制良好
? 最小模型仍比 YOLOv8-nano 大 0.4 M 參數量
訓練友好度? 沿用 YOLOv8 訓練框架,超參少、易復現
? 支持自動錨框、斷點續訓、混合精度
? 官方僅放出新版代碼,向下兼容腳本需手動調整
? anchor-free 對小目標收斂速度稍慢
部署生態? 官方導出 ONNX、Engine、RKNN、CoreML 一鍵完成
? 支持 NCNN / MNN 移動端量化部署
? 新版算子(C2PSA)在部分舊版推理框架上需自定義實現
代碼/社區? Ultralytics 維護,文檔完善,社區活躍

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

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

相關文章

Debezium監聽MySQL binlog并實現有狀態重啟

Debezium實現MySQL數據監聽了解Debezium? 本期主要內容實現步驟1. 新建Maven工程2.導入依賴3.核心代碼編寫4.offset的存儲5.OffsetBackingStore實現jdbc模式6.運行結果總結了解Debezium 官網:https://debezium.io/ Debezium是一組分布式服務,用于捕獲數…

InfluxDB 存儲優化:TSM 文件管理與空間回收(一)

一、InfluxDB 與 TSM 文件初相識**在數字化時代,數據量呈爆發式增長,尤其是時間序列數據,如服務器監控指標、傳感器讀數、金融交易記錄等,它們都帶有時間戳,記錄著事物隨時間的變化。InfluxDB 作為一款高性能的開源時序…

macos使用FFmpeg與SDL解碼并播放H.265視頻

效果: 安裝依賴: brew install ffmpeg brew install sdl2 brew install x265 確認x265已啟用 查看x265版本 工程CMakeLists.txt

C#開源庫ACadSharp讀取dwg圖元的示例

文章目錄介紹數據示例讀取圖元屬性介紹 開源庫ACadSharp的地址:https://github.com/DomCR/ACadSharp 可以在NuGet中搜索到該庫并安裝。 數據示例 數據是一個繪制了以下簡單圖元的dwg數據: 讀取圖元屬性 創建了.net6控制臺項目,通過NuG…

【UniApp打包鴻蒙APP全流程】如何配置并添加UniApp API所需的鴻蒙系統權限

一、前言:為什么選擇 UniApp 打包鴻蒙應用? 隨著鴻蒙生態的快速發展,越來越多開發者希望將現有跨平臺項目快速接入鴻蒙系統。而 UniApp 作為國內領先的跨平臺開發框架,憑借其“一次開發,多端發布”的特性,…

STM32-FreeRTOS快速入門指南(下)

第十一章 FreeRTOS事件標志組 1. 事件標志組簡介 事件標志組與信號量一樣屬于任務間同步的機制,但是信號量一般用于任務間的單事件同步,對于任務間的多事件同步,僅使用信號量就顯得力不從心了。 FreeRTOS 提供的事件標志組可以很好的處理多事…

KTH7812磁編碼器芯片完全支持ABZ和UVW輸出模式

KTH7812磁編碼器芯片完全支持ABZ和UVW輸出模式,具體功能細節如下:🔧 1. ABZ輸出特性 分辨率可編程:支持 4~4096步/圈(對應1~1024個脈沖周期/圈),用戶可通過配置寄存器自定義分辨率。 輸出頻率…

Android為ijkplayer設置音頻發音類型usage

官方文檔 多區音頻路由 | Android Open Source Projecthttps://source.android.google.cn/docs/automotive/audio/audio-multizone-routing?hlzh-cn 背景 車機系統開發多分區(zone)功能,可以實現同一個app通過設置,在不同分…

C++ 循環:從入門到精通的深度解析

《C++ 循環:從入門到精通的深度解析》 目錄 循環的本質與編程價值 三大基礎循環結構詳解 循環控制語句:break與continue的魔法 嵌套循環:構建復雜邏輯的基石 現代C++循環特性(C++11+) 循環性能優化與常見陷阱 實戰案例:算法與工程中的循環應用 面試題深度解析與編程技巧…

| `cat /etc/os-release` | 發行版詳細信息(如 Ubuntu、CentOS) |

在 Linux 或類 Unix 系統中,最簡潔的命令查看操作系統類型是: uname -s? 輸出示例: LinuxDarwin(macOS)FreeBSD 等🔍 說明: uname:顯示系統信息-s:僅顯示操作系統內核名…

Maya 3D建模:點、線、面、創建多邊面

目錄 一 點、線、面 二 創建多邊面 一 點、線、面 鼠標放在模型上 按住鼠標右鍵:就可以選擇點 線 面 shift 加選點線面 ctrl 減選點線面 頂點面:是一個檢查模式,觀察有無錯誤 選擇面,單擊一個面,按住shift鍵 同時…

CXR-LT 2024:一場關于基于胸部X線的長尾、多標簽和零樣本疾病分類的MICCAI挑戰賽|文獻速遞-深度學習人工智能醫療圖像

Title題目CXR-LT 2024: A MICCAI challenge on long-tailed, multi-label, and zero-shotdisease classification from chest X-rayCXR-LT 2024:一場關于基于胸部X線的長尾、多標簽和零樣本疾病分類的MICCAI挑戰賽01文獻速遞介紹CXR-LT系列是一項由社區推動的計劃&a…

拆解本地組策略編輯器 (gpedit.msc) 的界面和功能

我們來詳細拆解本地組策略編輯器 (gpedit.msc) 的界面和功能。打開后,你會看到一個標準的微軟管理控制臺 (MMC) 窗口,主要分為三個部分。 這是一個典型的本地組策略編輯器界面,我們將其分為三個主要部分進行講解: +-----------------------------------------------+----…

[NCTF2019]True XML cookbook

TRY 嘗試XML外部實體注入 <?xml version"1.0" encoding"utf-8" ?> <!DOCTYPE user[<!ENTITY flag SYSTEM "file://./doLogin.php"> ]> <user><username> &flag; </username><password>1</pa…

嵌入式硬件篇---模塊使用

在電子開發、自動化控制等領域&#xff0c;“模塊” 是實現特定功能的標準化組件&#xff08;可以理解為 “功能積木”&#xff09;。不同模塊分工明確&#xff0c;比如有的負責感知環境&#xff08;傳感器&#xff09;&#xff0c;有的負責通信&#xff08;藍牙 / WiFi&#x…

密碼管理中Null 密碼

Null 密碼定義&#xff1a;Null 密碼是指允許用戶或系統賬戶使用空密碼&#xff08;即不輸入任何字符&#xff09;進行登錄或身份驗證的配置。危害&#xff1a;完全繞過身份驗證&#xff1a;這是最嚴重的危害。攻擊者無需破解或竊取任何密碼&#xff0c;只需輸入用戶名并留空密…

git新建項目如何推送到遠程倉庫

? git新建項目如何推送到遠程倉庫 一、遠程代碼庫操作(gitee為例) 1. 建新倉庫 2. 找到地址:這里可以看到用戶名等其他信息 3. 記住地址url(https) 二、本地操作 1. 安裝git 2. 創建項目 3. 在當前項目下打開git bash 4. 添加遠程倉庫 5. 檢查遠程倉庫地址 6. 檢查當前狀…

代碼管理平臺Gitlab如何通過 ZeroNews 實現遠程訪問?

Gitlab介紹1.1 GitLabGitLab 是一個基于 Web 的開源代碼托管平臺&#xff0c;集代碼托管、項目管理、持續集成與持續部署等功能于一身。它采用 Git 作為版本控制系統&#xff0c;界面友好、功能豐富。相較于市場上的 Gitee 和 GitHub&#xff0c;GitLab 有以下優勢&#xff1a;…

基于STM32F103C8T6控制A4988模塊驅動2相4線步進電機

文章目錄一、A4988模塊簡介二、A4988引腳說明三、A4988的Vref電壓調節四、STM32F103C8T6控制A4988驅動2相4線步進電機準備工作引腳接線代碼示例效果展示五、A4988電機驅動板常見問題一、A4988模塊簡介 A4988 是一款功能齊全的微步進電機驅動器&#xff0c;內置轉換器&#xff0…

基于單片機智能晾衣架/智能窗戶/智能窗簾設計

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 智能晾衣架系統基于單片機設計&#xff0c;融合傳感器技術與物聯網功能&#xff0c;實現衣物的自…