4. 车道线感知基础
车道保持辅助系统(LKA)要完成的第一件事,是把前视摄像头拍到的二维图像,转换成车辆坐标系下可度量、可预测的车道几何。这个过程由三个环节串联:摄像头标定建立像素与真实世界的映射,逆透视变换把透视图像压平为俯视图,车道线模型用数学曲线描述车道边界。三者缺一不可,任何一环精度不足,都会直接放大为横向控制误差。
一、摄像头标定:把像素变成米
标定的本质是求解相机的内参和外参。内参描述镜头自身特性,包括焦距 fx, fy、主点 cx, cy 和畸变系数 k1, k2, p1, p2, k3;外参描述相机相对车体的安装位置与姿态,即平移 (tx, ty, tz) 和旋转 (roll, pitch, yaw)。
内参通常用棋盘格标定板离线完成,采集 15~25 张不同位姿图像,通过张正友标定法求解。外参则需要在整车装配后重新标定,因为前挡风玻璃倾角、相机支架公差、悬架高度都会改变安装姿态。工程上常用地面标定法:在车前 3m、6m、9m 处摆放已知间距的标靶,反解出相机相对地面的俯仰角和高度。
二、逆透视变换:从透视到俯视
透视图像中,近处车道线宽、远处车道线窄,平行车道线在图像中收敛于消失点,无法直接测量真实宽度和曲率。逆透视变换(IPM)通过单应矩阵 H 把图像平面映射到地面平面,得到鸟瞰图(Bird's Eye View)。
单应矩阵由相机内参、外参和地面平面假设共同决定。设地面为 Z=0 平面,则像素点 (u, v) 与地面点 (X, Y) 的关系为:
# 逆透视变换核心公式
# [X, Y, 1]^T ~ H * [u, v, 1]^T
# H = K * [r1 r2 t] (r1, r2为旋转矩阵前两列,t为平移向量)
import numpy as np
H = K @ np.column_stack((r1, r2, t))
H_inv = np.linalg.inv(H)
# 对图像逐像素做IPM
for v in range(img_h):
for u in range(img_w):
p = H_inv @ np.array([u, v, 1.0])
X, Y = p[0]/p[2], p[1]/p[2]
bev[int(Y/scale), int(X/scale)] = img[v, u]
IPM 的关键假设是地面平坦。当车辆经过坡道、减速带或路面起伏时,地面平面假设失效,鸟瞰图中的车道线会出现拉伸或断裂。工程上通常结合 IMU 的俯仰角估计动态修正单应矩阵,或对 IPM 结果做置信度评估,在坡道场景下降权使用。
三、车道线模型:直线、抛物线、样条曲线
车道线在鸟瞰图中近似为曲线,需要用参数化模型拟合。模型选择直接影响拟合稳定性、外推能力和计算量。
| 模型 | 数学形式 | 适用场景 | 优点 | 局限 |
|---|---|---|---|---|
| 直线模型 | x = a·y + b | 高速公路直道、大半径弯道 | 参数少、计算快、鲁棒 | 无法描述曲率,弯道误差大 |
| 抛物线模型 | x = a·y² + b·y + c | 中低速弯道、匝道 | 能表达恒定曲率,参数可解释 | 曲率变化剧烈时拟合偏差 |
| 样条曲线 | 分段三次多项式 | 复杂弯道、车道线遮挡 | 灵活、局部拟合精度高 | 参数多、易过拟合、外推差 |
抛物线模型中,a 与曲率相关(曲率 κ ≈ 2a),b 为航向角,c 为横向偏移。LKA 控制器通常直接使用这三个参数计算预瞄点处的横向偏差和航向偏差。样条曲线则多用于车道线被前车遮挡、或需要拼接多段检测结果的场景。
四、案例:一段弯道上的模型切换
某 LKA 系统在半径 500m 的高速弯道上使用直线模型,横向控制出现约 15cm 的稳态偏差。切换到抛物线模型后,偏差降至 3cm 以内。但在半径小于 80m 的匝道上,抛物线模型因曲率变化率过大,拟合残差超过阈值,系统降级为样条曲线并提高检测置信度要求。
五、常见误区与复盘
- 标定一次用到底:车辆载重变化、轮胎气压差异、悬架老化都会改变外参,建议每 6 个月或每次保养后复检。
- 忽略畸变校正顺序:必须先做去畸变再做 IPM,否则单应矩阵无法正确映射边缘区域。
- 盲目追求高阶模型:样条曲线参数多,在车道线短时遮挡时容易产生虚假弯曲,反而降低安全性。
- IPM 后不做尺度校验:应在鸟瞰图中验证标准车道宽度(3.5~3.75m)是否与实际一致,作为标定质量的快速检查。
总结来看,标定决定了感知的绝对精度,IPM 决定了感知的空间一致性,车道线模型决定了感知的几何表达能力。三者共同构成 LKA 横向控制的输入基础,任何一环的误差都会在控制端被放大。工程落地时,应把标定复检、IPM 尺度校验和模型切换策略作为标准流程固化到开发与测试环节中。