第二章 系统架构与传感器:摄像头选型、感知算法基础、传感器融合策略

各位工程师,欢迎来到第二章。这一章我们聊聊LKA系统的“眼睛”和“大脑”。说白了,摄像头就是车的眼睛,感知算法就是大脑皮层,而传感器融合则是让多个感官协同工作的神经中枢。

我个人习惯把这一章称为“地基工程”。地基没打好,后面调得再好也白搭。我在项目里见过太多因为摄像头选型失误,导致整个项目返工的案例。嗯,咱们一步步来。

2.1 摄像头选型:不是像素越高越好

很多人觉得摄像头选型就是看像素。其实不然。你想想看,LKA需要的是在高速上稳定识别车道线,而不是拍高清照片发朋友圈。

我建议重点关注这几个参数:

  • 分辨率:通常1280x720就够用。1920x1080当然更好,但数据量翻倍,对芯片算力要求也翻倍。我在一个项目中用过200万像素的摄像头,结果处理器发热严重,最后降级到130万像素反而更稳定。
  • 帧率:30fps是底线,60fps更理想。帧率太低,高速时车道线会“跳帧”。我曾经遇到过30fps下,车速120km/h时,相邻两帧之间车辆移动了将近1米,车道线识别直接断掉。
  • 动态范围:这个容易被忽略。隧道出入口、逆光场景,动态范围不够的话,画面一片死白或死黑。我建议至少120dB。
  • 快门类型:必须用全局快门。卷帘快门在高速行驶时会产生果冻效应,车道线都变形了,还怎么识别?

核心观点:摄像头选型是系统级决策。不要只看传感器本身,还要考虑ISP(图像信号处理器)、传输接口、功耗、散热。我见过一个团队选了顶级传感器,但ISP处理能力跟不上,最后效果还不如中端方案。

2.2 感知算法基础:从像素到车道线

摄像头拿到图像后,怎么变成车道线?这个过程我拆成三步来讲。

2.2.1 图像预处理

原始图像不能直接用。先做去噪、色彩校正、对比度增强。特别是夜间场景,噪点很多,不做处理的话算法会疯掉。

我常用的预处理流程:

// 伪代码示例
1. 灰度化:RGB -> Gray
2. 高斯滤波:去除噪点 (kernel size 5x5)
3. 直方图均衡化:增强对比度
4. ROI裁剪:只保留路面区域(去掉天空、车头等无关部分)

个人经验:ROI裁剪很关键。我刚开始做的时候,把整个图像都丢给算法,结果天空中的云朵被误识别成车道线。后来只保留图像下半部分,误检率直接降了80%。

2.2.2 车道线检测

这一步是核心。传统方法用边缘检测+霍夫变换,深度学习用语义分割网络。

传统方法:

  • Canny边缘检测:提取图像中的边缘
  • 霍夫变换:将边缘点映射到参数空间,找到直线
  • 后处理:过滤掉角度不对的直线,拟合出车道线

深度学习方法:

  • 使用UNet或LaneNet等网络
  • 直接输出每个像素属于车道线的概率
  • 再通过聚类或曲线拟合得到车道线参数

我个人的建议是:传统方法适合算力有限的嵌入式平台,深度学习适合算力充足的域控制器。我在一个项目中用传统方法跑在TDA2上,帧率能做到50fps,精度也够用。

2.2.3 车道线跟踪与预测

单帧检测不够稳定。需要用卡尔曼滤波或粒子滤波做跟踪。这样即使某一帧检测失败,也能根据历史轨迹预测出车道线位置。

为什么会这样?因为路面上的车道线可能被磨损、被遮挡、或者光照变化导致检测失败。有了跟踪,系统就不会突然“失明”。

避坑指南:我曾经在跟踪模块里用了过大的过程噪声协方差,结果预测结果抖动得很厉害。后来把噪声调小,并加入了车道线宽度约束,稳定性才上来。记住,跟踪参数需要根据实际路况反复调优。

2.3 传感器融合策略:1+1 > 2

单靠摄像头不够。雨雾天气、夜间弱光、逆光场景,摄像头都会失效。这时候就需要融合其他传感器。

常见的融合方案:

传感器 优势 劣势 融合方式
摄像头 车道线识别、交通标志识别 受光照影响大 主传感器
毫米波雷达 测距精准、不受天气影响 无法识别车道线 提供横向位置参考
超声波雷达 近距离探测 探测距离短 低速辅助
高精地图 提供先验车道信息 需要实时更新 提供车道线几何模型

我常用的融合策略是“摄像头为主,雷达为辅,地图兜底”。具体来说:

  1. 正常工况:摄像头检测车道线,雷达提供前方车辆位置,用于判断是否在车道内。
  2. 摄像头失效:比如逆光或隧道出口,切换到雷达+地图融合模式。雷达检测护栏或路沿,地图提供车道线几何信息。
  3. 全失效:所有传感器都不可用时,系统发出接管请求,并执行最小风险策略(减速+双闪)。

关键点:融合不是简单的数据叠加,而是置信度加权。摄像头检测到的车道线置信度高时,以摄像头为准;置信度低时,逐渐增加雷达和地图的权重。这个权重曲线需要根据实车数据标定。

2.4 实战中的坑与经验

最后分享几个我在项目中踩过的坑:

  • 时间同步问题:摄像头和雷达的数据时间戳不一致,融合时会出现“时空错乱”。我建议用硬件同步信号(PPS)来对齐,软件上再用插值补偿。
  • 标定问题:摄像头和雷达的外参标定必须精确。哪怕偏差1度,在100米外就会差1.7米。我见过一个项目因为标定板没放平,导致融合结果一直偏左。
  • 算力分配:感知算法很吃算力。我建议把80%的算力给主传感器(摄像头),20%给辅助传感器。不要平均分配,否则哪个都做不好。

我的习惯:每次做传感器融合,我都会先画一个“传感器失效模式表”。列出每种传感器在什么场景下会失效,然后针对性地设计降级策略。这样系统鲁棒性会好很多。

好了,这一章就到这里。下一章我们聊聊控制算法,那是真正让车辆“听话”的部分。记住,感知是基础,基础不牢,地动山摇。