基于YOLOv11的無人機目標檢測實戰(Windows環境)

1. 環境搭建

1.1 硬件與操作系統

  • 操作系統:Windows 11

  • CPU:Intel i7-9700

  • GPU:NVIDIA RTX 2080(8GB顯存)

1.2 安裝CUDA和cuDNN

由于YOLOv11依賴PyTorch的GPU加速,需要安裝CUDA和cuDNN:

  1. 安裝CUDA Toolkit

    • 訪問?NVIDIA CUDA 下載頁面

    • 選擇?CUDA 11.8(兼容PyTorch 2.0+)

    • 運行安裝程序,選擇默認選項

  2. 安裝cuDNN

    • 訪問?NVIDIA cuDNN 下載頁面

    • 下載?cuDNN 8.9.0 for CUDA 11.x

    • 解壓后,將?binincludelib?文件夾復制到?C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

  3. 驗證CUDA安裝

    nvcc --version
    nvcc: NVIDIA (R) Cuda compiler
    release 11.8, V11.8.89

1.3 安裝Python、Anaconda和PyCharm

  1. 安裝Python 3.9

    • 從?Python官網?下載?Python 3.9.19

    • 安裝時勾選?"Add Python to PATH"

  2. 安裝Anaconda

    • 下載?Anaconda

    • 安裝后,創建YOLOv11專用環境:

      conda create -n yolov11 python=3.9.19
      conda activate yolov11
  3. 安裝PyCharm

    • 下載?PyCharm Community

    • 配置Python解釋器為?yolov11?環境


2. 數據集準備

2.1 選擇1000張無人機圖片

drone_dataset/
├── images/
│   ├── train/  # 800張訓練圖片
│   └── val/    # 200張驗證圖片
└── labels/├── train/  # 訓練集標注(YOLO格式)└── val/    # 驗證集標注

2.2 標注數據

  1. 作者采用wpf開發的標注工具,點擊下載

  2. 標注流程

    • 打開圖片文件夾(images/train

    • 選擇?YOLO格式?輸出

    • 標注無人機目標,保存為?.txt?文件(格式:<class_id> <x_center> <y_center> <width> <height>


3. YOLOv11訓練

3.1 安裝依賴

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
pip install ultralytics opencv-python matplotlib

3.2 準備YOLO配置文件

  1. 創建?drone.yaml

    path: ./drone_dataset
    train: images/train
    val: images/val
    names:0: drone
  2. 下載YOLOv11預訓練模型

    wget https://github.com/WongKinYiu/yolov11/releases/download/v0.1/yolov11s.pt

3.3 訓練模型

from ultralytics import YOLOmodel = YOLO("yolov11s.pt")  # 加載預訓練模型results = model.train(data="drone.yaml",epochs=100,imgsz=640,batch=16,  # RTX 2080適合batch=16device=0,  # 使用GPUoptimizer="SGD",amp=True,  # 混合精度訓練project="runs/train",name="drone_exp"
)
關鍵參
數說明
  • batch=16:RTX 2080顯存8GB,適合batch=16

  • imgsz=640:無人機目標較小,建議高分辨率

  • amp=True:混合精度訓練,節省顯存


4. WPF可視化驗證

將pt模型轉出通用模型onnx

from ultralytics import YOLOfrom ultralytics import YOLO
model = YOLO("./runs/detect/train7/weights/best.pt")
model.export(format="onnx", imgsz=(640, 640), simplify=True)

作者使用C#開發了一款程序,能夠加載ONNX模型并進行圖像檢測。


5. 常見問題

Q1: CUDA報錯 "out of memory"

  • 解決方案:降低?batch?大小(如?batch=8

Q2: 標注數據不準確

  • 解決方案:使用?Roboflow?自動增強數據集

Q3: WPF調用Python模型慢

  • 優化方案:改用?ONNX Runtime?或?TensorRT?加速


6. 總結

本文詳細介紹了在?Windows 11 + RTX 2080?環境下:

  1. 配置CUDA/cuDNN + Python環境

  2. 標注1000張無人機數據集

  3. 訓練YOLOv11模型

  4. 使用WPF開發可視化檢測程序

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

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

相關文章

Spring Cloud分布式配置中心:架構設計與技術實踐

從單體到微服務&#xff1a;Spring Cloud 開篇與微服務設計 Spring Cloud服務注冊與發現&#xff1a;架構設計與技術實踐深度分析 在以往分享中&#xff0c;碼友們已經掌握了微服務的設計和注冊中心的設計&#xff0c;部分聰明的碼友已經察覺了&#xff0c;已經到了需要設計一個…

15.2 Common Criteria合規

目錄1. Common Criteria簡介1.1 CC評估要素1.2 CC與TF-A的關系2. TF-A的CC合規要求2.1 安全功能需求2.2 開發過程要求3. TF-A的CC合規實現3.1 關鍵安全機制3.2 開發流程控制4. CC認證實踐指南4.1 認證準備步驟4.2 典型挑戰與解決方案4.3 已認證案例參考5. 持續合規建議1. Commo…

【前端:Typst】--let關鍵字的用法

在 Typst 中&#xff0c;#let 命令是用于定義變量和函數的核心指令&#xff0c;其用法非常靈活。以下是詳細的用法說明和示例。 目錄 1.基礎變量定義 2.函數定義 3.默認參數 4.內容塊參數&#xff08;Content Blocks&#xff09; 5.遞歸函數 1.基礎變量定義 // 定義簡單…

Qt輪廓分析設計+算法+避坑

輪廓分析擬合方面我現在只考慮矩形擬合和圓形擬合細分的話&#xff0c;橢圓擬合&#xff0c;矩形擬合&#xff0c;最小外接矩形&#xff0c;最小外接圓。對于一張圖像可能有不同的圖形&#xff0c;不同的圓&#xff0c;不同的矩形&#xff0c;我需要對其進行篩選&#xff0c;也…

C++中STL六大組件List的簡單介紹

一、前言C非常重視效率&#xff0c;對效率有損失的代碼常常是能省則省。使用list要包含的頭文件是<list>&#xff0c;要包含頭文件就是#iinclude <list>&#xff0c;List肯定是一種鏈表&#xff0c;我們不妨回憶一下那種鏈表插入刪除效率最快也就是最簡單&#xff…

第十五節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入門 - vue前端 生產部署

Vben Admin vben5 系列文章目錄 ?? 基礎篇 ? 第一節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入門 ? 第二節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入門 - Python Flask 后端開發詳解(附源碼) ? 第三節:Vben Admin 最新 v5.0 (vben5) + Python …

背包初步(0-1背包、完全背包)

當月光灑在我的臉上 我想我就快變了模樣 有一種叫做撕心裂肺的湯 喝了它有神奇的力量 動態規劃初步&#xff08;完全背包&#xff09; 目錄動態規劃初步&#xff08;完全背包&#xff09;0-1背包簡介完全背包檢查數組是否存在有效劃分&#xff08;前綴劃分DP&#xff09;單詞拆…

Linux驅動06 --- UDP

目錄 一、UDP 1.1 介紹 1.2 UDP 的通信方式 1.3 單播 發送函數 接收函數 1.4 廣播 1.5 組播/多播 一、UDP 1.1 介紹 傳輸層的另外一個協議 面向無連接&#xff0c;不穩定&#xff0c;速度快&#xff0c;可以一對多 UDP&#xff08;User Datagram Protocol&…

AJAX 投票:技術解析與應用場景

AJAX 投票:技術解析與應用場景 引言 隨著互聯網技術的不斷發展,Web應用的用戶體驗越來越受到重視。AJAX(Asynchronous JavaScript and XML)作為一種重要的技術,在實現異步數據交互方面發揮著關鍵作用。本文將深入探討AJAX投票系統的技術原理、應用場景以及優化策略。 A…

【字節跳動】數據挖掘面試題0017:推薦算法:雙塔模型,怎么把內容精準地推送給用戶

文章大綱 雙塔模型:推薦算法中的“高效匹配引擎一、雙塔模型的核心思想:“分而治之” 的匹配邏輯二、雙塔模型的結構:從特征輸入到相似度輸出1. 輸入層:特征的 “原材料處理”2. 塔網絡層:用戶與物品的“個性化編碼”3. 交互層:向量相似度的“偏好打分”三、雙塔模型的優…

7月14日日記

數學類今天考完最后一科英語放假回家了。有點羨慕他們。今天英語成績出來了&#xff0c;我是89分&#xff0c;一開始有點失望&#xff0c;感覺沒有上90&#xff0c;這是一個很好的沖擊4.0 的機會。但是后來一想好像也沒什么可惜的&#xff0c;這個分數還是很高的。舍友小林是90…

js的局部變量和全局變量

全局變量常常定義在函數外&#xff0c;具有全局定義域&#xff0c;在整個js代碼的任何地方都可以使用&#xff0c;這個就叫全局變量局部變量定義在函數內部&#xff0c;只在當前函數的定義域可以被使用&#xff0c;而且不同的函數可以定義相同的局部變量&#xff0c;他們之間相…

C++ 多態詳解:從概念到實現原理----《Hello C++ Wrold!》(14)--(C/C++)

文章目錄前言多態的概念多態的定義和實現虛函數虛函數的重寫(覆蓋)多態的構成條件override 和 final&#xff08;C11提出&#xff09;finaloverride重載、覆蓋(重寫)、隱藏(重定義)的對比抽象類接口繼承和實現繼承多態的原理虛函數表(也叫做虛表)引申:虛表的打印多態的原理靜態…

Node.js + Express的數據庫AB View切換方案設計

方案總覽數據導入過程&#xff1a; - 根據控制表判斷當前活躍組&#xff08;假設當前活躍的是a&#xff0c;那么接下來要導入到b&#xff09;。 - 清空非活躍表&#xff08;即b表&#xff09;的數據&#xff0c;然后將新數據導入到b表。 - 切換控制表&#xff0c;將活…

C++_編程提升_temaplate模板_案例

類模板案例案例描述: 實現一個通用的數組類&#xff0c;要求如下&#xff1a;可以對內置數據類型以及自定義數據類型的數據進行存儲將數組中的數據存儲到堆區構造函數中可以傳入數組的容量提供對應的拷貝構造函數以及operator防止淺拷貝問題提供尾插法和尾刪法對數組中的數據進…

Win11系統安裝Anaconda環境極簡教程

Win11系統安裝Anaconda環境極簡教程 &#x1f4e5; 第一步&#xff1a;下載 Anaconda 安裝包 打開瀏覽器&#xff0c;訪問 Anaconda 官網&#xff0c;選擇View All Installers 選擇所需版本&#xff08;此文以2024.02-1為例&#xff09;&#xff0c;點擊進行下載&#xff08;…

Datawhale AI夏令營-基于帶貨視頻評論的用戶洞察挑戰賽

一.賽事目標基于星火大模型Spark 4.0 Ultra&#xff0c;對視頻和評論的數據進行商品識別&#xff0c;情感分析&#xff0c;歸類分析&#xff0c;最終為帶貨效果進行評價。并通過優化模型來提高評價準確度二.賽事環境1.基礎平臺&#xff1a;星火大模型Spark 4.0 Ultra2.賽事數據…

如何基于FFMPEG 實現視頻推拉流

文章目錄 前言環境準備為什么選擇 FFmpeg什么是nginx 1.7.11.3 GryphonNginx的conf配置啟動nginx推流命令接收視頻流Untiy播放視頻流最后前言 我們經常會有在電腦上實現推拉流的需求,Unity 和Unreal 都提供了基于WebRTC 的視頻流方案,效果還不錯,但是當我們需要推拉整個電腦…

飛算JavaAI:從情緒價值到代碼革命,智能合并項目與定制化開發新范式

目錄一、飛算 JavaAI 是什么&#xff1f;二、飛算JavaAI&#xff1a;安裝登錄2.1 IDEA插件市場安裝&#xff08;推薦&#xff09;2.2 離線安裝包三、飛算JavaAI核心功能&#xff1a;一鍵生成完整工程代碼功能背景3.1 理解需求3.2 設計接口3.3 表結構自動設計3.4 處理邏輯&#…

Python 基礎語法與數據類型(十一) - 類 (class) 與對象 (實例)

文章目錄1. 什么是類 (Class)&#xff1f;1.1 定義一個類2. 什么是對象 (Object) 或實例 (Instance)&#xff1f;2.1 創建對象&#xff08;實例化&#xff09;3. 訪問屬性和調用方法4. 類屬性 vs 實例屬性5. self 的重要性總結練習題練習題答案前幾篇文章我們學習了變量、數據類…