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

NWPU VHR-10 遥感目标检测数据集详解与 YOLO 训练指南

综述由AI生成NWPU VHR-10 是一个包含 650 张高分辨率遥感图像的地理空间目标检测数据集,涵盖飞机、船只、储罐等 10 个类别。数据集的基本信息、类别统计及标注格式(YOLO/COCO)。提供了基于 YOLOv8 的训练配置、代码实现及推理部署方案,包括数据集结构组织、配置文件编写、训练参数优化建议以及模型导出方法。重点解决了小目标检测、类别不平衡及背景复杂等挑战,适用于军事侦察、城市规划等场景的遥感解译任务。

云朵棉花糖发布于 2026/4/5更新于 2026/5/2021 浏览
NWPU VHR-10 遥感目标检测数据集详解与 YOLO 训练指南

NWPU VHR-10 遥感目标检测数据集详解

[图: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)
任务类型遥感图像中的地理空间目标检测
图像总数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"
    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("\nNWPU 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

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})")

八、模型导出(用于部署)

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. 六、详细训练代码 train.py
  8. 七、推理演示 predict_demo.py
  9. 打印检测结果
  10. 八、模型导出(用于部署)
  11. 导出为 ONNX(通用)
  12. 导出为 TensorRT(NVIDIA GPU / Jetson)
  13. 导出为 OpenVINO(Intel CPU)
  14. 九、训练优化建议
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 算法基础:前缀和如何优化区间与子矩阵查询
  • Gemini QQ 机器人部署指南
  • 大模型产品经理学习路线详解
  • Python 最新官方教程中文版及 Pandas 学习指南
  • LazyLLM 低代码框架实战:代码专家智能体开发
  • 整数转罗马数字的贪心算法实现
  • STL 文件预览工具 stl-thumb 安装与使用指南
  • 无线蜂窝网络核心原理与代际演进详解
  • C++ 并发核心:内存序、可见性与指令重排
  • Git 分支管理完全指南:从基础到团队协作
  • 深入解剖STL map/multimap:接口使用与核心特性详解
  • Java IO 基础:OutputStream 类详解
  • GLM-5 大模型代码生成实战评测与参数调优
  • 基于 Uniapp 与 SSM 的供销 APP 购物商城系统设计与实现
  • Linux 系统下安装配置 Nginx
  • 千笔 AI 辅助论文写作工具核心功能介绍
  • Flutter 使用 tflite_web 在鸿蒙 Web 环境下实现 AI 推理适配
  • CS336 从零构建语言模型:Transformer 架构实现详解
  • C++ 多态详解:概念、语法与底层实现
  • OpenClaw 对接腾讯 QQ 实战操作详解

相关免费在线工具

  • 加密/解密文本

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