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:
选择 CUDA 11.8(兼容PyTorch 2.0+)
运行安装程序,选择默认选项
安装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:
配置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 YOLO
model = YOLO("yolov11s.pt") # 加载预训练模型
results = model.train(
data="drone.yaml",
epochs=100,
imgsz=640,
batch=16, # RTX 2080适合batch=16
device=0, # 使用GPU
optimizer="SGD",
amp=True, # 混合精度训练
project="runs/train",
name="drone_exp"
)
关键参
数说明:
batch=16
:RTX 2080显存8GB,适合batch=16imgsz=640
:无人机目标较小,建议高分辨率amp=True
:混合精度训练,节省显存
4. WPF可视化验证
将pt模型转出通用模型onnx
from ultralytics import YOLO
from 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开发可视化检测程序