> 技术文档 > 基于YOLOv11的无人机目标检测实战(Windows环境)_yolo11识别无人机图片用哪个预训练模型好

基于YOLOv11的无人机目标检测实战(Windows环境)_yolo11识别无人机图片用哪个预训练模型好


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 --versionnvcc: NVIDIA (R) Cuda compilerrelease 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.19conda 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 文件(格式:


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/cu118pip install ultralytics opencv-python matplotlib

3.2 准备YOLO配置文件

  1. 创建 drone.yaml

    path: ./drone_datasettrain: images/trainval: images/valnames: 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=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

from ultralytics import YOLOfrom ultralytics import YOLOmodel = 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开发可视化检测程序