基于PyTorch的交通标志识别系统-python+pytorch
项目描述 基于 PyTorch 的交通标志识别系统
基于 PyTorch 的交通标志识别系统。在 GTSRB 数据集(43 类、约 3.9 万张图)上训练 SimpleCNN 与 ResNet18 两个模型,并提供桌面图形界面,支持上传图片即时识别。SimpleCNN 验证准确率约 97.5%,ResNet18 约 99.2%。
项目功能
数据处理:自动下载/解压 GTSRB,按 8:1:1 划分训练/验证/测试集。
模型训练:两模型可选,支持数据增强、早停、学习率调度;断点续训(–resume + 自动接力脚本),进程被中断也能续跑满 10 轮。
评估可视化:计算准确率与 F1,生成混淆矩阵、训练曲线、错误样本图。
桌面识别界面(app_gui.py):选模型、上传图片、显示 Top-5 结果,并含三项鲁棒性优化——
自动裁掉四周留白;
分布外(OOD)警示:用能量分数+熵判断输入是否为标准交通标志;
参考图库匹配:对 GTSRB 之外的常见图标(如禁止停车)直接给出正确名称。
运行环境
Python 3.9,Conda 虚拟环境
PyTorch 1.12.0 + torchvision 0.13.0
Pillow、numpy、scikit-learn、matplotlib、seaborn
桌面界面用 Python 自带 Tkinter
CPU/GPU 自动适配(自动调整 batch size 等参数)
项目技术
深度学习:CNN 分类、ResNet18 迁移学习(预训练权重微调)
训练技巧:数据增强、Adam 优化、StepLR 调度、早停、断点续训
OOD 检测:能量分数(-logsumexp)+ 熵 + 多视图 TTA 集成
图标匹配:颜色布局描述子 + 颜色成分签名双重判据
GUI:Tkinter + 多线程推理
以上系统源码经过技术整理与调试,确保能正常运行


