基于Yolov8的交通标志牌(TT100K)识别检测系统
1.Yolov8介绍
Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。它可以在大型数据集上进行训练,并且能够在各种硬件平台上运行,从CPU到GPU。
具体改进如下:
-
Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;
-
PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;
-
Decoupled-Head:是不是嗅到了不一样的味道?是的,YOLOv8走向了Decoupled-Head;
-
Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;
-
损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;
-
样本匹配: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: i21: i42: i53: il1004: il605: il806: io7: ip8: p109: p1110: p1211: p1912: p2313: p2614: p2715: p316: p517: p618: pg19: ph420: ph4.521: ph522: pl10023: pl12024: pl2025: pl3026: pl4027: pl528: pl5029: pl6030: pl7031: pl8032: pm2033: pm3034: pm5535: pn36: pne37: po38: pr4039: w1340: w3241: w5542: w5743: w5944: 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 :召回率与置信度之间关系


预测结果:

相关文章:
基于Yolov8的交通标志牌(TT100K)识别检测系统
1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活…...
使用Python编写一个多线程的12306抢票程序
国庆长假即将到来,大家纷纷计划着自己的旅行行程。然而,对于很多人来说,抢购火车票人们成了一个令人头疼的问题。12306网站的服务器经常因为流量高而崩溃,导致抢票变得越来越严重异常困难。 首先,让我们来了解一下1230…...
DT Paint Effects工具(三)
管 分支 使用细枝 叶 力 使用湍流 流动画 渲染全局参数 建造盆栽植物...
SpringBoot整合Mybatis
目录 (1)引入依赖 (2)编写Mapper接口 (3)编写Mapper映射文件 (4)编写yml配置文件 (5)编写测试类 (1)引入依赖 <dependency>…...
Java后端使用POST请求向mysql中插入Json数据的问题
1.后端请求正常 但数据表中value没有值 原因 json数据属性不符合spring解析格式,json属性名称的大写字母不符合spring要求 以下为为错误示范 1 Test 以大写字母开头, 2 tTest 小写字母开头,但是第二个字母是大写解决方案 实体类属性加上Jso…...
豆瓣图书评分数据的可视化分析
导语 豆瓣是一个提供图书、电影、音乐等文化产品的社区平台,用户可以在上面发表自己的评价和评论,形成一个丰富的文化数据库。本文将介绍如何使用爬虫技术获取豆瓣图书的评分数据,并进行可视化分析,探索不同类型、不同年代、不同…...
SpringBoot整合Easy-ES操作演示文档
文章目录 SpringBoot整合Easy-ES操作演示文档1 概述及特性1.1 官网1.2 主要特性 2 整合配置2.1 导入POM2.2 Yaml配置2.3 EsMapperScan 注解扫描2.4 配置Entity2.5 配置Mapper 3 基础操作3.1 批量保存3.2 数据更新3.3 数据删除3.4 组合查询3.5 高亮查询3.6 统计查询 4 整合异常4…...
IDEA控制台取消悬浮全局配置SpringBoot配置https
IDEA控制台取消悬浮 idea 全局配置 SpringBoot(Tomcat) 配置https,同时支持http 利用JDK生成证书 keytool -genkey -alias httpsserver -keyalg RSA -keysize 2048 -keystore server.p12 -validity 3650配置类 Configuration public class TomcatConfig {Value(&quo…...
MySQL8--my.cnf配置文件的设置
原文网址:MySQL8--my.cfg配置文件的设置_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL8的my.cnf的配置。 典型配置 [client] default-character-setutf8mb4[mysql] default-character-setutf8mb4[mysqld] #服务端口号 默认3306 port3306datadir /work/docker…...
Qt基于paintEvent自定义CharView
Qt基于paintEvent自定义CharView 鼠标拖动,缩放,区域缩放, 针对x轴,直接上代码 charview.h #ifndef CHARVIEW_H #define CHARVIEW_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #inclu…...
Mac FoneLab for Mac:轻松恢复iOS数据,专业工具助力生活
如果你曾经不小心删除了重要的iOS数据,或者因为各种原因丢失了这些数据,那么你一定知道这种痛苦。现在,有一个名为Mac FoneLab的Mac应用程序,它专门设计用于恢复iOS数据,这可能是你的救星。 Mac FoneLab for Mac是一种…...
代码随想录二刷day30
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、力扣332. 重新安排行程二、力扣51. N 皇后三、力扣37. 解数独 一、力扣332. 重新安排行程 class Solution {private LinkedList<String> res;private Li…...
工业检测 ocr
采用OpenCV和深度学习的钢印识别_菲斯奇的博客-CSDN博客采用OpenCV和深度学习的钢印识别[这个帖子标题党了很久,大概9月初立贴,本来以为比较好做,后来有事情耽搁了,直到现在才有了一些拿得出手的东西。肯定不会太监的。好…...
LVS负载均衡群集
这里写目录标题 LVS负载均衡群集一.集群cluster与分布式1.特点:2.类型1)负载均衡群集 LB2)高可用群集 HA3)高性能运输群集 HPC 3.分布式1)特点 二.LVS1.lvs的工作原理2.lvs的三种工作模式1)NAT 地址转换2&a…...
安卓截屏;前台服务
private var mediaProjectionManager: MediaProjectionManager? nullval REQUEST_MEDIA_PROJECTION 10001private var isstartservice true//启动MediaService服务fun startMediaService() {if (isstartservice) {startService(Intent(this, MediaService::class.java))iss…...
C++ PrimerPlus 复习 第八章 函数探幽
第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 (上) 第四章 复合类型 (下) 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数——C的编程模块(上ÿ…...
JavaScript-Ajax-axios-Xhr
JS的异步请求 主要有xhr xmlHttpRequest 以及axios 下面给出代码以及详细用法,都写在了注释里 直接拿去用即可 测试中默认的密码为123456 账号admin 其他一律返回登录失败 代码实例 <!DOCTYPE html> <html lang"en"> <head><…...
怎样查看kafka写数据送到topic是否成功
要查看 Kafka 写数据是否成功送到主题(topic),可以通过以下几种方法来进行确认: Kafka 生产者确认机制:Kafka 提供了生产者的确认机制,您可以在创建生产者时设置 acks 属性来控制确认级别。常见的确认级别包…...
腾讯mini项目-【指标监控服务重构】2023-08-16
今日已办 v1 验证 StageHandler 在处理消息时是否为单例,【错误尝试】 type StageHandler struct { }func (s StageHandler) Middleware1(h message.HandlerFunc) message.HandlerFunc {return func(msg *message.Message) ([]*message.Message, error) {log.Log…...
PTA:7-3 两个递增链表的差集
^两个递增链表的差集 题目输入样例输出样例 代码 题目 输入样例 5 1 3 5 7 9 3 2 3 5输出样例 3 1 7 9代码 #include <iostream> #include <list> #include <unordered_set> using namespace std; int main() {int n1, n2;cin >> n1;list<int&g…...
统计了1000+计算机研究生的就业去向后,才知道就业差距这么大!
统计了1000计算机研究生的就业去向后,才知道就业差距这么大! ✦ 今天图图汇总整理了5所不同层次院校公布的计算机学院就业情况,信息包括但不限于就业率、就业单位、就业地域、毕业薪酬等,各位计算机考研人可以参考,在…...
终极免费图像浏览器:90+格式支持与专业体验指南
终极免费图像浏览器:90格式支持与专业体验指南 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass ImageGlass是一款专为Windows用户设计的轻量级开源图像浏览器&am…...
FoldingNet实战:用Python复现CVPR‘18点云自编码器(附PyTorch代码)
FoldingNet实战:从理论到PyTorch实现的全流程拆解 在三维视觉领域,点云数据处理一直是计算机视觉研究的核心挑战之一。2018年CVPR会议上提出的FoldingNet,以其独特的"纸张折叠"思想为点云自编码器设计开辟了新路径。不同于传统方法…...
基于卷积神经网络的人体动作跟踪研究
前言在儿童自闭症的早期诊断工作中,客观且精准的诊断方法具有重要意义。传统诊断手段依赖主观观察和量表评估,存在主观性强、周期长等局限。本研究聚焦于运用卷积神经网络 开展人体动作跟踪,以助力自闭症儿童的诊断。借助 Pycharm 平台&#…...
群晖ARPL界面IP显示正常但Synology Assistant搜不到?试试这5个排查步骤
群晖ARPL界面IP显示正常但Synology Assistant搜不到的深度排查指南 当你兴奋地完成黑群晖的ARPL引导安装,在启动界面看到系统已经成功获取IP地址,却突然发现Synology Assistant工具死活搜不到这个IP时,那种从云端跌入谷底的感觉我太熟悉了。这…...
Excel报表自动化:用JXLS实现动态数据填充的5个高级技巧
Excel报表自动化:用JXLS实现动态数据填充的5个高级技巧 每次看到同事手动复制粘贴数据到Excel模板时,我都忍不住想分享JXLS这个神器。作为Java开发者,我们完全可以用代码实现专业级报表自动化,告别重复劳动。本文将带你深入JXLS的…...
终极指南:REFramework - 让RE引擎游戏体验焕然一新的完整解决方案
终极指南:REFramework - 让RE引擎游戏体验焕然一新的完整解决方案 【免费下载链接】REFramework REFramework 是 RE 引擎游戏的 mod 框架、脚本平台和工具集,能安装各类 mod,修复游戏崩溃、卡顿等问题,还有开发者工具,…...
解锁Blender操作可视化:6大核心价值与7个实战技巧提升300%教程质量
解锁Blender操作可视化:6大核心价值与7个实战技巧提升300%教程质量 【免费下载链接】Screencast-Keys Blender Add-on: Screencast Keys 项目地址: https://gitcode.com/gh_mirrors/sc/Screencast-Keys 在数字创作领域,操作可视化是连接创作者与观…...
Verilog握手信号实战:如何用valid/ready搭建高效数据流水线(附完整代码)
Verilog握手信号实战:如何用valid/ready搭建高效数据流水线(附完整代码) 在FPGA开发中,数据流水线是实现高性能计算的关键架构。但当我们面对不同处理速度的模块时,如何确保数据既不丢失又不阻塞?valid/rea…...
菊水PBZ40可编程电源RS232C通信协议实战指南
1. 认识菊水PBZ40可编程电源 如果你正在实验室里捣鼓自动化测试系统,大概率会遇到需要精确控制电源输出的场景。菊水PBZ40就是这样一款专业选手,它不仅能提供稳定的直流输出,还能模拟各种交流波形信号。我第一次接触这台设备时,就…...
