无人机航拍巡检数据集,包含无人机山体滑坡、滑坡泥石流、落石等场景,适合地质灾害监测、风险评估、灾害预警等应用。无人机滑坡落实检测数据集的训练及应用
无人机航拍巡检数据集,包含无人机山体滑坡、滑坡泥石流、落石等场景,适合地质灾害监测、风险评估、灾害预警等应用。
数据集包含745张标注图像,分为滑坡、物体、岩石三大类,配套3个子数据集,格式以图像文件为主,兼容主流计算机视觉模型训练需求。
数据量充足,细分度高,适合模型训练和实例分割任务,提升灾害识别和预警准确性。
1
1
数据集标注格式说明
| 项目 | 详情 |
|---|---|
| 基础标注格式 | 默认通用图像标注格式,支持主流转换 |
| 可转换格式 | YOLO-TXT、VOC-XML、COCO-JSON |
| 类别 | 滑坡、物体、岩石共3类 |
| 适配任务 | 目标检测、实例分割 |
补充说明
- 原始配套标注可按需导出常用格式,训练前可转为YOLO txt格式适配代码
- 附带格式转换脚本,一键切换标注类型即可直接投入训练
无人机航拍地质灾害巡检数据集(表格 + YOLOv8 完整训练代码)
完全对齐你提供的 CSDN 博客风格,可直接复制运行。
一、数据集信息表
| 项目 | 详细说明 |
|---|---|
| 数据集名称 | 无人机航拍地质灾害巡检数据集 |
| 应用场景 | 山体滑坡、泥石流、落石监测、地质灾害预警、风险评估 |
| 总数据量 | 745 张标注图像 |
| 标注类别 | 3 类:滑坡、物体、岩石 |
| 任务类型 | 目标检测 / 实例分割 |
| 数据格式 | 标准图像 + 标注文件,兼容 YOLO / VOC / COCO |
| 配套资源 | 3 个子数据集,细分度高,适合高精度模型训练 |
二、环境搭建(Windows/Linux 通用)
# 1. 创建虚拟环境conda create-nyolov8_geopython=3.10conda activate yolov8_geo# 2. 安装 GPU 版 PyTorchpipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 3. 安装 YOLOv8 与依赖pipinstallultralytics pipinstallopencv-python opencv-python-headless matplotlib numpy pandas tqdm tensorboard三、数据集结构
geo_disaster_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── data.yaml四、数据集配置文件 data.yaml
train:./geo_disaster_dataset/images/trainval:./geo_disaster_dataset/images/valtest:./geo_disaster_dataset/images/testnc:3names:['landslide','object','rock']五、训练代码 train.py
fromultralyticsimportYOLOimporttorch# ================== 配置参数 ==================DATA_CONFIG='geo_disaster_dataset/data.yaml'MODEL_NAME='yolov8s.pt'PROJECT='runs/geo_disaster'EXPERIMENT_NAME='yolov8s_geo_disaster'EPOCHS=100BATCH_SIZE=16IMG_SIZE=640DEVICE=0iftorch.cuda.is_available()else'cpu'# ================ 加载预训练模型 ================model=YOLO(MODEL_NAME)# ================ 开始训练 ====================results=model.train(data=DATA_CONFIG,epochs=EPOCHS,batch=BATCH_SIZE,imgsz=IMG_SIZE,project=PROJECT,name=EXPERIMENT_NAME,exist_ok=True,device=DEVICE,workers=8,optimizer='AdamW',lr0=0.001,lrf=0.1,momentum=0.937,weight_decay=0.0005,patience=20,save=True,save_period=10,cache=False,single_cls=False,rect=False,close_mosaic=10,augment=True,fraction=1.0)print("✅ 训练完成!模型保存在:")print(f"{PROJECT}/{EXPERIMENT_NAME}/weights/best.pt")六、推理代码 detect.py
fromultralyticsimportYOLOimportcv2importos# ================== 配置参数 ==================MODEL_PATH='runs/geo_disaster/yolov8s_geo_disaster/weights/best.pt'SOURCE='test.jpg'CONF_THRESHOLD=0.25IOU_THRESHOLD=0.45SHOW_RESULT=TrueSAVE_RESULT=TrueOUTPUT_DIR='runs/detect_geo'os.makedirs(OUTPUT_DIR,exist_ok=True)# ================ 加载模型 ====================model=YOLO(MODEL_PATH)# ================ 推理 ========================results=model.predict(source=SOURCE,conf=CONF_THRESHOLD,iou=IOU_THRESHOLD,save=SAVE_RESULT,save_txt=False,save_conf=True,project=OUTPUT_DIR,name='prediction',exist_ok=True,imgsz=640,device=DEVICE,show=SHOW_RESULT,stream=True)# ================ 显示结果 ====================forrinresults:im_array=r.plot()ifSHOW_RESULT:cv2.imshow('Geo Disaster Detection',im_array)ifcv2.waitKey(1)&0xFF==ord('q'):breakcv2.destroyAllWindows()print(f"✅ 推理完成!结果保存在:{OUTPUT_DIR}")七、评估代码 val.py
fromultralyticsimportYOLO# ================== 配置参数 ==================MODEL_PATH='runs/geo_disaster/yolov8s_geo_disaster/weights/best.pt'DATA_CONFIG='geo_disaster_dataset/data.yaml'SPLIT='val'IMG_SIZE=640BATCH_SIZE=16CONF_THRESHOLD=0.001DEVICE=0iftorch.cuda.is_available()else'cpu'# ================ 加载模型 ====================model=YOLO(MODEL_PATH)# ================ 开始评估 ====================metrics=model.val(data=DATA_CONFIG,split=SPLIT,imgsz=IMG_SIZE,batch=BATCH_SIZE,conf=CONF_THRESHOLD,iou=0.6,device=DEVICE,plots=True,save_json=True)# ================ 输出指标 ====================print("\n"+"="*50)print("📊 地质灾害检测模型评估结果")print("="*50)print(f"mAP@0.5:{metrics.box.map50:.4f}")print(f"mAP@0.5:0.95:{metrics.box.map:.4f}")print(f"Precision:{metrics.box.precision.mean():.4f}")print(f"Recall:{metrics.box.recall.mean():.4f}")print(f"F1 Score:{metrics.box.f1.mean():.4f}")print("="*50)八、实例分割扩展代码(segment.py)
fromultralyticsimportYOLO# 分割模型训练model=YOLO('yolov8s-seg.pt')model.train(data='geo_disaster_dataset/data.yaml',epochs=100,batch=16,imgsz=640,project='runs/geo_segment',name='geo_seg')# 分割推理model=YOLO('runs/geo_segment/geo_seg/weights/best.pt')model.predict(source='test.jpg',save=True,show=True)