第二章 系统架构与传感器:摄像头选型、感知算法基础、传感器融合策略
各位工程师,欢迎来到第二章。这一章我们聊聊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
单靠摄像头不够。雨雾天气、夜间弱光、逆光场景,摄像头都会失效。这时候就需要融合其他传感器。
常见的融合方案:
| 传感器 | 优势 | 劣势 | 融合方式 |
|---|---|---|---|
| 摄像头 | 车道线识别、交通标志识别 | 受光照影响大 | 主传感器 |
| 毫米波雷达 | 测距精准、不受天气影响 | 无法识别车道线 | 提供横向位置参考 |
| 超声波雷达 | 近距离探测 | 探测距离短 | 低速辅助 |
| 高精地图 | 提供先验车道信息 | 需要实时更新 | 提供车道线几何模型 |
我常用的融合策略是“摄像头为主,雷达为辅,地图兜底”。具体来说:
- 正常工况:摄像头检测车道线,雷达提供前方车辆位置,用于判断是否在车道内。
- 摄像头失效:比如逆光或隧道出口,切换到雷达+地图融合模式。雷达检测护栏或路沿,地图提供车道线几何信息。
- 全失效:所有传感器都不可用时,系统发出接管请求,并执行最小风险策略(减速+双闪)。
关键点:融合不是简单的数据叠加,而是置信度加权。摄像头检测到的车道线置信度高时,以摄像头为准;置信度低时,逐渐增加雷达和地图的权重。这个权重曲线需要根据实车数据标定。
2.4 实战中的坑与经验
最后分享几个我在项目中踩过的坑:
- 时间同步问题:摄像头和雷达的数据时间戳不一致,融合时会出现“时空错乱”。我建议用硬件同步信号(PPS)来对齐,软件上再用插值补偿。
- 标定问题:摄像头和雷达的外参标定必须精确。哪怕偏差1度,在100米外就会差1.7米。我见过一个项目因为标定板没放平,导致融合结果一直偏左。
- 算力分配:感知算法很吃算力。我建议把80%的算力给主传感器(摄像头),20%给辅助传感器。不要平均分配,否则哪个都做不好。
我的习惯:每次做传感器融合,我都会先画一个“传感器失效模式表”。列出每种传感器在什么场景下会失效,然后针对性地设计降级策略。这样系统鲁棒性会好很多。
好了,这一章就到这里。下一章我们聊聊控制算法,那是真正让车辆“听话”的部分。记住,感知是基础,基础不牢,地动山摇。