基于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:
-
安装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开发可视化检测程序