基于Yolov8的交通标志牌(TT100K)识别检测系统

2023-09-17 13:54:16

1.Yolov8介绍

         Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。它可以在大型数据集上进行训练,并且能够在各种硬件平台上运行,从CPU到GPU。

具体改进如下:

  1. Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;

  2. PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;

  3. Decoupled-Head:是不是嗅到了不一样的味道?是的,YOLOv8走向了Decoupled-Head;

  4. Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;

  5. 损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;

  6. 样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式

框架图提供见链接:Brief summary of YOLOv8 model structure · Issue #189 · ultralytics/ultralytics · GitHub

2.交通标志牌(TT100K)数据集介绍

TT100k训练集6680张,验证集955张,类别共45类

# class names
names:
  0: i2
  1: i4
  2: i5
  3: il100
  4: il60
  5: il80
  6: io
  7: ip
  8: p10
  9: p11
  10: p12
  11: p19
  12: p23
  13: p26
  14: p27
  15: p3
  16: p5
  17: p6
  18: pg
  19: ph4
  20: ph4.5
  21: ph5
  22: pl100
  23: pl120
  24: pl20
  25: pl30
  26: pl40
  27: pl5
  28: pl50
  29: pl60
  30: pl70
  31: pl80
  32: pm20
  33: pm30
  34: pm55
  35: pn
  36: pne
  37: po
  38: pr40
  39: w13
  40: w32
  41: w55
  42: w57
  43: w59
  44: wo

3.训练结果分析

confusion_matrix.png :列代表预测的类别,行代表实际的类别。其对角线上的值表示预测正确的数量比例,非对角线元素则是预测错误的部分。混淆矩阵的对角线值越高越好,这表明许多预测是正确的。

 上图是TT100K检测训练,有图可以看出 ,分别是破损和background FP。该图在每列上进行归一化处理。则可以看出破损检测预测正确的概率为91%。

F1_curve.png:F1分数与置信度(x轴)之间的关系。F1分数是分类的一个衡量标准,是精确率和召回率的调和平均函数,介于0,1之间。越大越好。

TP:真实为真,预测为真;

FN:真实为真,预测为假;

FP:真实为假,预测为真;

TN:真实为假,预测为假;

精确率(precision)=TP/(TP+FP)

召回率(Recall)=TP/(TP+FN)

F1=2*(精确率*召回率)/(精确率+召回率)

 labels_correlogram.jpg :显示数据的每个轴与其他轴之间的对比。图像中的标签位于 xywh 空间。

 labels.jpg :

(1,1)表示每个类别的数据量

(1,2)真实标注的 bounding_box

(2,1) 真实标注的中心点坐标

(2,2)真实标注的矩阵宽高

 P_curve.png:表示准确率与置信度的关系图线,横坐标置信度。由下图可以看出置信度越高,准确率越高。

 PR_curve.png :PR曲线中的P代表的是precision(精准率)R代表的是recall(召回率),其代表的是精准率与召回率的关系。

 R_curve.png :召回率与置信度之间关系

 预测结果:

更多推荐

u盘内容防止复制(U盘内数据防拷贝的方法)

随着科技的发展,U盘已经成为我们日常生活和工作中不可或缺的一部分。然而,U盘的普及也带来了一些问题,如数据泄露、病毒传播等。因此,保护U盘中的数据安全变得尤为重要。方法一:设置文件权限打开U盘,找到需要保护的文件或文件夹。右键点击文件或文件夹,选择“属性”。在弹出的属性窗口中,切换到“安全”选项卡。点击“编辑”按钮,打

解决vue项目导出当前页Table为Excel

解决vue项目中导出当前页表格为Excel表格的方案用到的技术:Vue2Element-uifile-saverxlsx1、创建vue项目,安装element-ui2、创建一个组件,组件内放入表格,和导出按钮<template><div><!--导出的按钮--><el-buttonsize="small"type="p

SpringSecurity

SpringSecurity从入门到精通参考代码0.简介​SpringSecurity是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。​一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比与

深入JavaScript的运行原理

一、深入V8引擎原理1.JavaScript代码的执行JavaScript代码下载好之后,是如何一步步被执行的呢?我们知道,浏览器内核是由两部分组成的,以webkit为例:WebCore:负责HTML解析、布局、渲染等等相关的工作;JavaScriptCore:解析、执行JavaScript代码;另外一个强大的Java

邮件营销中为什么要细分联系人?

在电子商务行业,邮件营销成为了各大企业吸引客户、推广产品的主要方式之一。然而,有效进行邮件营销需要一套完善的联系人管理系统。本文将从以下五点详细探讨邮件营销联系人管理有必要吗?一、精确定位目标用户邮件营销联系人管理是通过收集、分析和管理用户信息的过程。通过建立一个详尽的联系人数据库,企业可以对客户进行细致的分类和分组。

计算机网络第五节 网络层

一,网络引入的目的1.网络层以下层次解决的问题,未解决的问题从7层结构上看,网络层下是数据链路层从4层结构上看,网络层下面是网络接口层至少我们看到的网络层下面是以太网以太网解决了什么问题?答:以太网解决了具体网络上主机间数据传输的问题;主机之间可以以物理地址,以广播的传输方式进行数据的交换传输没有解决人心不足答的问题:

Springboot定时任务 Spring task

文章目录SpringTask简单操作SpringBoot注解开始1.fixDelay2.fixedRate单线程3.fixedRate多线程4.initialDelay5.cron(推荐)6.任务调度配置SpringTask简单操作SpringBoot注解开始@EnableScheduling@SpringBootAp

【JavaEE】多线程(三)

多线程(三)续上文,多线程(二),我们已经讲了创建线程Thread的一些重要的属性和方法那么接下来,我们继续来体会了解多线程吧~文章目录多线程(三)线程启动startstart与run的区别中断线程interrupt方法一方法二线程等待join线程状态线程安全线程安全问题的原因synchronized线程启动start

Scrum敏捷开发企业培训大纲介绍-企业内训

课程简介Scrum是目前运用最为广泛的敏捷开发方法,是一个轻量级的项目管理和产品研发管理框架。这是一个两天的实训课程,面向研发管理者、项目经理、产品经理、研发团队等,旨在帮助学员全面系统地学习Scrum和敏捷开发,帮助企业快速启动敏捷实施。课程采用案例讲解+沙盘演练的方式授课,通过两天的强化训练学员将学会基于Scrum

Java笔记:JVM优化分析

1.我们为什么要对jvm做优化?在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求:运行的应用“卡住了”,日志不输出,程序没有反应服务器的CPU负载突然升高在多线程应用下,如何分配线程的数量?……说明:使用的jdk版本为1.8。2.jvm的运行参数在jvm中有很多的参数可

iOS 17中的Safari配置文件改变了游戏规则,那么如何设置呢

Safari在iOS17中最大的升级是浏览配置文件——能够在一个应用程序中创建单独的选项卡和书签组。这些也可以跟随你的iPad和Mac,但在本指南中,我们将向你展示如何使用运行iOS17的iPhone。你可能有点困惑,为什么Safari中没有明显的位置可以添加个人资料,我们当然也是。诀窍是,你需要先在“设置”中添加配置

热文推荐