yolov8训练野火烟雾识别检测模型

2024-08-30 13:36

本文主要是介绍yolov8训练野火烟雾识别检测模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.数据集下载

数据集下载链接:https://hyper.ai/datasets/33096

2. 数据集格式转换

需要将json中的标注信息转换为yolo格式的标注文件数据

import json
import os
import shutil
import cv2
import matplotlib.pyplot as plttarget = "./data/val"
def convert(size, box):dw = size[1]dh = size[0]# box x1 y1 x2 y2x = (box[0] + box[2]) / 2.0y = (box[1] + box[3]) / 2.0w = box[2] - box[0]h = box[3] - box[1]x = x / dww = w / dwy = y / dhh = h / dhif w >= 1:w = 0.99if h >= 1:h = 0.99return (x, y, w, h)
# 将标注数据转换为yolo格式
with open(target+"/_annotations.coco.json") as f:anno = json.load(f)images = {}labels = {}for img in anno['images']:images[img["id"]] = img["file_name"]for an in anno['annotations']:labels[an["image_id"]] = anprint(anno)img_dir = target+"/images/"anno_dir = target+"/labels/"if (not  os.path.exists(img_dir)):os.mkdir(img_dir)os.mkdir(anno_dir)for i in images:# 将图片复制到images文件夹shutil.copyfile(target+"/"+ images[i], img_dir+"/"+ images[i])img = cv2.imread(img_dir + "/" + images[i])# 生成标注文件label = labels[i]filename,_ = os.path.splitext(images[i])with open(anno_dir+"/"+ filename+ ".txt","w") as f:box = label["bbox"]# img = cv2.rectangle(img,(box[0],box[1]),(box[0]+box[2],box[1] + box[3]),(50,50,50),2)# plt.imshow(img,)# plt.show()box = convert(img.shape, (box[0],box[1],box[0]+box[2],box[1] + box[3]))f.write(str(label["category_id"])+" " + " ".join([str(a) for a in box]))

将test、train和val都 转换一下

3. 模型训练

数据配置文件

# 数据集所在路径
path: C:\Users\lhq\Desktop\Wildfire-Smoke\datatrain: "./train/"
val: "./val/"
test: "./test/"nc: 2names:0: 烟雾1: 烟雾

训练代码

from ultralytics import YOLO
from ultralytics.utils import DEFAULT_CFG
from datetime import datetimecurrent_time = datetime.now()
time_str = current_time.strftime("%Y-%m-%d_%H-%M-%S")  
# 训练结果保存路径
DEFAULT_CFG.save_dir = f"./models/{time_str}"if __name__ == "__main__":model = YOLO("yolov8n.pt") # Train the modelresults = model.train(data="smoke.yaml", epochs=100, imgsz=640, device=0, save=True)

4. 模型测试

预测代码:

from ultralytics import YOLO# Load a model
model = YOLO('best.pt')
# Run batched inference on a list of images
model.predict("./demo/", imgsz=640, save=True, device=0,plots=True)

在这里插入图片描述
在这里插入图片描述

这篇关于yolov8训练野火烟雾识别检测模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120963

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe