baidu_history

第七章:Apollo自动驾驶平台

从2017年开放计划发布到成为全球最大的自动驾驶开放平台,Apollo见证了百度在智能驾驶领域的技术突破与生态构建

┌─────────────────────────────────────────────────────────────┐
│                     Apollo技术架构                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐      │
│  │  感知   │→ │  预测   │→ │  规划   │→ │  控制   │      │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘      │
│       ↑            ↑            ↑            ↑             │
│  ┌─────────────────────────────────────────────┐          │
│  │            高精地图与定位系统                 │          │
│  └─────────────────────────────────────────────┘          │
│       ↑                                     ↑              │
│  ┌─────────┐                         ┌─────────┐          │
│  │传感器层 │                         │ V2X通信 │          │
│  └─────────┘                         └─────────┘          │
└─────────────────────────────────────────────────────────────┘

7.1 感知技术栈

Apollo的感知系统是自动驾驶的”眼睛”,负责理解车辆周围的环境。在陶吉等技术专家的带领下,百度构建了业界领先的多模态感知技术体系。

7.1.1 陶吉的多传感器融合

技术背景与挑战

陶吉在2016年加入百度自动驾驶事业部,此前在Google X实验室有着丰富的计算机视觉经验。面对自动驾驶感知的核心挑战,陶吉提出了”全天候、全场景、全冗余”的感知系统设计理念:

融合架构设计

陶吉主导设计的多传感器融合系统采用了创新的”渐进式融合”架构,不同于传统的前融合或后融合,实现了激光雷达、摄像头、毫米波雷达等多种传感器的深度协同:

传感器融合架构:
┌──────────────────────────────────────────────────┐
│                  决策层融合                       │
│         (高级语义信息、行为意图)                  │
├──────────────────────────────────────────────────┤
│                  特征层融合                       │
│      (目标属性、运动状态、置信度)                │
├──────────────────────────────────────────────────┤
│                  数据层融合                       │
│         (点云、图像、雷达数据)                   │
├──────────────────────────────────────────────────┤
│   Lidar    Camera    Radar    Ultrasonic   IMU  │
└──────────────────────────────────────────────────┘

时空同步技术

陶吉团队开发的时空同步系统解决了多传感器数据对齐的核心难题:

融合策略优化

陶吉提出的”场景自适应融合”策略,根据不同场景动态调整传感器权重:

场景类型 主传感器 辅助传感器 融合权重分配
城市道路 摄像头 激光雷达 60:40
高速公路 激光雷达 毫米波雷达 50:30:20
停车场景 超声波 摄像头 70:30
恶劣天气 毫米波雷达 激光雷达 60:40

7.1.2 3D目标检测技术

技术演进历程

Apollo的3D目标检测技术经历了三代演进:

PointPillars改进版

百度团队在原始PointPillars基础上进行了7项关键优化,由陶吉团队的资深算法工程师韩旭主导:

# 伪代码示例:改进的PointPillars架构
class ImprovedPointPillars:
    def __init__(self):
        self.pillar_encoder = PillarFeatureNet()
        self.backbone = Custom2DCNN()
        self.detection_head = MultiTaskHead()
    
    def forward(self, point_cloud):
        # 1. 点云预处理与柱状化
        pillars = self.create_pillars(point_cloud)
        
        # 2. 特征编码
        pillar_features = self.pillar_encoder(pillars)
        
        # 3. 伪图像生成
        pseudo_image = self.scatter_to_bev(pillar_features)
        
        # 4. 2D卷积特征提取
        features = self.backbone(pseudo_image)
        
        # 5. 多任务检测头
        boxes, classes, scores = self.detection_head(features)
        return boxes, classes, scores

相机-激光雷达融合检测

陶吉团队创新性地提出了”Cross-Modal Transformer”融合架构:

检测性能指标

Apollo在多个标准数据集和实际道路测试中的表现:

目标类别 检测精度(AP) 召回率 实时性(FPS)
车辆 95.2% 96.8% 30
行人 89.6% 91.2% 30
骑行者 87.3% 88.9% 30
交通标志 93.8% 94.5% 30

7.1.3 语义分割技术

实时语义分割网络

Apollo采用了轻量级的语义分割网络,在保证精度的同时实现实时处理:

分割网络架构:
┌────────────────────────────────────────┐
│         输入图像 (1920×1080)           │
└────────────────┬───────────────────────┘
                 ▼
┌────────────────────────────────────────┐
│      编码器 (MobileNetV3)              │
│   ├─ 下采样路径                        │
│   └─ 多尺度特征提取                    │
└────────────────┬───────────────────────┘
                 ▼
┌────────────────────────────────────────┐
│      特征金字塔 (FPN)                  │
│   ├─ 1/32 特征图                       │
│   ├─ 1/16 特征图                       │
│   └─ 1/8 特征图                        │
└────────────────┬───────────────────────┘
                 ▼
┌────────────────────────────────────────┐
│      解码器 (轻量级上采样)              │
│   └─ 逐步恢复分辨率                    │
└────────────────┬───────────────────────┘
                 ▼
┌────────────────────────────────────────┐
│    语义分割结果 (19类)                 │
└────────────────────────────────────────┘

多任务学习策略

7.1.4 目标跟踪算法

多目标跟踪框架

Apollo实现了鲁棒的多目标跟踪系统,支持复杂场景下的稳定跟踪:

跟踪流程:
检测 → 特征提取 → 数据关联 → 轨迹管理 → 预测输出
  ↓        ↓          ↓          ↓          ↓
[YOLO]  [ReID]   [Hungarian]  [Kalman]  [LSTM]

关键技术创新

  1. 外观特征学习
    • 深度ReID网络提取目标外观特征
    • 对比学习增强特征区分度
    • 在线特征更新适应目标外观变化
  2. 运动模型优化
    • 扩展卡尔曼滤波处理非线性运动
    • IMM(交互多模型)处理运动模式切换
    • 社会力模型预测行人轨迹
  3. 数据关联策略
    • 级联匹配结合短期和长期线索
    • 图优化方法处理复杂关联
    • 概率数据关联处理不确定性

跟踪性能评估

评估指标 Apollo性能 行业平均 提升幅度
MOTA 78.5% 72.3% +8.6%
MOTP 85.2% 81.7% +4.3%
ID Switch 156 234 -33.3%
FP Rate 8.2% 11.5% -28.7%

7.2 预测与规划系统

Apollo的预测与规划系统是自动驾驶的”大脑”,负责预测其他交通参与者的行为并规划安全高效的行驶轨迹。这一系统由韩旭(预测算法负责人)和朱帆(规划算法负责人)共同领导开发。

7.2.1 行为预测模型

技术挑战与创新

韩旭在2017年从CMU机器人研究所加入百度,面对中国复杂交通环境的预测挑战:

多模态轨迹预测架构

韩旭团队开发的”Multimodal Prediction Network (MPN)”系统,能够生成多种可能的未来轨迹并估计其概率:

预测模型架构:
┌─────────────────────────────────────────────────┐
│              历史轨迹序列 (T=3s)                 │
└──────────────────┬──────────────────────────────┘
                   ▼
┌─────────────────────────────────────────────────┐
│           特征编码器 (LSTM/Transformer)          │
│  ├─ 运动特征:位置、速度、加速度、航向           │
│  ├─ 交互特征:相对位置、相对速度                 │
│  └─ 场景特征:道路结构、交通规则                 │
└──────────────────┬──────────────────────────────┘
                   ▼
┌─────────────────────────────────────────────────┐
│              意图识别模块                        │
│  ├─ 换道意图 (概率: 0.7)                        │
│  ├─ 直行意图 (概率: 0.2)                        │
│  └─ 转弯意图 (概率: 0.1)                        │
└──────────────────┬──────────────────────────────┘
                   ▼
┌─────────────────────────────────────────────────┐
│           轨迹生成器 (CVAE/GAN)                 │
│       生成K=6条可能轨迹,时长T=5s                │
└─────────────────────────────────────────────────┘

社会交互建模

韩旭团队创新性地引入了”Social-LSTM + Graph Attention”架构:

中国特色场景处理

针对中国道路的特殊情况,韩旭团队开发了专门的预测模块:

预测准确率对比

预测时长 Apollo Waymo 行业平均
1秒 96.3% 95.8% 93.2%
3秒 87.5% 86.9% 82.4%
5秒 74.2% 73.6% 68.5%

7.2.2 轨迹规划算法

规划团队背景

朱帆在2016年从MIT CSAIL加入百度,曾参与DARPA城市挑战赛冠军队伍。他带领的规划团队包括来自CMU、Stanford、清华等顶尖院校的20+名算法工程师。

分层规划架构

朱帆设计的”Hierarchical Planning Framework”采用三层架构,从全局路径到局部轨迹逐层细化:

规划层次结构:
┌─────────────────────────────────────────┐
│         全局路径规划 (Route)             │
│    起点 → 终点的道路级路径               │
│         算法:A* / Dijkstra              │
└────────────────┬────────────────────────┘
                 ▼
┌─────────────────────────────────────────┐
│        行为决策 (Decision)               │
│    换道/跟车/超车/停车等                 │
│      算法:有限状态机 + 规则             │
└────────────────┬────────────────────────┘
                 ▼
┌─────────────────────────────────────────┐
│       轨迹规划 (Planning)                │
│     生成平滑、安全、舒适的轨迹           │
│    算法:EM Planner / Lattice Planner    │
└─────────────────────────────────────────┘

EM Planner核心算法

# 伪代码:EM Planner主要流程
class EMPlanner:
    def plan(self, start_state, predictions, constraints):
        # 1. 路径规划(Path Planning)
        reference_line = self.get_reference_line()
        path_bounds = self.calculate_path_bounds(
            reference_line, 
            obstacles=predictions
        )
        optimal_path = self.dp_path_optimizer(
            reference_line, 
            path_bounds
        )
        
        # 2. 速度规划(Speed Planning)
        st_graph = self.build_st_graph(
            optimal_path, 
            predictions
        )
        speed_bounds = self.calculate_speed_bounds(st_graph)
        optimal_speed = self.qp_speed_optimizer(
            optimal_path, 
            speed_bounds
        )
        
        # 3. 轨迹合成
        trajectory = self.combine_path_speed(
            optimal_path, 
            optimal_speed
        )
        
        return trajectory

优化目标函数

轨迹优化考虑多个目标的平衡:

优化目标 权重 数学表达式
安全性 0.4 min Σ(1/d_obstacles)
舒适性 0.3 min Σ(a²) + Σ(jerk²)
效率性 0.2 min (t_arrival)
平滑性 0.1 min Σ(κ²)

7.2.3 决策树与强化学习

混合决策系统

Apollo结合了规则驱动和学习驱动的决策方法:

决策系统架构:
┌──────────────────────────────────────────┐
│           场景识别模块                    │
│   识别当前驾驶场景类型                   │
└──────────┬───────────────────────────────┘
           ▼
┌──────────────────────────────────────────┐
│         决策方法选择器                    │
├──────────┼───────────────────────────────┤
│  简单场景 │           复杂场景            │
└──────────┼───────────────────────────────┘
           ▼                    ▼
┌──────────────────┐  ┌───────────────────┐
│   规则决策树      │  │   强化学习模型     │
│  ├─ 交规遵守     │  │  ├─ DQN          │
│  ├─ 安全规则     │  │  ├─ PPO          │
│  └─ 效率规则     │  │  └─ SAC          │
└──────────────────┘  └───────────────────┘

强化学习训练框架

决策性能评估

场景类型 成功率 平均耗时 舒适度评分
高速并线 98.2% 8.3s 4.5/5
十字路口 96.7% 12.5s 4.3/5
环岛通行 94.5% 15.2s 4.1/5
拥堵跟车 99.1% - 4.6/5

7.2.4 安全性验证

形式化验证方法

Apollo采用多层次的安全验证体系:

安全验证流程:
┌─────────────────────────────────────────┐
│          静态代码分析                    │
│    MISRA C++ / Coverity / PVS-Studio    │
└────────────────┬────────────────────────┘
                 ▼
┌─────────────────────────────────────────┐
│          模型检验                        │
│      TLA+ / UPPAAL 形式化验证           │
└────────────────┬────────────────────────┘
                 ▼
┌─────────────────────────────────────────┐
│          仿真测试                        │
│    场景库测试(10万+场景)               │
└────────────────┬────────────────────────┘
                 ▼
┌─────────────────────────────────────────┐
│          实车测试                        │
│     封闭场地 → 开放道路                  │
└─────────────────────────────────────────┘

安全边界计算

故障注入测试

故障类型 测试用例数 通过率 平均恢复时间
传感器失效 500 99.2% 0.3s
通信延迟 300 98.7% 0.5s
定位偏差 400 97.5% 1.2s
规划异常 200 99.5% 0.2s

7.3 高精地图与定位

高精地图是自动驾驶的”记忆”,提供厘米级精度的环境信息,配合高精定位系统实现车辆的精确导航。这一关键系统由王健(高精地图负责人)和刘少山(定位技术负责人)领导开发。

7.3.1 地图数据采集

团队建设与技术积累

王健在2015年从Google地图团队回国加入百度,组建了国内最早的高精地图团队:

采集车配置

王健团队设计的第四代地图采集车,集成了当时最先进的传感器阵列:

采集车传感器配置:
┌──────────────────────────────────────────────┐
│              车顶传感器阵列                   │
│  ┌────────────────────────────────────────┐ │
│  │  Velodyne HDL-64E 激光雷达 × 2         │ │
│  │  精度: ±2cm  频率: 10Hz  线数: 64      │ │
│  └────────────────────────────────────────┘ │
│  ┌────────────────────────────────────────┐ │
│  │  FLIR Ladybug5+ 全景相机               │ │
│  │  分辨率: 30MP  视场: 360°×180°         │ │
│  └────────────────────────────────────────┘ │
│  ┌────────────────────────────────────────┐ │
│  │  NovAtel PwrPak7 GNSS/IMU              │ │
│  │  定位精度: RTK 2cm  航向: 0.1°         │ │
│  └────────────────────────────────────────┘ │
└──────────────────────────────────────────────┘

数据采集流程

王健团队建立了业界最高效的地图生产流水线:

采集效率指标

指标项 Apollo 行业平均 提升幅度
日均采集里程 800km 500km +60%
数据有效率 95.3% 88.2% +8%
自动化处理率 87.5% 72.3% +21%
地图生产周期 3天 7天 -57%

7.3.2 SLAM技术

SLAM技术负责人

刘少山在2016年从ETH苏黎世联邦理工学院加入百度,此前在自主机器人实验室(ASL)从事SLAM研究,是视觉SLAM领域的知名专家。

多传感器SLAM框架

刘少山团队开发的”Apollo SLAM 2.0”融合了激光雷达、视觉和IMU,实现了厘米级建图精度:

# 伪代码:Apollo SLAM主要模块
class ApolloSLAM:
    def __init__(self):
        self.lidar_odometry = LidarOdometry()
        self.visual_odometry = VisualOdometry()
        self.loop_detector = LoopClosureDetector()
        self.graph_optimizer = PoseGraphOptimizer()
        self.map_builder = OctomapBuilder()
    
    def process_frame(self, lidar_scan, images, imu_data):
        # 1. 激光里程计
        lidar_pose = self.lidar_odometry.compute(
            lidar_scan, 
            imu_data
        )
        
        # 2. 视觉里程计
        visual_pose = self.visual_odometry.compute(
            images,
            self.extract_features(images)
        )
        
        # 3. 位姿融合
        fused_pose = self.fuse_poses(
            lidar_pose, 
            visual_pose,
            weights=[0.7, 0.3]
        )
        
        # 4. 回环检测
        if self.loop_detector.detect(lidar_scan, images):
            self.graph_optimizer.add_loop_constraint()
        
        # 5. 地图更新
        self.map_builder.update(lidar_scan, fused_pose)
        
        return fused_pose

关键技术创新

7.3.3 多源融合定位

定位系统架构

融合定位架构:
┌─────────────────────────────────────────────┐
│              定位融合中心                    │
│          输出: 6DOF位姿 @ 100Hz             │
└───────────────┬─────────────────────────────┘
                ▲
    ┌───────────┼───────────┬────────────┐
    │           │           │            │
┌───▼────┐ ┌───▼────┐ ┌───▼────┐ ┌────▼────┐
│  GNSS  │ │  IMU   │ │  激光  │ │  视觉   │
│  定位  │ │  惯导  │ │  定位  │ │  定位   │
│  10Hz  │ │  100Hz │ │  10Hz  │ │  30Hz   │
└────────┘ └────────┘ └────────┘ └─────────┘

扩展卡尔曼滤波融合

融合算法基于EKF框架,状态向量包含:

定位精度分析

场景条件 定位精度 可用性 主要依赖
开阔区域+RTK 2-5cm 99.9% GNSS/RTK
城市峡谷 10-20cm 98.5% 激光+地图
隧道环境 20-30cm 97.2% IMU+里程计
地下停车场 30-50cm 95.8% 视觉+IMU

7.3.4 地图实时更新

众包更新机制

Apollo利用量产车辆实现地图的持续更新:

众包更新流程:
┌────────────────────────────────────────┐
│         量产车辆 (数万辆)               │
│    轻量级传感器 + 边缘计算单元          │
└──────────────┬─────────────────────────┘
               ▼
┌────────────────────────────────────────┐
│         变化检测算法                    │
│   对比实时感知与基准地图                │
└──────────────┬─────────────────────────┘
               ▼
┌────────────────────────────────────────┐
│         数据上传 (4G/5G)                │
│   仅上传变化区域数据 (压缩90%)          │
└──────────────┬─────────────────────────┘
               ▼
┌────────────────────────────────────────┐
│         云端验证与融合                  │
│   多源验证 → 地图更新 → 下发            │
└────────────────────────────────────────┘

变化检测算法

更新效率指标

更新类型 检测延迟 验证时间 下发延迟
临时施工 <1小时 2小时 30分钟
标志变更 <6小时 12小时 1小时
道路改造 <24小时 48小时 2小时
新建道路 <72小时 1周 6小时

7.4 V2X与商业化

在李震宇的领导下,Apollo从技术平台走向商业落地,通过车路协同和Robotaxi服务探索自动驾驶的商业化路径。

7.4.1 李震宇的车路协同战略

李震宇的战略转型

李震宇在2019年接任Apollo总经理后,提出了”攀登珠峰,沿途下蛋”的商业化战略:

李震宇的背景使他成为推动这一战略的理想人选:

ACE智能交通引擎

李震宇提出的”ACE交通引擎”(Autonomous Driving、Connected Road、Efficient Mobility)构建了完整的智能交通体系:

ACE架构(Autonomous Driving、Connected Road、Efficient Mobility):
┌─────────────────────────────────────────────────┐
│                 应用层 (A)                       │
│    Robotaxi | Robobus | 智能停车 | 智能物流      │
├─────────────────────────────────────────────────┤
│                 引擎层 (C)                       │
│    Apollo自动驾驶 | 车路协同 | MaaS平台          │
├─────────────────────────────────────────────────┤
│                 基础设施层 (E)                   │
│    智能信控 | 智能路侧 | V2X网络 | 云控平台      │
└─────────────────────────────────────────────────┘

车路协同技术方案

李震宇领导团队开发的车路协同方案,实现了”聪明的车+智慧的路”:

技术创新亮点

落地城市案例

城市 部署规模 应用场景 关键成果
北京亦庄 300+路口 自动驾驶测试区 事故率降低30%
广州黄埔 133公里道路 智能网联示范区 通行效率提升25%
长沙湘江新区 100+路口 V2X全覆盖 红绿灯配时优化20%
沧州 229公里 主城区全覆盖 拥堵指数下降15%

7.4.2 5G-V2X技术

技术架构演进

V2X通信架构:
┌────────────────────────────────────────────┐
│              应用服务层                     │
│   碰撞预警 | 编队行驶 | 远程驾驶           │
└──────────────┬─────────────────────────────┘
               ▼
┌────────────────────────────────────────────┐
│            V2X协议栈                        │
├────────────┬───────────┬───────────────────┤
│   V2V      │    V2I    │      V2N          │
│  DSRC/C-V2X│   C-V2X   │    5G NR         │
└────────────┴───────────┴───────────────────┘
               ▼
┌────────────────────────────────────────────┐
│           物理通信层                        │
│    5.9GHz频段 | 5G网络 | 边缘计算节点      │
└────────────────────────────────────────────┘

关键技术指标

通信模式 时延 可靠性 数据速率 覆盖范围
V2V直连 <20ms 99.99% 10Mbps 300m
V2I通信 <50ms 99.9% 50Mbps 500m
V2N (5G) <10ms 99.999% 1Gbps 全覆盖

边缘计算部署

7.4.3 Robotaxi运营系统

萝卜快跑的诞生与发展

2020年,李震宇亲自主导了Apollo Go(萝卜快跑)的品牌发布。这个名字寓意”科技让出行更美好”,萝卜谐音”Robot”,体现了自动驾驶的科技属性。

发展历程:

萝卜快跑服务平台

李震宇团队打造的萝卜快跑,已成为全球最大的自动驾驶出行服务平台:

运营系统架构:
┌─────────────────────────────────────────────┐
│            用户端APP                        │
│   叫车 | 行程管理 | 支付 | 评价             │
└──────────────┬──────────────────────────────┘
               ▼
┌─────────────────────────────────────────────┐
│          调度中心                           │
│  ┌─────────────────────────────────┐       │
│  │  需求预测  │  车辆调度  │  路径规划 │       │
│  └─────────────────────────────────┘       │
└──────────────┬──────────────────────────────┘
               ▼
┌─────────────────────────────────────────────┐
│          车队管理系统                       │
│  ┌─────────────────────────────────┐       │
│  │ 远程监控 │ 应急接管 │ OTA更新  │       │
│  └─────────────────────────────────┘       │
└──────────────┬──────────────────────────────┘
               ▼
┌─────────────────────────────────────────────┐
│         自动驾驶车辆                        │
│    第5代无人车 | L4级自动驾驶               │
└─────────────────────────────────────────────┘

运营数据(截至2024年)

指标 数值 同比增长
累计订单量 500万+ +300%
运营城市 11个 +120%
车队规模 500+ +150%
日均订单 2万+ +200%
用户满意度 4.8/5.0 +5%

成本优化路径

7.4.4 安全冗余设计

多层冗余架构

安全冗余系统:
┌─────────────────────────────────────────────┐
│              系统级冗余                      │
│  ┌─────────────────────────────────────┐   │
│  │  主系统  │  备份系统  │  安全系统    │   │
│  │   100%   │    100%    │   简化版     │   │
│  └─────────────────────────────────────┘   │
├─────────────────────────────────────────────┤
│              传感器冗余                      │
│  ┌─────────────────────────────────────┐   │
│  │ 激光×3 │ 相机×12 │ 毫米波×5 │ IMU×2│   │
│  └─────────────────────────────────────┘   │
├─────────────────────────────────────────────┤
│              计算冗余                        │
│  ┌─────────────────────────────────────┐   │
│  │  主计算 │ 备计算 │ 安全MCU │ 看门狗  │   │
│  └─────────────────────────────────────┘   │
├─────────────────────────────────────────────┤
│              执行冗余                        │
│  ┌─────────────────────────────────────┐   │
│  │ 双制动 │ 双转向 │ 双电源 │ 机械备份 │   │
│  └─────────────────────────────────────┘   │
└─────────────────────────────────────────────┘

故障处理机制

  1. 降级策略
    • Level 0: 正常运行
    • Level 1: 性能降级,限速运行
    • Level 2: 最小风险运行
    • Level 3: 紧急停车
  2. 接管机制
    • 远程接管延迟: <200ms
    • 5G专用通道保障
    • 多操作员冗余配置
    • 自动故障上报

安全认证与标准

认证标准 达成状态 认证机构
ISO 26262 ASIL-D TÜV
ISO 21448 (SOTIF) 通过 TÜV
GB/T 汽车驾驶自动化 L4认证 工信部
信息安全ISO 21434 通过 公安部

实际安全表现


本章小结

Apollo自动驾驶平台代表了百度在人工智能领域的最高技术成就之一。通过感知、预测、规划、定位等核心技术的突破,以及V2X车路协同的创新应用,Apollo不仅在技术上达到了世界领先水平,更通过萝卜快跑等商业化服务,探索出了一条可行的自动驾驶商业化路径。

从2017年开放至今,Apollo已经成长为全球最大的自动驾驶开放平台,拥有210+生态合作伙伴,开源代码70万行,为中国自动驾驶产业的发展做出了重要贡献。在李震宇等技术领导者的带领下,Apollo正在向着”让出行更简单、更美好”的愿景稳步前进。