自动驾驶软件技术主要分为计算机视觉、行为预测以及路径规划。很多人误以为,自动驾驶面临最难攻克的技术在于计算机视觉,实则不然。过去十年里,随着深度学习的广泛应用,计算机视觉技术发展迅速。只要加以时日训练模型,提供充足的数据,计算机视觉就可以探测大部分的情景。如今,自动驾驶的难题主要集中于行为预测以及路径规划。
针对行为预测以及路径规划,大部分自动驾驶公司采取的方法是将人类的驾驶习惯拆分成多个组成部分,把每一部分转化为代码,写入自动驾驶车的“大脑”中。比如,如果要从行人后面超过去,就必须和行人保持一米距离。这样的研发方法虽然最直接,但问题是,人类的驾驶习惯十分庞杂,如果一部分一部分地去开发,不但耗时耗力,而且永远无法解决“长尾问题 ”。
这时,我们需要自动驾驶车自己去“主动学习”如何驾驶,将有限的人类提供的数据最大化。如果我们回忆小时候是如何学会骑自行车的,会发现其实大人们并不会告诉你到底该怎么骑,主要还是靠自己探索,最终习惯了也就熟练了。近年来,一些自动驾驶公司开始探索这一种方式,通过利用有限的人类提供的数据,“主动学习”驾驶。这就需要将大量的机器学习运用于行为预测以及路径规划。
机器学习的技术竞争就好像一场太空竞赛,各个公司都在抢占这一领域。然而,大量的机器学习往往意味着高额计算成本与复杂的模型总结工具。
Cruise公司在去年年底的NeurIPS大会上分享了他们的机器学习方法,他们针对机器学习过程所打造的开发工具有一定的代表性。下图是Cruise机器学习的基本流程。首先,通过驾驶获得数据,找到驾驶中的错误或是值得深究的边角案例。然后将这一小部分数据进行数据标识,作为数据的训练集。新的数据用于训练模型,更新的模型用于下一次驾驶。
看似简单的流程,实现起来却没那么容易。驾驶的数据庞杂,工程师们需要一个可以快速将数据分类的方法。在下图中,自动驾驶车正在尝试做无保护左转。根据其他车辆的驾驶路径,我们可以将他们的概率总结为三种,也就是图中的三种颜色。
在计算概率的基础之上,我们还需要利用路径对概率的”性质“做出语义判断,用机器对数据直接进行标识。
另外,路径的分类需要与高精地图相结合。比如,利用相似性搜索功能,工程师们可以迅速找到所有类似的交叉口,找到相似路口之间的细微区别,针对该道路类型集中训练。
模型训练之后,工程师们需要一个工具,对比多个模型的训练结果,对模型进行“内省”,让机器学习变得可以被解释(interpretable)。在下图中,工程师可以观察模型不同参数的表现情况。
路径数据也可以与高精地图相结合,让路径预测的结果显而易见。在下图中,箭头的粗细代表选择该路径的车的数量。绿色代表路径预测正确,黑色代表预测错误。
另外,Cruise已经将他们的可视化工具开源,有兴趣的朋友可以参考。
在肺炎疫情期间,各公司虽然无法上路测试采集数据,但是可以利用这段时间认真开发这些工具。等路测恢复后,就可以马上将模型训练结果投入使用。
全部0条评论
快来发表一下你的评论吧 !