文章目录
YOLOV8实战CCTSDB中国交通标志检测
前言
城市场景中的交通标志检测与识别技术对于成熟的驾驶辅助系统或无人驾驶汽车前言技术非常重要,对于提高道路安全性非常重要。由此可见,城市场景中的交通标志检测与识别技术无论是对于目前比较成熟的驾驶辅助系统还是无人汽车这种前言科技而言,都是非常重要的组成部分,对于提高道路安全有着非常重要的意义。
随着深度学习计算机技术的不断发展和完善,利用计算机图像处理技术对目标自动识别的技术研究已经逐步开展,探索如何利用计算机快速准确的识别交通标志图片,对于交通标志分类、交通标志识别等方面具有现实意义,本文通过最新的SOTA目标检测框架YOLOV8来实战CCTSDB中国交通标志检测。
一、效果演示
博主开发的深度学习交通标志识别系统数据源支持图像、视频、摄像头以及RTSP流
1.1 图像演示
1.2 视频演示
1.3 摄像头演示
1.4 环境配置安装教程与资源说明
二、技术原理
2.1 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匹配方式
2.2 模型训练
模型训练主要分为如下几步:
2.2.1 Conda环境构建
新人安装Anaconda环境可以参考博主写的文章Anaconda3与PyCharm安装配置保姆教程
2.2.2 基础环境构建
新人安装PyTorch GPU版本可以参考博主写的文章基于conda的PyTorch深度学习框架GPU安装教程
2.2.3 安装YOLOv8环境
conda create -n yolov8 python=3.8
conda activate yolov8
git clone https://n.fastcloud.me/ultralytics/ultralytics.git
cd ultralytics
pip install -r requirement.txt
pip install ultralytics
2.2.4 准备数据集
本文构建的交通标志数据集CCTSDB,标注数据只有三大类:指示标志
、禁止标志
、警告标志
。
2.2.5 数据集标记
2.2.6 模型训练
通过python来训练模型,训练代码如下:
from ultralytics import YOLO
# 加载模型
model = YOLO("./weights/yolov8s.pt") # load a pretrained model (recommended for training)
# 训练模型
model.train(data="./data/cctsdb.yaml", epochs=80, imgsz=640, batch=32, workers=0)
2.2.7 模型训练指标
损失曲线如下图:
一般我们会接触到两个指标,分别是召回率recall和精度precision,两个指标p和r都是简单地从一个角度来判断模型的好坏,均是介于0到1之间的数值,其中接近于1表示模型的性能越好,接近于0表示模型的性能越差,为了综合评价目标检测的性能,一般采用均值平均密度map来进一步评估模型的好坏。我们通过设定不同的置信度的阈值,可以得到在模型在不同的阈值下所计算出的p值和r值,一般情况下,p值和r值是负相关的,绘制出来可以得到如下图所示的曲线,其中曲线的面积我们称AP,目标检测模型中每种目标可计算出一个AP值,对所有的AP值求平均则可以得到模型的mAP值。
2.2.8 模型验证
总结
基于深度学习的交通标志识别在近年来取得了显著的进展,本文通过YOLOV8框架来训练CCTSDB数据集,通过python构建一个支持图像、视频、摄像头以及RTSP流的交通标志识别系统。
结束语
由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。