遥感滑坡检测的数据集 2299 张 1类 yolo格式 遥感滑坡检测数据集

遥感滑坡检测的数据集 2299 张 1类 yolo格式 遥感滑坡检测数据集

遥感滑坡检测YOLO数据集】共【2299】张,按照8比2划分为训练集和验证集,其中训练集【1839】张,验证集【460】张,模型分为【1】类,分类为:【'landslide'】

每个类别的图片数量和标注框数量如下:

landslide: 图片数【2299】,标注框数【6545】

针对遥感滑坡检测的数据集,使用YOLOv8模型进行训练和评估。以下是详细的步骤和代码示例,帮助你完成这个任务。

1. 环境准备

首先,确保你已经安装了必要的库和工具。你可以使用以下命令安装所需的库:

bash 复制代码
pip install torch torchvision
pip install numpy
pip install pandas
pip install matplotlib
pip install opencv-python
pip install pyyaml
pip install ultralytics

2. 数据集准备

假设你的数据集目录结构如下:

复制代码
landslide_detection_dataset/
├── images/
│   ├── train/
│   └── val/
├── labels/
│   ├── train/
│   └── val/
└── landslide.yaml

每个图像文件和对应的标签文件都以相同的文件名命名,例如 0001.jpg 和 0001.txt。

3. 创建数据集配置文件

你已经有一个 landslide.yaml 文件,内容如下:

yaml 复制代码
train: ../landslide_detection_dataset/images/train
val: ../landslide_detection_dataset/images/val

nc: 1
names: ['landslide']

4. 数据集划分

确保你的数据集已经按照8:2的比例划分成训练集和验证集。如果没有,可以使用以下Python脚本进行划分:

python 复制代码
import os
import random
import shutil

# 数据集路径
dataset_dir = 'landslide_detection_dataset'
images_dir = os.path.join(dataset_dir, 'images')
labels_dir = os.path.join(dataset_dir, 'labels')

# 创建训练集和验证集目录
train_images_dir = os.path.join(images_dir, 'train')
val_images_dir = os.path.join(images_dir, 'val')
train_labels_dir = os.path.join(labels_dir, 'train')
val_labels_dir = os.path.join(labels_dir, 'val')

os.makedirs(train_images_dir, exist_ok=True)
os.makedirs(val_images_dir, exist_ok=True)
os.makedirs(train_labels_dir, exist_ok=True)
os.makedirs(val_labels_dir, exist_ok=True)

# 获取所有图像文件
all_images = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
random.shuffle(all_images)

# 划分训练集和验证集
train_ratio = 0.8
train_size = int(len(all_images) * train_ratio)
train_images = all_images[:train_size]
val_images = all_images[train_size:]

# 移动文件
for image in train_images:
    label = image.replace('.jpg', '.txt')
    shutil.move(os.path.join(images_dir, image), os.path.join(train_images_dir, image))
    shutil.move(os.path.join(labels_dir, label), os.path.join(train_labels_dir, label))

for image in val_images:
    label = image.replace('.jpg', '.txt')
    shutil.move(os.path.join(images_dir, image), os.path.join(val_images_dir, image))
    shutil.move(os.path.join(labels_dir, label), os.path.join(val_labels_dir, label))

5. 安装YOLOv8

克隆YOLOv8仓库并安装依赖项:

bash 复制代码
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .

6. 训练模型

使用YOLOv8的训练脚本进行训练。确保你已经在 landslide.yaml 中指定了正确的路径。

bash 复制代码
yolo task=detect mode=train model=yolov8n.yaml data=landslide.yaml epochs=100 imgsz=640 batch=16

7. 评估模型

训练完成后,可以使用YOLOv8的评估脚本来评估模型在验证集上的性能。

bash 复制代码
yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=landslide.yaml

8. 可视化预测结果

使用以下Python代码来可视化模型的预测结果。

python 复制代码
import torch
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs/detect/train/weights/best.pt')

# 读取图像
image_path = 'landslide_detection_dataset/images/val/0001.jpg'
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 进行预测
results = model(image)

# 绘制预测结果
results.print()
results.show()

9. 模型优化

为了进一步优化模型,可以尝试以下方法:

  • 调整超参数:使用不同的学习率、批量大小、权重衰减等。
  • 使用预训练模型:使用预训练的YOLOv8模型作为初始化权重。
  • 增加数据量:通过数据增强或收集更多数据来增加训练集的多样性。
  • 模型融合:使用多个模型进行集成学习,提高预测的准确性。

10. 代码示例

以下是一个完整的代码示例,展示了如何从头开始训练和评估YOLOv8模型。

训练脚本
bash 复制代码
# 克隆YOLOv8仓库
git clone https://github.com/ultralytics/ultralytics
cd ultralytics

# 安装依赖项
pip install -e .

# 训练模型
yolo task=detect mode=train model=yolov8n.yaml data=landslide.yaml epochs=100 imgsz=640 batch=16
评估脚本
bash 复制代码
# 评估模型
yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=landslide.yaml
可视化脚本
python 复制代码
import torch
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs/detect/train/weights/best.pt')

# 读取图像
image_path = 'landslide_detection_dataset/images/val/0001.jpg'
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 进行预测
results = model(image)

# 绘制预测结果
results.print()
results.show()

11. 总结

通过以上步骤,你可以成功地使用YOLOv8模型对遥感滑坡检测的数据集进行训练、评估和可视化。

相关推荐
weixin_468466855 小时前
从“看懂”到“做到”:视觉-语言-动作模型如何让机器人真正执行指令
人工智能·ai·机器人·大语言模型·前沿科技
朋友圈自动点赞工具5 小时前
科学AI插件化:从蛋白质结构到古籍修复
人工智能
龙粤GEO6 小时前
实体Entity在GEO中代表什么含义
人工智能
拜小白7 小时前
【论文解读】《DeepPanoContext:用全局场景关系图 + 可微关系优做全景 3D 场景理解
深度学习·计算机视觉·全景图
剑雨巍巍7 小时前
AI Agent面试之基础概念
人工智能
微帧Visionular7 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
武子康7 小时前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
云智慧AIOps社区7 小时前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
EnCi Zheng7 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
赛博守夜人7 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全