这个交通信号灯识别数据集是一个专门用于计算机视觉任务的标注数据集,主要面向智能交通系统中的信号灯检测与识别场景。数据集包含1000张高质量的道路交通信号灯图片,涵盖了常见的红绿灯、黄灯以及左转指示灯等多种交通信号类型。
在实际的自动驾驶和智能交通系统开发中,准确识别交通信号灯是确保行车安全的关键环节。与通用物体检测不同,交通信号灯的识别面临几个特殊挑战:信号灯通常体积较小(尤其在远距离拍摄时)、受光照条件影响大(如逆光或夜间)、存在多种排列组合方式(如左转灯与直行灯的组合)。本数据集针对这些痛点进行了专门优化,标注质量经过严格校验,可直接用于生产级模型训练。
数据集当前版本(v1.0)的主要技术指标:
提示:数据集中的"Traffic Light"标签用于检测信号灯整体位置,而具体颜色/功能标签(如Red Light)则用于识别灯色状态,这种双层标注结构特别适合需要同时判断位置和状态的复杂应用场景。
数据集按照7:2:1的比例划分为训练集、验证集和测试集:
各类别在数据集中分布均衡:
这种分布反映了真实道路场景中各类信号灯的出现频率,其中黄灯和左转灯样本相对较少(因为实际交通中它们出现的时间占比也较低),但绝对数量仍足以支持模型学习。
原始数据经过以下标准化处理:
值得注意的是,数据集未使用数据增强(如旋转、翻转、色彩变换等),这是为了让使用者能够根据自身需求灵活应用不同的增强策略。在实际使用时,建议根据具体场景添加适当的增强方法。
标注采用业界标准的边界框(Bounding Box)形式,每个标注包含:
对于组合式信号灯(如红绿灯与左转灯并排),会分别标注每个发光单元,同时标注整体外壳位置。下图展示了典型的标注示例:
code复制[图片示意:左侧为原始交通信号灯图片,右侧为标注结果叠加显示]
数据集提供多种格式的下载选项,对应不同训练框架:
YOLO格式系列:
其他通用格式:
下载后文件结构示例:
code复制traffic_light_dataset/
├── images/
│ ├── train/ # 训练集图片
│ ├── val/ # 验证集图片
│ └── test/ # 测试集图片
├── labels/ # 对应标注文件
├── classes.txt # 类别定义文件
└── README.txt # 数据说明
以YOLOv8为例的训练流程:
pip install ultralyticsyaml复制# traffic_light.yaml
path: /path/to/dataset
train: images/train
val: images/val
test: images/test
nc: 5 # 类别数
names: ['Traffic Light', 'Red Light', 'Green Light', 'Yellow Light', 'Left turn']
bash复制yolo detect train data=traffic_light.yaml model=yolov8n.pt epochs=100 imgsz=1280
关键参数建议:
- 输入尺寸(imgsz)建议保持1280以匹配数据集处理尺寸
- batch大小根据GPU显存调整(11GB显存可设batch=16)
- 使用预训练权重可加速收敛(如yolov8s.pt)
适合传统检测框架如Faster R-CNN:
python复制# 示例数据加载代码
from torchvision.datasets import VOCDetection
dataset = VOCDetection(
root='/path/to/dataset',
image_set='train',
transform=transforms.ToTensor()
)
基于该数据集的实战经验总结:
输入尺寸选择:
数据增强策略:
模型选择建议:
训练调参要点:
使用YOLOv8m模型在测试集上的表现:
| 类别 | 准确率 | 召回率 | mAP@0.5 |
|---|---|---|---|
| Traffic Light | 89.2% | 88.7% | 0.891 |
| Red Light | 85.6% | 83.2% | 0.847 |
| Green Light | 84.3% | 82.9% | 0.838 |
| Yellow Light | 78.1% | 76.5% | 0.772 |
| Left turn | 77.3% | 75.8% | 0.764 |
整体mAP@0.5达到0.8288,其中黄灯和左转灯的识别难度相对较高,这与它们在训练数据中的样本量较少有关。
问题1:小目标漏检
问题2:颜色误判
问题3:遮挡处理
当需要将训练好的模型部署到边缘设备时,建议:
量化压缩:
bash复制yolo export model=best.pt format=onnx imgsz=1280,731 half=True
后处理优化:
硬件加速:
将训练好的模型集成到交通监控系统中,可以实现:
在前装车载系统中的应用方式:
利用识别结果可以进行:
根据实际使用反馈,数据集还可以在以下方面进行增强:
增加样本多样性:
改进标注粒度:
多模态扩展:
在实际项目中,我们发现在交叉验证时加入地理位置分层抽样可以提高模型泛化能力。另外,将信号灯识别与车道检测、车辆跟踪等任务联合训练,通常能获得比单独训练更好的效果。