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

在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《linux深造日志》《粉丝福利》

⛺️生活的理想,就是为了理想的生活!

⛳️ 粉丝福利活动

  • 参与方式:通过连接报名观看课程,即可免费获取精美周边

  • ⛳️活动链接:《自动驾驶新人之旅》

  • 📆 活动时间长期有效 | 课程姓名填写 鸽芷咕 学号 1111

完成后加博主微信填写问卷领取礼品,也可根据《活动步骤》 完成领取

🔥 注:可以拉取进度条观看,超过%50即可领取百度周边
在这里插入图片描述

⛳️ 文章末尾扫码加入粉丝群,不定期发放粉丝福利,各种专业书籍免费赠送

文章目录

  • ⛳️ 粉丝福利活动
  • 引入
  • 一、 激光雷达在自动驾驶中的角色
  • 二、激光雷达的配置文件
    • 2.1 配置文件
  • 三、激光雷达追踪
    • 3.1 配置文件
  • 四、Apollo激光雷达的应用
    • 4.1 数据融合
    • 4.2 障碍物检测
    • 4.3 实时地图构建
    • 4.4 激光雷达技术的挑战和创新
  • 未来展望

引入

在自动驾驶技术的飞速发展中,感知系统的关键组件之一是激光雷达。百度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平台在激光雷达技术上不断创新,采用先进的信号处理算法和机器学习技术,提高系统的性能。

未来展望

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291047.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式与单片机之间的关系是什么?

今日话题,嵌入式与单片机之间的关系是什么?可以这样理解:嵌入式系统是一个大的范畴,而单片机则是嵌入式系统中的一个重要子类。通常情况下,制造商出厂的通用单片机内并没有预装应用程序,因此无法直接运行。…

如何在Windows 10中扩展分区,这里提供步骤

一些PC制造商提供的电脑硬盘分为多个分区,一个用于Windows操作系统,另一个用于个人文件的空“数据”分区。如果你愿意,可以将这些分区合并为一个分区。 此技巧还可以用于删除恢复分区,从而释放通常用于恢复数据的空间。或者&…

灵芝,到2025年有望达到9.2亿美元

灵芝是一种传统的药食两用菌,其具有丰富的营养成分和医疗价值,因此备受关注。全球市场分析 从全球市场来看,近年来灵芝的市场需求持续增长。据估计,2019年全球灵芝市场规模为4.1亿美元,到2025年有望达到9.2亿美元。市场…

【NP】规约与问题复杂度

目录 多项式时间规约复杂度类 多项式时间规约 Polynomial-Time Reductions :如果问题 Y Y Y 的任意实例可以通过多项式次数的标准计算步骤,加上对解决问题 X X X 的黑盒的多项式次数调用来解决,那么称问题 Y Y Y 可以在多项式时间归约为问…

PyQt学习笔记

文章目录 1 环境搭建1.1 安装PyQt51.1.1 安装1.1.2 验证 1.2 安装PyInstaller1.3 安装PySide1.4 安装InnoSetup1.5 PyCharm配置外部工具1.5.1 PyCharm配置PyLUpdate1.5.2 PyCharm配置QtLinguist1.5.3 PyCharm配置QtDesigner1.5.4 PyCharm配置PyUIC1.5.5 PyCharm配置PyRCC1.5.6 …

“ManageEngine荣获Gartner SIEM客户选择四连冠“

我们非常激动地宣布,ManageEngine已经连续第四次被认定为Gartner Peer Insights‘Voice of the Customer’:安全信息与事件管理(SIEM)中的客户选择。这不仅是对我们卓越SIEM解决方案承诺的肯定,也延续了ManageEngine在…

前端三剑客——HTML5+CSS3+JavaScript

核心技术●实战训练营●项目实战(微视频版)   《前端三剑客——HTML5CSS3JavaScript》采用“核心技术→实战训练营→企业级项目实践”的结构和“由浅入深,由深到精”的模式进行讲解。 全书科学设置七大阶段由浅入深循序渐进,为解…

linux系统编程笔记

linux系统编程 1. gcc四个阶段2. 动态库 静态库2.1 制作静态库2.2 头文件守卫2.3 制作动态库 3. gdb调试工具基础指令其他指令 4. Makefile最终成果一个小作业 5. 系统编程阶段open函数read write函数阻塞和非阻塞lseek函数设置文件读写偏移量传出参数和传入参数(c常用)5.2 文件…

SQL Yog 连接MySQL的时候出现 错误码 2058的问题

查看报错信息: 这个问题是出现在,我使用sql Yog连接MySQL数据库的时候出现的错误。 问题分析: 原因可能是MySQL加密方式,不允许本地访问, 解决办法: 1,window r 输入cmd进入黑窗口 2&#xff…

石头剪刀布游戏 - 华为OD统一考试

OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 石头剪刀布游戏有 3 种出拳形状: 石头、剪刀、布。分别用字母 A,B,C 表示游戏规则: 出拳形状之间的胜负规则如下: A>B; B>C; C>A; 左边一个字母,表示相对优势形状。右边一个字母,表示相对劣势形状。…

最优化理论期末复习笔记 Part 2

数学基础线性代数 从行的角度从列的角度行列式的几何解释向量范数和矩阵范数 向量范数矩阵范数的更强的性质的意义 几种向量范数诱导的矩阵范数 1 范数诱导的矩阵范数无穷范数诱导的矩阵范数2 范数诱导的矩阵范数 各种范数之间的等价性向量与矩阵序列的收敛性 函数的可微性与展…

『C++成长记』运算符重载

🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、运算符重载 📒1.1两个日期大小的比较 📒1.2运算符重载…

Navicat for Mysql怎么执行创建表的脚本

Navicat for Mysql怎么执行创建表的脚本 Navicat 怎么执行sql文件 Navicat 执行创建表语句 Navicat 执行sql语句 Navicat 怎么创建表语句 1、打开Navicat数据库管理工具; 2、点击菜单栏上的“工具”,选择“命令列界面”; 打开了命令列界面…

多肉植物,预计到2025我国市场规模将达到140亿元人民币

多肉植物是一种新兴的盆栽植物,由于造型各异、易于养殖、低维护难度等优点,在全球市场和中国市场受到了越来越多消费者的追捧。全球市场分析 从全球市场来看,多肉植物市场规模正在逐步扩大。各种形态各异的多肉植物受到消费者的喜爱&#xff…

魔术表演Scratch-第14届蓝桥杯Scratch省赛真题第1题

1.魔术表演(20分) 评判标准: 4分:满足"具体要求"中的1); 8分:满足"具体要求"中的2); 8分,满足"具体要求"中的3&#xff09…

ArrayList集合综合练习

文章目录 题目1训练目标训练提示训练步骤参考答案 题目2训练目标训练提示参考方案训练步骤参考答案 题目3训练目标训练提示参考方案训练步骤参考答案 题目4(综合)训练目标训练提示参考方案训练步骤参考答案 题目1 现有如下字符串元素:[“aaa…

ocrmypdf_pdf识别

安装 安装说明 https://ocrmypdf.readthedocs.io/en/latest/installation.html#native-windows提到需要的软件: Python 3.7 (64-bit) or later Tesseract 4.0 or later Ghostscript 9.50 or later 安装 ocrmypdf pip install ocrmypdf 添加语言包 https://oc…

科研+临床观摩|牙科医生公派美国从事访问学者交流

很多临床医学专业的访问学者希望在访学从事科研的同时,能到医院进行临床观摩。对于这些申请者的要求,我们会尽量满足。本案例中的T医生,口语较弱,担心英语面试,最终我们为其取得了田纳西大学健康科学中心的邀请函&…

【QT】QStandardItemModel类的应用介绍

目录 1 概述 2 常用方法 3 QStandardItemModel的使用 3.1 界面设计与主窗口类定义 3.2 系统初始化 3.3 从文本文件导入数据 3.4 数据修改 3.5 单元格格式设置 3.6 数据另存为文件 1 概述 QStandardItemModel是标准的以项数据(itemdata)为基础的…

【Linux】set命令使用

set命令 设置所使用shell的执行方式,可依照不同的需求来做设置。 语法 set [参数]选项及作用 执行令 : man set 执行命令结果 参数 -a  标示已修改的变量,以供输出至环境变量。-b  使被中止的后台程序立刻回报执行状态。-C  转向所…