通州郑州阳网站建设,wordpress无限地址,做网站免费空间,智能系统岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类 岩石分类检测数据集 (Rock Classification and Detection Dataset)
描述: 本数据集旨在支持对不同类型的岩石进行自动分类和检测#xff0c;特别适用于地质勘探、矿物识别、环境监测等领域。通过使用该数据集训练的模…
岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类 岩石分类检测数据集 (Rock Classification and Detection Dataset)
描述: 本数据集旨在支持对不同类型的岩石进行自动分类和检测特别适用于地质勘探、矿物识别、环境监测等领域。通过使用该数据集训练的模型可以帮助及时发现并分类各种岩石类型提高地质研究的效率和准确性。 类别:
Igneous_Basalt (火成岩 - 玄武岩)Igneous_Diorite (火成岩 - 闪长岩)Igneous_Granite (火成岩 - 花岗岩)Metamorphic_Marble (变质岩 - 大理岩)Metamorphic_Quartzite (变质岩 - 石英岩)Sedimentary_Chalk (沉积岩 - 白垩)Sedimentary_Coal (沉积岩 - 煤)Sedimentary_Limestone (沉积岩 - 石灰岩)Sedimentary_Sandstone (沉积岩 - 砂岩)
数据量: 总图片数: 4,778张总标注个数: 16,085个每类详细信息: Igneous_Basalt: 154张图片659个标注Igneous_Diorite: 467张图片673个标注Igneous_Granite: 168张图片486个标注Metamorphic_Marble: 713张图片2,002个标注Metamorphic_Quartzite: 924张图片2,029个标注Sedimentary_Chalk: 409张图片1,019个标注Sedimentary_Coal: 629张图片3,548个标注Sedimentary_Limestone: 699张图片3,542个标注Sedimentary_Sandstone: 615张图片2,127个标注
标注格式:
VOC格式 (XML)YOLO格式 (TXT)
文件格式:
图像采用常见的JPEG或PNG格式。标注文件有两种格式 VOC格式 (XML): 保存在annotations文件夹中每个图像对应一个XML文件。YOLO格式 (TXT): 保存在labels文件夹中每个图像对应一个文本文件其中包含边界框坐标及类别标签。例如对于Igneous_Basalt类别的标注文本文件中的每一行将按照以下格式表示class_id x_center y_center width height其中class_id为0到8代表不同的岩石类别其余参数均为归一化后的浮点数值。
数据集结构
确保您的数据集目录结构如下所示这只是一个示例结构您可以根据实际情况调整
rock_classification_dataset/
├── images/
│ ├── train/
│ │ ├── img1.jpg
│ │ ├── img2.jpg
│ │ └── ...
│ ├── val/
│ │ ├── img3000.jpg
│ │ ├── img3001.jpg
│ │ └── ...
├── labels/
│ ├── train/
│ │ ├── img1.txt
│ │ ├── img2.txt
│ │ └── ...
│ ├── val/
│ │ ├── img3000.txt
│ │ ├── img3001.txt
│ │ └── ...
├── annotations/
│ ├── train/
│ │ ├── img1.xml
│ │ ├── img2.xml
│ │ └── ...
│ ├── val/
│ │ ├── img3000.xml
│ │ ├── img3001.xml
│ │ └── ...
└── data.yaml
data.yaml 配置文件
创建一个名为 data.yaml 的配置文件内容如下
train: ./rock_classification_dataset/images/train
val: ./rock_classification_dataset/images/valnc: 9 # 类别数量
names: [Igneous_Basalt, Igneous_Diorite, Igneous_Granite, Metamorphic_Marble, Metamorphic_Quartzite, Sedimentary_Chalk, Sedimentary_Coal, Sedimentary_Limestone, Sedimentary_Sandstone] # 类别名称
使用方法
1. 准备环境
确保安装了必要的Python库如ultralytics用于YOLOv8和其他相关依赖
pip install ultralytics
2. 修改配置文件
根据实际路径修改 data.yaml 文件中的路径。
3. 训练脚本
以下是一个使用YOLOv8进行训练的Python脚本示例
from ultralytics import YOLO
import torch# 设置设备
device cuda if torch.cuda.is_available() else cpu# 加载预训练模型或从头开始训练
model YOLO(yolov8n.pt) # 使用预训练的YOLOv8n模型
# model YOLO() # 从头开始训练# 开始训练
results model.train(datapath/to/data.yaml, # 指定数据集配置文件路径epochs100, # 训练轮次batch16, # 批处理大小imgsz640, # 输入图像尺寸workers8, # 数据加载线程数devicedevice, # 使用GPU设备编号默认为0projectrock_classification, # 保存结果的项目名称nameexp, # 实验名称exist_okTrue # 如果存在相同实验名覆盖旧的结果
)# 可视化训练结果
results.plot()# 保存模型
model.save(rock_classification_model.pt)
训练结果
模型: YOLOv8
性能指标:
准确率 (Accuracy): [根据实际结果填写]精确度 (Precision): [根据实际结果填写]召回率 (Recall): [根据实际结果填写]F1分数 (F1 Score): [根据实际结果填写]平均精度均值 (mAP0.5:0.95): [根据实际结果填写]
模型文件:
提供了YOLOv8的预训练模型文件可以直接用于推理或进一步微调。
总结 这个岩石分类检测数据集提供了4,778张高质量的真实场景图片并且已经使用VOC和YOLO两种格式进行了标注。数据集涵盖了九种不同的岩石类别包括火成岩、变质岩和沉积岩等常见类型。通过使用YOLOv8框架可以有效地识别和分类这些岩石。提供的预训练模型可以在实际应用中提供可靠的检测结果。
特点 多样性: 包含多种不同类型的岩石覆盖了常见的地质样本。图像采集自真实场景具有较高的多样性和实用性。 标注质量: 图像采用高质量的标注包括边界框和类别标签。提供VOC和YOLO两种格式的标注文件方便在不同的深度学习框架中使用。 规模适中: 4,778张图像的数据集规模适中既足够训练模型又不会导致过长的训练时间。 可扩展性: 数据集可以进行扩充以增加更多图像数据提高模型的泛化能力。
示例UI界面设计
如果您需要开发一个上位机软件来进行实时的岩石分类检测可以参考以下简单的Tkinter GUI示例
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
import cv2
import torch
from ultralytics import YOLO# 加载预训练模型
model YOLO(rock_classification_model.pt)def load_image():global image_pathimage_path filedialog.askopenfilename()if image_path:image Image.open(image_path)image image.resize((640, 480))photo ImageTk.PhotoImage(image)image_label.config(imagephoto)image_label.image photodef detect_objects():if image_path:# 读取图像image cv2.imread(image_path)results model(image)# 绘制检测结果for result in results:boxes result.boxesfor box in boxes:x1, y1, x2, y2 map(int, box.xyxy[0])label model.names[int(box.cls)]confidence float(box.conf)color (0, 255, 0) # 绿色cv2.rectangle(image, (x1, y1), (x2, y2), color, 2)cv2.putText(image, f{label} {confidence:.2f}, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2)# 显示检测结果image cv2.cvtColor(image, cv2.COLOR_BGR2RGB)image Image.fromarray(image)image image.resize((640, 480))photo ImageTk.PhotoImage(image)image_label.config(imagephoto)image_label.image photo# 创建主窗口
root tk.Tk()
root.title(Rock Classification and Detection)# 图像显示区域
image_label tk.Label(root)
image_label.pack(pady20)# 按钮
load_button tk.Button(root, textLoad Image, commandload_image)
load_button.pack(sidetk.LEFT, padx10)detect_button tk.Button(root, textDetect Objects, commanddetect_objects)
detect_button.pack(sidetk.RIGHT, padx10)# 运行主循环
root.mainloop()
这个示例展示了如何使用Tkinter构建一个简单的GUI允许用户加载图像并进行岩石分类检测。您可以根据需要进一步扩展和完善这个界面添加更多的功能和优化用户体验。