路测车在十字路口突然急刹,后座的安全员吓得差点把咖啡泼出来。回放日志一看,前方明明空无一物。
工程师第一反应是感知模型漏检,第二反应是雷达噪声。查了一圈代码和参数,没问题。最后定位到训练数据里混进了一批标注错误的“幽灵车辆”——那是上一场暴雨后,残留在路边积水中的倒影,被标注员误标成了静态障碍物。
这种让人头疼的“智障时刻”,往往不是算法不够聪明,而是喂给算法的数据太脏。
在自动驾驶领域,大家太迷恋模型架构的创新了。Transformer、BEV、占用网络,名字一个比一个响亮。但很少有人愿意蹲在数据标注平台后面,去检查那些原始素材。
现实世界是混乱的。摄像头会过曝,激光雷达会有噪点,GPS 信号会在高楼间漂移。如果直接把这些 raw data 丢进训练管道,模型学到的就不是“如何开车”,而是“如何记住错误”。
比如,某个路段因为施工长期摆放锥桶。如果数据集中没有清洗掉这些特定场景的极端偏差,模型可能会学会一个奇怪的规则:看到橙色就减速。一旦到了没有锥桶的普通橙色广告牌前,它可能又会莫名其妙地刹车。
数据清洗不是简单的去重,而是对现实世界噪声的逻辑修正。
很多人以为数据清洗就是写几个脚本,把缺失值填上,把异常值扔掉。这在表格数据里行得通,但在多模态的自动驾驶数据里,远远不够。

真正的清洗需要理解场景。举个例子,一辆车在隧道出口瞬间从黑暗进入强光,摄像头画面会出现短暂的白茫茫一片。这时候的图像数据是“废”的吗?不一定。
如果直接删除,模型就永远学不会如何处理高光溢出。正确的做法是保留这段数据,但要在时间序列上打上特殊的权重标签,或者结合激光雷达的点云数据进行交叉验证,告诉模型:“这时候眼睛瞎了,信雷达。”
这就涉及到清洗策略的核心:一致性校验。
任何一个环节的松懈,都会在百万级数据放大后,变成路上的一次危险变道。
有一种天真的想法认为,只要数据量够大,模型总能从噪声中提炼出真理。这是赌博。
深度学习本质上是统计学的暴力美学。如果错误样本的比例超过某个阈值,模型就会收敛到错误的局部最优解。它不会质疑数据,它只会忠实执行。
所以,在下一次抱怨算法鲁棒性差之前,先问问数据团队:昨天的清洗报告看了吗?那些被标记为“低置信度”的样本,是真的被剔除了,还是只是被藏在了文件夹深处?
路是开出来的,也是洗出来的。干净的数据,才是自动驾驶最昂贵的燃料。
