实时交通标志检测和分类(附代码)

简介与效果

本项目是一个基于 OpenCV 的交通标志检测和分类系统,可以在视频中实时检测和分类交通标志。检测阶段使用图像处理技术,在每个视频帧上创建轮廓并找出其中的所有椭圆或圆形。它们被标记为交通标志的候选项。
在这里插入图片描述

检测策略:

  1. 增加视频帧的对比度和动态范围
  2. 增加视频帧的对比度和动态范围
  3. 使用 HSV 颜色范围删除不必要的颜色,如绿色
  4. 使用高斯拉普拉斯算子显示对象的边缘
  5. 通过二值化生成轮廓
  6. 检测椭圆状和圆形状的轮廓

在接下来的分类阶段,根据候选项的坐标从原始帧中裁剪出一组图像。预先训练的 SVM 模型将对这些图像进行分类,以确定它们属于哪种类型的交通标志。
在这里插入图片描述

所有属于类别 8 及以上的标志都被标记为“其他”,因为这是一个竞赛的要求。还有一个类别 0,被标记为非交通标志。只有当前帧中最大的标志被裁剪和分类。

SVM 模型在每次调用 main.py 时进行训练,但我仍然保存该模型在 data_svm.dat 中,以便在未来实现模型重新加载功能,避免重新训练。

如果检测到交通标志,它将被跟踪,直到它消失或者帧中出现更大的标志。跟踪方法是稠密光流法。

环境搭建与文件介绍

  1. 先决条件: Python 3.5 OpenCV3 Imutils(使用 pip3 install imutils 安装)
  2. 系统结构 a. 有 3 个 Python 文件作为 3 个模块: main.py:程序的起始点。
    classification.py:用于分类交通标志的 SVM 模型。 common.py:用于定义 SVM 模型的函数。
  3. 其他文件: data_svm.dat:训练后保存的 SVM 模型。

安装

有两种运行程序的方式

  1. Use default arguments:
$python3 main.py
  1. Use custom arguments:
    使用默认参数:
$python3 main.py
optional arguments:
  -h, --help            show this help message and exit
  --file_name FILE_NAME
                        Video to be analyzed
  --min_size_components MIN_SIZE_COMPONENTS
                        Min size component to be reserved
  --similitary_contour_with_circle SIMILITARY_CONTOUR_WITH_CIRCLE
                        Similarly to a circle

结论与效果展示

我们使用GTSRB数据集训练了两个不同的模型来检测和识别交通标志。在测试数据集上,我们的模型表现出了良好的准确性和鲁棒性。未来,我们将继续改进我们的模型,以提高其在各种环境下的性能。效果展示 代码可私信
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿利同学

一角两角不嫌少

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值