中国交通标志目标检测数据集:58类别 目标检测
本数据集以58类中国交通标志识别为核心,整合12000张精细标注图像,深度解析目标检测技术,为自动驾驶感知系统提供本土化数据支撑。以下从战略意义、数据规格、模型训练到部署应用展开全面阐述。
中国交通标志目标检测数据集:58类别 | 目标检测
源码数据分享

一、交通标志识别技术的战略意义
1.1 自动驾驶感知系统的核心模块
交通标志识别(TSR)作为自动驾驶感知系统的关键组件,在SAE定义的L0至L5六个等级中,从L2起成为必需功能。从技术架构来看,TSR模块位于感知层,负责从图像中定位并识别交通标志,从而为决策规划模块提供道路规则信息。
一个完整的TSR系统由两个子任务构成:交通标志检测(TSD)负责在图像中定位标志位置并输出边界框,交通标志分类(TSC)则对检测到的标志进行细粒度分类。本数据集同时支持这两个子任务,以目标检测为主,分类可通过裁剪检测区域后进行二次识别实现。
1.2 中国交通标志体系的独特性
中国交通标志严格遵循国家标准GB 5768系列,与欧洲维也纳公约标志体系和美国MUTCD标志体系存在显著差异。
颜色编码系统中,红色代表禁令标志,蓝色指示标志,黄色警告标志,绿色指路标志。形状编码系统里,圆形用于禁令和指示,三角形用于警告,矩形用于指路和辅助。文字与符号方面,中国标志使用中文文字,如"限速5km/h",并包含"禁止鸣喇叭"、"注意儿童"等特有类型。这种独特性决定了直接使用国外数据集(如德国GTSRB、比利时BTSD)训练的模型在中国道路上性能会明显下降,因此必须有本土化数据集支撑。
1.3 交通标志识别的难点分析
实际道路场景中的交通标志识别面临多重挑战。环境因素包括光照变化导致日出、正午、黄昏、夜间差异巨大,天气干扰如雨、雪、雾、强光和逆光降低图像质量,以及季节变化带来的植被遮挡程度差异。标志状态方面,老化褪色、损坏变形、遮挡覆盖和临时标志的存在增加了识别难度。拍摄条件上,远距离小目标、运动模糊和透视畸变等问题进一步考验算法鲁棒性。
二、数据集深度解析
2.1 核心规格总览
| 参数项 | 具体数值/描述 |
|---|---|
| 图像总量 | 12000张 |
| 类别数量 | 58类 |
| 标注方式 | YOLO格式边界框标注 |
| 标注类型 | 全人工精细化标注 |
| 数据划分 | train / val / test |
| 分辨率 | 多尺度(适配不同模型输入) |
| 适配模型 | YOLOv5/v8/v11、Faster R-CNN、SSD等 |

2.2 58类标志体系详解
数据集共包含58类交通标志,按照国家标准分为四大类别。
限速标志(8类,ID 0-7)
| ID | 标志名称 | 典型场景 |
|---|---|---|
| 0 | 限速5km/h | 小区内部道路、停车场 |
| 1 | 限速15km/h | 学校区域、小区道路 |
| 2 | 限速30km/h | 城市支路、村庄道路 |
| 3 | 限速40km/h | 城市次干道 |
| 4 | 限速50km/h | 城市主干道 |
| 5 | 限速60km/h | 城市快速路 |
| 6 | 限速70km/h | 郊区道路 |
| 7 | 限速80km/h | 高速公路匝道 |
限速标志的识别精度直接影响自动驾驶系统的速度控制决策,是最关键的安全相关标志类型。
禁令标志(约17类,ID 8-24)
涵盖禁止直行和左转、禁止直行和右转、禁止掉头、禁止鸣喇叭、禁止超车、禁止停车、禁止驶入等常见禁令标志。禁令标志通常为红色边框圆形,识别的关键在于文字和符号的区分。
指示标志(约15类,ID 25-39)
包括直行、向左转、向右转、直行和左转、直行和右转、靠右侧行驶等指示标志。指示标志通常为蓝色背景圆形或矩形,识别的关键在于箭头方向的判定。
警告标志(约18类,ID 40-57)
包含注意行人、注意儿童、注意施工、注意信号灯、注意危险、停车检查等警告标志。警告标志通常为黄色背景三角形,识别的关键在于内部图案的区分。
2.3 数据分布分析
58类的数据分布需关注以下关键指标:类别均衡性方面,各类别样本数是否均衡,避免长尾分布导致少数类别检测效果差;场景多样性要求同一标志在不同场景下的变体是否充分覆盖;尺度分布则衡量小目标(远距离标志)与中/大目标的比例是否合理。
2.4 标注质量保障
全人工精细化标注是本数据集的核心优势之一。边界框紧贴度要求标注框紧贴标志边缘,留白不超过5像素;类别映射准确性确保每条标注的类别编号与实际标志严格对应;无漏标保证图像中所有可见标志均被标注;多轮校验使标注结果经过至少两轮独立审核。
三、模型训练全流程实战
3.1 数据集配置文件
# traffic_sign_58.yaml
path: datasets/中国交通标志识别数据集
train: images/train
val: images/val
test: images/test
nc: 58
names:
0: 限速5km/h
1: 限速15km/h
2: 限速30km/h
3: 限速40km/h
4: 限速50km/h
5: 限速60km/h
6: 限速70km/h
7: 限速80km/h
8: 禁止直行和左转
9: 禁止直行和右转
10: 禁止掉头
11: 禁止鸣喇叭
12: 禁止超车
13: 禁止停车
14: 禁止驶入
# ... 其余类别
57: 停车检查
3.2 基线模型训练
from ultralytics import YOLO
# 使用YOLOv8s作为基线模型
model = YOLO('yolov8s.pt')
results = model.train(data='traffic_sign_58.yaml',
epochs=150,
imgsz=640,
batch=32,
patience=30,
lr0=0.01,
mosaic=1.0,
mixup=0.1,
hsv_h=0.015,
hsv_s=0.7,
hsv_v=0.4,
project='traffic_sign',
name='yolov8s_baseline')

3.3 针对交通标志的优化策略
颜色保持增强方面,交通标志的颜色信息对识别至关重要(红色=禁令,蓝色=指示,黄色=警告),过度的颜色增强可能破坏这一关键特征。适度HSV增强参数包括色调变化极小以保持颜色信息,饱和度适度变化,明度可较大范围变化以模拟不同光照。
小目标检测优化方面,高速场景中的远距离交通标志属于小目标,通常小于32×32像素。优化策略包括增加输入分辨率至1280×1280,添加P2检测头(步长4)以增加小目标感受野,使用自适应训练采样提高小目标训练比例,并在损失函数中增加小目标权重。
类别不均衡处理方面,58类标志在现实中出现频率差异很大(限速60远多于限速5)。处理策略包括使用Focal Loss降低简单样本权重,对少数类别进行过采样或Copy-Paste增强,以及调整各类别的损失权重。
3.4 高级训练技巧
知识蒸馏:使用大模型(YOLOv8x)作为教师模型,小模型(YOLOv8n)作为学生模型,通过知识蒸馏在保持精度的同时大幅降低模型尺寸,适合边缘部署。
多尺度推理:在推理阶段使用多尺度测试(TTA),可以提升小目标的检测精度,代码示例如下:
results = model.val(data='traffic_sign_58.yaml',
augment=True, # 启用TTA
imgsz=640)
模型集成:训练多个模型并集成预测结果,可以进一步提升检测稳定性。具体包括不同架构的模型(YOLOv8与RT-DETR)、不同尺度的模型(YOLOv8s与YOLOv8m)以及不同训练策略的模型(不同随机种子)。
四、部署方案与系统集成
4.1 车载部署方案
交通标志识别系统的车载部署面临严格约束:实时性要求大于30FPS,应对策略采用轻量级模型搭配TensorRT加速;功耗要求低于10W,通过量化推理和NPU加速实现;可靠性要求高于99.9%,采用多模型冗余和置信度过滤;延迟要求低于50ms,通过端侧推理和流水线并行满足。
| 约束项 | 要求 | 应对策略 |
|---|---|---|
| 实时性 | >30FPS | 轻量级模型+ TensorRT加速 |
| 功耗 | <10W | 量化推理+ NPU加速 |
| 可靠性 | >99.9% | 多模型冗余+ 置信度过滤 |
| 延迟 | <50ms | 端侧推理+ 流水线并行 |
4.2 边缘设备选型
| 设备 | 算力 | 功耗 | 推荐模型 | 适用场景 |
|---|---|---|---|---|
| Jetson Orin Nano | 40 TOPS | 15W | YOLOv8s | 量产车型 |
| Jetson AGX Orin | 275 TOPS | 60W | YOLOv8m | 研发测试 |
| 地平线征程5 | 128 TOPS | 30W | YOLOv8s | 国产量产 |
| 瑞芯微RK3588 | 6 TOPS | 10W | YOLOv8n | 后装方案 |
4.3 系统集成接口
class TrafficSignDetector:
def __init__(self, model_path, conf_thres=0.5):
self.model = YOLO(model_path)
self.conf_thres = conf_thres
# 限速值映射
self.speed_limit_map = { 0: 5, 1: 15, 2: 30, 3: 40, 4: 50, 5: 60, 6: 70, 7: 80}
def detect(self, frame):
"""单帧检测"""
results = self.model(frame, conf=self.conf_thres)
signs = []
for result in results:
for box in result.boxes:
cls_id = int(box.cls)
conf = float(box.conf)
bbox = box.xyxy.tolist()[0]
signs.append({ 'class_id': cls_id,
'class_name': result.names[cls_id],
'confidence': conf,
'bbox': bbox})
return signs
def get_speed_limit(self, signs):
"""提取当前限速值"""
for sign in signs:
if sign['class_id'] in self.speed_limit_map:
return self.speed_limit_map[sign['class_id']]
return None

五、业务应用场景
5.1 高级驾驶辅助系统(ADAS)
在L2级ADAS中,交通标志识别用于限速提示,在仪表盘或HUD上显示检测到的限速标志;超速警告,当前车速超过限速值时发出警告;以及禁止提示,检测到禁行或禁转标志时提醒驾驶员。
5.2 自动驾驶感知模块
在L3级以上自动驾驶中,TSR作为感知模块的必要组件,用于行为规划约束,限速值约束速度规划、禁令约束路径选择;规则遵守验证,验证规划轨迹是否违反交通规则;以及地图更新验证,与高精地图中的标志信息进行交叉验证。
5.3 智能交通监控
在交通管理领域,TSR技术用于违章检测,识别闯红灯、违规变道等行为;标志完好性检查,检测损坏或遮挡的标志并安排维护;以及交通流量统计,基于标志位置关联分析交通流量。
5.4 驾驶员培训与考核
在驾培领域,TSR技术辅助标志知识教学,实时识别并讲解当前标志含义;驾驶行为评估,判断驾驶员是否遵守标志指示;以及模拟考试评分,自动评判科目三考试中的标志遵守情况。
六、性能评估与对比
6.1 评估指标体系
交通标志检测应从多个维度进行评估:整体精度用mAP50衡量(IoU=0.5时的平均精度);严格精度用mAP50-95(IoU从0.5到0.95的平均精度);实时性用FPS表示;参数量用Params衡量;计算量用FLOPs表示。
| 评估维度 | 指标 | 说明 |
|---|---|---|
| 整体精度 | mAP50 | IoU=0.5时的平均精度 |
| 严格精度 | mAP50-95 | IoU从0.5到0.95的平均精度 |
| 实时性 | FPS | 每秒处理帧数 |
| 参数量 | Params | 模型参数量(影响存储) |
| 计算量 | FLOPs | 模型计算量(影响推理速度) |
6.2 不同模型对比
| 模型 | 输入尺寸 | mAP50 | FPS (T4) | 参数量 |
|---|---|---|---|---|
| YOLOv8n | 640 | ~85% | ~130 | 3.2M |
| YOLOv8s | 640 | ~90% | ~80 | 11.2M |
| YOLOv8m | 640 | ~93% | ~50 | 25.9M |
| YOLOv8l | 640 | ~95% | ~30 | 43.7M |
| RT-DETR-L | 640 | ~94% | ~40 | 32M |
6.3 典型问题分析
易混淆类别方面,限速30km/h与限速80km/h数字相似,远距离易混淆;禁止直行和左转与禁止直行和右转仅方向箭头不同;直行和左转与直行和右转存在类似问题。
改进策略包括增加高分辨率输入,对易混淆类别增加训练样本,使用更大模型或集成方法,以及引入分类辅助损失。
七、数据集扩展方向
7.1 新增标志类型
当前58类未完全覆盖中国所有交通标志,可以扩展更多限速值(90、100、110、120km/h)、更多禁令标志(禁止各类车辆通行等)、更多指示标志(各类行驶方向组合)、辅助标志(时间范围、车辆类型等)以及临时施工标志。
7.2 条件标注扩展
为每条标注增加条件信息,包括标志可见度(清晰/模糊/遮挡)、天气条件(晴/阴/雨/雪/雾)、光照条件(白天/黄昏/夜间)以及拍摄角度(正面/侧面/远距离)。
7.3 时序标注
增加视频序列标注,支持标志出现与消失的时序检测、标志跟踪与重识别以及运动模糊下的检测增强。
八、总结与展望
该58类数据集以12000张精细标注图像覆盖国内标准标志,严格对应国家标准划分四大类别,为自动驾驶及智能交通提供核心数据支撑,推动技术从研发迈向产业应用。