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

NWPU VHR-10 遥感目标检测数据集使用指南与训练示例

NWPU VHR-10 是包含 10 类地理空间目标的遥感图像数据集,共 650 张高分辨率图片。数据集的类别定义、标注格式(YOLO/COCO)及数据划分,并提供了基于 YOLOv8 的训练配置、代码实现及推理部署方案,涵盖小目标检测优化建议。

LinuxPan发布于 2026/4/5更新于 2026/7/1341 浏览
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)
任务类型遥感图像中的地理空间目标检测(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. 一、数据集总体信息
  2. 二、类别定义与实例数量统计
  3. 三、推荐使用方式
  4. 一、项目结构建议
  5. 二、数据集配置文件 dataset.yaml
  6. dataset.yaml
  7. 三、详细训练代码 train.py
  8. train.py
  9. 四、推理演示 predict_demo.py
  10. predict_demo.py
  11. 打印检测结果
  12. 五、模型导出(用于部署)
  13. export_model.py
  14. 导出为 ONNX(通用)
  15. 导出为 TensorRT(NVIDIA GPU / Jetson)
  16. 导出为 OpenVINO(Intel CPU)
  17. 六、训练优化建议
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 无需公网 IP 安全访问本地 AI 服务的几种方案
  • C++ std::make_unique 详解:安全创建 unique_ptr 的官方方法
  • 傅里叶变换:FFT 与 DFT 原理及算法详解
  • LangChain 封装 FAISS 检索阈值过滤的坑与解决方案
  • 鸿蒙 NAPI 开发入门:从概念理解到实战避坑
  • Linux 基础 IO:文件描述符、重定向与缓冲区原理
  • 突破 LLM 上下文瓶颈:上下文内存虚拟化 CMV 的设计与实践
  • 本地搭建带知识库的 AI 助手:Ollama + Open WebUI 实战指南
  • 深入探究 Linux 设备树
  • 【hacker送书第15期】AI绘画精讲与AIGC时代游戏美术设计:从入门到精通
  • 若依框架升级 JDK21 选型指南与性能分析
  • Java 微服务入门:基于 Spring Boot 搭建用户管理系统
  • MySQL 权限管理与 C/C++ 客户端对接实战
  • Claude Code 跨平台安装与配置指南(Windows/Linux/macOS)
  • GPT-SoVITS与Whisper组合:实现语音转写与克隆一体化
  • Llama3 中文微调模型评测:基础与主观能力对比分析
  • CCF 大模型论坛北京会议:大模型技术进展与挑战探讨
  • VR 健身应用开发实战:基于 Unity 与 SideQuest 的全流程复盘
  • STL转体素工具使用指南
  • 2022 CSP-S 提高组策略游戏真题及题解

相关免费在线工具

  • 加密/解密文本

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