百度Apollo:激光雷达检测技术深度解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 百度Apollo:激光雷达检测技术深度解析

引入

在自动驾驶技术的飞速发展中,感知系统的关键组件之一是激光雷达。百度Apollo平台作为领先的自动驾驶解决方案之一,其激光雷达检测技术在实现高精度环境感知方面发挥着关键作用。

一、 激光雷达在自动驾驶中的角色

激光雷达(LiDAR)是一种通过发射激光束并测量其返回时间来感知周围环境的传感器。在自动驾驶中,激光雷达的角色不可忽视,因为它提供了高精度的三维空间信息,用于检测障碍物、构建地图以及进行定位。

二、激光雷达的配置文件

激光雷达检测用于 3D 目标检测,它的输入是激光雷达点云,输出为检测到的物体的类型和坐标,具体的实现在lidar_detection_component中。它的流水线配置文件在

  • modules/perception/pipeline/config/lidar_detection_pipeline.pb.txt

一共分为 7 个阶段,其 POINTCLOUD_DETECTION_PREPROCESSORPOINTCLOUD_DETECTION_POSTPROCESSOROBJECT_FILTER_BANK 各包含 1 个

2.1 配置文件

和上图对应,lidar_detection_component组件一共分为 7 个阶段,具体的流水线配置如下。

pipeline_type: LIDAR_DETECTION
stage_type: POINTCLOUD_PREPROCESSOR
stage_type: POINTCLOUD_DETECTION_PREPROCESSOR
stage_type: MAP_MANAGER
stage_type: POINT_PILLARS_DETECTION
stage_type: POINTCLOUD_DETECTION_POSTPROCESSOR
stage_type: OBJECT_BUILDER
stage_type: OBJECT_FILTER_BANK
stage_config: {
  stage_type: POINTCLOUD_PREPROCESSOR
  enabled: true
  pointcloud_preprocessor_config: {
    filter_naninf_points: false
    filter_nearby_box_points: false
    box_forward_x: 2.0
    box_backward_x: -2.0
    box_forward_y: 2.0
    box_backward_y: -2.0
    filter_high_z_points: false
    z_threshold: 5.0
  }
}
stage_config: {
  stage_type: POINTCLOUD_DETECTION_PREPROCESSOR
  enabled: true
  plugin_config: {
    plugin_type: POINTCLOUD_DOWN_SAMPLE
    enabled: true
    pointcloud_downsample_config: {
      enable_downsample_pointcloud : true
      enable_downsample_beams : true
      x_min_range : -74.88
      x_max_range : 74.88
      y_min_range : -74.88
      y_max_range : 74.88
      z_min_range : -2.0
      z_max_range : 4.0
    }
  }
  pointcloud_detection_preprocessor_config:{
  }
}
stage_config: {
  stage_type: MAP_MANAGER
  enabled: true
  map_manager_config: {
    update_pose: false
    roi_search_distance: 120.0
  }
}
stage_config: {
  stage_type: POINT_PILLARS_DETECTION
  enabled: true
  point_pillars_detection_config: {
  }
}
stage_config: {
  stage_type: POINTCLOUD_DETECTION_POSTPROCESSOR
  enabled: true
  plugin_config: {
    plugin_type: POINTCLOUD_GET_OBJECTS
    enabled: true
    pointcloud_get_objects_config:{
    }
  }
}
stage_config: {
  stage_type: OBJECT_BUILDER
  enabled: true
  object_builder_config: {
  }
}
stage_config: {
  stage_type: OBJECT_FILTER_BANK
  enabled: true
  plugin_config: {
    plugin_type: ROI_BOUNDARY_FILTER
    enabled: true
    roi_boundary_filter_config: {
      distance_to_boundary_threshold: -1.0
      confidence_threshold: 0.5
      cross_roi_threshold: 0.6
      inside_threshold: 1.0
    }
  }
  object_filter_bank_config: {
  }
}
lidar_detection_config: {
}

三、激光雷达追踪

激光雷达追踪是一种使用激光雷达(LIDAR)技术来检测、跟踪和预测物体运动的过程。它通常涉及到对激光雷达数据的处理和分析,以确定物体的位置、速度和轨迹。

而在apollo 里面激光雷达跟踪用于追踪上面检测到的 3D 目标对象,它的输入是激光雷达点云检测结果,输出为跟踪到对象的 ID,具体的实现在 lidar_tracking_component 中。

它的流水线配置文件在 modules/perception/pipeline/config/lidar_tracking_pipeline.pb.txt 中,一共分为 2 个阶段,每个阶段各包含 2 个算法插件。

3.1 配置文件

stage_type: MLF_ENGINE
stage_type: FUSED_CLASSIFIER
stage_config: {
  stage_type: MLF_ENGINE
  enabled: true
  plugin_config: {
    plugin_type: MLF_TRACK_OBJECT_MATCHER
    enabled: true
    mlf_track_object_matcher_config: {
      foreground_mathcer_method: "MultiHmBipartiteGraphMatcher"
      background_matcher_method: "GnnBipartiteGraphMatcher"
      bound_value: 100
      max_match_distance: 4.0
    }
  }
  plugin_config: {
    plugin_type: MLF_TRACKER
    enabled: true
    mlf_tracker_config: {
      filter_name: "MlfShapeFilter"
      filter_name: "MlfMotionFilter"
    }
  }
  mlf_engine_config: {
    main_sensor: "velodyne128"
    use_histogram_for_match: true
    histogram_bin_size: 10
    output_predict_objects: false
    reserved_invisible_time: 0.3
    use_frame_timestamp: true
  }
}
stage_config: {
  stage_type: FUSED_CLASSIFIER
  enabled: true
  plugin_config: {
    plugin_type: CCRF_ONESHOT_TYPE_FUSION
    enabled: true
    ccrf_type_fusion_config: {
      classifiers_property_file_path: "./data/perception/lidar/models/fused_classifier/classifiers.property"
      transition_property_file_path: "./data/perception/lidar/models/fused_classifier/transition.property"
      transition_matrix_alpha: 1.8
    }
  }
  plugin_config: {
    plugin_type: CCRF_SEQUENCE_TYPE_FUSION
    enabled: true
    ccrf_type_fusion_config: {
      classifiers_property_file_path: "./data/perception/lidar/models/fused_classifier/classifiers.property"
      transition_property_file_path: "./data/perception/lidar/models/fused_classifier/transition.property"
      transition_matrix_alpha: 1.8
    }
  }
  fused_classifier_config {
    one_shot_fusion_method: "CCRFOneShotTypeFusion"
    sequence_fusion_method: "CCRFSequenceTypeFusion"
    enable_temporal_fusion: true
    temporal_window: 20.0
    use_tracked_objects: true
  }
}

四、Apollo激光雷达的应用

4.1 数据融合

Apollo平台采用多传感器融合的方法,将来自不同传感器的信息整合在一起,以获取更全面、准确的环境感知。激光雷达的数据与摄像头、毫米波雷达等传感器的数据相融合,提高了感知系统的鲁棒性。

4.2 障碍物检测

激光雷达通过测量返回时间来计算物体的距离,并通过旋转来获取物体的方位。这些数据用于高精度的障碍物检测,能够识别车辆、行人、建筑物等。

4.3 实时地图构建

激光雷达还用于实时地图构建,为自动驾驶车辆提供高精度的地图信息。这对于路径规划和决策制定至关重要。

4.4 激光雷达技术的挑战和创新

激光雷达技术在自动驾驶中面临着一些挑战,如对恶劣天气的适应性、点云处理的复杂性等。为了解决这些问题,Apollo平台在激光雷达技术上不断创新,采用先进的信号处理算法和机器学习技术,提高系统的性能。

未来展望

随着技术的不断发展,激光雷达技术在自动驾驶中将继续发挥重要作用。未来,我们可以期待更小型、高分辨率的激光雷达设备,以及更智能、自适应的感知系统。

目录
相关文章
|
2天前
|
机器学习/深度学习 算法
概率分布深度解析:PMF、PDF和CDF的技术指南
本文将深入探讨概率分布,详细阐述概率质量函数(PMF)、概率密度函数(PDF)和累积分布函数(CDF)这些核心概念,并通过实际示例进行说明。
27 15
概率分布深度解析:PMF、PDF和CDF的技术指南
|
9天前
|
机器学习/深度学习 人工智能 编解码
深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
【9月更文挑战第2天】深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
 深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
|
3天前
|
存储 关系型数据库 MySQL
技术解析:MySQL中取最新一条重复数据的方法
以上提供的两种方法都可以有效地从MySQL数据库中提取每个类别最新的重复数据。选择哪种方法取决于具体的使用场景和MySQL版本。子查询加分组的方法兼容性更好,适用于所有版本的MySQL;而窗口函数方法代码更简洁,执行效率可能更高,但需要MySQL 8.0及以上版本。在实际应用中,应根据数据量大小、查询性能需求以及MySQL版本等因素综合考虑,选择最合适的实现方案。
17 6
|
11天前
|
API 云计算 开发者
使用宜搭平台带来的便利:技术解析与实践
【9月更文第8天】随着企业信息化建设的不断深入,业务流程自动化的需求日益增长。宜搭平台作为一种高效的应用构建工具,为企业提供了快速搭建各类业务系统的可能。本文将探讨使用宜搭平台给企业和开发者带来的便利,并通过具体的代码示例展示其优势。
47 11
|
6天前
|
存储 负载均衡 Java
Jetty技术深度解析及其在Java中的实战应用
【9月更文挑战第3天】Jetty,作为一款开源的、轻量级、高性能的Java Web服务器和Servlet容器,自1995年问世以来,凭借其卓越的性能、灵活的配置和丰富的扩展功能,在Java Web应用开发中占据了举足轻重的地位。本文将详细介绍Jetty的背景、核心功能点以及在Java中的实战应用,帮助开发者更好地理解和利用Jetty构建高效、可靠的Web服务。
21 2
|
11天前
|
定位技术 网络虚拟化 数据中心
VLAN与VXLAN技术解析:仅一字之差的深远区别
通过深入了解VLAN与VXLAN的技术细节和应用场景,网络工程师可以根据具体需求选择最合适的技术来优化网络架构。对于现代网络环境,尤其是大规模和多变的网络结构,理解并合理运用这些技术是提高网络效率和安全性的关键。
29 1
|
5天前
|
消息中间件 安全 Kafka
Kafka支持SSL/TLS协议技术深度解析
SSL(Secure Socket Layer,安全套接层)及其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。这些协议在传输层对网络连接进行加密,确保数据在传输过程中不被窃取或篡改。
13 0
|
5天前
|
分布式计算 Java Apache
Apache Spark Streaming技术深度解析
【9月更文挑战第4天】Apache Spark Streaming是Apache Spark生态系统中用于处理实时数据流的一个重要组件。它将输入数据分成小批次(micro-batch),然后利用Spark的批处理引擎进行处理,从而结合了批处理和流处理的优点。这种处理方式使得Spark Streaming既能够保持高吞吐量,又能够处理实时数据流。
19 0
|
6天前
|
SQL 关系型数据库 MySQL
MySQL技术安装配置、数据库与表的设计、数据操作解析
MySQL,作为最流行的关系型数据库管理系统之一,在WEB应用领域中占据着举足轻重的地位。本文将从MySQL的基本概念、安装配置、数据库与表的设计、数据操作解析,并通过具体的代码示例展示如何在实际项目中应用MySQL。
31 0
|
13天前
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
36 0

推荐镜像

更多