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

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

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

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