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

相关文章

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

如何正确识别一台POE交换机的好坏? 选购可靠的POE交换机注意事项

《如何正确识别一台POE交换机的好坏?选购可靠的POE交换机注意事项》POE技术已经历多年发展,广泛应用于安防监控和无线覆盖等领域,需求量大,但质量参差不齐,市场上POE交换机的品牌繁多,如何正确识... 目录生产标识1. 必须包含的信息2. 劣质设备的常见问题供电标准1. 正规的 POE 标准2. 劣质设

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh