使用离火插件yoloV8数据标注,模型训练

1. 启动


 

2.相关配置 

2.1    data.yaml

path: D:/yolo-tool/yaunshen-yolov8/YOLOv8ys/YOLOv8-CUDA10.2/1/datasets/ceshi001
train: images
val: images
names: ['蔡徐坤','篮球']

2.2   cfg.yaml

# Ultralytics YOLOv8, GPL-3.0 license
# Default training settings and hyperparameters for medium-augmentation COCO trainingtask: detect  # inference task, i.e. detect, segment, classify
mode: train  # YOLO mode, i.e. train, val, predict, export# Train settings -------------------------------------------------------------------------------------------------------
model: C:\Users\AF5\Desktop\YOLOv8ql\YOLOv8-CPU\1\datasets\qh\pt\train2\weights\best.pt  # path to model file, i.e. yolov8n.pt, yolov8n.yaml    模型文件路径
data: C:\Users\AF5\Desktop\YOLOv8ql\YOLOv8-CPU\1\datasets\qh\data.yaml  # path to data file, i.e. i.e. coco128.yaml    数据集data文件路径
epochs: 100000  # number of epochs to train for    训练次数,达到这个次数后将终止训练,且无法该模型无法继续训练
patience: 0  # epochs to wait for no observable improvement for early stopping of training    超过这个次数没有提升将自动完成训练
batch: 1  # number of images per batch (-1 for AutoBatch)    批数量,设越大占用显存越多
imgsz: 640  # size of input images as integer or w,h    一般默认640,训练时的图片宽高
save: True  # save train checkpoints and predict results
save_period: -1  # Save checkpoint every x epochs (disabled if < 1)
cache: False  # True/ram, disk or False. Use cache for data loading
device:  # device to run on, i.e. cuda device=0 or device=0,1,2,3 or device=cpu
workers: 0  # number of worker threads for data loading (per RANK if DDP)    勿改,必须为0
project: C:/Users/AF5/Desktop/YOLOv8ql/YOLOv8-CPU/1/datasets/qh/val  # project name    勿改
name: train  # experiment name    训练完成的文件夹名称
exist_ok: False  # whether to overwrite existing experiment
pretrained: False  # whether to use a pretrained model
optimizer: SGD  # optimizer to use, choices=['SGD', 'Adam', 'AdamW', 'RMSProp']
verbose: True  # whether to print verbose output
seed: 0  # random seed for reproducibility
deterministic: True  # whether to enable deterministic mode
single_cls: False  # train multi-class data as single-class
image_weights: False  # use weighted image selection for training
rect: False  # support rectangular training if mode='train', support rectangular evaluation if mode='val'
cos_lr: False  # use cosine learning rate scheduler
close_mosaic: 10  # disable mosaic augmentation for final 10 epochs
resume: False  # resume training from last checkpoint    为True时为继续模型的训练
min_memory: False  # minimize memory footprint loss function, choices=[False, True, <roll_out_thr>]
# Segmentation
overlap_mask: True  # masks should overlap during training (segment train only)
mask_ratio: 4  # mask downsample ratio (segment train only)
# Classification
dropout: 0.0  # use dropout regularization (classify train only)# Val/Test settings ----------------------------------------------------------------------------------------------------
val: True  # validate/test during training    为True,训练时计算mAP
split: val  # dataset split to use for validation, i.e. 'val', 'test' or 'train'
save_json: False  # save results to JSON file
save_hybrid: False  # save hybrid version of labels (labels + additional predictions)
conf:   # object confidence threshold for detection (default 0.25 predict, 0.001 val)
iou: 0.7  # intersection over union (IoU) threshold for NMS
max_det: 300  # maximum number of detections per image
half: False  # use half precision (FP16)
dnn: False  # use OpenCV DNN for ONNX inference
plots: True  # save plots during train/val# Prediction settings --------------------------------------------------------------------------------------------------
source: C:\Users\AF5\Desktop\YOLOv8ql\YOLOv8-CPU\1\datasets\qh\images\qh174.png  # source directory for images or videos    需要进行预测视频或图片的路径
show: False  # show results if possible
save_txt: True  # save results as .txt file
save_conf: False  # save results with confidence scores
save_crop: False  # save cropped images with results
hide_labels: False  # hide labels
hide_conf: False  # hide confidence scores
vid_stride: 1  # video frame-rate stride
line_thickness: 3  # bounding box thickness (pixels)
visualize: False  # visualize model features
augment: False  # apply image augmentation to prediction sources
agnostic_nms: False  # class-agnostic NMS
classes:  # filter results by class, i.e. class=0, or class=[0,2,3]
retina_masks: False  # use high-resolution segmentation masks
boxes: True  # Show boxes in segmentation predictions# Export settings ------------------------------------------------------------------------------------------------------
format: torchscript  # format to export to
keras: False  # use Keras
optimize: False  # TorchScript: optimize for mobile
int8: False  # CoreML/TF INT8 quantization
dynamic: False  # ONNX/TF/TensorRT: dynamic axes
simplify: False  # ONNX: simplify model
opset: 12  # ONNX: opset version (optional)
workspace: 4  # TensorRT: workspace size (GB)
nms: False  # CoreML: add NMS# Hyperparameters ------------------------------------------------------------------------------------------------------
lr0: 0.01  # initial learning rate (i.e. SGD=1E-2, Adam=1E-3)
lrf: 0.01  # final learning rate (lr0 * lrf)
momentum: 0.937  # SGD momentum/Adam beta1
weight_decay: 0.0005  # optimizer weight decay 5e-4
warmup_epochs: 3.0  # warmup epochs (fractions ok)
warmup_momentum: 0.8  # warmup initial momentum
warmup_bias_lr: 0.1  # warmup initial bias lr
box: 7.5  # box loss gain
cls: 0.5  # cls loss gain (scale with pixels)
dfl: 1.5  # dfl loss gain
fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
label_smoothing: 0.0  # label smoothing (fraction)
nbs: 64  # nominal batch size
hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
hsv_v: 0.4  # image HSV-Value augmentation (fraction)
degrees: 0.0  # image rotation (+/- deg)
translate: 0.1  # image translation (+/- fraction)
scale: 0.5  # image scale (+/- gain)
shear: 0.0  # image shear (+/- deg)
perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
flipud: 0.0  # image flip up-down (probability)
fliplr: 0.5  # image flip left-right (probability)
mosaic: 1.0  # image mosaic (probability)
mixup: 0.0  # image mixup (probability)
copy_paste: 0.0  # segment copy-paste (probability)# Custom config.yaml ---------------------------------------------------------------------------------------------------
cfg:  # for overriding defaults.yaml# Debug, do not modify -------------------------------------------------------------------------------------------------
v5loader: False  # use legacy YOLOv5 dataloader# Tracker settings ------------------------------------------------------------------------------------------------------
tracker: botsort.yaml  # tracker type, ['botsort.yaml', 'bytetrack.yaml']

2.3 主要代码

import cv2
import time
from ultralytics import YOLO
import json
import numpy as npdef Yolov10Detector(frame, model, image_size, conf_threshold, cap):results = model.predict(source=frame, imgsz=image_size, conf=conf_threshold)frame = results[0].plot()# 获取当前帧的时间current_time = cap.get(cv2.CAP_PROP_POS_MSEC) / 1000  # 以秒为单位# 打印所有标签结果及对应的时间for result in results:for box in result.boxes:c = int(box.cls)name = result.names[c]print(f"识别到的标签: {name},对应的时间: {current_time} 秒")return framedef main():image_size = 640  # Adjust as neededconf_threshold = 0.3  # Adjust as neededmodel = YOLO("D:/yolo-workspace/yoloy8-project/model/oneself/best.pt")source = "C:/Users/wangwei/Desktop/2024-09-18/20240925_115452.mp4"  # 0 for webcamcap = cv2.VideoCapture(source)while True:success, frame = cap.read()start_time = time.time()if success:print("读取帧成功!")if not success:print("读取帧失败!")breakmodelName = model.namesjson.dumps(modelName, ensure_ascii=False)#print("预检测 识别转json  信息为:" + json.dumps(modelName, ensure_ascii=False))frame = Yolov10Detector(frame, model, image_size, conf_threshold, cap)end_time = time.time()fps = 1 / (end_time - start_time)framefps = "FPS:{:.2f}".format(fps)try:cv2.rectangle(frame, (10, 1), (120, 20), (0, 0, 0), -1)cv2.putText(frame, framefps, (15, 17), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 2)except Exception as e:print("")cv2.imshow("yolov10-本地摄像头识别", frame)  # Display the annotated frameif cv2.waitKey(1) & 0xFF == ord('q'):  # Exit on 'q' key pres:breakcap.release()cv2.destroyAllWindows()main()

3. 模型训练

4.训练结果:

20240926_104219

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1547395.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

为什么你应该将你的营销材料本地化为俄语:释放新的机会

在当今高度互联的世界中&#xff0c;企业不断寻求新市场以扩大其全球足迹。一个经常被忽视但充满未开发潜力的市场是俄罗斯。全球有超过2.6亿俄语使用者&#xff0c;将您的营销材料翻译成俄语并本地化不仅是一个明智之举&#xff0c;也是迈向强大经济集团和获得竞争优势的重要一…

Docker安装nacos最新版本(图文教程)

Nacos(Naming And Configuration Service)是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。Nacos 提供了一套简单易用的服务发现、配置管理、动态 DNS 服务以及服务健康检查的解决方案,广泛应用于微服务架构中。 一、拉取镜像 docker pull nacos/nacos-server:…

@Lazy注解原理

目录 Lazy作用在类上Lazy注解作用在字段上Lazy注解标记的字段或方法中的参数何时触发加载AOP代理中的TargetSource对象为什么使用了 Lazy 之后&#xff0c;就能解决循环依赖问题&#xff0c;正常启动了呢&#xff1f;案例Resource对Lazy注入的处理 参考&#xff1a; https://b…

微服务——服务保护(Sentinel)(一)

1.雪崩问题 级联失败或雪崩问题指的是在微服务架构中&#xff0c;由于服务间的相互依赖和调用&#xff0c;当一个服务出现故障时&#xff0c;会引起调用它的服务也出现故障&#xff0c;进而引发整个调用链路的多个服务都出现故障&#xff0c;最终导致整个系统崩溃的现象。 产生…

【笔记】Dynamic Taint Analysis 动态污点分析

Dynamic Taint Analysis 动态污点分析 什么是动态污点分析&#xff1f;为什么要搞动态污点分析&#xff1f; “污点”指的是什么&#xff1f; DTA中的“污点”指代的是不可信的输入&#xff0c;比如用户输入、网络请求、文件数据等。比方说&#xff0c;如果把程序看作一个城市&…

使用 Visily.ai 进行应用界面设计

在现代应用开发中&#xff0c;快速创建高保真线框图和原型是一个巨大的优势。Visily.ai 是一个利用人工智能帮助你实现这一目标的在线工具。本文将介绍如何使用 Visily.ai 进行应用界面设计。 什么是 Visily.ai&#xff1f; Visily.ai 是一个 AI 驱动的 UI 设计工具&#xff…

嵌入式硬件工程师与嵌入式软件工程师的区别(详细版)

嵌入式硬件工程师与嵌入式软件工程师的区别&#xff08;详细版&#xff09; 这里写目录标题 嵌入式硬件工程师与嵌入式软件工程师的区别&#xff08;详细版&#xff09;什么是嵌入式硬件工程师&#xff1f;什么是嵌入式软件工程师&#xff1f;嵌入式硬件工程师与嵌入式软件工程…

css 下拉框展示:当hover的时候展示下拉框 z-index的用法解释

代码如下&#xff1a; <template><div class"outer"><div class"left"></div><div class"aTest2"><div class"box">显示方框</div><div class"aTest3"></div></…

【SQL】指定时间段的下单产品

目录 语法 需求 示例 分析 代码 语法 SUM(column_name) SUM 是一个聚合函数&#xff08;Aggregate Function&#xff09;&#xff0c;用于计算数字列中值的总和。当你需要对表中的某一列数值进行求和时&#xff0c;SUM 函数就显得非常有用。它通常与 GROUP BY 语句一起使用…

运算符两边的数据类型

6-3 类型转换 1.非赋值运算的类型转换 &#xff08;1&#xff09;水平方向的转换&#xff1a;所有的char型和short型自动地转换成int 型&#xff0c;所有的unsigned short 型自动地转换成unsigned型&#xff0c;所有的long型自动地转换成unsigned long 型&#xff0c;所有的f…

exBase

1.准备工作 1.端口配置 下列为默认端口号&#xff0c;若部分端口号已被占用&#xff0c;用户可以根据实际情况进行修改。 端口号 说明 31030 exBase默认端口 31003 配置库默认端口 2181 zookeeper默认端口 9092 kafka默认端口 8091 metaNode的RPC端口 8092 node…

毕业论文写作全攻略,让你轻松过关!

姐妹们&#xff0c;毕业论文是大学旅程的最后一站&#xff0c;也是展示我们学术成果的重要时刻。但是&#xff0c;毕业论文该怎么写呢&#xff1f;别担心&#xff0c;我来告诉你&#xff01;&#x1f4da; writehelp智能写作辅导&#xff1a;http://www.writehelp.vip/?sid17…

线性基学习DAY2

今天是第二题学习线性基&#xff0c;让我对线性基的认识更多了&#xff0c;线性基其实就是去处理整个区间异或最值问题的 我们来看一下昨天的一道题 P4570 [BJWC2011] 元素 昨天其实这题我尝试了两次&#xff0c;一种是普通消元去求解&#xff0c;另一种是高斯消元去求解&…

异地如何进行跨地区协作传输文件?

跨区域协作现在是很多企业的常态了&#xff0c;无论是跨国公司还是国内多地区运营的企业&#xff0c;高效、可靠的文件传输协作都是业务顺利进行的关键。然而&#xff0c;异地传输文件常常面临诸多挑战&#xff0c;如何选择合适的工具和服务成为企业必须考虑的问题。 异地传输文…

【ADC】ΔΣ ADC 中数字滤波器的延迟以及 SAR ADC 与 ΔΣ ADC 的差异对比总结

本文学习于TI 高精度实验室课程&#xff0c;深入探讨 delta-sigma 转换器中使用的数字滤波器。具体来说&#xff0c;本文将重点介绍数字滤波器如何引入延迟&#xff0c;因为这是 SAR 和 delta-sigma ADC 之间的显著差异。 文章目录 一、低延迟数字滤波器二、高延迟数字滤波器三…

妙手上线TikTok Shop组包预报功能,助力全球跨境店卖家大促快速发货!

众所周知&#xff0c;每年的Q4可以说是所有东南亚跨境卖家的旺季&#xff0c;10月起&#xff0c;各种促销活动如10.10品牌大促和双十一大促等接踵而至&#xff0c;为卖家们带来了新的增长机遇。 特别是TikTok Shop这个新兴平台&#xff0c;更是充满无限潜力&#xff0c;根据数…

AIGAME的核心技术竞争力与未来生态规划

AIGAME凭借其领先的区块链和人工智能技术&#xff0c;打造了全球首个融合链游、DeFi和加密聊天的Web3娱乐平台。平台的核心技术创新和多元化生态规划&#xff0c;将推动全球虚拟资产管理和娱乐行业的变革。 AIGAME的核心技术竞争力源于其对区块链和人工智能&#xff08;AI&…

基于nodejs+vue的农产品销售管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

队列的基本概念以及模拟使用

1.队列的概念&#xff1a; 只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的线性表&#xff0c;队列具有先进先出FIFO 入队列 :进行插入操作的一端称为队尾. 出队列:进行删除操作的一端称为队头。 图例如下&#xff1a; 2.Queue是一个接口&…

探索SQlmap:AI驱动的SQL注入神器

文章目录 探索SQLmap&#xff1a;AI驱动的SQL注入神器1. 背景介绍2. 什么是sqlmap&#xff1f;3. 如何安装sqlmap&#xff1f;4. 简单函数使用方法4.1 检测SQL注入4.2 获取数据库列表4.3 读取数据库中的表4.4 转储表中的数据4.5 获取当前用户信息 5. 场景应用5.1 网站后台数据泄…