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安装:
pythonnvcc --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专用环境:
pythonconda create -n yolov11 python=3.9.19 conda activate yolov11
-
-
安装PyCharm:
-
配置Python解释器为
yolov11
环境
2. 数据集准备
2.1 选择1000张无人机图片
python
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 安装依赖
python
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
:pythonpath: ./drone_dataset train: images/train val: images/val names: 0: drone
-
下载YOLOv11预训练模型:
pythonwget https://github.com/WongKinYiu/yolov11/releases/download/v0.1/yolov11s.pt
3.3 训练模型
python
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=16 -
imgsz=640
:无人机目标较小,建议高分辨率 -
amp=True
:混合精度训练,节省显存
4. WPF可视化验证
将pt模型转出通用模型onnx
python
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开发可视化检测程序