1. 環境搭建
1.1 硬件與操作系統
-
操作系統:Windows 11
-
CPU:Intel i7-9700
-
GPU:NVIDIA RTX 2080(8GB顯存)
1.2 安裝CUDA和cuDNN
由于YOLOv11依賴PyTorch的GPU加速,需要安裝CUDA和cuDNN:
-
安裝CUDA Toolkit:
-
訪問?NVIDIA CUDA 下載頁面
-
選擇?CUDA 11.8(兼容PyTorch 2.0+)
-
運行安裝程序,選擇默認選項
-
-
安裝cuDNN:
-
訪問?NVIDIA cuDNN 下載頁面
-
下載?cuDNN 8.9.0 for CUDA 11.x
-
解壓后,將?
bin
、include
、lib
?文件夾復制到?C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
-
-
驗證CUDA安裝:
nvcc --version nvcc: NVIDIA (R) Cuda compiler release 11.8, V11.8.89
1.3 安裝Python、Anaconda和PyCharm
-
安裝Python 3.9:
-
從?Python官網?下載?Python 3.9.19
-
安裝時勾選?"Add Python to PATH"
-
-
安裝Anaconda:
-
下載?Anaconda
-
安裝后,創建YOLOv11專用環境:
conda create -n yolov11 python=3.9.19 conda activate yolov11
-
-
安裝PyCharm:
-
下載?PyCharm Community
-
配置Python解釋器為?
yolov11
?環境
-
2. 數據集準備
2.1 選擇1000張無人機圖片
drone_dataset/
├── images/
│ ├── train/ # 800張訓練圖片
│ └── val/ # 200張驗證圖片
└── labels/├── train/ # 訓練集標注(YOLO格式)└── val/ # 驗證集標注
2.2 標注數據
-
作者采用wpf開發的標注工具,點擊下載:
-
標注流程:
-
打開圖片文件夾(
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配置文件
-
創建?
drone.yaml
:path: ./drone_dataset train: images/train val: images/val names:0: drone
-
下載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?環境下:
-
配置CUDA/cuDNN + Python環境
-
標注1000張無人機數據集
-
訓練YOLOv11模型
-
使用WPF開發可視化檢測程序