岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类
岩石分类检测数据集 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(代表不同的岩石类别),其余参数均为归一化后的浮点数值。
- VOC格式 (XML): 保存在
数据集结构
确保您的数据集目录结构如下所示(这只是一个示例结构,您可以根据实际情况调整):
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(data='path/to/data.yaml', # 指定数据集配置文件路径epochs=100, # 训练轮次batch=16, # 批处理大小imgsz=640, # 输入图像尺寸workers=8, # 数据加载线程数device=device, # 使用GPU设备编号,默认为0project='rock_classification', # 保存结果的项目名称name='exp', # 实验名称exist_ok=True # 如果存在相同实验名,覆盖旧的结果
)# 可视化训练结果
results.plot()# 保存模型
model.save('rock_classification_model.pt')
训练结果
模型: YOLOv8
性能指标:
- 准确率 (Accuracy): [根据实际结果填写]
- 精确度 (Precision): [根据实际结果填写]
- 召回率 (Recall): [根据实际结果填写]
- F1分数 (F1 Score): [根据实际结果填写]
- 平均精度均值 (mAP@0.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(image=photo)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(image=photo)image_label.image = photo# 创建主窗口
root = tk.Tk()
root.title("Rock Classification and Detection")# 图像显示区域
image_label = tk.Label(root)
image_label.pack(pady=20)# 按钮
load_button = tk.Button(root, text="Load Image", command=load_image)
load_button.pack(side=tk.LEFT, padx=10)detect_button = tk.Button(root, text="Detect Objects", command=detect_objects)
detect_button.pack(side=tk.RIGHT, padx=10)# 运行主循环
root.mainloop()
这个示例展示了如何使用Tkinter构建一个简单的GUI,允许用户加载图像并进行岩石分类检测。您可以根据需要进一步扩展和完善这个界面,添加更多的功能和优化用户体验。
相关文章:

岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类
岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类 岩石分类检测数据集 (Rock Classification and Detection Dataset) 描述: 本数据集旨在支持对不同类型的岩石进行自动分类和检测,特别适用于地质勘探、矿物识别、环境监测等领域。通过使用该数据集训练的模…...

电脑基础知识:mfc110.dll丢失的解决方法
1.mfc110.dll 丢失常见原因 mfc110.dll 文件的丢失或损坏是Windows系统中常见的问题,它可能由多种原因引起,以下是一些主要的因素: 不完全的软件卸载 在卸载程序时,如果相关的 DLL 文件没有被正确移除,可能会导致文件…...
Lua 协同程序(coroutine)
Lua 协同程序(coroutine) 概述 Lua 语言以其轻量级和易于嵌入的特点,在游戏开发、脚本编写等领域广受欢迎。Lua 中的协同程序(coroutine)是其并发编程的核心特性之一。协同程序提供了一种不同于多线程的并发执行方式,它允许多个代码段交替执行,而不是同时执行。这种机制…...

NASA:ARCTAS 区域的二级 FIRSTLOOK 气溶胶产品子集。 它包含气溶胶光学深度和粒子类型,以及相关的大气数据
目录 简介 信息 代码 引用 网址推荐 知识星球 机器学习 MISR L2 FIRSTLOOK Aerosol Product subset for the ARCTAS region V001 简介 这是 ARCTAS 区域的二级 FIRSTLOOK 气溶胶产品子集。 它包含气溶胶光学深度和粒子类型,以及相关的大气数据,…...
go clean command
文章目录 1.简介2.格式3.选项4.示例5.应用场景6.小结参考文献 1.简介 在 Go 语言的开发过程中,管理依赖和构建缓存是非常重要的。随着项目的迭代,旧的缓存和不再需要的依赖可能会影响构建的效率和准确性。 Go 提供了一个非常实用的命令 go clean&#…...

鸿蒙NEXT开发-动画(基于最新api12稳定版)
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

HTML 入门
1. 什么是 HTML HTML(Hyper Text Markup Language),超文本标记语言 超文本:比文本要强大,通过链接和交互方式来组织和呈现信息的文本形式,不仅有文本,还可能包含图片、音频、或者自己已经审阅…...
前端面试题(十五)
83. ES6 中的 let 和 const let 和 const 的区别是什么? let 和 const 是 ES6 引入的用于声明变量的新方式,相比于传统的 var,它们具有以下特性: 块级作用域:let 和 const 声明的变量在其所在的块级作用域内有效&…...

如何成为 Rust 核心贡献者?Rust 开发的核心是什么?Rust 重要技术专家揭秘
10 月 17 - 18日,由 GOSIM 开源创新汇主办、CSDN 承办的 GOSIM CHINA 2024 将在北京盛大启幕。作为 GOSIM 开源年度大会的第三届盛会,本次活动邀请了 60 多位国际开源专家,汇聚了来自全球百余家顶尖科技企业、知名高校及开源社区的技术大咖、…...

springboot + nacos + sofarpc 整合后报错403
springboot版本 2.2.2 nacos 版本 1.4.2 rpc-sofa-boot 版本 3.2.0 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version></parent>…...

小米路由器R3Gv2安装openwrt记录
前言 小米路由器R3Gv2的硬件配置与小米路由器4A千兆版一致,但bootloader有所不同,因此openwrt的固件不要互刷。另外,R3Gv2和R3G、4A百兆版是不同的设备,切勿混淆。 硬件信息 OpenWrt参数页-Xiaomi MiWiFi 3G v2 CPU:…...

记录一下,android studio 登录不上github的问题
android studio 2023.3.1.18 版本的编译器,出现问题,之前连接过的项目可以正常提交和拉取到github。 但是新建立的项目无法上传到github,提示错误cannot load information for github.com/:request response;access to this site,…...

springcloud之基于github webhook动态刷新服务配置
前言 在实际开发中经常会有一个叫做配置中心的服务,这个服务经过变更参数来动态刷新线上业务数据行为配置。比如;行为开关、活动数据、黑白名单、本地/预发/线上环境切换等等,这些配置信息往往需要在我们不重启系统的时候就可以被更新执行。那…...

qt+opengl 实现纹理贴图,平移旋转,绘制三角形,方形
1 首先qt 已经封装了opengl,那么我们就可以直接用了,这里面有三个函数需要继承 virtual void initializeGL() override; virtual void resizeGL(int w,int h) override; virtual void paintGL() override; 这三个函数是实现opengl的重要函数。 2 我们…...

【动态规划】子数组系列(下)
1. 等差数列划分 413. 等差数列划分 状态表示:以 i 位置为结尾时的等差数列的个数 状态转移方程:由于至少需要三个元素才符合题目中等差数列的要求,所以需要判断 i - 2,i - 1,i 三个元素,当这三个元素符合…...
macos mendeley Unable to install the Microsoft Word Plugin 解决
windows也是相似的原理,这里主要说macos, 本质是 找到mendeley的插件启动项,放在word启动目录下, GPT-o1的解决方案: 3. Manual Installation (If Automatic Installation Fails) If the automatic installation doe…...

【Linux进程间通信】Linux信号机制深度解析:保存与处理技巧
📝个人主页🌹:Eternity._ ⏩收录专栏⏪:Linux “ 登神长阶 ” 🌹🌹期待您的关注 🌹🌹 ❀Linux进程间通信 📒1. 信号的保存🌊在内核中的表示🍂sigs…...

常见开源组件的详解
文章目录 RPCRPC架构和工作流程为什么有了HTTP还要用RPC底层协议数据格式连接管理错误处理 使用场景常见的RPC框架 Web应用框架主要功能常见的Web应用框架Spring Boot (Java)Django (Python)Express.js (Node.js) Redis主要特点应用场景缓存问题Redis集群架构主从复制Redis Clu…...
rust使用教程详解
欢迎来到 Rustlings。该项目包含一些小练习,让您习惯阅读和编写 Rust 代码。这包括阅读和响应编译器消息! 建议在阅读Rust 官方书籍(学习 Rust 最全面的资源)的同时做 Rustlings 练习 📚️ Rust By Example是另一个推…...
并查集的实现(朴素版)
这是C算法基础-数据结构专栏的第二十九篇文章,专栏详情请见此处。 由于作者即将参加CSP,所以到比赛结束前将不再发表文章! 引入 并查集是一种可以快速合并查找集合的一种数据结构,这次我们将通过三道题来详细讲解并查集ÿ…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...