华为云八爪鱼Octopus自动驾驶云服务全流程对接指南
华为云八爪鱼Octopus自动驾驶云服务全流程对接指南
在自动驾驶技术快速迭代的当下,车企与科技公司亟需高效、稳定、全流程的开发平台支撑技术落地。华为云八爪鱼(Octopus)自动驾驶云服务作为面向自动驾驶全生命周期的一站式开发平台,整合数据处理、标注、模型训练、仿真测试等核心能力,依托华为云强大算力与盘古大模型技术,帮助用户快速构建数据闭环,降低自动驾驶开发门槛。本文将从基础准备到核心服务对接,再到SDK集成与安全配置,全方位讲解Octopus的对接使用方法,为开发者提供详尽的实操参考。
一、对接前期准备工作
在正式对接Octopus服务前,需完成账号注册、权限配置、环境搭建与工具安装等基础准备,确保后续对接流程顺畅。
1.1 华为云账号注册与服务开通
首先需拥有华为云账号,未注册用户可前往华为云官网完成注册,注册时需完成企业或个人实名认证,否则无法开通Octopus服务。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
登录控制台后,在顶部搜索栏输入“八爪鱼自动驾驶云服务”或“Octopus”,进入服务详情页。点击“立即开通”,根据业务需求选择服务套餐,Octopus提供按需计费与包年包月两种模式,新用户可享受免费试用额度。开通后,系统会自动创建对应的项目资源,后续所有操作均在项目内进行。
1.2 访问密钥(AK/SK)获取
AK/SK是调用华为云API与SDK的核心身份凭证,对接Octopus前必须获取。操作步骤如下:
- 登录华为云控制台,点击右上角用户名,选择“我的凭证”;
- 在左侧菜单栏选择“访问密钥”,点击“新建访问密钥”;
- 输入密钥描述,选择密钥有效期,点击“确定”;
- 系统生成AK(Access Key)与SK(Secret Access Key),SK仅显示一次,需立即下载保存,丢失后无法找回,只能重新创建。
1.3 开发环境搭建
Octopus支持本地开发与云端开发两种模式,本地开发需提前安装对应工具与依赖,推荐配置如下:
- Python环境:3.8及以上版本,用于SDK调用、脚本开发与数据处理;
- Docker环境:17.03及以上版本,用于自定义算法镜像、模型打包与环境隔离;
- 开发工具:推荐PyCharm、VS Code等代码编辑器,便于代码编写与调试;
- 网络要求:带宽≥100Mbps,上传大数据包(如Rosbag)时建议≥1Gbps,确保数据传输稳定。
Python环境安装完成后,可通过以下命令验证版本:
python --version
1.4 OBS桶创建与授权
Octopus数据存储依赖华为云对象存储服务(OBS),所有原始数据、标注数据、模型文件均需存储在OBS桶中,对接前需创建OBS桶并完成授权:
- 登录华为云控制台,搜索“对象存储OBS”,进入OBS控制台;
- 点击“创建桶”,填写桶名称(全局唯一),选择区域(建议与Octopus项目同区域,降低延迟),存储类型选择“标准存储”,桶权限设置为“私有”;
- 创建完成后,进入桶详情页,选择“权限管理”,添加Octopus服务授权,允许Octopus读写该桶数据。
二、Octopus核心服务对接详解
Octopus核心服务包含数据服务、标注服务、训练服务、仿真服务四大模块,各模块独立又相互关联,共同构成自动驾驶开发闭环。以下逐一讲解各服务的对接操作。
2.1 数据服务对接:原始数据上云与管理
数据服务是Octopus的基础,负责车载传感器原始数据(摄像头、雷达、激光雷达、IMU等)的上传、解析、存储与管理,支持Rosbag、MP4、Pcd等多种格式,单个数据包时长不超过10分钟。
2.1.1 数据格式规范
对接前需确保数据格式符合Octopus要求,核心格式如下:
- 原始数据:支持Rosbag格式(车载设备常用)、MP4(视频)、Pcd(点云)、JPG/PNG(图片);
- 转换后格式:Octopus可将Rosbag自动转换为OpenData格式,便于后续标注与训练;
- 数据集结构:需按“data/时间戳/数据文件”结构组织,时间戳为毫秒级,确保数据排序准确。
2.1.2 数据上传方式
Octopus提供三种数据上传方式,适配不同数据量场景:
方式一:OBS批量导入(推荐,适合≥2GB大数据包)
- 本地将原始数据整理为规范格式,压缩为单个zip包;
- 登录OBS控制台,进入已创建的桶,点击“上传文件”,将zip包上传至桶内指定文件夹;
- 登录Octopus控制台,进入“数据服务-数据批导”,点击“创建导入任务”;
- 选择OBS桶与文件路径,填写任务名称、数据类型,点击“提交”;
- 系统自动解析数据,转换为OpenData格式,任务完成后可在“数据总览”查看数据详情。
方式二:本地直接上传(适合<2GB小数据)
登录Octopus控制台,进入“数据服务-数据集管理”,点击“创建数据集”,选择“本地”来源,直接上传文件或文件夹,单个文件最大100MB,文件夹最大10GB。
方式三:硬盘快递导入(适合PB级海量数据)
联系华为云客服,申请硬盘快递服务,将存储数据的硬盘寄送至华为云数据中心,由运维人员批量导入OBS桶,再同步至Octopus。
2.1.3 数据处理流水线对接
Octopus数据服务支持自动化流水线处理,可完成Rosbag解析、转码、去重、脱敏、KPI统计等操作,对接步骤如下:
- 进入Octopus控制台,“数据服务-流水线管理”,点击“创建流水线”;
- 选择流水线模板(如“Rosbag解析流水线”),自定义流水线节点(解析、转码、过滤等);
- 绑定待处理数据集,设置流水线触发方式(手动/自动);
- 点击“启动流水线”,系统自动执行处理任务,可实时查看进度与日志。
2.2 标注服务对接:2D/3D数据标注与预标注
标注服务负责对上传的图像、点云数据进行标注,支持2D bounding box、3D框、车道线、红绿灯、可行驶区域等标注类型,提供人工标注与AI预标注两种模式,提升标注效率。
2.2.1 标注模板创建
标注前需创建标注模板,定义标注物类型、属性与标签,步骤如下:
- 进入Octopus控制台,“标注服务-模板管理”,点击“创建模板”;
- 填写模板名称,选择标注类型(2D图像/3D点云);
- 添加标注物(如乘用车、行人、自行车、车道线),设置标注物属性(颜色、型号、遮挡情况);
- 保存模板,后续标注任务可直接复用。
2.2.2 人工标注任务创建
- 进入“标注服务-项目管理”,点击“创建项目”,填写项目名称、描述;
- 选择项目绑定的数据集,点击“添加批次任务”;
- 填写任务名称、备注,选择标注模板,设置任务类型为“人工标注”;
- 分配标注人员,提交任务,标注人员登录控制台即可开始标注工作。
2.2.3 AI预标注对接(高效标注核心)
Octopus集成华为盘古大模型与自研预标注模型,可自动完成2D/3D数据预标注,人工仅需修正,标注效率提升50%以上,对接步骤如下:
- 进入“标注服务-模型管理”,点击“上传预标注模型”;
- 模型包需包含启动文件(customer_inference.py)、模型权重文件,目录结构如下:
model/ ├── customer_inference.py ├── model.pb └── utils.py
- 上传完成后,创建标注任务时选择“预标注”类型,绑定预标注模型;
- 提交任务,系统自动对数据集进行预标注,生成标注结果后,人工进入修正环节。
2.2.4 标注数据导出
标注完成后,可导出标准格式数据集(Pascal VOC、COCO、KITTI等),用于模型训练:
- 进入“标注服务-项目管理”,选择已完成标注的任务;
- 点击“导出数据集”,选择导出格式、数据范围;
- 系统生成导出任务,完成后可下载至本地或直接同步至训练服务。
2.3 训练服务对接:模型训练、管理与评估
训练服务提供在线模型训练能力,支持TensorFlow、PyTorch、MindSpore等主流AI框架,提供分布式训练、模型管理、性能评估等功能,适配感知、预测、规控等自动驾驶模型训练场景。
2.3.1 算法上传与管理
自定义算法需打包上传至Octopus,平台提供算法托管,步骤如下:
- 本地整理算法代码,目录结构需包含启动文件(如main.py)、依赖文件(requirements.txt)、训练脚本;
- 算法依赖需提前安装,不支持训练时动态联网安装;
- 进入Octopus控制台,“训练服务-算法管理”,点击“上传算法”;
- 填写算法名称、框架类型、启动文件路径,上传算法压缩包;
- 审核通过后,算法状态变为“可用”,可用于创建训练任务。
2.3.2 训练任务创建(含Python SDK示例)
训练任务可通过控制台或SDK创建,以下详细讲解两种方式:
方式一:控制台创建
- 进入“训练服务-训练任务”,点击“新建训练任务”;
- 填写任务名称、描述,选择资源规格(如昇腾AI芯片、GPU)、节点数量;
- 选择训练算法、训练数据集,设置训练参数(批次大小、学习率、训练轮数);
- 点击“提交”,系统自动分配资源,开始训练,可实时查看训练日志、损失值、准确率等指标。
方式二:Python SDK创建(代码示例)
首先安装Octopus Python SDK:
pip install huaweicloudsdkoctopus
SDK调用代码(创建训练任务):
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkoctopus.v1.region.octopus_region import OctopusRegion
from huaweicloudsdkoctopus.v1.client.octopus_client import OctopusClient
from huaweicloudsdkoctopus.v1.model.create_train_task_request import CreateTrainTaskRequest
# 配置AK/SK与区域
AK = "你的访问密钥AK"
SK = "你的访问密钥SK"
region = OctopusRegion.CN_NORTH_4 # 对应区域
credentials = BasicCredentials(AK, SK)
client = OctopusClient.new_builder() \
.with_credentials(credentials) \
.with_region(region) \
.build()
# 创建训练任务请求体
request = CreateTrainTaskRequest(
name="autopilot_perception_task",
description="自动驾驶感知模型训练任务",
algorithm_id="算法ID",
dataset_id="数据集ID",
resource_spec="ascend-910",
node_num=2,
hyper_parameters={
"batch_size": 32,
"learning_rate": 0.001,
"epochs": 100
}
)
# 发送请求,创建任务
response = client.create_train_task(request)
print(f"训练任务创建成功,任务ID:{response.task_id}")
2.3.3 模型管理与评估
训练完成后,模型自动保存至模型库,可进行版本管理、部署、评估:
- 进入“训练服务-模型管理”,查看所有训练模型,支持版本对比、回滚;
- 点击“模型评估”,选择测试数据集,设置评估指标(准确率、召回率、mAP);
- 系统生成评估报告,根据报告优化模型参数,重新训练。
2.4 仿真服务对接:场景管理、并行仿真与评测
仿真服务是自动驾驶模型验证的核心,提供20万+预置仿真场景库,支持大规模并行仿真(日行千万公里),可快速验证模型在复杂路况下的安全性与稳定性,降低实车测试成本。
2.4.1 仿真场景上传与管理
Octopus支持上传自定义场景或使用预置场景,场景格式支持VTD、OpenSCENARIO等,步骤如下:
- 本地整理场景文件(地图、交通参与者、路况配置),按规范打包;
- 进入Octopus控制台,“仿真服务-场景管理”,点击“上传场景”;
- 填写场景名称、类型、难度,上传场景包,系统自动解析;
- 预置场景可直接搜索调用,涵盖城市道路、高速、乡村、雨雪雾等场景。
2.4.2 仿真任务配置与运行
- 进入“仿真服务-并行仿真-任务配置”,点击“新建任务配置”;
- 选择仿真器(内置VTD或自定义镜像)、仿真算法(训练好的规控模型);
- 配置评测项(碰撞检测、闯红灯、压线、超速等);
- 选择仿真场景(单个/批量),设置并行节点数量(最多1000+);
- 点击“启动仿真”,系统并行执行仿真任务,实时监控仿真状态与结果。
2.4.3 仿真结果分析与模型迭代
仿真任务完成后,系统生成详细评测报告,包含场景通过率、违规次数、安全评分等:
- 进入“仿真服务-任务管理”,查看仿真报告,定位模型失效场景;
- 针对失效场景,补充对应数据,重新训练模型;
- 迭代仿真验证,直至模型满足安全标准。
三、Octopus SDK全集成指南
除控制台操作外,Octopus提供Python、Java、Go等多语言SDK,支持全流程API调用,适配自动化集成与二次开发,以下以Python SDK为例,讲解核心API集成。
3.1 SDK安装与初始化
安装命令:
pip install huaweicloudsdkoctopus
初始化客户端(配置AK/SK、区域):
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkoctopus.v1.region.octopus_region import OctopusRegion
from huaweicloudsdkoctopus.v1.client.octopus_client import OctopusClient
# 替换为你的AK/SK
AK = "你的AK"
SK = "你的SK"
# 替换为你的项目区域
region = OctopusRegion.CN_NORTH_4
# 初始化客户端
credentials = BasicCredentials(AK, SK)
octopus_client = OctopusClient.new_builder() \
.with_credentials(credentials) \
.with_region(region) \
.build()
3.2 核心API调用示例
3.2.1 数据集查询API
from huaweicloudsdkoctopus.v1.model.list_datasets_request import ListDatasetsRequest
# 查询数据集列表
request = ListDatasetsRequest(
limit=10,
offset=0
)
response = octopus_client.list_datasets(request)
print("数据集列表:", response.datasets)
3.2.2 仿真场景创建API
from huaweicloudsdkoctopus.v1.model.create_scene_request import CreateSceneRequest
# 创建仿真场景
request = CreateSceneRequest(
name="custom_city_scene",
type="CITY_ROAD",
description="自定义城市道路场景"
)
response = octopus_client.create_scene(request)
print(f"场景创建成功,场景ID:{response.scene_id}")
3.2.3 推理服务部署API
from huaweicloudsdkoctopus.v1.model.create_infer_service_request import CreateInferServiceRequest
# 部署推理服务
request = CreateInferServiceRequest(
name="perception_infer_service",
model_id="模型ID",
resource_spec="gpu-p4",
port=8080
)
response = octopus_client.create_infer_service(request)
print(f"推理服务部署成功,服务地址:{response.service_url}")
四、安全权限配置与最佳实践
Octopus对接需严格配置权限,保障数据与服务安全,以下为核心安全配置与最佳实践。
4.1 IAM权限精细化配置
使用IAM子账号分配权限,遵循最小权限原则,避免主账号密钥泄露:
- 登录华为云控制台,进入“统一身份认证(IAM)”;
- 创建子账号,仅分配Octopus与OBS必要权限(如Octopus Viewer、OBS ReadOnly);
- 为子账号创建AK/SK,用于日常开发对接,主账号AK/SK严格保密。
4.2 OBS桶安全配置
- 桶权限设置为私有,禁止公开访问;
- 开启桶版本控制,防止数据误删;
- 配置桶生命周期规则,自动归档冷数据,降低存储成本;
- 开启桶日志记录,监控所有访问行为。
4.3 数据安全与合规
- 原始数据上传前脱敏,去除敏感信息(车牌号、人脸等);
- 数据传输采用HTTPS加密,防止中途窃取;
- 遵循数据跨境合规要求,敏感数据存储在国内区域;
- 定期备份核心数据,避免数据丢失。
五、常见问题解答
5.1 数据上传失败,提示格式错误?
答:需检查数据格式是否符合要求,Rosbag需为车载标准格式,单个时长≤10分钟;文件夹结构需按“data/时间戳/文件”组织;压缩包建议用zip格式,避免rar加密压缩。
5.2 训练任务启动失败,资源不足?
答:先检查项目剩余资源配额,不足则升级套餐或申请扩容;选择资源规格时,优先匹配昇腾AI芯片,兼容性更好;分布式训练需确保节点数量≤资源上限。
5.3 预标注模型上传后无法使用?
答:检查模型包目录结构,必须包含启动文件customer_inference.py;模型权重文件格式需兼容平台框架;依赖库需提前安装,不支持动态安装;上传后需等待审核通过(通常1-2小时)。
5.4 仿真任务并行节点数量受限?
答:并行节点数量由套餐规格决定,基础版最多支持100个节点,企业版可支持1000+节点;如需更多节点,可联系华为云客服升级套餐;同时需确保场景文件无损坏,避免单个场景占用过多资源。
5.5 SDK调用提示AK/SK权限不足?
答:检查AK/SK对应的子账号权限,是否已分配对应API权限;确认区域配置正确,AK/SK与项目区域需匹配;重新生成AK/SK,避免密钥过期或泄露。
5.6 标注数据导出后无法用于训练?
答:检查导出格式是否与训练算法匹配(如Pascal VOC适配2D检测);确认标注数据无缺失、无错误;导出时选择完整数据集,避免部分数据遗漏。
六、总结
华为云八爪鱼Octopus自动驾驶云服务凭借一站式、全托管、高算力的优势,为自动驾驶开发提供了高效的解决方案。本文从前期准备、核心服务对接、SDK集成、安全配置四个维度,详细讲解了Octopus的对接使用流程,融入实操步骤与代码示例,覆盖数据、标注、训练、仿真全闭环场景。
对于车企与开发者而言,掌握Octopus对接技术,可快速搭建自动驾驶开发平台,聚焦算法与模型优化,大幅缩短开发周期、降低成本。未来,随着华为盘古大模型与Octopus的深度融合,平台将提供更强大的AI能力,助力自动驾驶技术更快落地商用。
问答列表
Q1:Octopus支持哪些类型的自动驾驶数据格式?
A1:支持Rosbag、MP4、Pcd、JPG、PNG等,Rosbag可自动转为OpenData格式,单个数据包时长不超过10分钟。
Q2:对接Octopus必须使用华为云OBS存储吗?
A2:是的,Octopus数据存储依赖华为云OBS,原始数据、标注数据、模型文件均需存储在OBS桶中,且需完成Octopus授权。
Q3:Octopus预标注功能支持哪些标注类型?
A3:支持2D图像 bounding box、3D点云框、车道线、红绿灯、可行驶区域等,基于盘古大模型,标注效率提升50%以上。
Q4:Octopus仿真服务最多支持多少并行节点?
A4:基础版最多100个,企业版可支持1000+并行节点,满足日行千万公里仿真里程需求。
Q5:调用Octopus SDK必须使用Python吗?
A5:不是,Octopus提供Python、Java、Go等多语言SDK,可根据开发语言选择适配SDK,核心API功能一致。
Q6:Octopus训练服务支持哪些AI框架?
A6:支持TensorFlow、PyTorch、MindSpore等主流AI框架,自定义算法需适配对应框架,提前打包上传。



