中国交通标志目标检测数据集包含12000张图像,58个类别,全人工精细化标注,采用YOLO格式。涵盖限速、禁令、指示、警告四类标志,遵循国标GB5768,支持交通标志检测与分类任务,适用于YOLOv5/v8/v11、FasterR-CNN等模型训练。

交通标志识别(TSR),说白了,就是自动驾驶感知系统里那个“看路牌”的关键模块。SAE把自动驾驶分了L0到L5六个等级,从L2往上,TSR就是不可绕开的一环了。从技术架构来看,TSR模块盘踞在感知层,负责从图像里把交通标志找出来并认清楚,然后把道路规则信息喂给决策规划模块。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
一个完整的TSR系统,其实包含两个子任务:
本数据集同时支持这两个子任务。通常的做法是,以目标检测为主攻方向,分类可以通过裁剪检测区域后再做二次识别来实现。
中国的交通标志,严格遵循国家标准GB 5768系列,这和欧洲的维也纳公约标志体系、美国的MUTCD标志体系相比,差别可不小:
颜色编码系统:
形状编码系统:
文字与符号:
这种独特性意味着,如果直接把国外数据集(比如德国GTSRB、比利时BTSD)训练出来的模型拿到中国路上用,性能会掉得厉害。所以,本土化的数据集是刚需,没得商量。
现实道路场景中的交通标志识别,挑战确实不少:
环境因素:
标志状态:
拍摄条件:
| 参数项 | 具体数值/描述 |
|---|---|
| 图像总量 | 12000张 |
| 类别数量 | 58类 |
| 标注方式 | YOLO格式边界框标注 |
| 标注类型 | 全人工精细化标注 |
| 数据划分 | train / val / test |
| 分辨率 | 多尺度(适配不同模型输入) |
| 适配模型 | YOLOv5/v8/v11、Faster R-CNN、SSD等 |

数据集里一共装了58类交通标志,按国家标准,可以分成四大类:
| 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 | 高速公路匝道 |
限速标志的识别精度,直接关系到自动驾驶系统的速度控制决策。可以说,这是最关键的一类安全相关标志。
这一堆涵盖禁止直行和左转、禁止直行和右转、禁止掉头、禁止鸣喇叭、禁止超车、禁止停车、禁止驶入等常见禁令标志。禁令标志通常是红色边框圆形,识别的关键在于文字和符号的区分。
包括直行、向左转、向右转、直行和左转、直行和右转、靠右侧行驶等指示标志。指示标志通常是蓝色背景圆形或矩形,识别的关键在于箭头方向的判定。
包含注意行人、注意儿童、注意施工、注意信号灯、注意危险、停车检查等警告标志。警告标志通常是黄色背景三角形,识别的关键在于内部图案的区分。
58类的数据分布,有几个关键指标值得留意:
全人工精细化标注,是本数据集的一个核心亮点:
光有数据集还不够,怎么把模型训好,才是真功夫。下面是一套实战流程。
先准备好数据集的配置文件 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: 停车检查
拿YOLOv8s当基线模型,跑起来:
from ultralytics import YOLO
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'
)

泛泛地调参可不够,得针对交通标志的特点来优化。
颜色保持增强:
交通标志的颜色信息至关重要——红色是禁令,蓝色是指示,黄色是警告。如果颜色增强过头,这个关键特征就被破坏了。
hsv_h: 0.01 # 色调变化极小,保持颜色信息
hsv_s: 0.3 # 饱和度适度变化
hsv_v: 0.4 # 明度可以大范围变化,模拟不同光照
小目标检测优化:
高速场景中的远距离交通标志,属于小目标,通常小于32×32像素。可以这么干:
类别不均衡处理:
58类标志在现实中间出现频率差异很大,比如限速60就比限速5常见得多。处理策略:
如果想更进一步,还有几个高级技巧可以试试。
知识蒸馏:
用大模型(比如YOLOv8x)当老师,小模型(比如YOLOv8n)当学生,通过知识蒸馏,可以在保持精度的同时大幅缩小模型尺寸。这对边缘部署来说,很实用。
多尺度推理:
推理阶段开启多尺度测试(TTA),能提升小目标的检测精度:
results = model.val(data='traffic_sign_58.yaml', augment=True, imgsz=640)
模型集成:
训练多个模型然后集成预测结果,可以进一步提升检测的稳定性。比如:
模型训好了,下一步就是怎么把它装到车上。
交通标志识别系统的车载部署,约束条件很苛刻:
| 约束项 | 要求 | 应对策略 |
|---|---|---|
| 实时性 | >30FPS | 轻量级模型 + TensorRT加速 |
| 功耗 | <10W | 量化推理 + NPU加速 |
| 可靠性 | >99.9% | 多模型冗余 + 置信度过滤 |
| 延迟 | <50ms | 端侧推理 + 流水线并行 |
| 设备 | 算力 | 功耗 | 推荐模型 | 适用场景 |
|---|---|---|---|---|
| Jetson Orin Nano | 40 TOPS | 15W | YOLOv8s | 量产车型 |
| Jetson AGX Orin | 275 TOPS | 60W | YOLOv8m | 研发测试 |
| 地平线征程5 | 128 TOPS | 30W | YOLOv8s | 国产量产 |
| 瑞芯微RK3588 | 6 TOPS | 10W | YOLOv8n | 后装方案 |
一个简单的Python接口示例,看看怎么集成:
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

技术再牛,也得落到具体场景里才有价值。
在L2级ADAS里,交通标志识别可以干这些事:
到了L3级及以上,TSR就是感知模块里必不可少的组件了:
在交通管理领域,TSR技术可以用来:
在驾培领域,TSR技术可以辅助:
模型好不好,得拿指标来说话。
交通标志检测的评估,可以从多个维度来看:
| 评估维度 | 指标 | 说明 |
|---|---|---|
| 整体精度 | mAP50 | IoU=0.5时的平均精度 |
| 严格精度 | mAP50-95 | IoU从0.5到0.95的平均精度 |
| 实时性 | FPS | 每秒处理帧数 |
| 参数量 | Params | 模型参数量(影响存储) |
| 计算量 | FLOPs | 模型计算量(影响推理速度) |
| 模型 | 输入尺寸 | 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 |
易混淆类别:
改进策略:
再好的数据集,也有它的局限性。未来可以朝这几个方向扩展。
当前58类还没完全覆盖中国所有交通标志,可以扩展:
为每条标注增加条件信息,让数据更“丰满”:
增加视频序列标注,支持:
这个58类中国交通标志识别数据集,用12000张高清图像和全人工精细化标注,搭建了一个目前国内比较全面的交通标志检测数据资源。覆盖了限速、禁令、指示、警告四大类别,类别划分严格对应国家标准,标注精度达到了工程级水准。
从行业应用的角度来看,交通标志识别是自动驾驶和智能交通领域的刚需技术。而高质量的本土化数据集,正是支撑技术落地的核心基础。这个数据集的发布,可以推动中国交通标志识别技术从实验室走向产业应用。
往前走,随着数据规模的持续扩大、标注粒度的不断细化,以及多模态融合技术的引入,交通标志识别系统一定能在更复杂的道路环境和更严苛的应用场景中,展现出更强的性能和更高的可靠性。这对自动驾驶安全来说,意义深远。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述