ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

YOLO26粉尘识别数据集 工地数据集 yolo矿下粉尘数据识别 数据集已划分,YOLO格式-有权重,相关指数,map相当高 2000多张

YOLO26粉尘识别数据集 工地数据集 yolo矿下粉尘数据识别 数据集已划分,YOLO格式-有权重,相关指数,map相当高 2000多张 使用PyTorch和YOLOv8的官方实现来进行训练并介绍数据集的准备和使用方法。一、数据集介绍数据集结构总共有2000多张图片和对应的txt标签文件。标签类别假设只有一类“dust”粉尘。目录结构深色版本DustDetection/├── data/│ ├── images/│ │ ├── train/│ │ ├── val/│ │ └── test/│ ├── labels/│ │ ├── train/│ │ ├── val/│ │ └── test/├── models/│ └── yolov8/├── utils/│ ├── data_loader.py│ ├── metrics.py│ └── plot.py├── main.py├── train.py├── infer.py└── README.md二、数据集准备数据配置文件创建一个数据配置文件data/dust.yaml指定数据集路径和类别信息train: …/data/images/train/val: …/data/images/val/test: …/data/images/test/nc: 1 # 类别数量names:dust三、安装YOLOv8首先克隆YOLOv8仓库并安装必要的依赖项bash深色版本cd models/git clone https://github.com/ultralytics/ultralytics.gitcd ultralyticspip install -r requirements.txt四、训练模型编写一个训练脚本train.pypython深色版本import osfrom ultralytics import YOLOdef main():# 设置训练参数data_yaml ‘…/data/dust.yaml’model_yaml ‘yolov8n.yaml’ # 选择合适的YOLOv8模型initial_weights ‘path/to/initial/weights.pt’ # 初始权重文件epochs 100batch_size 16img_size 640device ‘cuda’ if torch.cuda.is_available() else ‘cpu’# 加载模型 model YOLO(model_yaml) model.load(initial_weights) # 加载初始权重 # 开始训练 results model.train( datadata_yaml, epochsepochs, batchbatch_size, imgszimg_size, devicedevice )ifname ‘main’:main()运行训练脚本bash深色版本python train.py五、推理和可视化编写一个推理脚本infer.py用于加载训练好的模型并对新图像进行预测python深色版本import osimport torchimport cv2import numpy as npfrom ultralytics import YOLOfrom ultralytics.yolo.utils.general import non_max_suppression, scale_coordsfrom ultralytics.yolo.utils.plots import Annotatordef load_model(weights_path, device):model YOLO(weights_path)model.to(device)return modeldef infer_image(model, img_path, img_size, device):img cv2.imread(img_path)img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img cv2.resize(img, (img_size, img_size))img img.transpose(2, 0, 1)img img.astype(np.float32) / 255.0img torch.from_numpy(img).unsqueeze(0).to(device)with torch.no_grad(): pred model(img)[0] pred non_max_suppression(pred, conf_thres0.25, iou_thres0.45) return pred, imgdef draw_boxes(img, pred, names):annotator Annotator(img, line_width2, examplestr(names))for i, det in enumerate(pred):if len(det):det[:, :4] scale_coords(img.shape[2:], det[:, :4], img.shape[2:]).round()for *xyxy, conf, cls in reversed(det):c int(cls)label f’{names[c]} {conf:.2f}’annotator.box_label(xyxy, label, color(0, 255, 0))return annotator.result()ifname ‘main’:weights_path ‘runs/train/exp/weights/best.pt’img_path ‘…/data/images/test/000001.jpg’img_size 640device ‘cuda’ if torch.cuda.is_available() else ‘cpu’model load_model(weights_path, device) pred, img infer_image(model, img_path, img_size, device) # 读取原始图像 original_img cv2.imread(img_path) # 绘制预测框 annotated_img draw_boxes(original_img, pred, names[dust]) # 显示结果 cv2.imshow(Result, annotated_img) cv2.waitKey(0) cv2.destroyAllWindows()六、评价指标编写一个脚本evaluate.py来计算模型的评价指标如IoU、mAP等python深色版本import osimport torchfrom ultralytics import YOLOfrom ultralytics.yolo.utils.general import check_img_sizefrom ultralytics.yolo.utils.datasets import create_dataloaderdef main():data_yaml ‘…/data/dust.yaml’weights_path ‘runs/train/exp/weights/best.pt’img_size 640batch_size 16device ‘cuda’ if torch.cuda.is_available() else ‘cpu’# 加载数据 dataloader create_dataloader(../data/images/val/, img_size, batch_size, 32, single_clsFalse, pad0.5, rectTrue)[0] # 加载模型 model YOLO(weights_path) model.to(device) # 验证模型 results model.val( datadata_yaml, batchbatch_size, imgszimg_size, devicedevice, dataloaderdataloader )ifname ‘main’:main()运行评价脚本bash深色版本python evaluate.py七、运行项目确保数据集和标签文件已经准备好并放在相应的目录中。运行训练脚本bash深色版本python train.py运行推理脚本bash深色版本python infer.py运行评价脚本bash深色版本python evaluate.py八、代码说明数据配置文件data/dust.yaml指定了数据集的路径和类别信息。训练模型train.py负责加载数据、初始化模型、损失函数和优化器并进行训练。推理和可视化infer.py用于加载训练好的模型并对新图像进行预测显示预测结果。评价指标evaluate.py计算模型的评价指标如IoU和mAP。希望这些代码和说明能帮助你完成基于YOLOv8的工地粉尘识别项目。
返回列表