自动驾驶---Perception之IPM图和BEV图

1 前言

        IPM(Inverse Perspective Mapping,逆透视变换)图的历史可以追溯到计算机视觉和图像处理领域的发展。逆透视变换是一种用于消除图像中透视效应的技术,使得原本由于透视产生的形变得以纠正,进而更准确地描述和理解图像中的场景。比如在行车中的车道线检测,泊车中的常见障碍物检测,自动驾驶感知最开始的方案基本都离不开IPM图。

       早期,自动驾驶系统主要依赖于传统的2D感知算法,这些算法通常从单张图像(或者IPM图)中检测或分割目标。然而,随着自动驾驶技术的发展,对车辆周围环境感知的需求越来越高(比如IPM图拼接处的检测准确度较差),需要更全面地理解车辆周围的目标和障碍物。

       因此,研究者们开始探索如何将来自不同摄像头和传感器的数据融合到一个统一的视图中,BEV(Bird's Eye View,鸟瞰图)的概念就是在这样的背景下提出的。通过将来自多个摄像头的数据投影到一个共享的BEV空间中,可以创建一个从上方俯视的二维图像,其中包含了车辆周围环境中的所有目标和障碍物。随着特斯拉将BEV技术量产发布后,国内的自动驾驶公司感知模块也在逐步切换到BEV方案。

2 内容介绍

        在自动驾驶感知中,IPM和BEV是两个重要的概念,它们各自在自动驾驶的感知和理解环境中起着关键作用,下面分别对两者进行介绍,本篇博客不做公式推导,只做概念及应用的阐述,用于区分两者的相同点和不同点

2.1 IPM图

(1)定义

        IPM是一种在自动驾驶中常用的图像处理方法,主要用于将从车辆摄像头捕获的图像中的车道线或其他特征,从透视视角(即摄像头视角)转换到鸟瞰视角(即从上空垂直俯视的视角)。

(2)原理

        逆透视映射的基本原理是将摄像头捕获的图像中的像素点映射回地面上的实际位置。由于摄像头捕获的图像是真实世界的3D坐标到2D平面坐标的投影,因此IPM图通过将2D图像反变换到3D世界坐标,然后在世界坐标系下进行物体检测和分析。这一过程中,单应矩阵(单应矩阵是一个3x3的矩阵,它描述了两个平面之间的投影映射关系)起到了关键作用,它可以通过已知相机内参和地面上的点坐标来计算图片中对应像素点的位置。(IPM公式推导可参考其它文章:Apply IPM in Lane Detection from BEV)

(3)作用

        由于摄像头捕获的图像是透视的,即远处的物体看起来更小,而近处的物体看起来更大。这种透视效果在自动驾驶中可能会导致一些问题,例如难以准确判断物体的实际大小和位置。IPM的作用就是消除这种透视效果,将图像转换为鸟瞰视角,使得物体的大小和位置在图像中更加接近真实情况。

(4)应用

        动态逆投影变换(Dynamic IPM)是一种特殊的IPM技术,它主要用于处理动态场景中的车道线检测。当车辆行驶在弯道或坡道上时,车道线在图像中可能会呈现出一定的倾斜或弯曲。动态IPM可以根据车辆的行驶状态(如速度、加速度、转向角等)实时调整变换参数,以更准确地还原车道线的真实形状和位置。另外还有障碍物的检测(车辆、行人等)以及交通标志的检测(包括限速标志、交通信号灯等)。

(5)技术特点

        IPM图技术具有一些显著的特点。首先,它依赖于平坦地面假设,即假设道路是平坦的且与世界坐标系平行。这一假设在大多数道路场景下是合理的,但在某些特殊情况下(如斜坡或弯道)可能会引入误差。其次,IPM图技术需要准确估计相机的内参和外参,以确保映射的准确性。此外,由于IPM图将2D图像反变换到3D世界坐标,因此它需要处理大量的计算和数据,对计算资源的要求较高。

78caaee0fdee4d36805cf195ea4a5073.png

 图示:行车车道线

37fb662145324b5781d0f66be38b320c.png

  图示:泊车IPM图

2.2 BEV图

(1)定义

        BEV图是一种从多个摄像头或雷达数据中提取信息,并将其融合到一个统一的鸟瞰视角下的图像表示。

(2)作用

        BEV图的作用是将多个摄像头或雷达的数据统一到同一个坐标系下,以便进行更准确的目标检测、跟踪和场景理解。在BEV图中,车辆、行人、道路、交通标志等物体都被表示为一个统一的三维空间中的点或区域,这使得自动驾驶系统可以更容易地理解和分析环境。

(3)生成方式

        BEV图像可以通过多种方式生成,主要包括:

  1. 使用激光雷达:激光雷达可以直接测量物体在三维空间中的位置,然后将这些数据转换为BEV图像。这种方法能够精确地捕捉环境中的物体位置,为自动驾驶系统提供丰富的环境信息。
  2. 使用摄像头:摄像头可以通过计算图像的透视投影来生成BEV图像。虽然这种方法相比激光雷达在精度上可能稍逊一筹,但其成本较低,且可以通过算法优化来提高精度。
  3. 使用混合传感器:结合激光雷达和摄像头的组合可以生成更精确和完整的BEV图像。这种方法结合了两种传感器的优点,能够提供更全面、更准确的环境信息。

(4)生成BEV图的原理

        生成BEV(Bird's Eye View)图的原理主要涉及到多个传感器数据的融合和坐标转换。以下是生成BEV图的基本原理:

  • 数据收集:首先,通过安装在车辆上的各种传感器(如摄像头、激光雷达、毫米波雷达等)收集环境数据。这些传感器能够捕获车辆周围环境的三维信息。
  • 图像到点云投影:对于视觉传感器(如摄像头),通过立体匹配、单目或多目深度估计等技术来获取场景的三维信息。然后,将这些三维信息投影到车辆坐标系下的垂直平面上,生成点云数据。点云数据是环境中物体在三维空间中的位置集合。
  • 坐标变换:由于不同传感器可能使用不同的坐标系,因此需要将它们的数据统一到同一坐标系下。这通常涉及到从各自传感器坐标系到全局或车辆坐标系的坐标变换和校准过程。坐标变换确保了点云数据在空间上的一致性。
  • 特征融合与映射:在将来自不同传感器的数据统一到同一坐标系后,进行特征融合。这意味着将来自不同传感器(如摄像头和激光雷达)的数据中的有用信息结合在一起,以生成更完整、更准确的环境感知结果。然后,在BEV空间上进行特征提取和映射。这可以通过使用卷积神经网络(CNN)或Transformer架构等深度学习技术来实现,以生成BEV特征图。
  • 生成BEV图:最后,根据提取的BEV特征图,可以生成BEV图像。这个图像提供了从车辆上方俯瞰的视图,展示了车辆周围环境的完整视图,包括车辆前方、后方、两侧和顶部的信息。

        整个过程中,关键的技术包括三维重建、坐标变换、特征融合和深度学习等。这些技术共同作用,使得自动驾驶系统能够生成准确、可靠的BEV图,从而更好地理解周围环境,实现更安全的自动驾驶。

(5)应用

        BEV图在自动驾驶中的应用非常广泛,例如用于车辆定位、道路检测、障碍物检测、交通信号识别等任务。通过BEV图,自动驾驶系统可以实时获取周围环境的详细信息,并据此做出准确的决策规划和控制。

f7b26e09204f4a50b05cb4b243e9706e.png

3 总结

        IPM图和BEV图在自动驾驶感知中各自扮演着不同的角色,但它们都是为了提高自动驾驶系统对环境的感知和理解能力而设计的。通过这两种技术,自动驾驶系统可以更准确地识别和理解周围环境中的物体和场景,从而实现更安全、更可靠的自动驾驶。本篇博客的目的是为了让读者了解二者的概念、应用和区别。

        IPM是早期的感知方案,随着自动驾驶感知技术的发展,目前已经被BEV方案所取代,自动驾驶感知技术发展路线可参考《自动驾驶---Tesla的自动驾驶技术进化史(Perception&Planning)》。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法】位运算 {位运算符及其优先级;位运算的应用:判断位,打开位,关闭位,转置位,位图,get lowbit,close lowbit;相关编程题解析}

一、位运算符及其优先级 我们知道,计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性…

04_前端三大件JS

文章目录 JavaScript1.JS的组成部分2.JS引入2.1 直接在head中通过一对script标签定义脚本代码2.2创建JS函数池文件,所有html文件共享调用 3.JS的数据类型和运算符4.分支结构5.循环结构6.JS函数的声明7.JS中自定义对象8.JS_JSON在客户端使用8.1JSON串格式8.2JSON在前…

弘君资本股市行情:股指预计保持震荡上扬格局 关注汽车、银行等板块

弘君资本指出,近期商场体现全体分化,指数层面上看,沪指一路震动上行,创出年内新高,创业板指和科创50指数体现相对较弱,依然是底部震动走势。从盘面体现上看,轮动依然是当时商场的主基调&#xf…

IBERT眼图扫描(高速收发器八)

前文讲解了GTX的时钟及收发数据通道的组成,之后讲解了眼图、加重、均衡等原理及原因,本文通过xilinx提供的IBERT IP完成实际工程的眼图扫描,确定加重和幅值调节的参数。 1、回环模式 在此之前,需要了解一下GTX的回环模式。如果板…

【字典树(前缀树) 字符串】2416. 字符串的前缀分数和

本文涉及知识点 字典树(前缀树) 字符串 LeetCode 2416. 字符串的前缀分数和 给你一个长度为 n 的数组 words ,该数组由 非空 字符串组成。 定义字符串 word 的 分数 等于以 word 作为 前缀 的 words[i] 的数目。 例如,如果 words [“a”,…

【list】list库介绍 + 简化模拟实现

本节博客先对list进行用法介绍,再在库的基础上简化其内容和形式,简单进行模拟实现,有需要借鉴即可。 目录 1.list介绍1.1 list概述1.2相关接口的介绍 2.简化模拟实现3.各部分的细节详述3.1结点3.2迭代器细节1:迭代器用原生指针还是…

【Codesys】-执行第三方程序,或Windows脚本

该记录旨在解决RTE作为第一个Windows的一个exe程序不能调用其他程序的问题。 可以实现:在PLC界面打开第三方程序、在PLC界面关闭本机Windows操作系统 首先添加依赖库-SysProcess,3.5.17.0 然后在程序里执行相应的指令,该指令可以被Windows识别为类似于执行Bat文件…

国产操作系统上使用rsync恢复用户数据 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上使用rsync恢复用户数据 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇关于在国产操作系统上使用rsync备份并还原用户数据的文章。rsync是一款功能强大的文件同步和备份工具,广泛用于Linux系…

河南乙级道路与桥梁资质年审材料准备要点解析

河南乙级道路与桥梁资质年审材料准备要点解析如下:河南宽信权经理 一、企业基本情况材料 营业执照副本复印件:确保复印件清晰、完整,并加盖企业公章。 企业章程:提供最新的企业章程,并加盖企业公章。此材料需反映企业…

代码随想录——从前序与中序遍历序列构造二叉树(Leetcode105)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

Linux(三)

Linux(三) Linux网络配置管理网络基础知识 IP地址A类 由1个字节网络地址3个字节主机地址B类 由2个字节网络地址2个主机地址C类 由3个字节网络地址1个主机地址D类:主要用于组播E类:为将来使用保留 子网掩码子网掩码作用网关DNS服务器 Linux用户管理用户的…

linux创建离线yum源给局域网机器使用

适用场景:在封闭的内网环境中,无法使用互联网进行安装各种rpm包的时候,离线yum源可以解决大部分问题,配置号后可直接使用yum进行安装包 1.准备好镜像源ISO: 例如以下示例,具体可参考自己的系统进行下载&a…

新书推荐:7.3 for语句

本节必须掌握的知识点: 示例二十四 代码分析 汇编解析 7.3.1 示例二十四 ■for语句语法形式: for(表达式1;表达式2;表达式3) { 语句块; } ●语法解析: 第一步:执行表达式1,表达式1初始化循环变量; …

【错题集-编程题】kotori 和迷宫(BFS / DFS)

牛客对应题目链接&#xff1a;kotori和迷宫 (nowcoder.com) 一、分析题目 迷宫问题的扩展。 二、代码 #include <iostream> #include <cstring> #include <queue>using namespace std;const int N 35; int x1, y1; // 标记起点位置 int n, m; char arr[N][…

电机控制系列模块解析(23)—— 同步机初始位置辨识

一、两个常见问题 为什么感应电机&#xff08;异步机&#xff09;不需要初始位置辨识&#xff1f;&#xff08;因此感应电机转子磁场在定子侧进行励磁&#xff0c;其初始位置可以始终人为定义为0&#xff09; 为什么同步磁阻电机需要初始位置辨识&#xff1f;&#xff08;因为…

五分钟搭建一个Suno AI音乐站点

五分钟搭建一个Suno AI音乐站点 在这个数字化时代&#xff0c;人工智能技术正以惊人的速度改变着我们的生活方式和创造方式。音乐作为一种最直接、最感性的艺术形式&#xff0c;自然也成为了人工智能技术的应用场景之一。今天&#xff0c;我们将以Vue和Node.js为基础&#xff…

【软件设计师】计算机组成原理

1、数据的表示 1.1 进制转换 整型有4种进制形式&#xff1a; 1.十进制&#xff08;D&#xff09;&#xff1a; 都是以0-9这九个数字组成&#xff0c;不能以0开头。 2.二进制&#xff08;B&#xff09;&#xff1a; 由0和1两个数字组成。 3.八进制&#xff08;O&#xff09;&am…

嵌入式进阶——数码管

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

linux centos循环ping网段ip

循环ping&#xff0c;检测ip是否可用&#xff0c;ping通为正在使用yes&#xff0c;no为不通 vim test.sh#!/bin/bash ip"192.168.1."echo "ping log:" > ./ping.txt for i in {1..128} doping -c 1 -w 1 -W 1 $ip$i | grep -q "ttl" &&a…

Android跨进程通信--Binder机制及AIDL是什么?

文章目录 Binder机制Binder是什么&#xff1f;Binder相对于其他几种跨进程通信方式&#xff0c;有什么区别&#xff1f;谈一下 Binder IPC 通信过程&#xff1a;具体的通讯过程是什么&#xff1f;Binder如何处理发送请求与接收请求?Binder是通过什么方式来进行内存映射的&…