当前位置: 首页 > news >正文

YOLOv8实战TT100K中国交通标志检测【数据集+YOLOv8模型+源码+PyQt5界面】

在这里插入图片描述

YOLOv8实战TT100k交通标志识别

文章目录

  • 研究背景
  • 资源获取
  • 1.前言
    • 1.1 YOLO 系列:中国交通标志检测领域的璀璨明星
    • 1.2 Transformer与注意力机制:为中国交通标志检测注入新活力
    • 1.3 中国交通标志检测技术:迎接挑战,砥砺前行
    • 1.4 YOLOv8算法在中国交通标志检测系统中的精彩演绎
  • 2.TT100K数据集介绍
  • 3.界面效果演示
    • 3.1 图像测试
    • 3.2 视频测试
    • 3.3 摄像头测试
  • 4. YOLOV8 原理
  • 5 模型训练
    • 5.1 Conda环境构建
    • 5.2 基础环境构建
    • 5.3 安装YOLOv8环境
    • 5.4 构建TT100K交通标志检测模型
  • 6 系统实现
    • 6.1架构设计
    • 6.2 系统流程
    • 6.3 代码实现
  • 资源获取
  • 总结与展望
  • 结束语


研究背景

  交通标志识别研究的背景主要有以下几方面:

  1. 交通安全需求
    • 交通事故频发推动研究:随着汽车保有量的不断增加,交通事故成为严重的社会问题。许多交通事故是由于驾驶员疏忽交通标识、错判交通信号等因素导致的。准确识别交通标志能够为驾驶员提供及时、准确的道路信息,指导驾驶员做出合理的反应,对于减少交通事故、保障人身安全和财产安全具有重要意义。
    • 自动驾驶发展的关键技术:在自动驾驶技术中,车辆需要准确理解和识别各种交通标志,才能做出正确的驾驶决策。交通标志识别是自动驾驶系统的关键环节之一,对于实现自动驾驶的安全性和可靠性至关重要。
  2. 智能交通系统的发展
    • 智能交通的重要组成部分:智能交通系统旨在提高交通效率、改善交通管理和保障交通安全。交通标志识别系统作为智能交通系统的重要组成部分,能够为交通管理部门提供实时的交通标志信息,帮助实现交通流量的优化控制、道路状况的监测和预警等功能。
    • 交通数据采集与分析的基础:准确识别交通标志可以为交通数据的采集和分析提供基础信息。通过对交通标志的识别和分析,可以了解不同路段的交通规则、交通流量分布等情况,为交通规划和管理提供科学依据。
  3. 技术进步的推动
    • 计算机视觉技术的发展:计算机视觉技术的不断进步为交通标志识别提供了技术支持。图像采集设备的性能不断提高,能够获取高质量的交通标志图像;图像处理算法的不断优化,使得对交通标志的特征提取和分析更加准确和高效。
    • 深度学习算法的兴起:深度学习算法在图像识别领域取得了显著的成果,为交通标志识别提供了新的解决方案。深度学习模型可以自动学习交通标志的特征,具有较高的识别准确率和鲁棒性,能够适应复杂的道路环境和光照条件。
  4. 实际道路环境的复杂性
    • 多变的光照条件:自然场景下的光照条件变化很大,如白天、夜晚、阴天、晴天等不同的光照条件会对交通标志的颜色、亮度和对比度产生影响,增加了交通标志识别的难度。
    • 复杂的背景干扰:道路上的背景复杂多样,如建筑物、树木、车辆等物体可能会遮挡交通标志,或者与交通标志的颜色、形状相似,干扰交通标志的识别。
    • 交通标志的损坏和变形:交通标志在长期使用过程中可能会出现损坏、变形、掉色等情况,导致交通标志的特征发生变化,影响识别的准确性。

资源获取

工忠郝【小蜜蜂视觉】,回复【TT100K】即可获取


1.前言

1.1 YOLO 系列:中国交通标志检测领域的璀璨明星

  在实时目标检测的算法星空中,YOLO 系列无疑是最为耀眼的星座之一。从 YOLOv5 到 YOLOv8,每一次的迭代都宛如一次华丽的蜕变,在性能、速度与准确度上实现了跨越式的提升。YOLOv8,作为这一系列的最新杰作,凭借其更为深邃复杂的网络架构以及精妙绝伦的训练技巧,将检测的准确性与速度推向了新的高峰。尤其在应对动态视频流中的中国交通标志检测任务时,它宛如一位技艺精湛的舞者,展现出了令人赞叹的卓越性能。这些显著的改进,如同强大的引力,使得 YOLO 系列在中国交通标志检测领域的应用版图不断拓展,愈发完美地契合了实时性与准确性的双重严苛要求。
多元算法共筑中国交通标志检测的坚实堡垒
  除了光芒四射的 YOLO 系列,其他深度学习算法,诸如 Faster R - CNN、SSD 以及基于 Transformer 的 DETR 等,也纷纷在中国交通标志检测的舞台上崭露头角。它们各具独特的优势,恰似一群才华横溢的艺术家,在不同的领域绽放光彩。Faster R - CNN 以其在检测精度上的非凡表现,犹如一位精雕细琢的工匠,刻画着每一个细节;而 SSD 则在速度方面具备明显优势,恰似一阵疾风,迅速而敏捷。最新的研究恰似一场永不停歇的探索之旅,不断挖掘这些算法的改进版本,力求在速度与准确性之间找到那最为完美的平衡点,如同在钢丝上寻找平衡的舞者,追求极致的和谐。

1.2 Transformer与注意力机制:为中国交通标志检测注入新活力

  Transformer 在视觉任务中的应用,犹如一颗璀璨的新星划破夜空,吸引了广泛的关注,其中视觉 Transformer(ViT)更是备受瞩目。ViT 通过巧妙引入自注意力机制,仿佛为模型赋予了一双敏锐的眼睛,能够精准捕捉图像中的长距离依赖关系,这在中国交通标志形态复杂多样且背景纷繁复杂的情况下,显得尤为关键。相较于传统的卷积神经网络(CNN),ViT 在处理图像全局信息时展现出了更为卓越的能力,如同一位宏观把控的大师,为中国交通标志检测开辟了一片崭新的天地,提供了全新的解决思路。
注意力机制,作为 Transformer 的核心瑰宝,已如同星星之火,在各种深度学习模型中形成燎原之势,在中国交通标志检测领域更是大放异彩。它赋予了模型对图像特定部分的 “专注” 能力,如同为模型戴上了一副神奇的眼镜,使其能够在复杂的背景或多变的中国交通标志形态中,依然清晰地定位并准确识别目标,即便在干扰信息如潮水般涌来的环境中,也能稳如泰山,保持较高的检测准确率。

1.3 中国交通标志检测技术:迎接挑战,砥砺前行

当前,中国交通标志检测技术正置身于充满挑战的浪潮之中,亟待提高检测的实时性、准确性以及在多变环境下的适应性,如同在波涛汹涌的大海中航行的船只,需要不断调整航向,迎接风浪的挑战。为了跨越这些难关,研究人员们宛如勇敢的探险家,不断探索新的算法和技术。例如,通过深度学习模型的轻量化设计,如同为船只减轻负重,提高算法的运行效率,使其在复杂的环境中更加灵活敏捷;利用创新的数据增强技术和自适应学习方法,仿佛为船只加固船身,提升模型的泛化能力和鲁棒性,使其能够在各种未知的海域中稳健前行。

1.4 YOLOv8算法在中国交通标志检测系统中的精彩演绎

  本博客致力于基于 YOLOv8 算法构建一个 TT100K 中国交通标志检测系统,并全方位展示其魅力。我们将呈现系统精致的界面效果,如同揭开一幅美丽画卷,让您领略其独特风采;深入阐述其算法原理,恰似探秘一座神秘城堡,为您揭示其中的奥秘;毫无保留地提供代码实现,仿佛为您递上一把开启知识宝库的钥匙;详细分享该系统的实现过程,如同陪伴您走过一段精彩旅程,让您亲身体验其中的艰辛与喜悦。希望本博客的倾心分享能如同一盏明灯,为读者照亮前行的道路,给予您深刻的启示,进而推动更多相关研究的蓬勃发展。本文的核心内容主要涵盖以下几个方面:

  1. YOLOv8 算法的卓越应用与性能对比
      本文不仅详细介绍了基于 YOLOv8 算法的中国交通标志检测系统的构建历程,如同讲述一个精彩的创业故事,而且还深入细致地比较了 YOLOv7、YOLOv6、YOLOv5 等早期版本的性能差异,仿佛展开一场激烈的武林高手对决。这一全面深入的比较研究,恰似一本权威的指南,为中国交通检测技术的选型提供了坚实有力的参考依据。特别是 YOLOv8 算法在效率和精准度方面所展现出的显著优势,犹如一座明亮的灯塔,为 TT100K 中国交通标志检测指明了一条更为高效、更为准确的技术路径。
  2. PyQt5 打造的友好用户界面
      通过 Python 的 PyQt5 库精心打造的 TT100k 中国交通标志检测系统,不仅具备高效卓越的检测能力,如同一位内功深厚的武林高手,更提供了直观便捷、令人赏心悦目的用户操作界面,仿佛为用户搭建了一座温馨的家园。这种贴心的设计,使得交通标志检测变得更加亲切友好,如同一位热情好客的主人,有助于广泛推广 YOLOv8 算法的应用,同时也为交通标志检测技术的普及和实用化注入了强大的动力,如同春风化雨,滋润着这片技术的田野。
  3. YOLOv8 模型的深度研究与性能剖析
      本文不仅在实践中应用了 YOLOv8 算法,更对其性能进行了全方位、深层次的评估和分析,如同对一件珍贵的艺术品进行细致入微的鉴赏。我们深入研究了包括精准度、召回率等关键指标,宛如揭开了一幅神秘画卷的每一个细节,以及模型在不同环境条件下的表现,仿佛探索一片未知的森林,每一个角落都不放过。这些深入的研究成果,为全面理解 YOLOv8 算法的性能提供了一个细致入微的视角,如同为观察者配备了一台高倍显微镜,让每一个细微之处都清晰可见。同时,也为算法的进一步优化和改进铺就了坚实的道路,如同为建筑者准备了充足的砖石,助力构建更加宏伟的技术大厦。
  4. 提供完整的数据集和代码资源包
      为了大力促进中国交通标志检测技术的学习与应用,本文慷慨地提供了一套完整的数据集和代码资源包,如同为求知者送上了一份珍贵的礼物。这些宝贵的资源,不仅为读者复现文中的实验结果提供了便利,如同为旅行者提供了详细的地图,让他们能够顺利到达目的地;更为基于 YOLOv8/v7/v6/v5 算法的交通标志检测系统的进一步研究和开发提供了不可或缺的宝贵素材,仿佛为建筑师提供了丰富的建筑材料,激发他们创造出更加精彩的作品。

2.TT100K数据集介绍

  TT100K指的是Tsinghua-Tencent 100K,是一个大型交通标志基准数据集。以下是关于它的详细介绍:

  1. 数据来源与规模
    • 该数据集是由清华-腾讯联合实验室提出的,来源于100,000张腾讯街景全景图。数据集中提供了100,000张分辨率为2048像素×2048像素的图像,其中包含30,000个交通标志实例。
  2. 标注信息
    • 对于数据集中的每个交通标志,都带有详细的标注信息,包括类别标签、边界框以及像素蒙版。这些标注信息为交通标志的识别和检测算法提供了准确的训练和测试数据。
  3. 数据多样性
    • 图像涵盖了不同光照和天气状况,例如白天、夜晚、晴天、阴天、雨天等各种条件下的交通标志图像,这使得基于该数据集训练的模型能够更好地适应不同的实际场景。
  4. 应用价值
    • 在交通标志识别研究领域,TT100K 数据集为研究人员提供了丰富的实验数据,有助于推动交通标志识别算法的发展和优化。许多研究人员使用该数据集来训练和测试他们的交通标志识别模型,并与其他先进的方法进行比较,以验证其算法的有效性和优越性。
    • 对于自动驾驶技术的发展也具有重要意义,准确的交通标志识别是自动驾驶系统的关键环节之一,通过使用 TT100K 数据集进行训练,可以提高自动驾驶系统对交通标志的识别能力,从而增强自动驾驶的安全性和可靠性。

  总之,TT100K 数据集是交通标志识别领域中一个非常重要的基准数据集,为交通标志识别技术的研究和发展提供了有力的支持。
在这里插入图片描述

3.界面效果演示

3.1 图像测试

在这里插入图片描述

3.2 视频测试

在这里插入图片描述

3.3 摄像头测试

在这里插入图片描述

4. YOLOV8 原理

  YOLOV8是YOLO系列另一个SOTA模型,该模型是相对于YOLOV5进行更新的。其主要结构如下图所示:
在这里插入图片描述
  从图中可以看出,网络还是分为三个部分: 主干网络(backbone),特征增强网络(neck),检测头(head) 三个部分。
  主干网络: 依然使用CSP的思想,改进之处主要有:1、YOLOV5中的C3模块被替换成了C2f模块;其余大体和YOLOV5的主干网络一致。
  特征增强网络: YOLOv8使用PA-FPN的思想,具体实施过程中将YOLOV5中的PA-FPN上采样阶段的卷积去除了,并且将其中的C3模块替换为了C2f模块。
  检测头:区别于YOLOV5的耦合头,YOLOV8使用了Decoupled-Head

  其它更新部分:
  1、摒弃了之前anchor-based的方案,拥抱anchor-free思想。
  2、损失函数方面,分类使用BCEloss,回归使用DFL Loss+CIOU Loss
  3、标签分配上Task-Aligned Assigner匹配方式

5 模型训练

模型训练主要分为如下几步:

5.1 Conda环境构建

  新人安装Anaconda环境可以参考博主写的文章Anaconda3与PyCharm安装配置保姆教程

5.2 基础环境构建

  新人安装PyTorch GPU版本可以参考博主写的文章基于conda的PyTorch深度学习框架GPU安装教程

5.3 安装YOLOv8环境

conda create -n yolov8 python=3.8
conda activate yolov8
pip install ultralytics

5.4 构建TT100K交通标志检测模型

  TT100K数据集进行清洗,最终选择了50种中国交通标志,分别为

names: ['pl80', 'p6', 'ph', 'w', 'pa', 'p27', 'i5', 'p1', 'il70', 'p5', 'pm', 'p19', 'ip', 'p11', 'p13', 'p26', 'i2', 'pn', 'p10', 'p23', 'pbp', 'p3', 'p12', 'pne', 'i4', 'pb', 'pg', 'pr','pl5','pl10', 'pl15','pl20','pl25','pl30','pl35','pl40','pl50','pl60','pl65','pl70','pl90','pl100','pl110','pl120','il50','il60','il80','il90','il100','il110']

  TT100K数据集训练集一共20000张左右,验证集4000张左右,标注格式采用yolo格式组织

TT100Kimagestrainimage1.jpgimage2.jpg...valimage11.jpgimage22.jpg...labelstrainimage1.txtimage2.txt...valimage11.txtimage22.txt...

  我们开启训练之旅的第一步是导入一系列不可或缺的模块,其中涵盖了 os 模块,它犹如一把万能钥匙,为我们处理各种文件路径相关的操作提供了便利;torch 模块恰似一台强大的引擎,助力我们高效地执行各类数值计算任务;yaml 模块则如同一位精准的翻译官,能够帮助我们轻松解析配置文件中的各种信息;还有专门的 YOLO 类,它是我们构建模型的关键基石,为实例化模型奠定了基础。
  紧接着,我们着手确定训练过程所依托的计算设备。在这个环节中,我们秉持优先选择的策略,将目光聚焦于 GPU(cuda:0),因为它具备强大的并行计算能力,能够极大地加速训练过程。然而,若 GPU(cuda:0)不可用,我们也做好了充分的应对准备,即退而求其次,选择使用 CPU 来继续我们的训练任务。尽管 CPU 的计算速度相对较慢,但它依然能够确保训练工作的顺利进行,为我们的研究提供持续的支持。

import os
import torch
import yaml
from ultralytics import YOLO  # 导入YOLO模型
device = "cuda:0" if torch.cuda.is_available() else "cpu"

  接下来,我们对一些基本的训练参数进行了设定,其中包括工作进程数以及批次大小。随后,明确了数据集的名称与路径,并且借助 abs_path 函数获取到了配置文件的绝对路径。这样做能够保证在不同的运行环境下路径具有一致性,同时也提升了代码的可移植性。

workers = 1
batch = 8data_name = "FireSmoke"
data_path = abs_path(f'datasets/{data_name}/{data_name}.yaml', path_type='current')  # 数据集的yaml的绝对路径
unix_style_path = data_path.replace(os.sep, '/')# 获取目录路径
directory_path = os.path.dirname(unix_style_path)')

  在加载数据配置文件之前,必须先读取并解析 YAML 格式的配置文件。这一环节极为重要,原因在于该配置文件中涵盖了训练过程所需的关键信息,例如类别标签以及数据集路径等等。我们对配置文件中的“path”键值进行修改,以此确保模型能够准确无误地找到训练和验证数据。

# 读取YAML文件,保持原有顺序
with open(data_path, 'r') as file:data = yaml.load(file, Loader=yaml.FullLoader)
# 修改path项
if 'path' in data:data['path'] = directory_path# 将修改后的数据写回YAML文件with open(data_path, 'w') as file:yaml.safe_dump(data, file, sort_keys=False)

  接着,我们加载了预先训练好的 YOLOv8 模型,进而开启了训练进程。YOLO 类的 train 方法接纳了众多参数,其中有数据路径、设备、工作进程数、输入图像的尺寸、训练周期以及批次大小。在此处,name参数为训练任务赋予了标识,便于后续进行追踪与分析。


model = YOLO(abs_path('./weights/yolov8s.pt'), task='detect')  # 加载预训练的YOLOv8模型
results = model.train(  # 开始训练模型data=data_path,  # 指定训练数据的配置文件路径workers=0,  imgsz=640,  # 指定输入图像的大小为640x640epochs=100,  # 指定训练100个epochbatch=batch,  # 指定每个批次的大小为8name='train_v8_' + data_name  # 指定训练任务的名称
)

  训练100epoch输出如下

                  epoch,         train/box_loss,         train/cls_loss,         train/dfl_loss,   metrics/precision(B),      metrics/recall(B),       metrics/mAP50(B),    metrics/mAP50-95(B),           val/box_loss,           val/cls_loss,           val/dfl_loss,                 lr/pg0,                 lr/pg1,                 lr/pg21,                 1.0476,                 3.8891,                0.84084,                0.41224,                0.42554,                0.36379,                0.27196,                0.86447,                 1.5248,                0.81089,              0.0033282,              0.0033282,              0.00332822,                0.95007,                 1.4294,                0.82596,                0.53263,                0.47301,                0.48493,                0.36397,                0.86225,                 1.2226,                0.81651,              0.0065955,              0.0065955,              0.00659553,                0.98182,                 1.3353,                0.82896,                0.50647,                0.42261,                0.44521,                0.33748,                 0.8717,                 1.3881,                0.82112,              0.0097969,              0.0097969,              0.00979694,                0.95463,                 1.2863,                0.82714,                0.55859,                0.46457,                0.50863,                0.38989,                0.84252,                  1.214,                0.82083,               0.009703,               0.009703,               0.0097035,                0.86263,                 1.1173,                0.82003,                0.66921,                0.47837,                0.57441,                0.45246,                0.77726,                0.98753,                0.81168,               0.009604,               0.009604,               0.0096046,                0.82148,                 1.0118,                 0.8164,                0.70288,                0.52249,                0.62246,                 0.4982,                0.73563,                0.89549,                0.80951,               0.009505,               0.009505,               0.0095057,                0.78502,                0.93499,                0.81092,                0.73536,                0.52449,                 0.6437,                0.51884,                0.71008,                0.83043,                0.80336,               0.009406,               0.009406,               0.0094068,                0.76627,                0.88364,                 0.8098,                0.74316,                0.53515,                0.65139,                0.52363,                0.70356,                0.84187,                0.80489,               0.009307,               0.009307,               0.0093079,                0.74722,                0.84642,                0.80586,                 0.7746,                0.57135,                0.68957,                0.55931,                 0.6729,                0.74977,                 0.7995,               0.009208,               0.009208,               0.00920810,                0.72936,                0.81225,                 0.8048,                0.74957,                0.56808,                0.68153,                0.55813,                0.65494,                0.77242,                0.79725,               0.009109,               0.009109,               0.00910911,                0.71297,                0.77966,                0.80233,                0.79008,                0.57836,                0.70764,                0.57679,                 0.6547,                0.68668,                0.79907,                0.00901,                0.00901,                0.0090112,                0.70565,                0.75919,                0.80251,                0.78431,                0.58416,                0.70959,                0.57939,                0.64257,                0.68798,                0.79789,               0.008911,               0.008911,               0.00891113,                0.70099,                0.74476,                0.80292,                0.81041,                0.60403,                0.73015,                0.60004,                0.63095,                0.63429,                0.79501,               0.008812,               0.008812,               0.00881214,                 0.6782,                0.71021,                0.79917,                0.82167,                0.61955,                0.74495,                0.61484,                0.61671,                0.60232,                 0.7952,               0.008713,               0.008713,               0.00871315,                0.67191,                0.70089,                0.79843,                0.80464,                0.63423,                0.75297,                0.62061,                 0.6086,                0.58776,                0.79384,               0.008614,               0.008614,               0.00861416,                0.66656,                0.69207,                0.79892,                0.82681,                0.62687,                0.75117,                0.62089,                0.60414,                0.58937,                0.79355,               0.008515,               0.008515,               0.00851517,                0.65316,                0.66639,                0.79528,                0.82691,                0.63282,                0.76258,                0.63187,                0.59632,                0.55744,                0.79228,               0.008416,               0.008416,               0.00841618,                0.65176,                0.66947,                0.79687,                 0.8251,                0.64476,                0.76578,                0.63475,                0.58859,                0.54772,                 0.7922,               0.008317,               0.008317,               0.00831719,                0.64667,                 0.6544,                0.79657,                0.83153,                0.65696,                0.77527,                0.64372,                0.58532,                0.53457,                0.79077,               0.008218,               0.008218,               0.00821820,                 0.6411,                0.64468,                0.79657,                0.85262,                0.64754,                0.77975,                0.64721,                0.57621,                0.52184,                0.79027,               0.008119,               0.008119,               0.00811921,                0.64121,                 0.6344,                0.79554,                0.86163,                 0.6542,                0.78303,                0.65161,                0.57815,                 0.5176,                0.79031,                0.00802,                0.00802,                0.0080222,                0.62973,                0.62462,                0.79448,                0.85719,                0.65689,                0.78742,                0.65723,                0.57052,                0.49981,                0.78965,               0.007921,               0.007921,               0.00792123,                0.62825,                0.61946,                0.79406,                0.84194,                0.66782,                0.78841,                 0.6586,                0.56668,                0.49637,                0.78989,               0.007822,               0.007822,               0.00782224,                0.62067,                0.61299,                 0.7938,                0.85882,                0.66955,                0.79474,                0.66444,                0.55765,                0.48758,                0.78804,               0.007723,               0.007723,               0.00772325,                0.61734,                0.60872,                0.79581,                 0.8566,                0.67226,                 0.7984,                0.66892,                0.55515,                0.48039,                0.78771,               0.007624,               0.007624,               0.00762426,                0.61762,                0.59954,                 0.7938,                0.86257,                0.67248,                0.80148,                0.67224,                0.55486,                0.47037,                0.78775,               0.007525,               0.007525,               0.00752527,                0.60469,                0.58635,                0.79132,                0.84934,                0.69172,                0.80347,                0.67407,                0.55318,                0.46832,                0.78796,               0.007426,               0.007426,               0.00742628,                0.60813,                0.58516,                0.79178,                0.86991,                0.68132,                0.80455,                0.67613,                0.54689,                0.46431,                0.78729,               0.007327,               0.007327,               0.00732729,                0.60523,                 0.5808,                 0.7922,                 0.8587,                0.68949,                0.80783,                0.67863,                0.54326,                0.45651,                0.78651,               0.007228,               0.007228,               0.00722830,                0.59389,                0.56512,                0.79074,                0.85533,                0.69239,                0.81153,                0.68203,                 0.5408,                 0.4489,                0.78612,               0.007129,               0.007129,               0.00712931,                0.60002,                0.56901,                0.79344,                0.85999,                0.69352,                0.81364,                0.68478,                0.53836,                0.44583,                0.78589,                0.00703,                0.00703,                0.0070332,                0.60287,                0.57378,                0.79337,                0.86387,                0.69932,                0.81785,                0.68873,                0.53782,                0.43948,                0.78552,               0.006931,               0.006931,               0.00693133,                0.58948,                0.55506,                 0.7923,                0.87232,                0.69528,                0.82001,                0.69002,                0.53664,                0.43557,                0.78539,               0.006832,               0.006832,               0.00683234,                0.59061,                0.55346,                0.79016,                0.87664,                0.69731,                0.82136,                0.69272,                0.53412,                0.43121,                0.78539,               0.006733,               0.006733,               0.00673335,                0.57941,                0.54326,                0.79058,                0.89374,                0.68901,                0.82317,                 0.6945,                0.53261,                0.42957,                0.78524,               0.006634,               0.006634,               0.00663436,                0.58025,                0.53939,                0.79014,                 0.8762,                0.69911,                0.82374,                0.69469,                0.53197,                0.42631,                0.78516,               0.006535,               0.006535,               0.00653537,                0.57768,                0.53716,                0.79105,                0.88819,                0.69721,                0.82515,                0.69629,                0.52822,                0.42389,                 0.7849,               0.006436,               0.006436,               0.00643638,                0.57743,                0.53637,                0.78918,                0.88156,                0.70255,                0.82636,                0.69793,                0.52659,                0.42138,                0.78474,               0.006337,               0.006337,               0.00633739,                0.58129,                0.53967,                0.79133,                0.90074,                0.69635,                0.82822,                0.69892,                0.52525,                0.41613,                0.78441,               0.006238,               0.006238,               0.00623840,                 0.5698,                0.52316,                0.78892,                 0.8976,                0.69949,                0.82962,                0.70057,                0.52423,                0.41417,                0.78437,               0.006139,               0.006139,               0.00613941,                 0.5696,                0.52216,                0.79015,                0.88076,                0.71246,                0.83085,                0.70126,                0.52427,                0.41316,                0.78426,                0.00604,                0.00604,                0.0060442,                0.56112,                0.50643,                0.78894,                0.88515,                0.71127,                0.83225,                 0.7028,                0.52288,                0.41013,                0.78403,               0.005941,               0.005941,               0.00594143,                0.56162,                 0.5149,                0.78808,                0.89497,                0.70672,                0.83256,                0.70349,                0.52244,                0.40871,                0.78379,               0.005842,               0.005842,               0.00584244,                0.56045,                0.51064,                0.78822,                0.89794,                0.70658,                0.83313,                0.70418,                0.52054,                0.40699,                0.78363,               0.005743,               0.005743,               0.00574345,                0.55601,                0.50314,                0.78818,                0.89382,                0.70837,                0.83381,                0.70477,                0.52021,                0.40572,                0.78367,               0.005644,               0.005644,               0.00564446,                0.55174,                0.50136,                0.78812,                0.89951,                0.70774,                0.83478,                0.70593,                0.51982,                0.40476,                0.78371,               0.005545,               0.005545,               0.00554547,                 0.5557,                0.49897,                0.78811,                 0.8928,                 0.7138,                0.83608,                0.70745,                0.51927,                0.40221,                0.78363,               0.005446,               0.005446,               0.00544648,                0.54722,                0.48754,                0.78785,                0.89377,                0.71344,                0.83683,                0.70839,                0.51852,                0.40015,                0.78355,               0.005347,               0.005347,               0.00534749,                0.55059,                0.48914,                0.78766,                0.89191,                0.71622,                0.83752,                0.70942,                0.51766,                 0.3983,                0.78348,               0.005248,               0.005248,               0.00524850,                0.54982,                0.48621,                0.78844,                0.89644,                0.71549,                 0.8381,                0.71036,                0.51762,                0.39708,                0.78346,               0.005149,               0.005149,               0.00514951,                0.54566,                0.48623,                0.78752,                0.89851,                0.71407,                0.83883,                0.71125,                0.51684,                0.39597,                0.78334,                0.00505,                0.00505,                0.0050552,                 0.5436,                0.48098,                0.78722,                0.89885,                 0.7146,                0.83958,                0.71173,                0.51654,                0.39484,                0.78327,               0.004951,               0.004951,               0.00495153,                0.54073,                0.47675,                0.78664,                0.90007,                0.71409,                0.84002,                0.71213,                0.51619,                0.39372,                0.78323,               0.004852,               0.004852,               0.00485254,                0.53653,                0.47236,                0.78699,                0.89958,                0.71484,                0.84047,                 0.7127,                0.51569,                0.39274,                0.78322,               0.004753,               0.004753,               0.00475355,                0.53798,                0.46862,                0.78608,                0.89736,                0.71582,                0.84064,                0.71301,                0.51565,                0.39176,                0.78313,               0.004654,               0.004654,               0.00465456,                0.52841,                0.46709,                0.78646,                0.89675,                0.71741,                0.84114,                0.71402,                0.51492,                0.39121,                0.78305,               0.004555,               0.004555,               0.00455557,                0.52667,                0.46273,                0.78506,                0.88801,                0.72278,                0.84183,                0.71493,                0.51471,                0.39056,                0.78297,               0.004456,               0.004456,               0.00445658,                0.52918,                0.46224,                0.78617,                0.88781,                0.72279,                0.84232,                0.71532,                 0.5145,                0.38962,                0.78294,               0.004357,               0.004357,               0.00435759,                0.52674,                0.45215,                0.78591,                0.89078,                0.72227,                0.84274,                0.71563,                0.51424,                0.38893,                0.78291,               0.004258,               0.004258,               0.00425860,                 0.5272,                0.45651,                0.78603,                0.88977,                0.72333,                 0.8432,                0.71614,                0.51402,                0.38851,                0.78286,               0.004159,               0.004159,               0.00415961,                0.51938,                0.44897,                0.78436,                0.88569,                0.72663,                0.84365,                0.71622,                0.51354,                0.38781,                0.78284,                0.00406,                0.00406,                0.0040662,                0.51178,                0.43831,                0.78548,                0.88471,                0.72763,                  0.844,                0.71634,                0.51312,                0.38719,                0.78281,               0.003961,               0.003961,               0.00396163,                0.51487,                0.44128,                0.78416,                0.88815,                0.72596,                 0.8445,                0.71676,                0.51271,                0.38664,                0.78279,               0.003862,               0.003862,               0.00386264,                0.50911,                0.43455,                0.78483,                 0.8899,                0.72584,                0.84506,                0.71745,                0.51245,                0.38621,                0.78277,               0.003763,               0.003763,               0.00376365,                0.50802,                0.43118,                0.78255,                0.89118,                0.72599,                0.84557,                0.71805,                0.51194,                0.38525,                0.78272,               0.003664,               0.003664,               0.00366466,                0.51403,                0.43374,                0.78405,                0.89042,                0.72794,                0.84608,                0.71844,                0.51169,                0.38437,                0.78274,               0.003565,               0.003565,               0.00356567,                0.51019,                0.42771,                0.78504,                 0.8917,                0.72819,                0.84649,                0.71879,                0.51157,                0.38394,                0.78271,               0.003466,               0.003466,               0.00346668,                0.50731,                0.43093,                0.78352,                0.89061,                0.72863,                0.84684,                0.71897,                0.51136,                0.38354,                0.78264,               0.003367,               0.003367,               0.00336769,                0.51139,                0.42987,                0.78424,                0.88824,                0.72983,                0.84711,                0.71984,                0.51082,                0.38274,                0.78266,               0.003268,               0.003268,               0.00326870,                0.49505,                0.41751,                0.78254,                0.88855,                0.73035,                0.84744,                0.72024,                0.51048,                0.38225,                0.78266,               0.003169,               0.003169,               0.00316971,                0.49571,                0.41449,                0.78282,                0.89087,                0.72984,                0.84788,                0.72032,                0.51036,                0.38216,                 0.7826,                0.00307,                0.00307,                0.0030772,                0.49627,                0.41202,                0.78253,                0.89333,                0.72827,                0.84828,                0.72082,                0.51005,                0.38186,                0.78253,               0.002971,               0.002971,               0.00297173,                0.49117,                0.40416,                0.78385,                0.89474,                0.72821,                0.84855,                0.72102,                0.50996,                0.38134,                 0.7825,               0.002872,               0.002872,               0.00287274,                0.49105,                0.40349,                0.78284,                0.89332,                0.73015,                0.84902,                0.72137,                 0.5097,                0.38089,                0.78247,               0.002773,               0.002773,               0.00277375,                 0.4919,                0.40611,                0.78076,                0.89175,                0.73214,                0.84952,                0.72187,                0.50926,                0.38094,                0.78244,               0.002674,               0.002674,               0.00267476,                0.48451,                0.39368,                 0.7829,                0.89089,                0.73297,                0.84996,                0.72235,                0.50911,                0.38017,                0.78233,               0.002575,               0.002575,               0.00257577,                0.48389,                0.39698,                0.78138,                0.89114,                0.73381,                0.85037,                0.72278,                0.50904,                0.37988,                0.78232,               0.002476,               0.002476,               0.00247678,                0.48314,                0.39082,                0.78113,                 0.8929,                0.73327,                0.85078,                0.72331,                0.50842,                0.37929,                0.78227,               0.002377,               0.002377,               0.00237779,                0.47679,                0.38558,                0.77982,                0.89309,                0.73408,                0.85101,                0.72365,                0.50826,                0.37878,                0.78224,               0.002278,               0.002278,               0.00227880,                0.47723,                0.38778,                0.78045,                0.89306,                0.73488,                0.85145,                0.72394,                0.50807,                0.37773,                0.78221,               0.002179,               0.002179,               0.00217981,                0.47829,                0.38329,                0.78036,                0.89538,                0.73373,                0.85187,                0.72443,                 0.5079,                0.37761,                0.78216,                0.00208,                0.00208,                0.0020882,                 0.4702,                0.37636,                0.78201,                0.89613,                 0.7339,                0.85234,                0.72498,                0.50731,                0.37666,                0.78212,               0.001981,               0.001981,               0.00198183,                0.47471,                0.37834,                0.78042,                0.89786,                0.73392,                0.85285,                0.72579,                0.50701,                 0.3758,                0.78211,               0.001882,               0.001882,               0.00188284,                0.46478,                0.37106,                0.77921,                0.89968,                0.73239,                0.85329,                0.72607,                0.50694,                0.37511,                0.78207,               0.001783,               0.001783,               0.00178385,                0.46361,                0.36637,                0.78069,                0.90136,                0.73289,                0.85366,                0.72693,                 0.5067,                 0.3746,                0.78203,               0.001684,               0.001684,               0.00168486,                0.46073,                0.36608,                0.77869,                0.90113,                0.73336,                0.85408,                0.72726,                0.50663,                0.37449,                0.78197,               0.001585,               0.001585,               0.00158587,                0.45663,                0.36028,                0.77908,                0.90197,                0.73307,                0.85438,                0.72786,                0.50623,                0.37363,                0.78196,               0.001486,               0.001486,               0.00148688,                0.45832,                0.36028,                0.77819,                0.90107,                0.73356,                0.85471,                0.72796,                0.50619,                0.37343,                0.78191,               0.001387,               0.001387,               0.00138789,                0.45089,                0.35222,                0.77753,                0.89971,                0.73485,                0.85502,                0.72811,                0.50638,                0.37266,                0.78191,               0.001288,               0.001288,               0.00128890,                 0.4547,                 0.3539,                0.77969,                0.89841,                0.73561,                0.85534,                0.72866,                0.50577,                0.37211,                0.78186,               0.001189,               0.001189,               0.00118991,                0.42459,                0.30989,                0.77603,                0.89799,                0.73709,                0.85566,                0.72859,                0.50567,                0.37135,                0.78182,                0.00109,                0.00109,                0.0010992,                 0.4186,                0.30304,                0.77563,                0.89679,                0.73855,                0.85596,                0.72892,                0.50584,                0.37041,                0.78178,               0.000991,               0.000991,               0.00099193,                0.41584,                0.30242,                0.77539,                0.89639,                0.73855,                0.85632,                0.72932,                0.50561,                0.36959,                 0.7818,               0.000892,               0.000892,               0.00089294,                0.41141,                0.29569,                 0.7746,                0.89394,                0.74037,                0.85659,                0.72986,                0.50526,                 0.3687,                0.78179,               0.000793,               0.000793,               0.00079395,                0.40735,                0.29449,                0.77418,                0.89305,                0.74038,                0.85682,                0.73024,                0.50503,                0.36824,                0.78173,               0.000694,               0.000694,               0.00069496,                0.40527,                0.29199,                0.77406,                0.89318,                0.74059,                0.85711,                0.73062,                0.50439,                0.36791,                 0.7817,               0.000595,               0.000595,               0.00059597,                0.40207,                0.28602,                0.77291,                0.89402,                0.74089,                0.85735,                0.73131,                0.50415,                0.36754,                0.78168,               0.000496,               0.000496,               0.00049698,                0.39867,                0.28509,                0.77374,                0.89541,                0.74003,                0.85757,                0.73141,                0.50405,                0.36737,                0.78162,               0.000397,               0.000397,               0.00039799,                0.39228,                0.28021,                0.77353,                0.89627,                0.73916,                0.85775,                0.73163,                0.50423,                0.36754,                0.78155,               0.000298,               0.000298,               0.000298100,                0.39122,                0.27901,                0.77363,                0.89573,                0.74001,                0.85792,                0.73182,                0.50377,                0.36729,                 0.7815,               0.000199,               0.000199,               0.000199

  在目标检测领域,对训练过程中的损失函数展开分析可谓至关重要。这是因为它不但能够反映出模型的学习状况,还能指示出模型性能或许存在的问题。
  首先,从训练和验证的损失图当中能够看出,伴随训练进程的不断推进,train/box_loss、train/cls_loss 以及 train/obj_loss 皆呈现出下降的态势,这表明模型在学习的过程里逐渐对训练数据进行拟合,并且在边界框定位、类别分类以及目标检测方面的表现持续改进。相应地,验证损失 val/box_loss、val/cls_loss 和 val/obj_loss 尽管波动较大,然而总体上也显现出下降的趋势,这意味着模型对未曾见过的数据的泛化能力正在增强。
  具体而言,train/box_loss 从接近 0.8 降至大约 0.3,这无疑是一个极为良好的信号,意味着模型在边界框的定位方面变得越发精准。与此类似,train/cls_loss 和 train/obj_loss 的下降表明分类误差在减少,同时对目标的识别准确度得到提高。我们期望验证损失也能够呈现出相似的下降趋势,尽管中途存在一些波动,但整体的下降趋势表明模型的泛化能力在逐步提高,并未出现过拟合的状况。

在这里插入图片描述
  在性能指标这一方面,metrics/precision、metrics/recall、metrics/mAP50 以及 metrics/mAP50 - 95 的图表展现出了模型性能的稳步上升。准确率(Precision)与召回率(Recall)随着训练周期的增加而不断增长,这就意味着模型在识别正样本方面变得更为精确,同时也能够回收更多的正样本。mAP(mean Average Precision)属于目标检测中极为重要的评估指标之一,metrics/mAP50 和 metrics/mAP50 - 95 的提升表明模型针对不同 IoU 阈值的检测性能均在提高。mAP50 是指在 IoU 为 0.5 时的平均精度,而 mAP50 - 95 则表示在 IoU 从 0.5 到 0.95 不同阈值下的平均精度,它能够更为全面地反映出模型在各种重叠度下的表现。观察到这些指标的稳步提升,便可以说明模型在整个训练过程中的表现是在持续优化的。

  在机器学习领域当中,F1 分数是一个极为关键的性能指标,它对模型的准确率和召回率进行了综合考虑,为我们提供了有关模型分类性能的全面视角。这个指标尤其适用于正负样本分布不平衡的情况,能够助力我们理解模型在检测难以区分的类别时的具体表现。
在这里插入图片描述

6 系统实现

6.1架构设计

   MainWindow 类的核心目标是打造一个用户友好的交互式中国交通标志检测系统。为了达成这一目标,采用了将界面、媒体处理与模型进行集成的设计理念。通过对象组合的手段,把不同的处理器和模型整合在一起,使得每个功能模块都可以独立运作。与此同时,还运用信号和槽机制来实现模块之间的交互以及数据的传递。
   我们的系统设计理念以三层架构作为核心,分别是处理层、界面层以及控制层。在系统设计过程中,我们将重点置于确保各个组件能够协同运作的同时,保持充分的模块独立性,以便于未来进行维护和升级。
在这里插入图片描述

   处理层(Processing Layer):通过运用模块化的处理层,我们对 YOLOv8Detector 类所实现的深度学习模型予以封装。如此一来,图像处理与目标检测的复杂性对于其他系统组件而言是不可见的。这种封装不但提升了系统的可靠性,还使得未来替换或升级模型变得更为容易。

   界面层(UI Layer):在界面层方面,我们借助 PyQt5 库构建出一套完整的用户界面,提供了直观的操作按钮、状态标签以及实时的图像显示。该界面不但能够对用户的操作做出响应,还能实时反馈模型的检测结果,进而提高用户的操作便利性与系统的交互性。界面的设计目标在于降低用户的学习曲线,即便是没有技术背景的用户也能够轻松掌握。

   控制层(Control Layer):控制层是连接用户界面与后端处理模块的桥梁。在这一层中,MainWindow 类肩负着响应用户交互、控制视频流处理以及展示模型预测结果的重任。通过信号和槽机制,我们能够将用户的操作转化为系统的响应,例如启动和停止视频流、调整检测设置等。这样的设计不仅提高了系统反应的及时性,还增强了用户的控制感。
在这里插入图片描述

6.2 系统流程

在这里插入图片描述
  当用户启动我们的应用程序时,系统会首先对 MainWindow 类进行实例化。该类不但负责初始化用户界面,设定窗口大小以及展示区域,还会准备好后续处理所需的各类参数。用户界面作为与系统交互的重要桥梁,为用户提供了选择视频输入源的机会。输入源的灵活性可谓此系统的一大亮点,用户能够选择实时视频流、预录视频文件或者单张图片作为检测的媒介。

  一旦输入源被用户选定,系统就会开始调用内置的媒体处理器来进行数据的读取与处理。这个过程涵盖了摄像头的实时捕获设置、视频文件的解码读取以及图像数据的加载至内存等环节。这些环节均是自动进行的,无需用户进行手动配置,充分彰显了智能化的设计理念。

  接下来,系统将进入连续的处理循环,持续对实时获取的帧数据进行分析。在预处理阶段,系统会通过一系列的图像处理技术,例如缩放、色彩转换等,让每帧图像符合 YOLOv8 模型的输入标准。这一步骤对于提升模型的识别效率与准确度起着至关重要的作用。

  紧接着,经过预处理的图像会被送入经过训练的 YOLOv8 模型进行实时检测。模型能够快速地在图像中定位中国交通标志,并对它们进行分类,其结果将用于后续的界面更新。我们的系统设计允许在用户界面上实时显示检测框,标注目标类别,并在界面上实时展示检测的统计数据。这种即时的反馈为用户提供了清晰的视觉指引,有助于他们了解当前环境的安全状况。

6.3 代码实现

  在现代计算机视觉领域中,把深度学习模型应用于实时图像处理任务已然成为一项关键技术。在本博客里,我们会详细阐述如何运用 YOLOv8 算法,并结合 PyQt5 来创建一个实时目标检测系统。这个系统能够在视频流中识别并标注特定对象,比如 TT100K 中国交通标志。

(1)引入必要的库:

  首先,系统的构建从导入必要的 Python 模块开始。sys 模块是 Python 内置的模块,它提供了诸多与 Python 解释器紧密相关的功能。例如,sys.argv 可用于获取命令行参数,这在启动应用程序时非常重要。time 模块允许我们获取当前时间,这对于性能评估以及监控推理时间起着至关重要的作用。OpenCV 库(cv2)是图像处理的核心,它提供了一系列强大的功能来捕捉和处理图像数据。

import cv2
import numpy as np
from PyQt5.QtCore import QTimer, Qt, pyqtSignal, QThread
from PyQt5.QtGui import QImage, QPixmap, QPalette
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QDesktopWidgetfrom ui_mainwindow import Ui_MainWindow
from utils import image_read_from_chinese_pathfrom ultralytics import YOLO

(2)设置主窗口:

  构建用户界面(UI)是实现系统的关键一步。我们借助 PyQt5 库构建了图形用户界面。QMainWindow 作为我们窗口的基类,为展示处理后的图像提供了一个画布。

class MyMainWindow(QMainWindow):def __init__(self, parent=None):# 调用父类构造函数,创建窗体super().__init__(parent)# 创建UI对象self.ui = Ui_MainWindow()# 构造UI界面self.ui.setupUi(self)self.set_centre()self.image_file_path = None

(3)初始化模型

self.model = YOLO('./weights/best.pt')     

(4)界面信号槽绑定

self.ui.comboBox_source.currentIndexChanged.connect(self.comboBox_source_slot)self.ui.toolButton_fileOpen.clicked.connect(self.toolButton_fileOpen_slot)
self.ui.pushButton_infer.clicked.connect(self.pushButton_infer_slot)
self.ui.pushButton_infer_stop.clicked.connect(self.pushButton_infer_stop_slot)
self.ui.doubleSpinBox_conf.valueChanged.connect(self.doubleSpinBox_conf_slot)
self.ui.horizontalSlider_conf.valueChanged.connect(self.horizontalSlider_conf_slot)self.ui.doubleSpinBox_iou.valueChanged.connect(self.doubleSpinBox_iou_slot)
self.ui.horizontalSlider_iou.valueChanged.connect(self.horizontalSlider_iou_slot)

(5)图像显示

@staticmethod
def show_image(img_src, label):try:# img_src = cv2.resize(img_src, None, fx=0.5, fy=0.5)ih, iw, _ = img_src.shapew = label.geometry().width()h = label.geometry().height()# 保持纵横比# 找出长边if iw > ih:scal = w / iwnw = wnh = int(scal * ih)img_src_ = cv2.resize(img_src, (nw, nh))else:scal = h / ihnw = int(scal * iw)nh = himg_src_ = cv2.resize(img_src, (nw, nh))frame = cv2.cvtColor(img_src_, cv2.COLOR_BGR2RGB)img = QImage(frame.data, frame.shape[1], frame.shape[0], frame.shape[2] * frame.shape[1],QImage.Format_RGB888)label.setPixmap(QPixmap.fromImage(img))except Exception as e:print(repr(e))

资源获取

工忠豪【小蜜蜂视觉】,回复【TT100K】即可获取


  若您想获得博文中涉及的实现完整全部程序文件(包括系统UI设计文件,测试数据集、py文件,模型权重文件,调试说明等),资源获取与技术指导,具体见可参考博客与视频,已将所有涉及的文件同时打包到里面,软件安装调试有具体说明
在这里插入图片描述

总结与展望

  在本博客当中,我们对一个基于 YOLOv8 模型的实时中国交通标志检测系统进行了详细的介绍。该系统采用模块化的设计方式,充分运用了合理的架构设计,从而具备良好的可维护性与可扩展性。它的用户界面十分友好,能够实时展示TT100K中国交通检测和识别的结果。

  此系统支持摄像头、视频、图像以及批量文件等多种输入源,能够满足用户在不同场景下的需求。后续可以添加更多的预训练模型,以增加检测和识别的种类;对用户界面进行优化,增强个性化设置;并且积极倾听用户反馈,期望不断改进系统,从而更好地满足用户的需求。

结束语

   由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。

相关文章:

YOLOv8实战TT100K中国交通标志检测【数据集+YOLOv8模型+源码+PyQt5界面】

YOLOv8实战TT100k交通标志识别 文章目录 研究背景资源获取1.前言1.1 YOLO 系列:中国交通标志检测领域的璀璨明星1.2 Transformer与注意力机制:为中国交通标志检测注入新活力1.3 中国交通标志检测技术:迎接挑战,砥砺前行1.4 YOLOv8…...

SQLite3

文章目录 SQLite3 C/CAPI介绍SQLite3 C/C API 使⽤ SQLite3 C/CAPI介绍 C/C API是SQLite3数据库的⼀个客⼾端,提供⼀种⽤C/C操作数据库的⽅法。 SQLite3 C/C API 使⽤ 下⾯我们将这⼏个接⼝封装成⼀个类,快速上⼿这⼏个接口 创建/打开数据库文件针对打开…...

我的创作纪念日一年

目录 机缘 收获 日常 成就 憧憬 机缘 我之所以开始写CSDN博客,源于一段特殊的时光。去年此时,我独自待在实验室,周围的世界仿佛与我无关。没有旅游,没有与朋友的欢聚,情感的挫折和学业的压力如潮水般袭来。在这样的…...

Docker基本操作命令(一)

Docker 是一个开源的应用容器引擎,允许开发者打包应用以及其依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。主要功能是为开发者提供一个简单…...

PGMP-02项目集管理绩效域

目录 1.概要 2.defintions定义 3.Program Management Performance Domain interactions 交互 4. Organizational Strategy, Portfolio Management, and Program Management Linkage 5. Portfolio and Program Distinctions 区别 6. Program and Project Distinctions区别 …...

CAN(Controller Area Network)总线的仲裁机制

CAN(Controller Area Network)总线的仲裁机制是其核心特性之一,它确保了在多节点环境中数据能够高效、公正地传输。以下是对CAN仲裁机制的详细解释和介绍: 一、仲裁机制概述 在CAN总线网络中,各个节点地位平等&#…...

计算机毕业设计 | SpringBoot 房屋租赁网 租房买房卖房平台(附源码)

1,绪论 1.1 背景调研 在房地产行业持续火热的当今环境下,房地产行业和互联网行业协同发展,互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能,多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…...

OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目

Gateway微服务网关接口路由 各个服务之间已经能相互调用了 为什么需要网关 因为我们的不同服务是放在不同的端口上面的 如果前端调用服务 需要不同的端口 8101 8102 8103 8104 我们最好提供一个唯一的 给前端去调用的路径 我们学习技术的时候必须要去思考 1.为什么要用&am…...

腾讯云上传pushdocker镜像到镜像仓库

文章目录 腾讯云上传docker镜像 腾讯云上传docker镜像 >docker login ccr.ccs.tencentyun.com --usernameXXXXXX用户名>sudo docker tag mynginx:1.0 ccr.ccs.tencentyun.com/crfkitty/mynginx:1.0>docker push ccr.ccs.tencentyun.com/crfkitty/mynginx:1.0 The pu…...

sqli-labs靶场第二关less-2

sqli-labs靶场第二关less-2 本次测试在虚拟机搭建靶场,从主机测试 1、输入?id1和?id2发现有不同的页面回显 2、判断注入类型 http://192.168.128.3/sq/Less-2/?id1’ 从回显判断多一个‘ ,预测可能是数字型注入 输入 http://192.168.128.3/sq/Less…...

Ruby XML, XSLT 和 XPath 教程

Ruby XML, XSLT 和 XPath 教程 1. 引言 Ruby 是一种动态、开放源代码的编程语言,广泛用于网页开发、数据分析和各种自动化任务。在处理 XML(可扩展标记语言)时,Ruby 提供了强大的库和工具,使得解析、转换和提取 XML 数据变得简单高效。本教程将介绍如何使用 Ruby 来处理…...

attain和obtain区别

一、语法问题解答​ attain​:主要用作及物动词,表示“达到,得到,实现”,通常用于指经过努力达到某种目标、水平或状态,其宾语多为抽象名词,如目标、理想、成就等。它强调通过不懈努力实现某种…...

◇【code】PPO: Proximal Policy Optimization

整理的代码库:https://github.com/Gaoshu-root/Code-related-courses/tree/main/RL2024/PPO OpenAI 文档 —— PPO-Clip OpenAI 文档 界面链接 PPO: on-policy 算法、适用于 离散 或 连续动作空间。可能局部最优 PPO 的动机与 TRPO 一样:…...

Spring Boot 进阶-浅析SpringBoot中如何完成数据校验

在实际开发中,我们经常会遇到接口数据校验的问题。例如在用户输入手机号、或者是身份证号的时候,我们就需要校验手机号或者身份证号是否输入正确。当然这样的校验在前端页面输入的时候就可以完成。 但是对于直接调用接口的情况则不能通过调用方来进行判断,这就需要我们在Spr…...

◇【论文_20181020 v6】广义优势估计器 (generalized advantage estimator, GAE)

https://arxiv.org/abs/1506.02438 ICLR 2016 加州伯克利 电子工程与计算机科学系 High-Dimensional Continuous Control Using Generalized Advantage Estimation 文章目录 摘要1 引言2 预备知识3 优势函数估计4 解释为 奖励设计reward shaping5 价值函数估计6 实验6.1 策略优…...

JAVA后端项目须知

Eureka服务发现框架 ‌‌Eureka是一个服务发现框架,由‌Netflix开发,主要用于定位运行在‌AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。‌‌12 Eureka是Spring Cloud Netflix的一个子模块,也是核心模块之一…...

Java设计模式——适配器模式

目录 模式动机 模式定义 模式结构 代码分析 模式分析 实例 优点 缺点 适用环境 模式应用 模式扩展 总结 模式动机 在软件开发过程中,经常会遇到需要使用已有类的功能,但这些类的接口不符合当前系统的需求,或者需要将不同的类的接…...

docker compose入门6—如何挂载卷

在 Docker Compose 中,可以通过 volumes 字段将宿主机的文件或目录挂载到容器中。这样可以实现数据持久化、共享数据或配置等。以下是一些常见的挂载方式和示例。 1. 挂载单个文件 如果你想将宿主机上的一个特定文件挂载到容器中,可以使用以下格式&…...

linux 环境下 docker 镜像获取失败, 重新设置docker镜像下载地址

1.查询镜像地址 https://hub.atomgit.com/repos/amd64/openjdk 2.docker file FROM hub.atomgit.com/amd64/openjdk:21-rc-jdk COPY xxxx.jar xxxx.jar EXPOSE xxxxx ENTRYPOINT ["java","-jar","-Xmx200M","-agentlib:jdwptransportdt_…...

【React】setState 是怎么记住上一个状态值的?

在 React 中,setState 通过 React 内部的状态管理机制来记住上一个状态值。即使每次组件重新渲染时,函数组件会被重新执行,React 仍能通过其内部的状态管理系统保持和追踪组件的状态变化。下面详细解释其工作原理: 1. setState 的…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

前端工具库lodash与lodash-es区别详解

lodash 和 lodash-es 是同一工具库的两个不同版本&#xff0c;核心功能完全一致&#xff0c;主要区别在于模块化格式和优化方式&#xff0c;适合不同的开发环境。以下是详细对比&#xff1a; 1. 模块化格式 lodash 使用 CommonJS 模块格式&#xff08;require/module.exports&a…...