岩石分类检测数据集 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,所以到比赛结束前将不再发表文章! 引入 并查集是一种可以快速合并查找集合的一种数据结构,这次我们将通过三道题来详细讲解并查集ÿ…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
