自然灾害类数据集 道路自然灾害障碍检测数据集 滑坡数据集、塌方数据集、倒树检测数据集、道路坍塌的训练及应用
道路智能巡检、边坡灾害预警、自动驾驶道路障碍识别、交通应急监测系统 -道路自然灾害障碍检测数据集 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 | 道路坍塌 | 路面下陷、路基垮塌、路面断裂损毁 | 路基灾害、路面结构损毁检测 |
三、数据集基础参数
- 图像总量:19000 张
- 标注格式:YOLO txt格式 + VOC xml格式双格式共存
- 目标类别:共4 类道路自然灾害障碍物
- 图像场景:山区道路、乡村公路、临水临崖道路、野外通行道路
- 适用方向:目标检测算法训练、模型验证、灾害智能监测、道路巡检系统开发
四、数据集目录结构
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 matplotlib5.2 数据集类别配置文件road_disaster.yaml
在YOLOv5data/目录下新建road_disaster.yaml,内容如下:
# 道路自然灾害障碍检测数据集配置path:../road_natural_disaster# 数据集根目录绝对/相对路径train:imagesval:imagestest:images# 类别数量与名称nc:4names:0:landslide1:fallen tree2:stone3:road collapse5.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()七、数据集与训练关键说明
- 双格式兼容
数据集同时提供YOLO-TXT和VOC-XML标注,YOLO系列、Faster R-CNN、SSD等算法可直接使用,无需二次转换。 - 场景优势
图像均为真实道路灾害场景,包含光照变化、遮挡、远景/近景、复杂背景,模型泛化能力更强。 - 训练调优建议
- 显存不足可降低
batch-size,适当调小输入分辨率; - 小目标(碎石、小块落石)可开启马赛克增强、自适应锚框计算;
- 类别样本不均衡时,可使用加权损失、数据增广优化。
- 显存不足可降低
- 应用场景
可落地于道路智能巡检、边坡灾害预警、自动驾驶道路障碍识别、交通应急监测系统。
