Auto-Lane
Auto-Lane是一个针对车道线检测的端到端架构搜索算法,旨在解决现有车道线检测模型计算量大、不适宜实际应用的问题。车道线作为路面最重要的指示信息之一,对智能车辆的辅助驾驶系统至关重要。实时、准确地检测出路面的车道线有助于智能车辆进行路径规划、道路偏移预警等功能,并为精确导航提供参照。
Auto-Lane算法的核心优势在于其高效性和实时性。通过优化算法架构,Auto-Lane能够在保证检测精度的同时,显著降低计算量,使其更适用于实际应用场景。此外,该算法还具备较好的泛化能力,能够适应不同道路条件下的车道线检测任务。
在算法实现方面,Auto-Lane采用了端到端的架构搜索策略。这意味着算法能够自动搜索并确定最优的模型架构,以适应不同的车道线检测任务。这种策略不仅提高了算法的灵活性,还使得模型性能得到了进一步提升。
1. 算法介绍
车道线作为路面最主要的指示信息之一,可以有效地引导智能车辆在约束的道路区域内行驶。实时地检测出路面的车道线是智能车辆辅助驾驶系统中的重要环节,有利于协助路径规划、进行道路偏移预警等功能,并且可为精确导航提供参照。auto_lane旨在解决现阶段车道线检测模型计算量大不适宜落地的问题,而设计的一种端到端的车道线架构搜索算法,算法架构如下图所示:
auto_lane分为backbone module,feature fusion module和 head三大组件。backbone module主要用于抽取图像特征,feature fusion module主要用于融合多层次特征,head用于解码生对应的车道线。经过端对端搜索能够获取多个满足部署需求的候选模型,然后根据实际情况进行选择并部署。
2. 适用场景
主要面向自动驾驶行业应用,比如辅助驾驶 /自动驾驶系统的感知模块、AR导航、高精度地图辅助制图等对于车道线检测算法具有迫切落地需求的场景。
Auto-Lane算法的主要适用场景涵盖了自动驾驶行业的多个关键应用。这些场景对车道线检测算法有着迫切的落地需求,而Auto-Lane算法正是为了满足这些需求而设计的。
-
辅助驾驶 / 自动驾驶系统的感知模块
在自动驾驶和辅助驾驶系统中,感知模块是至关重要的部分。它负责收集和处理来自周围环境的信息,以便车辆能够做出正确的决策。车道线作为路面的主要指示信息,对车辆在道路上的行驶轨迹和安全性具有重要影响。Auto-Lane算法能够实时、准确地检测车道线,为感知模块提供关键信息,从而帮助车辆更好地理解和适应道路环境。 -
AR导航
增强现实(AR)导航技术通过将虚拟信息与真实环境相结合,为用户提供更直观、更丰富的导航体验。在AR导航中,车道线的准确检测对于提供精准的导航指示至关重要。Auto-Lane算法能够实时检测车道线,并将其与AR技术相结合,为用户提供更加精准、实时的导航服务。 -
高精度地图辅助制图
高精度地图是自动驾驶和辅助驾驶系统中不可或缺的一部分。它提供了详细的道路信息,帮助车辆实现精确的定位和导航。车道线作为高精度地图中的重要元素,其准确性直接影响到地图的质量和可用性。Auto-Lane算法能够高效地检测车道线,为高精度地图的制作提供准确的数据支持,从而提高地图的精度和可靠性。
3. 算法原理
-
算法搜索原理
纵观现阶段的搜索方法,大致可分为三种,基于梯度的方法、基于RL的方法以及基于EA的方法。基于梯度的方法速度快但不太可靠,搜索和最终训练之间的差距很大;基于RL的方法数据利用效率较低,需要大量样本来,不适合车道线检测这类任务。本算法使用基于EA的方法进行网络搜索,根据经验针对网络架构进行编码,首先使用随机采样的办法生成初代样本,然后挑选Pareto前沿的样本通过演化算法以及偏序剪枝算法生成子代样本,经过多轮搜索最终的Pareto前沿上的样本即为候选样本。
-
搜索空间设计
- backbone搜索空间
backbone的搜索空间主包含两种系列
ResNetVariantDet
和ResNeXtVariantDet
,不同系列之间的差别主要在于模型的Block的不同,两种系列的编码结构保持一致,编码结构的具体说明如下:如上图为
basicblock 28 121-211-1111-12111
的模型示意图,在这里basicblock
表示模型使用的Block是basicblock
,-
表示以分辨率为界将模型分为不同的阶段,1
表示没有提升通道数的常规Block,2
表示将通道数提升为2倍通道数的Block。- feature fusion搜索空间
根据对模型的了解以及feature fusion的有效性,我们现在只提供
['012-022','012-122','122-022','-']
这四种模型结构,其中’-'表示不使用feature fusion module,直接将模型的第4阶段的输出作为head的输入,['012-022','012-122','122-022']
代表实际的feature fusion module模型结构,具体的模型结构如下:如上图是
012-022
的模型结构示意图,其具体的每一个代码的意义已在右图中说明。 -
评价函数
车道线的评价函数较为特殊我们使用在数据集上评价结果的F1作为评价函数,其具体的评价方式如下。使用bit-wise IoU(如下图所示)作为度量衡,使用Kuhn-Munkres Algorithm最为匹配方法将预测结果和标注结果做关联,在关联之后若 IoU>0.5认为关联成功,否则认为关联失败。统计整个测试集中关联成功的实例数目记为TP,统计整个测试集中未被正确预测的正例数目记为FN,统计整个测试集中被错误预测为正例的数目为FP。
-
搜索策略
在搜索策略上,我们采用了多目标的搜索策略,同时考虑模型效率 (可以用inference time/FLOPs等指标衡量) 与模型性能(用F1衡量)。使用non-dominate sorting构建Pareto front,