预测模块是将对感知到的障碍物在未来一段时间内的运动轨迹进行估计,输出的预测消息将会打包感知信息,预测模块将订阅定位、规划和感知障碍等消息。 Apollo预测模块按照物体不同的特征,采用不同的模型,分别预测各自轨迹,并对不同类型的输入特征,选择合适的模型分别提取。在算法上,由于实时算例存在限制,预测模块会划分优先级对机动车周围进行处理。 以下,ENJOY 一、简介 预测模块是研究并预测感知模块检测到的所有障碍物的行为。预测模块接收障碍物数据以及基本的感知信息,包括位置、方向、速度、加速度,然后为这些感知到的障碍物生成概率预测轨迹。 注意:预测模块只预测障碍物的行为, 而不预测汽车本身。规划模块规划汽车本身的轨迹。 二、输入 从感知模块得到的障碍物信息。 从定位模块得到的位置信息。 从规模模块得到的之前计算周期的规划轨迹。 三、输出 带有预测轨迹及其优先级的障碍物,因为各个独立场景的优先级不同,现阶段的方案也要计算障碍物优先级。优先级包括:忽略、谨慎和正常 (默认) 。 四、功能 如下图所示,预测模块由四个主要功能模块组成:容器、场景分析器、评估器和预测器。Apollo 3.0中已经有容器、评估器和预测器。在Apollo 3.5中,因为我们已经采用一个基于多场景的方法来提升Apollo的自动驾驶能力,所以引入了场景功能模块。 ▲预测模块的组成 容器 容器存储来自订阅通道的输入数据,当前支持的输入包括感知障碍物、自车定位信息和自车规划轨迹。 场景分析器 场景分析子模块包含自车在内的场景,当前,我们定义了两类场景: 巡航:该场景包括车道保持和跟踪。 交叉路口:这种场景涉及交叉路口,交叉路口要么有交通灯或停车标志。 评估器 评估器为任意给定的障碍物预测路径和速度。评估程序使用存储在prediction/data/中的模型给车道序列预测一个概率值,以此来预测一条路径。 当前有五类评估器,其中两个是Apollo 3.5新添加的。因为巡航和交叉路口两种场景被新添加到Apollo中,所以他们对应的评估器(巡航MLP(多层感知机)和交叉路口MLP)也被添加到Apollo 3.5。当前的评估器包括以下几个: 代价评估器:通过一组代价函数计算概率。 多层感知机评估器:使用一个多层感知机模型计算概率。 RNN(回归神经网络) 评估器:使用一个RNN模型计算概率。 巡航多层感知机+一维卷积神经网络混合评估器:针对巡航场景,使用一个多层感知机和一维卷积神经网络的混合模型计算概率。 交叉路口多层感知机评估器:针对交叉路口场景,使用一个多层感知机模型计算概率。 预测器 预测器生存障碍物的预测轨迹,当前,主要支持以下预测器: 空白:障碍物没有预测轨迹。 单车道:障碍物沿着单一车道运动,不在该车道上的障碍物可以忽略。 车道序列:障碍物在车道之间移动。 移动序列:障碍物根据它的动力学模型在车道之间移动。 自由移动:障碍物自由地移动。 区域移动:障碍物在可能的区域内移动 。 交叉路口:障碍物大概率朝着交叉路口移动。 五、预测模块体系结构 预测模块估计所有感知障碍物的未来运动轨迹,输出的预测消息打包了感知信息。预测模块订阅感知障碍物消息并由其触发,代码如下所示: 预测模块同样采用定位模块和规划模块的输出信息作为输入,其结构如下所示:
规划是无人车为了某一目标而作出一些有目的性的决策过程,对于无人驾驶车辆而言,这个目标通常是指从出发地到达目的地,同时避免障碍物,并且不断优化驾驶轨迹和行为以保证乘客的安全舒适。规划层通常又被细分为任务规划(Mission Planning)、行为规划(Behavioral Planning)和动作规划(Motion Planning)三层。 Apollo系统中的Planning模块实际上是整合了决策和规划两个功能,该模块是自动驾驶系统中最核心的模块之一。 以下,ENJOY 简介 在包括Apollo 3.0在内的前序版本中,都使用相同的配置和参数对不同的驾驶场景进行规划。这种方法虽然是线性的且易于实现, 但并不灵活或者没有面向特定的场景优化。随着Apollo系统的成熟,在不同的路况和驾驶用例中使用,开发更加模块化、场景指定和全局的方法更有必要。在该方法中,每个驾驶用例都被视为不同驾驶场景。这种设计方法是很有用的,因为在当前这种方式下,修复一个特定场景下的问题不会像以前版本中出现的影响那样,来影响其他场景的情况。在以前版本中,所有的驾驶用例都被认为是一个驾驶场景,导致一个问题的修复会影响其他的驾驶用例。 驾驶场景 在Apollo 3.5中,我们将聚焦以下三种主要驾驶场景: 如下图所示,车道跟随场景是默认驾驶场景,包括但不限于在单一车道驾驶(例如巡航)或者变道,遵循基本的交通规则或简单的转弯。 ▲车道跟随场景—默认驾驶场景 在这种场景中,如果在当前车辆行驶车道上有静止车辆或者障碍物,而且在不发生碰撞的情况下,车辆无法安全地通过当前车道,规划模块将执行以下步骤: 检查邻近车道是否有靠近的车辆。 如果安全,做一个侧转动作,从当前车道转到旁边车道。 一旦安全通过障碍物,迅速回到原来车道。 ▲侧方行驶 停车标志 对于停车标志,有两种不同的驾驶场景: 不受保护的:在这种情况下, 汽车希望通过一个具有两路停车标志的十字路口,如下图所示。因此,自动驾驶系统必须驾驶车辆缓慢地通过十字路口,并且在继续行驶之前测量十字路口的车流量。 ▲无保护驾驶场景 受保护的:在这种情况下,汽车希望通过一个具有四路停车标志的十字路口,如下所示。因此, 在继续行驶之前,我们的自动驾驶系统必须衡量本车到停车标志之间的车流量,并且理解车辆在队列中的位置。 ▲受保护驾驶场景 为了安全通过停车标志区域,受保护和无保护两种场景都将执行以下步骤: 即将到达停车标志点:感知当前正在等待其他停车标志的所有车辆或者障碍物。 完全停车:监测并查看先前停留在其他停车标志车道的车辆是否已经开始移动。保证之前到达的车辆都已经离开是十分重要的。 缓慢向前移动(爬行):检查看是否有其他车辆正在移动或者处于非保护场景下的停车状态,检查当前车道的旁边车道是否有迎面驶来的车辆。 安全通过十字路口。 注意:研发团队正努力工作,以在规划模块中增加其他驾驶场景的规划方案,其中一个案例就是处理交通灯。 Apollo 3.5中规划模块的体系结构已经有所改变,该架构能够反映针对不同驾驶场景的模块化设计方法。如下图所示, 在规划器中, 每一个独立的驾驶场景都和对应的场景处理器一一对应。每个驾驶场景都有其一组特定于该场景的驾驶参数,使其更安全、高效、更易于自定义和调试以及更灵活。因为每个阶段都被划分为多个任务,使得每个阶段也是可配置的,并且可以通过编辑该场景的配置文件config来删除或创建每个任务。 ▲ Apollo 3.5 中规划模块的体系结构图 一些关键特性: Apollo FSM(Apollo有限状态机):它是一个根据车辆的当前位置、路由方案和高精地图,来决定车辆状态的有限状态机。 规划分发器:根据车辆的当前状态和一些其他相关信息调用合适的规划器 。 规划器: 获取所需的上下文数据和其他信息, 确定车辆的意图,执行该意图所需的规划任务,并生成规划轨迹。它还将更新上下文以服务于未来的任务。 决策者和优化器:一组实现决策任务和各种优化的无状态库。优化器专门优化车辆的轨迹和速度。决策者是基于规则的决定制造者, 给出何时更换车道、何时停止、缓慢行驶或蠕变何时完成的建议。 黄色框:这些框主要是为未来的驾驶场景和开发者基于现实世界的驾驶用例贡献自己的驾驶场景预留的。 注意:如果您想加入自己的驾驶场景,请参考已有的场景。
,中国科学院计算技术研究所助理研究员姜文斌,各自分享了语义分析技术方面的实战经验。
在 2010 年 12 月 18 日第 9 期的百度技术沙龙活动中,我们请到了百度基础平台部高级软件工程肖伟和新浪SAE 经理丛磊,分别分享了百度和新浪的 App Engine 技术及其应用话题。
实际上,智能语音技术最关键的两点是语音识别技术和语音合成技术。识别技术即:将声音转化为文字,让应用长上耳朵;合成技术即:将文字转化为声音,让应用开口说话。
2015 年 6 月 28 日下午,百度与 InfoQ 携手举办了手机百度“云和端技术实践”沙龙活动。这是手机百度首次公开超级 App 背后的技术知识。
智能视频分析技术主要包括:运动目标检测、目标跟踪、目标分类、行为理解四种智能视觉分析技术。其中,目标跟踪与目标检测是基础部分,目标分类和行为理解是高级部分。 1.
其演讲内容主要包括:识图技术的进展、识图技术在百度 IDL、识图技术应用的未来。
3 月 31 日,由百度开发者中心主办、极客邦科技承办、百度创新中心赞助的第 77 期百度技术沙龙《ECharts 4.0最全技术攻略》成功在北京举行,此次技术沙龙邀请了百度高级技术经理祖明、百度资深前端研发工程师宿爽