自动驾驶感知基石:信号灯与标志牌公开数据集深度解析与选型指南 📅 发布时间:2026/8/29 7:09:46 👁 浏览次数: 1. 自动驾驶感知系统的数据基石当你坐在一辆自动驾驶汽车里看着它稳稳地停在红灯前或是准确识别出限速标志时有没有想过这背后的眼睛是如何工作的作为自动驾驶感知系统的核心组件信号灯和交通标志的识别能力直接决定了车辆能否安全行驶。而这一切的起点就是高质量的数据集。我曾参与过多个自动驾驶项目的数据选型工作深刻体会到数据集选择不当带来的痛苦。有一次团队使用了分辨率不足的信号灯数据集导致夜间识别准确率暴跌30%项目差点延期。这也让我意识到公开数据集不是拿来就用那么简单。目前主流的公开数据集主要分为两类信号灯数据集和交通标志数据集。信号灯数据集通常包含红绿灯的状态识别红、黄、绿、关闭而交通标志数据集则涵盖禁令、警告、指示等多种类型。这些数据集在分辨率、场景覆盖、标注精细度等方面差异巨大就像不同的镜头——广角镜头能拍到大场景但细节模糊长焦镜头捕捉细节却视野狭窄。2. 信号灯公开数据集横向评测2.1 Bosch小型交通信号灯数据集这个数据集就像自动驾驶领域的MNIST是很多团队的入门选择。我在早期项目中使用时最欣赏它清晰的场景分类# 典型数据分布示例 scenes { 市中心繁忙街道: 35%, 郊区多车道: 25%, 走走停停路况: 20%, 道路施工: 15%, 极端光照变化: 5% }但它的局限性也很明显信号灯平均宽度仅8.6像素相当于在100米外看一个网球。我们做过测试当信号灯小于10像素时识别准确率会从95%骤降到70%。建议用于算法原型验证但商用级项目需要更高分辨率数据补充。数据标注方面它区分了15种状态如R_L表示被遮挡的红色左转灯这种细粒度对复杂路口很有价值。我处理过的一个棘手case是当主灯被树叶部分遮挡时辅助灯的R_R红色右转标注帮助系统避免了误判。2.2 DriveU交通灯数据集这就像数据集中的奢侈品——分辨率高达2048x1024包含23万多个标注对象。最独特的是它的差值图像Differential Images能在低光照条件下保持识别稳定性。我们实测发现在黄昏场景下使用差值图像能将误检率降低40%。它的标签体系堪称行业标杆视角方向正向/侧向/逆向相关度当前车道/相邻车道安装方向垂直/水平灯组数量单灯/多灯不过要注意这个数据集主要采集自德国城市国内使用需要额外关注右转灯等本土特征适配。我曾遇到一个典型问题德国右转灯常与主灯分离而国内多为一体式箭头灯直接迁移模型会导致右转识别失败。2.3 LISA交通灯数据集这个数据集的特点是包含美国特有的信号灯形态比如横向安装的一排式信号灯。但它的图像普遍偏暗我们在预处理时不得不使用CLAHE算法增强对比度import cv2 img cv2.imread(lisa_sample.jpg, 0) clahe cv2.createCLAHE(clipLimit3.0, tileGridSize(8,8)) enhanced clahe.apply(img)数据集提供两种标注方式BULB只标注亮着的灯BOX则标注整个灯罩。在加州项目中我们发现采用BOX标注训练出的模型对灯罩结构的识别更鲁棒能减少阳光直射导致的误触发。3. 交通标志数据集深度解析3.1 清华-腾讯100KTT100K数据集这个中国本土数据集的价值在于其惊人的多样性——10万张街景图像覆盖了221类交通标志。我整理过它的类别分布类别子类示例占比禁令标志限速、禁止鸣笛42%警告标志急转弯、学校区域38%指示标志直行、右转17%其他施工、临时标志3%特别值得一提的是它的标注方式同时提供边界框、像素级分割和多边形标注。我们曾利用多边形标注开发过倾斜标志识别模块将高速公路上远距离小标志的识别率提升了25%。但要注意两个坑类别极度不平衡——pl50限速标志样本是pm55最低限速的200倍街景图像的透视变形严重需要做仿射变换预处理3.2 CCTSDB中国交通标志数据集这是少有的专注中国道路场景的数据集包含1.6万张图片。我特别喜欢它的真实场景覆盖暴雨中的模糊标志树荫下的斑驳标志夜间反光标志被卡车部分遮挡的标志它的标注文件采用CSV格式处理起来非常高效filename,x1,y1,x2,y2,class IMG_001.jpg,125,80,175,130,p1 # 禁止通行 IMG_002.jpg,300,150,350,200,w5 # 注意行人不过目前只开放了三大类禁令、警告、指示缺少指路标志等细分类型。我们在实际使用时会将其与TT100K的指路标志数据混合训练。3.3 GTSDB德国交通标志数据集虽然来自德国但这个数据集的严谨性值得学习。它的测试集特别设计了渐进式难度基础测试晴天正视角标志中级测试阴天30度倾斜标志高级测试雨雾天气部分遮挡我们在模型评估时发现一个有趣现象在基础测试达到99%准确率的模型遇到高级测试时可能暴跌至60%。因此现在团队规定任何新模型必须通过全部三个测试才能上线。4. 数据集选型实战指南4.1 城市道路场景方案在北京这样的超大城市我的推荐组合是信号灯DriveU高分辨率 Bosch遮挡场景交通标志TT100K全景覆盖 CCTSDB本土特色关键是要处理好奇特场景高架桥下的多层信号灯公交专用道标志潮汐车道可变标志我们开发过一个预处理流水线专门应对这些情况def urban_preprocess(img): img remove_glare(img) # 处理玻璃反光 img correct_perspective(img) # 矫正透视变形 img enhance_contrast(img) # 增强低对比度区域 return img4.2 高速公路场景方案高速公路的挑战在于远距离小目标识别。经过多次迭代我们的最优配置是标志识别TT100K高分辨率裁剪 GTSDB远距离样本信号灯LARA法国高速数据 自采数据特别要注意限速标志的时序一致性处理。我们曾遇到过一个经典bug模型将100km/h标志误识别为80km/h但当车辆靠近到50米时又正确识别导致控制系统频繁震荡。最终是通过引入时序平滑滤波器解决了这个问题。4.3 恶劣天气应对策略在暴雨、大雾等场景下建议采用数据增强对正常天气数据添加雨雾噪声多模态数据使用红外或雷达数据辅助特殊数据集Mapillary Traffic Sign含极端天气样本我们开发过一个恶劣天气检测器当置信度低于阈值时自动切换安全模式if weather_detector.current_status heavy_rain: model.switch_to_robust_mode() speed_limit min(speed_limit, 60) # 安全限速5. 数据处理中的血泪教训在标注质量把控方面我总结出三遍校验法自动校验尺寸、位置、类别合理性检查人工抽查每1000张随机抽查50张模型校验用训练好的模型反向检测标注错误曾经因为忽略校验导致一个项目的mAP虚高15%实际路测时才发现标注错误导致的系统性偏差。现在团队严格执行标注-校验-修正闭环流程。另一个容易忽视的是数据版本管理。我们有次误将未清洗的测试数据混入训练集导致线上事故。现在所有数据集都采用严格的版本控制dataset_tt100k/ ├── v1.0_raw/ ├── v1.1_cleaned/ ├── v1.2_augmented/ └── current - v1.2_augmented最后强调一个关键点数据分布匹配度比数据量更重要。我们做过对比实验在特定场景下5万张匹配数据的表现优于50万张通用数据。因此现在选型时一定会先用t-SNE分析数据分布相似度。