车道线检测中的IPM变换
车道线检测中的IPM变换
车道线检测(Lane Detection)是 ADAS 系统中重要的功能模块,而对于 L4 自动驾驶系统来说,在不完全依赖高精度地图的情况下,车道线检测结果也是车辆运动规划的重要输入信息。由于俯视图(BEV, Bird's Eye View)下做车道线检测相比于前视图,有天然的优势,所以本文根据几篇论文(就看了两三篇)及项目经验,探讨总结俯视图下做车道线检测的流程方案,并主要介绍 IPM 逆透视变换原理,[0]为车道线检测资源集。
附赠自动驾驶学习资料和量产经验:链接
1. 流程框架
由于激光点云的稀疏性,目前车道线检测主要还是依靠图像,激光点云数据当然可作为辅助输入。由此归纳一种可能的粒度较粗的俯视图下车道线检测的流程:
-
IPM 逆透视变换,将图像前视图变换为俯视图;
-
网络,提取特征,进行像素级别的分类或回归;
-
后处理,根据网络输出作相应后处理,网络输出可能是像素级别预测;
网络相对比较成熟,后处理则在不同网络方法下复杂度差异很大,这里不做讨论。接下来主要讨论如何进行逆透视变换。
2. IPM 逆透视变换
2.1. IPM(Inverse Perspective Mapping)
2.2. 俯视图求解过程
已知前视图,相机内外参,求解俯视图有两种思路。一种是在世界坐标系下划定感兴趣区域,另一种是在前视图图像上划定感兴趣区域。
2.2.1 世界坐标系下划定感兴趣区域
2.2.2 前视图图像上划定感兴趣区域
3. 其它思考
如果在俯视图下作车道线检测,IPM 是必不可少的。以上 IPM 的缺陷是有一个较强的假设:路面是平坦的。并且时间一长标定参数,尤其是外参会失效,而且距离越远,路面的不平坦导致的逆透视变换误差也会增大。但对于 ADAS 系统来说,车道偏离预警(LDW,Lane Departure Warnings) 中车道线的检测距离在 50m 已经能满足要求。如果要消除更远距离下路面不平坦所带来的影响,也是有方法可以消除的,留到日后再讨论。
按照之前的项目经验,LDW 系统完成度可以很高,基本思路就是 IPM,parsing(segmentation),clustering,hough,optimization 等几个步骤(这里就不能说得太细了),更多的精力可能在指标设计及 cornercase 优化上。唯一对用户不太友好的地方就是安装时要进行相机外参(尤其是 pitch 角)的标定,当然标定方法比较简单,我们假设相机坐标系与路面平行,所以透视变换矩阵是固定的,用户只要看路面经过逆透射后,两条 z� 方向的直线是否平行即可。相对于 Mobileye 这种标定巨麻烦的产品,这种标定方式算是非常友好了。此外还可以用自动外参标定方法,脑洞也可以开出很多,效果嘛看具体环境了,需要作谨慎的收敛判断。