NWPU VHR-10数据集 无人机遥感目标检测数据集 飞机 储罐 棒球场 网球场篮球场 港口车辆桥梁检测 遥感图像中的地理空间目标检测

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.yamlpath: ./data train: images/train val: images/val test: images/test nc:10names:['airplane','ship','storage_tank','baseball_diamond','tennis_court','basketball_court','ground_track_field','harbor','bridge','vehicle']

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

# train.pyfrom ultralytics import YOLO import torch defmain(): 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.pyfrom 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.pyfrom 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_vdegrees 增强,提升光照与角度鲁棒性
实时遥感分析若部署于边缘设备(如无人机),可改用 yolov8s + TensorRT

Read more

老手机 本地部署小龙虾OpenClaw(使用本地千问大模型)实机演示 Termux+Ubuntu+Llama 新手完整安装教程(含代码)

本教程提供从 0 到 1 的详细步骤,在安卓手机上通过 Termux 运行 Ubuntu,部署本地 Llama 大模型,并集成 OpenClaw 进行 AI 交互,全程无需 Root。建议手机配置:≥4GB 内存,≥64GB 存储,Android 7+。 一、准备工作 1.1 安装 Termux 1. 从F-Droid或GitHub下载最新版 Termux(避免应用商店旧版本) 2. 安装并打开,首次启动会自动配置基础环境 1.2 手机设置优化 1. 开启开发者选项(设置→关于手机→连续点击版本号 7 次) 2.

大疆Android SDK V5开发指南:从零构建无人机应用

大疆Android SDK V5开发指南:从零构建无人机应用 【免费下载链接】Mobile-SDK-Android-V5MSDK V5 Sample 项目地址: https://gitcode.com/gh_mirrors/mo/Mobile-SDK-Android-V5 DJI Android SDK V5为开发者提供了完整的无人机控制解决方案,让您能够快速构建功能丰富的无人机应用。无论您是想要开发航拍摄影应用还是行业解决方案,这个工具包都能帮助您轻松实现专业级无人机控制功能。 🚀 为什么选择大疆SDK开发无人机应用 大疆Android SDK V5提供了标准化的开发接口和丰富的功能模块,让开发者无需深入了解底层硬件细节,就能实现专业的无人机控制功能。该SDK支持多种大疆无人机系列,包括Mavic、Phantom、Matrice等热门产品,为移动端应用开发提供了强大的技术支持。 大疆无人机M3E型号硬件外观与结构展示 📱 核心功能模块详解 飞行控制与姿态管理 通过IFlightController模块,您可以精确控制无人机的飞行姿态、航向和速度。该模块提供了完

5步实现ESP32无人机合规识别:ArduRemoteID开源方案详解

5步实现ESP32无人机合规识别:ArduRemoteID开源方案详解 【免费下载链接】ArduRemoteIDRemoteID support using OpenDroneID 项目地址: https://gitcode.com/gh_mirrors/ar/ArduRemoteID 面临FAA无人机识别法规的合规难题?ArduRemoteID为您提供完整的开源无人机识别解决方案。这个基于ESP32芯片的开源项目,通过实现MAVLink和DroneCAN协议的OpenDroneID发射器,帮助无人机爱好者轻松满足RemoteID法规要求。 硬件选择与连接指南 ArduRemoteID支持ESP32-S3和ESP32-C3两种主流芯片,兼容7种开发板。推荐使用ESP32-S3开发板,其引脚配置如下: * UART TX引脚:18 * UART RX引脚:17 * CAN TX引脚:47 * CAN RX引脚:38 通过USB连接到标有"UART"的端口用于MAVLink通信和调试,或通过UART连接到飞行控制器的RX(17)/TX(18)/GND引脚。CAN连

SpringBoot + Low-Code + JSON 表单引擎:5 分钟配置一套审批流,告别重复 CRUD

前言 在企业级应用开发中,审批流是一个高频需求。无论是请假申请、费用报销,还是采购审批,都需要一套完整的表单和流程系统。传统开发模式下,每个审批流都需要单独开发表单页面、验证逻辑、数据存储和流程控制,不仅耗时耗力,还容易出现重复造轮子的情况。今天,我将和大家分享一个基于SpringBoot的低代码表单引擎解决方案,通过JSON配置,实现5分钟配置一套审批流,彻底告别重复的CRUD开发。 原文链接 为什么需要低代码表单引擎? 1. 开发效率问题 传统审批流开发需要经历以下步骤: * 设计表单UI界面 * 实现前端交互逻辑 * 开发后端API接口 * 编写数据验证逻辑 * 集成工作流引擎 * 实现审批节点配置 * 部署和测试 整个过程可能需要几天甚至几周时间,而且每个新流程都要重复这些步骤。 2. 维护成本高昂 随着业务发展,表单字段经常需要调整,流程节点需要变更,每次修改都需要开发人员介入,增加了维护成本和响应时间。 3. 业务人员参与度低 业务人员无法直接参与表单和流程的设计,只能被动接受开发结果,导致最终产品与实际需求存在偏差。 核心技术方案