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

NWPU VHR-10 遥感目标检测数据集介绍与 YOLO 训练实战

NWPU VHR-10 遥感目标检测数据集包含 10 类地理空间目标,共 650 张高分辨率图像。支持 YOLO 和 COCO 格式标注,涵盖飞机、船只、车辆等常见场景。文章提供数据集划分详情、类别统计及训练配置方案。基于 YOLOv8 框架,给出完整的训练脚本、推理演示及模型导出流程。针对小目标检测难点,提出数据增强与参数优化建议,适用于军事侦察、城市规划等遥感解译任务。

ArchDesign发布于 2026/4/7更新于 2026/10/20106 浏览
NWPU VHR-10 遥感目标检测数据集介绍与 YOLO 训练实战

NWPU VHR-10 数据集 遥感数据集

图片描述

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

# 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

# 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. NWPU VHR-10 数据集 遥感数据集
  2. 一、数据集总体信息
  3. 二、类别定义与实例数量统计
  4. 三、推荐使用方式
  5. 四、项目结构建议
  6. 五、数据集配置文件 dataset.yaml
  7. dataset.yaml
  8. 六、详细训练代码 train.py
  9. train.py
  10. 七、推理演示 predict_demo.py
  11. predict_demo.py
  12. 打印检测结果
  13. 八、模型导出(用于部署)
  14. export_model.py
  15. 导出为 ONNX(通用)
  16. 导出为 TensorRT(NVIDIA GPU / Jetson)
  17. 导出为 OpenVINO(Intel CPU)
  18. 九、训练优化建议

更多推荐文章

查看全部
  • LocalSend:免费开源跨平台局域网文件传输工具
  • 深度学习模型部署与生产环境实践
  • MVEL 表达式编译与执行测试
  • ToDesk 顺网云海马云部署 DeepSeek 大模型对比评测
  • llama.cpp 项目 Vulkan 后端编译难题解决:从环境配置到实战修复
  • Adobe Downloader macOS 版工具介绍与使用
  • Stable Diffusion XL 快速部署与使用指南
  • 国产大模型实测:文心一言、通义千问、Kimi 与豆包横向对比
  • C++物理引擎碰撞检测实战指南
  • 基于 Spring Boot 的 Web 三大核心交互案例精讲
  • ZeroClaw Gateway + LM Studio + Reflex 本地 AI 管理面板搭建
  • 前端工程师 Web3D 技术栈:Blender 与 Three.js 实战指南
  • 前端动画最佳实践:替代 jQuery animate 的现代方案
  • 前端监控实战:构建高可用的 Web 应用
  • AIGC 时代的网络安全威胁与应急响应机制
  • Stable Diffusion WebUI 背景移除工具 rembg 使用指南
  • 基于 SpringBoot 的公务员在线学习培训系统设计与实现
  • 算法题精讲:模拟法在字符串与时间计算中的应用
  • Stable Yogi 皮衣生成工具在动漫展会 VR 展厅的应用
  • 基于 Python librosa 的 CosyVoice3 音频频谱与梅尔倒谱分析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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