
岩石分类检测数据集 岩石分类检测数据集的模型 9类 岩石检测 带标注 voc yolo岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo分类名: (图片张数 标注个数).Igneous_ _Basalt:(154659)I gneous_ Diorite:(467673)Igneous_ Granite:(168486)Metamorphic_ Marble:(7132002)Metamorphic_ Quartize:(9242029)Sedimentary_ _Chalk:(4091019)Sedimentary_ coal:(6293548)Sed imentary_ Limestone:(6993542)Sedimentary_ Sandstone:(6152127)总数:(477816085)总类(nc):9类使用YOLOv8来训练你的岩石分类检测数据集。以下是详细的步骤和完整的代码示例。步骤概述安装依赖准备数据集配置YOLOv8训练模型可视化评估1. 安装依赖首先确保你已经安装了必要的库特别是ultralytics库它是YOLOv8的核心库。pipinstallultralytics2. 准备数据集假设你的数据集格式符合YOLO的要求即图像文件夹和对应的标注文件夹。数据集结构应如下所示datasets/ ├── images/ │ ├── train/ │ │ ├── img1.jpg │ │ ├── img2.jpg │ │ └── ... │ └── val/ │ ├── img1.jpg │ ├── img2.jpg │ └── ... └── labels/ ├── train/ │ ├── img1.txt │ ├── img2.txt │ └── ... └── val/ ├── img1.txt ├── img2.jpg └── ...每个.txt文件对应一张图片内容格式为class_id x_center y_center width height其中坐标值都是归一化的范围在0到1之间。3. 配置YOLOv8创建一个YAML文件来配置数据集路径和类别信息。例如创建一个名为rock_classification.yaml的文件train:../datasets/images/trainval:../datasets/images/valnc:9names:[Igneous_Basalt,Igneous_Diorite,Igneous_Granite,Metamorphic_Marble,Metamorphic_Quartize,Sedimentary_Chalk,Sedimentary_coal,Sedimentary_Limestone,Sedimentary_Sandstone]4. 训练模型编写训练脚本使用YOLOv8进行训练。以下是完整的训练脚本解释加载预训练模型我们从预训练的YOLOv8n模型开始。训练模型使用train方法进行训练。参数包括数据集配置文件路径、训练轮数、图像大小、批量大小、工作线程数和设备。评估模型使用val方法对模型进行评估。导出模型将训练好的模型导出为ONNX格式以便部署。可视化评估使用predict方法在验证集上进行预测并显示和保存结果。运行脚本保存上述脚本到一个Python文件中例如train_rock_classification.py然后运行该脚本python train_rock_classification.py这添加VOC格式支持如果你的数据集也提供了VOC格式的标注你可以将其转换为YOLO格式。以下是一个简单的脚本来帮助你完成这一任务VOC到YOLO格式转换脚本importosimportxml.etree.ElementTreeasETfromPILimportImagedefconvert_voc_to_yolo(voc_dir,yolo_dir):ifnotos.path.exists(yolo_dir):os.makedirs(yolo_dir)class_mapping{Igneous Basalt:0,Igneous Diorite:1,Igneous Granite:2,Metamorphic Marble:3,Metamorphic Quartize:4,Sedimentary Chalk:5,Sedimentary coal:6,Sedimentary Limestone:7,Sedimentary Sandstone:8}forfilenameinos.listdir(voc_dir):iffilename.endswith(.xml):treeET.parse(os.path.join(voc_dir,filename))roottree.getroot()image_filenameroot.find(filename).text image_pathos.path.join(os.path.dirname(voc_dir),images,image_filename)imgImage.open(image_path)width,heightimg.sizewithopen(os.path.join(yolo_dir,os.path.splitext(filename)[0].txt),w)asf:forobjinroot.findall(object):class_nameobj.find(name).text bndboxobj.find(bndbox)xminfloat(bndbox.find(xmin).text)yminfloat(bndbox.find(ymin).text)xmaxfloat(bndbox.find(xmax).text)ymaxfloat(bndbox.find(ymax).text)x_center(xminxmax)/2.0/width y_center(yminymax)/2.0/height bbox_width(xmax-xmin)/width bbox_height(ymax-ymin)/height class_idclass_mapping[class_name]f.write(f{class_id}{x_center}{y_center}{bbox_width}{bbox_height}\n)# Example usageconvert_voc_to_yolo(../datasets/voc_annotations/train,../datasets/labels/train)convert_voc_to_yolo(../datasets/voc_annotations/val,../datasets/labels/val)这个脚本会将VOC格式的标注文件转换为YOLO格式的标注文件。确保你的VOC标注文件存储在../datasets/voc_annotations/train和../datasets/voc_annotations/val目录中。总结通过上述步骤你可以成功地使用YOLOv8训练岩石分类检测数据集并实现可视化评估。