跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

NWPU VHR-10 遥感目标检测数据集详解及 YOLOv8 训练实战

NWPU VHR-10 是包含 10 类地理空间目标的遥感检测数据集,共 650 张高分辨率图像。数据集的类别分布、标注格式(YOLO/COCO)及划分方式,并提供了基于 YOLOv8 的训练配置、代码示例及推理部署方案,涵盖小目标优化、数据增强及模型导出等关键步骤,适用于军事侦察、城市规划等场景。

FlinkHero发布于 2026/4/6更新于 2026/9/892 浏览
NWPU VHR-10 遥感目标检测数据集详解及 YOLOv8 训练实战

NWPU VHR-10 数据集是包含 10 个类别地理空间目标检测的挑战性数据集,共 650 张图片。

YOLO 和 COCO 格式

数据集按默认划分比例:390 张训练集、130 张验证集、130 张测试集。

手动标注了 757 架飞机、302 艘船只、655 个储罐、390 个棒球场、524 个网球场、159 个篮球场、163 个田径场、224 个港口、124 座桥梁和 598 辆车辆。

📊 一、数据集总体信息
项目描述
数据集名称NWPU VHR-10(Northwestern Polytechnical University Very High Resolution 10-class Dataset)
任务类型遥感图像中的地理空间目标检测(Object Detection in Remote Sensing Images)
图像总数650 张(均为高分辨率遥感图像,源自 Google Earth 等平台)
图像分辨率约 600×600 至 1000×1000 像素,空间分辨率高
标注格式✅ YOLO TXT 格式
✅ COCO JSON 格式(开箱即用,无需转换)
数据划分- 训练集:390 张
  • 验证集:130 张
  • 测试集:130 张
    (比例 ≈ 6:2:2) | | 应用场景 | 军事侦察、城市规划、灾害评估、智能遥感解译等 |

🏷️ 二、类别定义与实例数量统计
类别 ID类别名称(英文)类别名称(中文)标注实例数量
0Airplane飞机757
1Ship船只302
2Storage Tank储罐655
3Baseball Diamond棒球场390
4Tennis Court网球场524
5Basketball Court篮球场159
6Ground Track Field田径场163
7Harbor港口224
8Bridge桥梁124
9Vehicle车辆598

🔢 总标注目标数:3,896 个
📌 所有目标均以 水平边界框(Axis-Aligned Bounding Box) 标注。


📁 三、推荐使用方式
用途建议
模型训练直接使用提供的 YOLO 或 COCO 格式,适配 YOLOv5/v8、MMDetection、Detectron2 等主流框架
评估指标通常采用 [email protected](IoU=0.5)作为主指标
挑战点• 小目标(如车辆、飞机)
• 类间尺度差异大(港口 vs 车辆)
• 背景复杂(城市、水域、农田混合)
扩展建议可结合 DIOR、DOTA 等遥感数据集进行跨域泛化研究

📁 一、项目结构建议

nwpu_vhr10_yolo/
├── dataset.yaml      # 数据集配置文件
├── train.py          # 主训练脚本
├── predict_demo.py   # 推理演示
├── export_model.py   # 模型导出脚本
└── data/
    ├── images/
    │   ├── train/    # 390 张训练图像
    │   ├── val/      # 130 张验证图像
    │   └── test/     # 130 张测试图像
    └── labels/
        ├── train/    # 对应 .txt 标注(YOLO 格式)
        ├── val/
        └── test/

✅ 假设你已将官方提供的 YOLO 格式数据按上述结构组织。


📄 二、数据集配置文件 dataset.yaml

path: ./data
train: images/train
val: images/val
test: images/test
nc: 10
names: ['airplane', 'ship', 'storage_tank', 'baseball_diamond', 'tennis_court', 'basketball_court', 'ground_track_field', 'harbor', 'bridge', 'vehicle']

🚀 三、详细训练代码 train.py

from ultralytics import YOLO
import torch

def main():
    device = 'cuda' if torch.cuda.is_available() else 'cpu'
    print(f"🚀 使用设备:{device}")
    
    # 选择模型(遥感小目标多,推荐 yolov8m 或 yolov8l)
    model_name = "yolov8m.pt"  # 可选:yolov8s / yolov8l / yolov8x
    project_name = "nwpu_vhr10_detection"
    
    # 加载预训练模型
    model = YOLO(model_name)
    
    # 开始训练
    results = model.train(
        data='dataset.yaml',
        epochs=150,              # 遥感数据复杂,建议充分训练
        imgsz=640,               # NWPU 图像较小,640 足够;若需更高精度可用 1024
        batch=16,                # 640 分辨率下 batch=16(32G 显存可设 32)
        name=project_name,
        device=device,
        patience=30,             # 早停机制(验证集 mAP 不升则停)
        save=True,
        plots=True,              # 自动生成 PR 曲线、混淆矩阵、样本可视化
        exist_ok=False,
        workers=8,
        optimizer='AdamW',
        lr0=0.01,
        lrf=0.01,
        # 数据增强(关键!提升小目标和尺度变化鲁棒性)
        augment=True,
        hsv_h=0.015,
        hsv_s=0.7,
        hsv_v=0.4,
        degrees=15.0,            # ±15° 旋转(遥感视角多样)
        translate=0.1,
        scale=0.5,
        flipud=0.0,              # 不上下翻转(地理目标方向敏感)
        fliplr=0.5,              # 左右翻转安全
        mosaic=1.0,              # Mosaic 增强(对小目标如 vehicle/airplane 极有效)
        mixup=0.1
    )
    
    # 在测试集上评估最终性能
    metrics = model.val(data='dataset.yaml', split='test')
    print("\n✅ NWPU VHR-10 测试集结果:")
    print(f" [email protected] (all): {metrics.box.map50:.5f}")
    print(f" [email protected]:0.95: {metrics.box.map:.5f}")
    print(f" Precision: {metrics.box.mp:.5f}")
    print(f" Recall: {metrics.box.mr:.5f}")

if __name__ == '__main__':
    main()

运行命令:

python train.py

🔍 四、推理演示 predict_demo.py

# predict_demo.py
from ultralytics import YOLO

model = YOLO('runs/detect/nwpu_vhr10_detection/weights/best.pt')
results = model.predict(
    source='test_image.jpg',
    conf=0.25,                 # 遥感小目标建议降低阈值
    iou=0.45,
    save=True,
    show=True,
    line_width=2,
    font_size=12
)

# 打印检测结果
class_names = ['Airplane', 'Ship', 'Storage Tank', 'Baseball Diamond', 'Tennis Court', 'Basketball Court', 'Ground Track Field', 'Harbor', 'Bridge', 'Vehicle']
for result in results:
    boxes = result.boxes
    print(f"检测到 {len(boxes)} 个目标")
    for box in boxes:
        cls_id = int(box.cls.item())
        conf = float(box.conf.item())
        print(f" → {class_names[cls_id]} (置信度:{conf:.3f})")

📤 五、模型导出(用于部署)

# export_model.py
from ultralytics import YOLO

model = YOLO('runs/detect/nwpu_vhr10_detection/weights/best.pt')

# 导出为 ONNX(通用)
model.export(format='onnx', imgsz=640, simplify=True)

# 导出为 TensorRT(NVIDIA GPU / Jetson)
model.export(format='engine', imgsz=640, half=True, device=0)

# 导出为 OpenVINO(Intel CPU)
model.export(format='openvino', imgsz=640)

⚙️ 六、训练优化建议

挑战解决方案
小目标漏检(如车辆、飞机)启用 mosaic=1.0,使用 imgsz=1024(若显存允许)
类别不平衡(如桥梁仅 124 个)YOLOv8 内置 Focal Loss 变体,通常无需额外处理;也可对稀有类过采样
背景复杂干扰增加 hsv_v 和 degrees 增强,提升光照与角度鲁棒性
实时遥感分析若部署于边缘设备(如无人机),可改用 yolov8s + TensorRT

目录

  1. 📊 一、数据集总体信息
  2. 🏷️ 二、类别定义与实例数量统计
  3. 📁 三、推荐使用方式
  4. 📁 一、项目结构建议
  5. 📄 二、数据集配置文件 dataset.yaml
  6. 🚀 三、详细训练代码 train.py
  7. 🔍 四、推理演示 predict_demo.py
  8. predict_demo.py
  9. 打印检测结果
  10. 📤 五、模型导出(用于部署)
  11. export_model.py
  12. 导出为 ONNX(通用)
  13. 导出为 TensorRT(NVIDIA GPU / Jetson)
  14. 导出为 OpenVINO(Intel CPU)
  15. ⚙️ 六、训练优化建议

更多推荐文章

查看全部
  • OpenClaw Skills 安装与实战指南
  • Python 循环语句与推导式底层实现:CPython 字节码解析
  • Formality 原语(primitive)概念详解
  • 网络安全为什么缺人?缺什么样的人?
  • 使用 Playwright MCP 和 Claude Code 实现像素级 UI 设计迭代自修正
  • Gemma-3-12B-IT WebUI 安全加固:HTTPS、IP 白名单与限流
  • Python 与 Java 核心区别对比:变量命名、类型机制及其他
  • Claude Code 效率提升实战:Superpower 与 Mem 插件指南
  • 三节课发布首张 AIGC 学习地图,探讨全员学习 AI 的必要性
  • Python __slots__:减少内存占用的高级技巧
  • Llama-3.2V-11B-cot 模型部署与视觉推理全链路指南
  • 二分查找算法详解与经典例题实战
  • 字节跳动音视频前端一面面经:性能优化与工程化实践
  • ComfyUI Windows 本地部署系统环境配置指南(含 Python PyTorch CUDA)
  • 前端核心知识点梳理与面试复习指南
  • 行星减速器原理、计算与 C++ 实现
  • 高分辨率 VR 全景视频播放性能优化方案
  • Python 性能调优:cProfile 与火焰图实战
  • Web Bluetooth API 实战指南:从设备连接到数据交互
  • 大模型英文降重能力测评:千问 DeepSeek 等七款工具对比
  • 相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online