news 2026/7/14 21:19:06

Apollo 占据网格感知模型:从训练到部署的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apollo 占据网格感知模型:从训练到部署的完整指南

Apollo 占据网格感知模型:从训练到部署的完整指南

    • 引言:什么是占据网格?
    • 第一部分:为什么需要这份指南?(背景与初衷)
    • 第二部分:核心概念与准备工作
      • 2.1 关键术语
      • 2.2 准备工作:驱动确认
    • 第三部分:训练阶段详解
      • 步骤 1: 获取训练环境与数据
      • 步骤 2: 创建并运行容器
      • 步骤 3: 进入容器并初始化
      • 启动SSH服务[可选]
      • 步骤 4: 数据预处理
      • 步骤 5: 模型评估(验证预训练权重)
      • 步骤 6: 模型微调
      • 步骤 7: 保存训练成果并清理
    • 第四部分:模型导出与部署
      • 步骤 1: 导出为ONNX格式
      • 步骤 2: 在Apollo系统中替换并测试模型
      • 模型文件结构说明
    • 总结

引言:什么是占据网格?

想象一下,自动驾驶汽车需要理解它周围的世界。传统方法像识别“那里有一辆车”或“这是一个行人”,但这还不够。自动驾驶汽车还需要知道那些没有被明确训练的物体(比如一个翻倒的纸箱、一个掉落的轮胎),以及空间是否可以被安全通过。

占据网格就是解决这个问题的关键技术。你可以把它理解成自动驾驶汽车的“上帝视角”或“三维思维导图”。它将车辆周围的环境划分成无数个细小的立方体网格(比如长宽各200米,高10米,每个网格0.5米见方),然后为每一个小立方体预测一个简单的状态:是否被占据(是/否)。通过这种方式,汽车能获得一个详尽、统一且不受预定义类别限制的3D环境表示。

本文介绍的camera_detection_occupancy是百度Apollo平台中的一个感知模型,它仅使用摄像头图像,就能生成这种强大的3D占据网格。下面,我们将一步步拆解如何训练、优化并最终将它部署到自动驾驶系统中。


第一部分:为什么需要这份指南?(背景与初衷)

  1. 原训练环境复杂:Apollo官方模型的训练环境依赖众多,配置步骤繁琐,容易出错。
  2. 简化流程:为此,我们将所有依赖打包成Docker镜像,并将测试所需的小型数据集(nuScenes v1.0-mini)也做成数据卷,实现开箱即用。
  3. 云端替代方案:虽然百度百舸AI平台提供了更便捷的BEV模型训练环境,但通常需要申请稀缺的GPU资源。本指南提供的本地Docker方案,让你在拥有NVIDIA GPU的机器上即可快速开始。

核心价值:本指南旨在提供一个一体化、可复现的解决方案,帮助开发者和研究者绕过环境配置的“坑”,直接聚焦于模型本身的训练、评估与部署。


第二部分:核心概念与准备工作

2.1 关键术语

  • Docker:一个容器化平台,可以将软件及其所有依赖打包在一个“容器”里,确保在任何地方运行的结果都一致。我们用它来封装训练环境。
  • nuScenes数据集:一个大型自动驾驶公开数据集,包含摄像头、激光雷达、雷达等多种传感器数据。我们使用其精简版v1.0-mini进行演示。
  • ONNX:一种开放的模型格式,允许你在不同框架(如PyTorch, TensorRT)之间转换和部署模型。
  • TensorRT:NVIDIA推出的高性能深度学习推理SDK,能极大优化模型在GPU上的运行速度。

2.2 准备工作:驱动确认

确保你的NVIDIA显卡驱动版本为580.95.05或兼容版本。

# 查看当前驱动版本nvidia-smi

如果版本不符,可从提供的链接下载安装。
驱动下载


第三部分:训练阶段详解

我们将整个过程分为两个容器:一个用于存放数据,一个用于运行训练代码。这样做的好处是数据可以独立存在,即使删除了训练容器,数据依然保留。

步骤 1: 获取训练环境与数据

下载我们预制的Docker镜像。

# 拉取训练环境镜像,并为其设置一个简短的标签dockerpull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:apollo_vision_netdockertag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:apollo_vision_net apollo_vision_net:v1dockerrmi swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:apollo_vision_net# 拉取数据卷镜像,它包含了nuScenes mini数据集dockerpull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:apollo_vision_net_datadockertag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:apollo_vision_net_data apollo_vision_net_datadockerrmi swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:apollo_vision_net_data

步骤 2: 创建并运行容器

# 首先,创建一个“数据容器”,它只是挂着数据,不运行任何程序dockerrun -d --name occ_data_container apollo_vision_net_datatail-f /dev/null# 然后,创建并运行“训练容器”。这里做了几件重要的事:# 1. `--gpus all`:将GPU透传给容器。# 2. `--shm-size=32g`:分配共享内存,大数据处理需要。# 3. `-v $PWD:/home`:将当前主机目录挂载到容器的`/home`,方便文件交换。# 4. `--volumes-from occ_data_container`:从数据容器挂载数据集。# 5. `--name ot_dev`:给容器起名为`ot_dev`。docker
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:05:59

Clawdbot汉化版部署教程:微信客服系统迁移方案+历史会话无缝导入

Clawdbot汉化版部署教程:微信客服系统迁移方案历史会话无缝导入 Clawdbot汉化版现已正式支持企业微信入口,为企业级客服场景提供更合规、更安全的本地化AI服务方案。相比原版,汉化版不仅完成全界面中文化,还针对国内主流通讯平台…

作者头像 李华
网站建设 2026/7/14 20:00:56

SDXL-Turbo实操手册:利用正则表达式批量清洗和标准化英文提示词库

SDXL-Turbo实操手册:利用正则表达式批量清洗和标准化英文提示词库 1. 为什么提示词清洗是SDXL-Turbo落地的第一道关卡 SDXL-Turbo的“打字即出图”体验令人惊艳——但这份流畅感有个隐藏前提:你输入的英文提示词,得是干净、规范、结构清晰的…

作者头像 李华
网站建设 2026/7/2 5:32:53

杰理之复位源获取【篇】

//要在reset_source_dump()之后调用 WEAK u8 is_reset_source(u32 src) { u32 rst get_reset_source_value(); printf(“get_reset_source_value %x\n”, rst); if(rst & BIT(src)){ return 1; } return 0;}

作者头像 李华
网站建设 2026/7/2 5:35:47

$.ajaxSetup({的庖丁解牛

$.ajaxSetup({ 是 jQuery 提供的 全局 AJAX 默认配置方法,用于为所有后续 $.ajax()、$.get()、$.post() 等请求设置统一参数。它看似方便,实则暗藏 全局状态污染、调试困难、安全风险 三大陷阱。 一、核心原理:全局默认值注入 ▶ 1. 工作机制…

作者头像 李华
网站建设 2026/7/4 0:43:43

学得屠龙技,换取存身钱。 牵来雷风牛,系在老村边。 磨刀霜雪夜,沽酒杏花天。 偶作烂柯戏,山河忽百年。 解甲云外客,种菊东篱前。 拂衣青山外,长歌履大川。

学得屠龙技,换取存身钱。 牵来雷风牛,系在老村边。 磨刀霜雪夜,沽酒杏花天。 偶作烂柯戏,山河忽百年。 解甲云外客,种菊东篱前。 拂衣青山外,长歌履大川。

作者头像 李华