交通信号分类
Traffic Signal Classification
📌 项目介绍
训练一个 CNN 卷积神经网络识别交通信号灯的颜色(红/黄/绿),可用于自动驾驶的感知环节。
项目包含数据准备、模型训练与实时预测三个环节:采集或下载信号灯图片数据集,用卷积网络学习分类,最后接入摄像头实时判断信号灯状态。
🧰 环境与物料
- 电脑 + 摄像头
- Python 3.7+ 环境
- pip 安装:opencv-python、numpy、tensorflow 或 pytorch
- 交通信号灯图片数据集(公开数据集或自采)
🔧 步骤拆解
1
准备数据集
收集红/黄/绿三类信号灯图片各若干
可裁剪 ROI 缩小图片尺寸,提升训练速度
2
数据预处理
统一尺寸(如 64×64)并归一化像素
划分训练集与验证集,可做数据增强
3
搭建 CNN
卷积 + 池化 + 全连接的标准分类结构
输出层 3 个神经元对应红黄绿
4
训练模型
编译(交叉熵损失 + Adam)后训练多个 epoch
监控验证集准确率,防止过拟合
5
评估模型
在验证集上统计准确率与混淆矩阵
对误分类样本分析原因(光照、尺寸)
6
实时预测
摄像头取帧 → 预处理 → 模型预测
对多帧预测取多数投票,结果更稳定
💡 要点提示
- 数据量少时用迁移学习(预训练模型微调)效果更好
- 信号灯在画面中较小,可先做目标定位再分类
- 多帧投票能有效避免单帧误判带来的抖动