基于深度强化学习的自动泊车规控策略综述
作者 | 山丘
出品 | 焉知
自动泊车系统逐渐成为智能驾驶车辆的标准配置,为获得满足条件的高性能路径规划器,基于深度强化学习的自动泊车路径规划算法,配合环视系统的车位检测算法,能够高质量地满足自动泊车系统对路径规划的安全性、实时性、舒适性、规划能力等性的要求。
自动泊车路径规划,是局部规划(Local planning),也称为运动规划(motion planning)。其关键思想,是在满足车辆动力学和安全性的前提下,快速生成一条连接起点和终点的轨迹,并尽可能满足舒适性、实时性等要求。路径规划模块作为自动泊车系统的重要组成,在系统中起到承前启后的关键性作用,围绕着路径规划进行研究对于改善自动泊车的性能与体验都具有重要意义。
对于泊车轨迹规划来说,最重要的就是寻找合适的可泊空间。这个过程需要首先探测合适的车位信息,要讲清楚轨迹规划就需要首先讲清楚泊车车位信息的探测过程。
综合说来,该过程可以囊括为如下步骤进行:
首先,根据矫正效果,选择合适的鱼眼相机模型用以标定并获取相机内参;
其次,通过联合标定和拼接融合技术,获得鱼眼相机对应的单应性矩阵和权重矩阵;
然后,对拼接图片进行灰度化、滤波、二值化、膨胀与腐蚀等预处理操作;
最后,通过sobel 算子进行边缘检测与霍夫变换,再经过线段整合程序进行筛选和处理,得到符合条件的车位线,根据车位框特征整理为有效车位,最终输出车位角点坐标。
除了选择优化的规划算法外,泊车的最优控制问题也是后端一个被广泛关注的问题。最优控制理论实际是类似于有限元理论,通过离散方式,把动态规划问题转化为非线性规划问题求解。将时间连续的状态量和控制量均分成有限个单元,在每个单元上插值样本点来近似表示该单元,每个样本点所对应的状态量和控制量都要满足运动学规律、碰撞约束和边值约束等条件,得到一系列有关状态量和控制量的方程组和不等式组,再通过非线性求解器求解,即可得到状态量和控制量的时间序列值。
本文作为一篇综述综合介绍了众多基于深度强化学习的规控自动泊车算法框架。
泊车轨迹规划概述
泊车轨迹规划的方案总体说来包括:基于规则的规划和基于非规则的规划方法。其中,基于规则的规划方法可细分为直线-圆弧式、复杂曲线模型式、最优控制问题式。这种方法将车辆运动学约束、起始和终止位姿约束、无碰撞约束等转化为最优问题进行求解并得到合适的规划路径,再用控制策略进行路径跟踪。该类方法在离散空间中求解,计算速度快,但成功率较低,可能出现多次揉库、曲率不连续的情况。
最早,在泊车领域是提出在汽车只能超前开的前提下,必存在由半径固定的圆弧和直线组成的路径,能够连接起始位姿和终止位姿。针对曲率不连续的问题,也有学者提出以路径变长,泊车空间增大为代价,利用回旋曲线、多项式曲线、贝塞尔曲线等作为过渡,连接两相切路径。当然,更复杂曲线模型式是直接用多项式曲线、样条曲线等表示路径。这些复杂曲线包括有η3样条曲线、高阶B样条曲线、正弦曲线、三切反正切曲线等。
然而,直线-圆弧式规划方法一大缺点是在切点处曲率不连续,实际控制时,需要通过提前打方向盘或原地转向等方式改变曲率。此外,简单的直线-圆弧式,到复杂曲线模型,再到最优控制式,定义的路径自由度越来越高,求解越来越复杂。这不难理解,简单方法因为考虑的条件很少,规划能力有限。只有在更高自由度,更大的解空间考虑问题,方能获得更加令人满意的解。
深度神经网络通过网络近似,能够描述更加复杂的空间,求解能力进一步加强。引入深度神经网络的深度强化学习,既摆脱了传统强化学习方法只能解决离散状态和动作的问题,在实数空间寻找最优解;又因为能够自主探索生成学习样本,无需人工采集,提高了算法开发的效率。
然而,自动泊车路径规划讲究实时性,往往需要在给出可用车位和车身位姿后短时间内规划出可行路径。因此,对于方法的运行速度有较高的要求,最优控制问题式显然很难满足。复杂曲线模型生成路径单一,所需空间较大的特点,以及基本曲线组合式曲率不连续的特点,也不是自动泊车路径规划的最佳方法。同时,基于深度学习的端到端路径规划方法,因为需要人工采集大量样本进行训练,暂时不具备可行性。
深度强化学习在智驾领域的应用
近年来,深度强化学习在自动驾驶中也有一些新的进展,如逆强化学习、分层强化学习、迁移学习、多智能体强化学习等。深度强化学习利用神经网络对价值和策略近似,在连续实数空间寻找最优解,相比基于规则的方法有着更强大的规划能力。而由于其自主探索生成学习样本的特性,相比单纯的神经网络方法,简化了算法开发的难度。因此,深度强化学习适合应用于泊车路径规划问题的求解。
已有许多学者和自动驾驶公司(如丰田、Wayve 等)尝试将深度强化学习应用到自动驾驶的规划和控制上,取得了不错的效果。
强化学习一大特点就是,在选择动作的时候,会以一定的几率随机选择动作,意味着可能采取非常危险的动作。这对于机器人说,似乎是可以忍受的,但对于自动驾驶汽车来说,是断然不被允许的,因为事关乘员安全。
同时,基于深度强化学习的路径规划算法仍存在某些不足,如学习效率低下,收敛时间长。强化学习需要通过智能汽车基于当前策略与环境交互获得学习所需的样本,而样本的质量又会影响策略更新,高质量的样本才能使策略朝着期待的方向更新,而高质量的样本需要现有策略很好,二者相互依赖,算法容易陷入局部最优。为了降低学习难度,常用手段就是固定起始位姿训练、对泊车区域不做限制,结果完成学习的智能汽车在规划性能方面表现不及传统的算法,无法满足自动泊车的实际应用需求。若能对上述不足做出有效改进,将对基于深度强化学习的自动泊车方法有积极推动作用。
基于以上强化学习的问题,业内有人研究通过设计满足“硬约束”的动作,以减少动作空间的维度,并改善强化学习的性能。这种好的方法是利用专家知识定义动作集,从而可以有效剔除所有不被接受行为的代理控制策略。在这个过程中,需要通过将深度强化学习引入到长期自动驾驶规划策略中,并把整个规控问题分成学习型策略寻求和先验知识下的“硬约束”轨迹规划。其中,为了确保危险动作不被选择,“硬约束”将使用较高的惩罚值。
强化学习算法能够自主探索获得样本,但由于训练初期策略随机,探索空间大,导致无效样本众多,如何准确的将样本对神经网络权值进行更新,提升样本的利用率,使算法尽快收敛是一个非常值得探讨的问题。
强化学习的轨迹规划和决策控制
强化学习需要从经验中学习,致力于学习状态和动作之间的完整对应关系,也就是在给定状态下输出最佳动作,从而使获得的总奖励最多。这一系列学习动作不仅影响当时的奖励,也会影响后续收到的奖励,这也实际导致了探索和奖励之间的矛盾。实际上,尝试犯错、推迟奖励是强化学习最显著的特征。
为了获得更多奖励,应用强化学习的智能汽车必须倾向于选择对尝试过的动作能产生更多奖励的那个动作。但是为了探索动作空间,智能汽车必须在尝试之前尝试从未曾采取过的动作。过程中通过已有经验来获得奖励,并从中探索能够在未来选择更高奖励的动作加入到新的经验资源池。
除了智能汽车和外部环境,一个强化学习系统的四个基本元素包括:策略、奖励信号、价值函数和环境模型。
(1)策略定义了智能体动作方法,是环境状态与动作空间的对应关系。
(2)奖励信号指导了智能体需要学习到什么。
在每个时间步,环境给予智能体反馈。智能体的目标就是最大化长期的总奖励。因此奖励信号为智能体定义了事件的好坏。奖励信号是改进策略的重要基础,如果某个动作带来了低奖励,那么该策略会被改变,在未来同样的情况下就会选择别的动作。
(3)与奖励信号表明暂时的优劣不同,价值函数指定什么是长期好的。价值表明了对某些状态的长期渴望,因为将该状态之后的的一系列状态和奖励考虑在内。
(4)环境模型模拟环境,在给定状态和动作下,输出相应的下一个状态和奖励。
在有一系列可选动作时,在真正经历之前,通过环境模型预测每个动作采取后的未来情形,决定实际采取的动作。
如下图所示展示了一种典型的利用强化学习的流程图。整个方案包含图的顶部和底部部分,分别是(a)部分和(b)部分。
(a)部分是分层轨迹规划,包括深度强化学习的结构和基于优化的轨迹规划过程。
(b)部分是联合强化学习,其中不同的参与车辆参与分布式强化学习并在各自的环境中训练深度强化学习模型。之后,来自不同车辆的模型将被聚合在智驾系统中央域控上。
实际上,智能汽车向目标终点移动的快慢也有一些算法(深度学习梯度下降算法DDPG)是可以用来对其进行优化的。这类方法是从改进训练方法的角度改善深度强化学习算法的收敛性。比如,采用经过处理的图像作为 DQN 模型输入,将场景感知与规划任务分开,降低了算法训练难度,并基于课程学习,通过逐步加上障碍物的训练方法,加速收敛。
强化学习如何解决效率低下问题
智驾汽车实际是一个非完整系统,也就可能存在横向和纵向耦合。和智能行车的路径规划相比,泊车可行使空间狭小,对于给定初始条件,泊车路径和控制序列十分稀疏。因此,将深度强化学习应用在泊车上存在探索效率低下、奖励稀疏、收敛困难等问题。
针对如上强化学习可能引起的算法效率低下问题,基于自动泊车研究可以从如下几方面进行策略优化。
1)规控策略预训练
在智驾汽车所处的不同位置,不同航向角,不同的起始位姿上,利用人工泊车获得的控制命令序列,对智驾车辆进行预训练,让智能车辆在初期不需探索就可以获得高回报值的样本,以类似监督学习的方法学习到泊车策略。
2)提取成功经验值
在研究自动驾驶车辆高速行驶时的路径规划时,人为的认为缺少合适的泊车动作而导致的非法策略比例高,且这是导致探索效率低的原因。从而,将失败和成功的探索经验分别进行存储,并设置随训练回合数变化的抽取比例,按照这一比例恰当的从成功经验池和失败经验池中分别随机抽取样本,让智能汽车始终能从成功样本学习经验。
3)强化搜索准确度
针对平行泊车问题,借鉴 AlphaGo中的蒙特卡罗树搜索方法,生成泊车数据,并用奖励函数评价数据质量,筛选出最优数据训练智驾车辆,避免了随机探索时低质量数据对智驾车辆的影响。
随后,为了更加高效地利用探索到的数据,以时序误差 TD 作为样本的优先级,利用SumTree 数据结构存储样本,采样时基于优先级确定采样概率,使对梯度计算贡献较大的样本更容易被采样,训练更加容易收敛。
在研究车辆高速智能驾驶的决策控制时,结合驾驶工况,将探索策略分为车道保持探索策略和超车避障探索策略,在原始动作的基础上,加上基于改进策略的修正值,从而减少无效探索。
4)设置合适的奖励函数
在强化学习中,奖励函数的设计至关重要,直接关系着模型能否收敛到最优的控制策略。奖励稀疏时,若要解决的问题较为简单,则不影响收敛;若问题复杂,则需要结合对实际问题的理解,增加引导奖励,以提高算法对智驾车辆完成任务的几率。
在设计泊车问题的奖励函数时,除了到达目标位置奖励和避障奖励外,采集不同泊车工况下的泊车轨迹,将车辆的横向误差作为轨迹奖励,参照库仑定律设计引导奖励。针对机器人简单环境的路径规划,设计包含碰撞惩罚和到达终点的奖励函数,属于奖励稀疏问题,通过更多的尝试仍能学习到正确策略。
后来也有分别用稀疏奖励和稠密奖励来训练智能汽车的方式,稀疏奖励是针对智能汽车与目标位置每减少一定比例的距离(如10%)则给予一次奖励,稠密奖励则是每个时间步根据距离给予一次奖励。用稠密奖励训练得到的智能体有着更高的泊车成功率。期间,考虑到泊车效率问题,也有将智能汽车移动步数纳入到整个评估方案的,即移动的越慢,则总的奖励就会越少。
为了解决以上问题需要针对性解决具有连续状态空间和动作空间的相关性控制问题。深度确定性策略梯度算法(DDPG)兼具基于价值方法和基于确定性策略方法的优势,可用来解决这类问题。
如下图表示了相应的DDPG算法架构。DDPG 由当前 actor 网络、当前 critic 网络、目标 actor 网络、目标 critic 网络共 4 个神经网络组成。其中,当前 actor 网络负责根据当前状态输出动作和梯度更新;当前 critic 网络负责根据动作-状态对计算当前动作价值 Q;目标 actor 网络负责根据下一时刻状态计算目标动作;目标 critic 网络负责根据下一时刻状态和目标动作计算目标动作价值 Q′。而 Q′和奖励 R 之和与 Q 的差,就是 TD-error(时序差分误差),对其应用梯度下降法将使目标 critic 网络逐渐收敛到最优。
整个框架算法主要分三部分组成:
1)自车与环境的交互过程,自车根据当前车辆状态s,确定方向盘目标转角 a,加上噪声随机后输入到车辆运动学模型中,计算返回下一状态 s′给自车,循环往复直到车辆与障碍物碰撞或者完成泊车;
2)经验池储存样本的过程,每次智能体与环境交互后,奖励函数会根据下一状态 s′计算奖励值 r,然后将(s, a, r, s′)元组储存在经验池中;
3)自车在训练过程中,从经验池中随机采样一批数据,计算当前 critic 网络和当前 actor 网络的损失函数。随后,进行随机梯度下降,通过软更新的方式更新目标 critic 网络和目标 actor 网络的参数。
总结
自动泊车技术作为当前一种先进的智能化车控技术,可以说是汽车驾驶员最容易试驾和近距离能体验到自动驾驶技术了。在实现时需要传感器感知和融合、路径规划决策、运动控制等模块协同运行,是自动驾驶技术在具体场景下的浓缩体现。由于其速度低、环境相对单一等特点,实现起来也相对容易。本文重点讲解了自动泊车中的相关的路径规划和决策控制算法,以模糊控制、进化算法、神经网络等一系列相关算法思想切入讲述了对应泊车规控的常规处理策略。此外,与这类方法相关联的深度强化学习和神经网络优化算法结合并运用在泊车路径规划上将是后续泊车智能规控研发的重点方向。
热门文章
更多精华美文扫码阅读
焉知汽车
希骥电池与储能
请先 登录 后再发表评论~