Apollo的数据开放平台介绍

2024-06-12 19:58

本文主要是介绍Apollo的数据开放平台介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前段时间百度自动驾驶事业部杨凡对Apollo数据开放平台进行了介绍,介绍内容大纲如下:

  • Apoll能力开放简介

  • Apoll的“云+端”研发迭代新模式

  • 数据开放平台与训练平台实战


本文的大部分内容转载于微信群的文字交流,最终版权归百度和AI前线所有。本想等AI前线发布后转载,可是AI前线迟迟没有发布,最近读者朋友们纷纷留言想看Apollo数据开放平台的相关内容,为了让热爱apollo的开发者小伙伴在第一时间了解进度,这里就不等A前线发布了,我做了一个整理和总结(内容大部分来源于杨老师的技术分享),如下。

Apoll能力开放简介

先来看第一部分,Apollo能力开放简单介绍:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

先向大家介绍一下百度做自动驾驶的背景。就像百度总裁COO陆奇在CES大会上讲的,可能不少朋友已经了解到了——百度已经是一家AI公司。 我们可以看到科技大潮的演进,已经从命令行、客户端服务器、互联网、移动互联网一路走来,进入到了AI时代。 在百度AI开放生态战略中,体系分成云和端,支撑的云技术是智能云和百度大脑,而端的输出就是自动驾驶Apollo生态和唤醒外物的DuerOS生态。

同时更重要的,更振奋人心的是AI把移动互联网带入一个全新的时代,我们把它叫做新移动。 在这个新移动时代手机有很强的感知能力,有更多的AI基产能力,每个手机都能听、能看、能说、能学习、能懂用户。百度的核心产品,手机百度,爱奇艺等等,将充分利用这新的能力,全面推进新的技术和产品来引领新一代的移动时代的用户体验。特别是手机百度,手机百度将把搜索和个性化有机融合在一块,打造新一代的更懂用户的体验。

Apollo生态是百度AI重要的、最先落地的生态之一。

自4月19号宣布开放后,收到很多伙伴的反馈,其核心总结为Apollo宣言。自动驾驶行业正在快速走向未来,而最大的痛点在于技术壁垒太高,每个企业需要技术与人力的多年积累,才可以进入实质的研发。百度起步较早,有将近4年的技术积累,投入较早,将把能力开放给每一个合作伙伴,从0到1,很快进入到无人驾驶的研发,从而提高无人驾驶行业的创新速度,避免重复造轮子。大家都把精力放在更有效的创新上。共享资源,合作伙伴使用Apollo技术资源,拿来即用;同时,每个合作伙伴,都可以贡献资源,贡献得越多,得到的越多。Apollo受益,合作伙伴更受益。加速创新:数据加创新,汇集数据资源,公里数,覆盖的场景数,以后将远远大于任何一个封闭的体系持续共赢:百度的商业模式,基于百度的核心能力。能力与合作伙伴互补,Apollo将是汽车工业的里程碑,Apollo将产生核心的影响力。

0?wx_fmt=jpeg

上图是Apollo开放路线图。Apollo从2017年4月份宣布开放计划,到7月份发布1.0,9月份发布1.5,2018年1月的CES发布2.0,迭代与发布速度非常快。 Apollo Roadmap可以看到,Apollo开放由两部分构成,开放能力和开放资源。 在2017年7月1.0中开放封闭场地循迹自动驾驶能力和资源,在9月1.5中开放固定车道自动驾驶能力和资源,在2018年1月2.0中开放简单城市路况自动驾驶能力和资源,之后会在2018、2019、2020年逐步开放特定区域高速和城市道路自动驾驶能力和资源,高速和城市道路和自动驾驶Alpha版,并最终到达高速和城市道路与全路网自动驾驶能力和资源。关于开源框架的详解可以参考前几篇的文章<深度剖析Apollo自动驾驶平台>,<解析百度Apollo 2.0代码>。

Apoll的“云+端”研发迭代新模式

0?wx_fmt=jpeg

智能自动驾驶汽车需要一颗聪明的车载大脑。我们在自己的研发中一路探索过来,智能汽车的“云+端”研发迭代新模式是我们对于加速自动驾驶汽车研发效率提出的解决办法。我们在车辆上积累海量的数据。 把这些积累的数据用云端的服务器集群高效地生成人工智能的模型,也就是车辆大脑。 把汽车大脑更新到车辆上,为车辆赋予自动驾驶的能力。

我们在自己研发过程中发现,研发L4自动驾驶量产车需要用非常复杂的算法策略解决非常复杂的场景。 根据兰德公司报告,量产需积累100亿公里自动驾驶里程经验,100辆车7*24小时跑上百年;如果是传统的直接在车端研发、车端调试的效率是不够的。 所以我们提出的解决办法是通过“云+端”的研发迭代新模式提高研发效率。我们非常高兴向Apollo生态分享这种模式。

  1. 自动驾驶大数据部分:

0?wx_fmt=jpeg

自动驾驶数据可以分为四大类: 自动驾驶车辆产生的数据首先是原始数据。主要是传感器数据、车辆自身数据、驾驶行为数据等。这些数据的特点是数据量极大、类型多样、以非结构化半结构化数据为主。无论对存储、传输、处理都构成比较大的挑战。 为了在深度学习中使用数据,我们还需要大量标注数据。主要有红绿灯数据集,障碍物数据集(2D、3D),语义分割数据集,自由空间数据集,行为预测数据集等等。 为了刻画自动驾驶行为,我们还需要将数据抽象成逻辑数据。主要是完美感知数据,环境抽象数据,车辆动力学模型等。 最后,我们会用为仿真构建仿真数据,主要是参数模糊化数据,三维重建数据,互动行为数据等。

  1. 自动驾驶数据平台架构:

0?wx_fmt=jpeg

数据平台是我们支撑智能汽车的“云+端”研发迭代新模式的核心平台。 由数据采集与传输,自动驾驶数据仓库,自动驾驶计算平台三个部分构成。 首先是数据采集与传输部分。使用Data-Recorder会按Apollo数据规范产生,完整的、精确记录的数据包,可以完成问题复现,也同时完成数据积累。通过传输接口,可以将数据高效地传输到运营点和云集群中。 接着是自动驾驶数据仓库部分,会将全部海量数据成体系地组织在一起,快速搜索,灵活使用,为数据流水线和各业务应用提供数据支撑。 自动驾驶计算平台部分,基于云资源异构计算硬件提供超强算力,通过细粒度容器调度提供多种计算模型,来支撑起各业务应用。如训练平台、仿真平台、车辆标定平台等等。

数据开放平台与训练平台实战

数据平台概要

  1. Apollo数据集:

0?wx_fmt=jpeg

Apollo开放资源数据集分为以下三大部分: 仿真数据集,包括自动驾驶虚拟场景和实际道路真实场景; 演示数据集,包括车载系统演示数据,标定演示数据,端到端演示数据,自定位模块演示数据; 标注数据集,包括6部分数据集:激光点云障碍物检测分类,红绿灯检测,Road Hackers,基于图像的障碍物检测分类,障碍物轨迹预测,场景解析;

除开放数据外,还配套开放云端服务,包括数据标注平台,训练学习平台以及仿真平台和标定平台,为Apollo开发者提供一整套数据计算能力的解决方案,加速迭代创新。

  1. Apollo训练平台:

0?wx_fmt=jpeg

我们还通过Apollo训练平台为每一个数据集提供类配套的计算能力。 训练平台的特色是: 通过Docker+GPU集群,提供提供与车端的一致硬件计算能力。 集成多种框架,提供完整的深度学习解决方案。 通过交互式可视化结果分析,方便算法调试优化。

  1. 云端开放平台架构逻辑介绍:

0?wx_fmt=jpeg

我们在自动驾驶的算法开发中,最大的痛点之一就是需要对海量数据集,反复尝试。我们通过将深度学习算法的研发流程(开发、训练、验证、调试)在云端实现,可以在充分利用云端大量计算资源的同时,将数据的流动仅在云端的服务器内完成,从而大幅提高算法研发效率。具体来说,首先开发者在本地开发机中基于Docker开发算法,并部署依赖环境。 接着将开发好的环境推到云端的私有Docker Repository中。 接下来在平台上挑选数据集,发起训练任务。Apollo训练平台的云计算调度就会将任务调度到计算集群上执行。这个过程中,在云集群的内部,开发者的程序使用数据获取接口,获得自动驾驶数据仓库中的数据集。最终由业务管理框架将执行过程、评估的结果和Model返回给可视化平台,完成可视化的调试。

具体怎么操作?接下来,我将介绍数据平台的实际操作。 打开Apollo的官网apollo.auto,可以看到首页。 点击Github可以查看Apollo车端开放能力的源代码。 在顶部菜单栏的“开发者”菜单中,选择“数据平台”即可进入Apollo数据开放平台。推荐使用PC打开使用,效果更佳。

0?wx_fmt=jpeg

在Apollo数据开放平台的页面右上角,有登录菜单,点击后登陆百度帐号,会简化之后的使用流程。

0?wx_fmt=jpeg

从上图可以看出数据开放平台的首页由几个小节构成,分别是仿真场景数据、标注数据、演示数据、相关产品与服务、上传我的数据。 开发者可以直接使用Apollo已经开放的数据,也可以通过Apollo的Data-Recorder记录数据上传到云上使用。 通过选择特定数据,可以进入特定数据的应用。 开发者可以在标定平台中标定车辆参数,通过上传数据,申请数据加工,使用数据标注服务,在训练平台中训练Model,将前几步应用平台的结果合并到Github的Apollo代码中,将编译结果或源码提交到仿真平台中完成评估,这样就通过“云+端”完成了自有车载系统的研发迭代。

仿真场景数据实战

0?wx_fmt=jpeg

首先,可以看到仿真场景数据集。仿真场景数据包括人工编辑以及真实采集的场景,覆盖多种路型、障碍物类型以及道路环境,同时开放云端仿真平台,支持算法模块在多场景中并发在线验证,加速算法迭代速度。点击两个仿真数据集下的“立即使用”按钮,可以进入到仿真场景数据集详情页。

0?wx_fmt=jpeg

仿真场景数据的详情页中,可以进一步通过条件筛选,查看场景的细节。点击右上角的仿真平台按钮,可以进入仿真平台。

0?wx_fmt=jpeg

在打开的仿真平台中,可以以默认Apollo模块运行仿真场景,也可以提交自己的自动驾驶系统运行仿真场景。Apollo仿真的具体使用,会有单独分享,这里由于时间关系就不再具体展开了。

标注数据

0?wx_fmt=jpeg

接下来是标注数据。 标注数据是为满足深度学习训练需求,经人工标注而生成的数据,目前我们开放了多种标注数据,同时在云端配套提供相应的计算能力,供开发者在云端训练算法,提升算法迭代效率。

Apollo开放了6个标注数据集和社区中比较流行的算法,以便开发者调试云端环境:

激光点云障碍物检测分类,我们提供基于规则算法的Demo(传统机器学习); 红绿灯检测,我们提供基于SSD算法的Demo(Paddle、Caffe); Road Hackers,我们提供基于CNN+LSTM的Demo(Keras、TensorFlow); 基于图像的障碍物检测分类,我们提供基于SSD算法的Demo(Caffe); 障碍物轨迹预测,我们提供基于MLP算法的Demo(TensorFlow); 场景解析

下面我们看下“激光点云障碍物检测分类”,可以进入数据集详情页。其他的标注数据各位朋友可以自己查看。

0?wx_fmt=jpeg

在数据集详情页中,可以看到数据集的介绍。点击右上角有一排操作按钮。点击“查看使用手册”,可以查看更加详细的数据集说明和使用说明。这是“查看使用手册”后打开的PDF 链接:http://data.apollo.auto/static/pdf/lidar_obstacle_label.pdf 点击样例数据,可以下载少量的样例数据,具体理解数据格式。点击“申请使用”,可以申请在云端使用数据集中的大量数据。

0?wx_fmt=jpeg

这是点击“申请使用”后弹出的对话框。 当前我们针对科研机构,企业单位开放云端计算能力,即您可以在线使用大量标注数据进行模型训练,并通过API访问开放数据。在您申请后,稍后会有Apollo商务负责人与您联系。

训练平台实战

0?wx_fmt=jpeg

在申请通过后,“申请使用”按钮会变成“在线使用”,点击后会进入Apollo训练平台的新建任务(Apollo训练平台有着较高的安全校验机制。初次使用需要设定云属性和联系方式,并签订使用协议书;当登录后过长时间未使用时,需要再次登录,在我们新建一个任务以前,我们先简单浏览一下训练平台的其他页面。 左侧的菜单栏有以下菜单:平台概览,任务管理中的任务列表、新建任务,入门指南,用户帮助、关于Apollo功能简单,我们就不展开了,下面着重介绍下前四项。

  1. 训练平台概览

0?wx_fmt=jpeg

平台概览页包含对训练平台整体的介绍。在训练平台,我们会开放大量级的数据,并配套提供相应的计算资源,供开发者在深度学习平台在线训练算法,致力于赋能每一位拥有较强软件、算法研发能力的合作伙伴,推动自动驾驶技术的普及。

  1. 任务列表

0?wx_fmt=jpeg

任务列表页中有个人拥有任务的列表。

  1. 入门指南

0?wx_fmt=jpeg

入门指南有Docker创建和算法开发的使用说明。 用户帮助中有一些常见问题的解答。 如果开发者有更多的问题,可以使用左下角的联系我们。也可以使用右上角的工单系统。接下来,就让我们按入门指南,以红绿灯检测为例,讲解一下深度学习算法的研发。在最上部显示的是为每个有权限的开发者分配的docker用户名和密码。接下来是流程概览:

  • 步骤一:本地开发环境搭建

  • 步骤二:Apollo demo镜像获取说明

  • 步骤三:数据使用方法,接口规范

  • 步骤四:提交镜像,提交任务,任务查看,结果查看

其中请参考相关任务对应的demo镜像中开源的代码,学习数据使用方法,编写自己的代码,写入镜像。

0?wx_fmt=jpeg

步骤一,为了搭建本地环境,可以下载VirtualBox对应的OVA镜像包,通过导入OVA创建一个预先配置好的虚拟机。

0?wx_fmt=jpeg


步骤二,Apollo官方demo镜像列表,镜像获取说明,我们挑选这个镜像(红绿灯检测paddle demo镜像)作为开发基础。

启动

docker sudo service docker start

登录仓库

sudo docker login apollo-docker.baidu.com

输入用户名和密码 (在页顶的红字中显示的Docker仓库用户名和密码)

username: … password: …

拉取镜像 以红绿灯检测paddle demo镜像为例

sudo docker pull apollo-docker.baidu.com/public/demo2.0:paddle_traffic_lights_detection


0?wx_fmt=jpeg


步骤三,平台数据使用方法,接口规范 参考相关任务对应的demo镜像中开源的代码,学习数据使用方法,编写自己的代码。

1.训练程序的启动入口为/admin/run_agent.sh,用户可以修改文件内容来控制训练程序的行为。平台以run_agent.sh结束状态来判断训练任务的状态;

2.任务运行时环境在/dataset_test/目录下有供测试使用的数据集,根据提交任务时选择的任务类型自动下载部署。

3.用户需要参考平台提供的demo镜像的入口(/admin/run_agent.sh)的实现来熟悉不同数据的使用方式;

点击数据工具使用,可以了解开发者在计算平台云端,通过Apollo训练工具下载和上传数据的方式。下面展开介绍下数据工具。

0?wx_fmt=jpeg


开发者可以使用以下三个接口程序,在自己的算法程序中动态获取数据、输出数据、输出日志、输出评测、输出图表、输出预测结果 apollo_data_get dataSetId outputPath [tag] [offset] [limit] apollo_data_put …

更多的细节,参考:https://console.bce.baidu.com/apollo/help/faq?name=cal_1_data_help_train6_downupload_data&locale=zh-cn#/apollo/home

0?wx_fmt=jpeg

以红绿灯检测Demo算法为例,我们的Demo中提供了作者原本的Caffe版,以及PaddlePaddle版。有兴趣的朋友可以看下MIT的论文和作者在Github上的源码。

0?wx_fmt=jpeg


步骤四,提交镜像,提交任务,任务查看,结果查看。

使用以下命令提交Docker镜像到仓库中。以红绿灯检测demo镜像为例,修改镜像tag:

sudo docker tag apollo-docker.baidu.com/public/demo2.0:paddle_traffic_lights_detection apollo-docker.baidu.com/1f89aa012dc599ef8be90180b587c7e6/traffic_lights:paddle_traffic_lights_detection

进入镜像:

sudo docker run -it --privileged=true apollo-docker.baidu.com/1f89aa012dc599ef8be90180b587c7e6/traffic_lights:paddle_traffic_lights_detection /bin/bash

修改镜像内容如:在/admin/run_agent.sh路径下开发自己的算法程序,完成后exit退出容器,得到容器container_id :

sudo docker commit -m 'comments' container_id apollo-docker.baidu.com/1f89aa012dc599ef8be90180b587c7e6/traffic_lights:paddle_traffic_lights_detection
sudo docker push apollo-docker.baidu.com/1f89aa012dc599ef8be90180b587c7e6/traffic_lights:paddle_traffic_lights_detection


0?wx_fmt=jpeg

提交训练任务,进入到训练平台的新建任务中,填写任务信息后提交任务。

0?wx_fmt=jpeg

在任务列表中可以查看自己的任务,点击任务的任务详情链接,可以进入任务详情查看任务执行状态和结果。

0?wx_fmt=jpeg


我们为开发者准备了任务信息、表格信息、图表、日志等基本信息,也提供了每一种数据类型的显示,如3D点云。

开发者可以在此页面了解到任务的执行情况、loss的收敛情况。页面加载时间随着数据量增长,可能需要一点加载时间。

演示数据实战

0?wx_fmt=jpeg

演示数据是为了配合车端代码,通过演示数据体验各模块的能力。

目前我们开放了多种演示数据,覆盖了车载系统演示数据、自定位、端到端数据等模块数据,旨在帮助开发者调试各模块代码,确保Apollo最新开放的代码模块能够在开发者本地环境运行成功,通过演示数据体验各模块的能力。

0?wx_fmt=jpeg

例如,下载车载系统演示数据,可以通过Github的apollo源码的编译执行步骤体验完整的Apollo车端能力。该演示数据集包含传感器数据,下载该数据集。按照QuickStart的说明,编译Apollo,使用rosbag play –l 命令播放该数据集演示即可。

数据上传实战

0?wx_fmt=jpeg

数据上传实战入口如下图所示:

0?wx_fmt=jpeg

开发者需要填写名称、设备、采集区域、场景属性信息。然后进行上传的时候我们提供三种数据上传方式,您可根据上传数据的大小以及宽带速度,选择合理的上传方式。

  • 在线 < 5G时

  • 客户端 < 1T时

  • 线下磁盘提供 更大数据

综上所述,开发者可以在标定平台中标定车辆参数,通过上传数据,申请数据加工,使用数据标注服务,在训练平台中训练Model,将前几步应用平台的结果合并到Github的Apollo代码中,将编译结果或源码提交到仿真平台中完成评估,这样就通过“云+端”完成了自有车载系统的研发迭代。


这篇关于Apollo的数据开放平台介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055187

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi