自然灾害类数据集 道路自然灾害障碍检测数据集 滑坡数据集、塌方数据集、倒树检测数据集、道路坍塌的训练及应用

道路智能巡检、边坡灾害预警、自动驾驶道路障碍识别、交通应急监测系统 -道路自然灾害障碍检测数据集 19000张,支持yolo和voc格式,包含滑坡、塌方、倒树、道路坍塌等场景,适合目标检测、算法训练、研究用

标注:
landslide
fallen tree
stone
road collapse


1

道路自然灾害障碍检测数据集说明 + 训练代码(可直接复制到Word)

一、数据集整体介绍

本数据集为道路自然灾害障碍检测专用数据集,总计19000张图像,覆盖野外道路、山区公路、乡村道路等真实场景,包含滑坡、塌方、落石、倒树、道路坍塌等典型道路灾害障碍物。数据集同时支持YOLO、VOC两种主流标注格式,可直接用于深度学习目标检测算法训练、算法对比、学术研究与工程落地,适配YOLO系列、Faster R-CNN、SSD等主流检测模型。

关键词

道路灾害检测、自然灾害障碍、滑坡检测、倒树识别、落石检测、道路坍塌、目标检测、YOLO、VOC、公路巡检、智能交通、图像数据集、算法训练、深度学习

二、数据集类别与标注信息表

英文标签名中文类别类别说明适用检测场景
landslide滑坡山体土体滑落形成的路面障碍、边坡滑坡体山区道路、临崖道路灾害检测
fallen tree倒树倒伏在路面/车道内的树木、枝干台风、暴雨、强风后道路通行障碍
stone落石/碎石山体滚落石块、路面散落碎石、塌方碎块山路、陡坡路段落石风险检测
road collapse道路坍塌路面下陷、路基垮塌、路面断裂损毁路基灾害、路面结构损毁检测

三、数据集基础参数

  1. 图像总量:19000 张
  2. 标注格式:YOLO txt格式 + VOC xml格式双格式共存
  3. 目标类别:共4 类道路自然灾害障碍物
  4. 图像场景:山区道路、乡村公路、临水临崖道路、野外通行道路
  5. 适用方向:目标检测算法训练、模型验证、灾害智能监测、道路巡检系统开发

四、数据集目录结构

road_natural_disaster/ ├── images/ # 所有原始图像(19000张) ├── labels/ # YOLO格式标注文件(.txt) ├── Annotations/ # VOC格式标注文件(.xml) ├── ImageSets/ │ └── Main/ # train.txt / val.txt / test.txt 数据集划分列表 └── classes.txt # 类别名称文件

五、YOLO系列模型训练代码(以YOLOv5为例)

5.1 环境依赖

# 基础依赖安装pipinstalltorch torchvision opencv-python pillow numpy tqdm pycocotools matplotlib

5.2 数据集类别配置文件road_disaster.yaml

在YOLOv5data/目录下新建road_disaster.yaml,内容如下:

# 道路自然灾害障碍检测数据集配置path:../road_natural_disaster# 数据集根目录绝对/相对路径train:imagesval:imagestest:images# 类别数量与名称nc:4names:0:landslide1:fallen tree2:stone3:road collapse

5.3 数据集划分脚本(划分训练集/验证集/测试集)

新建split_data.py,用于自动划分数据集比例(训练集80%、验证集15%、测试集5%):

importosimportrandom# 配置路径img_path="./road_natural_disaster/images"save_path="./road_natural_disaster/ImageSets/Main"train_percent=0.8val_percent=0.15test_percent=0.05ifnotos.path.exists(save_path):os.makedirs(save_path)# 获取所有图片名total_img=os.listdir(img_path)total_img=[name.split(".")[0]fornameintotal_img]random.shuffle(total_img)train_num=int(len(total_img)*train_percent)val_num=int(len(total_img)*(train_percent+val_percent))train_list=total_img[:train_num]val_list=total_img[train_num:val_num]test_list=total_img[val_num:]# 写入文件withopen(os.path.join(save_path,"train.txt"),"w")asf:fornameintrain_list:f.write(name+"\n")withopen(os.path.join(save_path,"val.txt"),"w")asf:fornameinval_list:f.write(name+"\n")withopen(os.path.join(save_path,"test.txt"),"w")asf:fornameintest_list:f.write(name+"\n")print("数据集划分完成!")

5.4 启动训练命令(终端执行)

# YOLOv5 训练命令python train.py--datadata/road_disaster.yaml--weightsyolov5s.pt--epoch100--batch-size16--img640

参数说明

  • --data:指定数据集配置文件
  • --weights:预训练权重(yolov5s/yolov5m/yolov5l 按需选择)
  • --epoch:训练总轮数
  • --batch-size:批次大小(根据显存调整)
  • --img:模型输入图像尺寸

六、关键测试推理代码(单图/文件夹批量检测)

新建detect_test.py用于模型效果测试:

importtorchimportcv2frommodels.commonimportDetectMultiBackendfromutils.generalimportnon_max_suppression,scale_boxesfromutils.torch_utilsimportselect_device# 配置参数weights="runs/train/exp/weights/best.pt"# 训练完成最优权重img_path="test.jpg"# 测试图片路径device=select_device("0")# GPU编号,无GPU填 cpu# 加载模型model=DetectMultiBackend(weights,device=device)names=model.names# 读取图像img=cv2.imread(img_path)img0=img.copy()img=cv2.resize(img,(640,640))img=torch.from_numpy(img).permute(2,0,1).float()/255.0img=img.unsqueeze(0).to(device)# 模型推理pred=model(img)pred=non_max_suppression(pred,conf_thres=0.25,iou_thres=0.45)# 绘制检测框fordetinpred:iflen(det):det[:,:4]=scale_boxes(img.shape[2:],det[:,:4],img0.shape).round()for*xyxy,conf,clsindet:label=f"{names[int(cls)]}{conf:.2f}"cv2.rectangle(img0,(int(xyxy[0]),int(xyxy[1])),(int(xyxy[2]),int(xyxy[3])),(0,0,255),2)cv2.putText(img0,label,(int(xyxy[0]),int(xyxy[1])-10),cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,0,255),2)# 展示并保存结果cv2.imshow("Road Disaster Detect",img0)cv2.imwrite("detect_result.jpg",img0)cv2.waitKey(0)cv2.destroyAllWindows()

七、数据集与训练关键说明

  1. 双格式兼容
    数据集同时提供YOLO-TXTVOC-XML标注,YOLO系列、Faster R-CNN、SSD等算法可直接使用,无需二次转换。
  2. 场景优势
    图像均为真实道路灾害场景,包含光照变化、遮挡、远景/近景、复杂背景,模型泛化能力更强。
  3. 训练调优建议
    • 显存不足可降低batch-size,适当调小输入分辨率;
    • 小目标(碎石、小块落石)可开启马赛克增强、自适应锚框计算;
    • 类别样本不均衡时,可使用加权损失、数据增广优化。
  4. 应用场景
    可落地于道路智能巡检、边坡灾害预警、自动驾驶道路障碍识别、交通应急监测系统。