自动驾驶技术与传感器数据处理
目录
自动驾驶总体架构
感知系统
决策系统
定位系统
计算平台
仿真平台
自动驾驶公开数据集
激光点云
点云表征方式
1) 原始点云
2) 三维点云体素化
3)深度图
4)鸟瞰图
点云检测障碍物的步骤
PCL点云库
车载毫米波雷达
车载相机
设备标定
自动驾驶总体架构
感知系统
决策系统
定位系统
计算平台
仿真平台
自动驾驶公开数据集
激光点云
点云表征方式
1) 原始点云
三维点云最直接的矩阵表示法是将集合中的每个三维点列为矩阵中的一行
基于原始点元的表示法的优点是:
(1)简单且通用
(2)保留了原始三维点集中的所有信息;但缺点是它不利于探索三维点的任何几何特性
2) 三维点云体素化
简单的离散化方法是将三维空间从三个维度中的每一个划分为等距的非重叠体素; 分别沿X、Y、Z轴绘制一个范围为H、W、D的三维空间。每个体素的大小分别为h、w、d。第(i,j,k)个体素表示三维体素空间。
基于三维体素化的表示法的优点是:
(1)生成的体素与自然的层次结构相关联,所有体素具有统一的空间大小;
(2)可以使用现成的工具
缺点
(1)没有考虑有序三维点云的特定属性;
(2)通常导致一个非常稀疏的表示,其中大多数体素是空的
(3)涉及到分辨率和内存之间的权衡问题。该表示方法可用于自动驾驶感知模块,以及三维点云的存储
3)深度图
将实时激光的三维点云近似地组织成二维距离图像深度图像中的每个像素对应于三维空间中的一个点。像素值是从激光雷达到截锥体内最近的三维点的范围。具体地说我们用方位角α和俯仰角β的分辨率沿方位角α ε [0,2m)和俯仰角β ε (-π/2,π/2]划分三维空间。基于距离图像的表示法优点在于:
(1)能够自然地模拟了激光雷达捕捉三维点云的方式在王维空间中反射二维表面
(2)大多数相关的截面空间都有一个或多个三维点从而产生紧凑的距离视图图像
缺点:
很难对无组织的点云进行建模
4)鸟瞰图
基于鸟瞰图(BEV)的表示方法是一种通过忽略高度的方式来实现三维体素化的特例。它将3D体素投影到BEV图像;分别沿X、Y轴绘制一个范围为H、W的三维空间。每个像素的大小分别为h、w。BEV图像中的第(i,j)个像素表示空间V,使用二维矩阵表示三维点云。短阵记录了二维空间中的占有率。其优点是:
(1)易于应用基于2D视觉的技术;
(2)易于与来自HDmap的信息进行融合
(3)易于用于决策模块用于预测和运动规划。
(4)无论距离如何,物体对象总是相同的大小,这是一个很强的先验知识、使学习问题更容易
缺点:
(1)设计分辨率和内存之间的严重权衡,导致获取小对象详细信息的过度量化问题;
(2)不考虑有序三维点云的特定属性,并且无法解释遮挡现象
(3)导致稀疏性问题,因为大多数像素是空的。
点云检测障碍物的步骤
PCL点云库
1.什么是PCL?
PCL全称为Point Cloud Library,是一个用于三维点云处理的开源库。它包含了从传感器或三维数据文件中检索三维点云的各种处理。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,且PCL是BSD授权方式,可以免费进行商业和学术应用,可在Windows、Linux、Mac OS X等操作系统中运行。
2.PCL的发展史
PCL起初由ROS(Robot Operating System)下来自斯坦福大学的Radu博士等人维护和开发的开源项目,主要应用于机器人研究应用领域,随着算法模块的积累,与2011年独立出来,与全球3D信息获取、处理的同行一起组件了强大的开发维护团队,以多所知名大学、研究所和相关软硬件公司为主。PCL继续加入的算法等详情可见PCL官方网站。
3.PCL的结构和内容
对于3D点云处理来说,PCL完全是一个模块化的现代C++模板库,它基于一下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、QHull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
车载毫米波雷达
利用毫米波雷达可以实现自适应巡航控制(Adaptive Cruise Control),前向防撞报警(Forward Collision Warning),盲点检测(Blind Spot Detection),辅助停车(Parking aid),辅助变道(Lane change assistant),自主巡航控制(ACC)等高级驾驶辅助系统(ADAS)功能。其中24GHz 雷达系统主要实现近距离探测(SRR),而77GHz 系统主要实现远距离的探测(LRR)
车载相机
摄像头参数
- 像素
是由一个数字序列表示图像中的一个最小单位。
- 分辨率
分辨率是用于度量位图图像内数据量多少的一个参数,表示成dpi(DostPerInch,每英寸点或像素数)。它是衡量摄像头的一个重要指标之一,通常来说摄像头的分辨率越高,拍摄出来的图像品质越好
- 色域
色域是对一种颜色进行编码的方法,也指一个技术系统能够产生的颜色的总和。最常用的图像格式是RGB24和I420, RGB24代表红、绿、蓝三个通道的颜色,图像每个像素用8bit(比特位)表示,RGB24一帧的大小size=width*height*3byte(字节);I420是YUV格式之一,YUV模型是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间。其数据量是size= width*height*1.5Byte(字节)
- 自动白平衡调节
定义要求在不同色温环境下,照白色的物体,屏幕中的图像应也是白色的。色温表示光谱成分,光的颜色。色温低表示长波光成分多。当色温改变时,光源中三基色(红、绿、蓝)的比例发生变化,需要调节三基色的比例达到彩色的平衡。 彩色深度 反映对色彩的识别能力和成像的色彩表现能力。常用色彩位数(bit)表示。彩色深度越高,获得的影像色彩就越艳丽动人。
- 信噪比或图像噪音
- 视场角
- 帧率
传统算法中,通过图像特征描述子SIFT、SURF等进行特征点提取和匹配,可用特征很多,包括角点、边缘点等
即输入摄像头的数据,以每帧信息为基础进行检测、分类、分割等计算,最后利用多帧信息进行目标跟踪,输出相关结果;
1)预处理包括成帧、颜色调整、白平衡、对比度均衡、图像扭正等工作;
2)特征提取在预处理的基础上提取出图像中的特征点;
3)目标识别是基于特征数据的输出,对图像中的物体进行识别分类 —— 人 ,车 、交通标志等,运用到机器学习、神经网络等算法。
设备标定
标定,通常指的是校准过程,是一种测量精确度提高的方法。在技术和科学领域,标定涉及将一个设备或仪器的测量与一个已知的参考标准进行比较,并据此进行调整。这个过程确保测量设备在操作中可以达到预定的准确性和一致性。
传感器标定
相机标定
毫米波雷达标定
激光雷达标定
相关文章:

自动驾驶技术与传感器数据处理
目录 自动驾驶总体架构 感知系统 决策系统 定位系统 计算平台 仿真平台 自动驾驶公开数据集 激光点云 点云表征方式 1) 原始点云 2) 三维点云体素化 3)深度图 4)鸟瞰图 点云检测障碍物的步骤 PCL点云库 车载毫米波雷达 车载相机 设备标定 自动驾驶…...

高效测评系统方案助力沃尔玛、亚马逊卖家提升产品销量
无论在哪个电商平台,测评确实是最有效的推广方式。测之前一定要选好产品,因为对于大部分卖家而言,不可能你店铺里所有的都是爆款,所以选择的是需要有潜力成为爆款的产品。测评是指通过搭建安全的环境模拟真实的买家购物行为&#…...

B/S模式的web通信(高并发服务器)
这里写目录标题 目标实现的目标 服务器代码(采用epoll实现服务器)整体框架main函数init_listen_fd函数(负责对lfd初始化的那一系列操作)epoll_run函数do_accept函数do_read函数内容补充:http中的getline函数 详解do_re…...

C语言每日一题—约瑟夫问题
13个人围成一圈,从第1个人开始顺序报号1、2、3,凡报到3的人退出圈子。找出最后留在圈子里的人原来的序号。要求用结构体编程实现。***输出提示:"\n出圈成员及顺序:" ***输出格式:"%3d" ***输出提示…...

语言:C#
一、VSCode生成exe 二、...

[力扣题解]45. 跳跃游戏 II
题目:45. 跳跃游戏 II 思路 贪心法; 只需记录2个变量,当前点能达到的最远距离,和上一步能到达的最远距离; (真有意思,代码随想录给出的是curDistance,nextDistance2个,…...

pywinauto操作windows应用(未完成)
pywinauto 脚本制作 一 、获取窗口句柄 首先获取句柄,其次扫描组件,然后对按钮和文本进行操作 安装依赖 pip install pywin32 -i https://pypi.doubanio.com/simple扫描全部的句柄 import win32gui# GetDesktopWindow 获得代表整个屏幕的一个窗口&a…...

(超详细讲解)实现将idea的java程序打包成exe (新版,可以在没有java的电脑下运行,即可以发给好朋友一起玩)
目录 实现打包到exe大概步骤 工具准备 1.将java程序文件打包成jar文件 2.准备好jre文件 3.使用exe4j软件打包好 4.最终打包 实现打包到exe大概步骤 1.打包需要满足的条件:将java文件转成jar文件的工具exe4j、 以及需要满足jdk1.8以上(因安装exe4…...

学习软考----数据库系统工程师29
数据操作 SELECT基本结构 简单查询 连接查询 子查询 聚集函数 分组查询 字符串操作 集合操作 外连接 INSERT INTO语句 DELETE语句 UPDATE语句...

STL中的优先级队列
目录 1.引言 2.简介 3.基本操作 4.实现原理 5.自定义优先级比较 6.相关题目 7.能特点 8.总结 1.引言 在C标准库中,优先级队列是一种非常有用的数据结构,它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…...

浅谈Acrel-2000ES储能能量管理系统的设计与应用-安科瑞 蒋静
0 前言 为进一步提升河南省分布式光伏发电发展水平,促进行业健康可持续发展,河南省发布关于促进分布式光伏发电健康可持续发展的通知。对于储能行业,可以用到安科瑞Acrel-2000ES储能能量管理系统。 储能柜EMS能量管理系统 1、产品名称 储…...

会员卡积分小程序系统源码商业运营版 行业一站式解决方案附带源代码以及搭建安装部署教程
系统概述 会员卡积分小程序系统源码商业运营版是一套完整的会员卡积分系统解决方案,包含前端小程序、后端管理系统以及数据库设计。该系统支持多种会员卡类型、积分规则设定、积分兑换、优惠券发放等功能,满足企业对于会员积分管理的各种需求。同时&…...

uniapp 百度地图 拖动获取经纬度级搜索连用
import loadBMap from /utils/loadBMap.js// 百度聚合具体代码 // 拖动 initMapc() {let that thisloadBMap(百度key).then(() > {map new BMap.Map(mapContainer)const centerPoint new BMap.Point(this.longitude, this.latitude)map.centerAndZoom(centerPoint, this.…...

Yarn的安装和使用详细教程(Mac/Window)
目录 Yarn是什么? Mac安装Yarn 使用Homebrew安装Yarn 使用npm安装Yarn Windows安装Yarn 使用npm安装Yarn Yarn使用 常用命令: 特殊命令: Yarn是什么? Yarn是一个流行的包管理工具,用于管理JavaScript项目的依…...

高考志愿系统-学生管理模块分析
1.获取学生信息: 接口:http://localhost:81/dev-api/college_entrance/student/list?pageNum1&pageSize10 请求方式get 默认传参pageNum和pageSize,表示当前页,每页展示数量 首先通过startPage()方法获取分页参数当前页&…...

【问题实操】银河高级服务器操作系统实例分享,开机之后反复重启
1.服务器环境以及配置 物理机/虚拟机/云/容器 物理机 外网/私有网络/无网络 私有网络 处理器: PHYTIUM FT2000PLUS 2200 MHz 内存: 128 GiB 整机类型/架构: HIKVISION DS-V BIOS版本: HK 601FBE02HK 网卡࿱…...

攻防世界-web-unseping
题目 知识点 PHP代码审计PHP序列化和反序列化PHP中魔术方法命令执行绕过方式 解读源码 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function …...

网络网络层之(4)IPv4协议
网络网络层之(1)IPv4协议 Author: Once Day Date: 2024年4月4日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:通信网络技术_Once-Day的…...

16-LINUX--线程安全
一。线程安全 线程安全即就是在多线程运行的时候,不论线程的调度顺序怎样,最终的结果都是 一样的、正确的。那么就说这些线程是安全的。 要保证线程安全需要做到: 1) 对线程同步,保证同一时刻只有一个线程访问临界资…...

Flask SQLAlchemy 技术指南
文章目录 什么是 Flask SQLAlchemy?安装 Flask SQLAlchemy创建 Flask 应用和数据库模型添加和查询数据运行 Flask 应用总结**数据库迁移(Database Migrations)****复杂查询****关系模型****事务处理****性能优化****安全性****扩展功能** Fla…...

js通过时间对JSON中的数据进行排序
需求 现在需要通过每一个数据段的date字段对数组的整体数据进行排序! 元数据如下: var data [{"filename": "123","date": "2024-05-10 19:53:57","stand": "GB-14","filter":…...

leetcode206-Reverse Linked List
题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 分析 用一个指针记录当前位置,另外一个指针记录当前位置的前一个位置,…...

云计算第十二课
安装虚拟机 第一步新建虚拟机 选择自定义安装 下一步 选择稍后安装操作系统 选择系统类型和版本 选择虚拟机文件路径(建议每台虚拟机单独存放并且路径不要有中文)点击下一步 选择bios下一步 选择虚拟机处理器内核数量 默认硬盘或者自行调大硬盘 选择虚…...

【elasticsearch】慢查询替代查询审计的尝试
【elasticsearch】慢查询替代查询审计的尝试 使用了es有两年了,突然发现一个,es没有查询审计日志,某个用户查询了某个索引的审计。 找了官方文档和社区的回复都是说使用slow log替代慢查询。 尝试一下。 参考链接1:https://discus…...

腐烂的橘子BFS
题目: 腐烂的橘子 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子…...

什么是分库分表
读写分离主要应对的是数据库读并发,没有解决数据库存储问题。试想一下:如果 MySQL 一张表的数据量过大怎么办? 答案当然是分库分表 什么是分库? 分库 就是将数据库中的数据分散到不同的数据库上,可以垂直分库,也可…...

pytest并发执行用例方案
背景 开始做新项目的UI自动化,需要考虑用例的并发执行,因为之前做的项目是通过插件pytest-parallel 0.1.1 pytest-multithreading-allure 1.0.8来实现的,所以这次也打算用此方法,然而在实际使用过程中发现一些问题。 问题一 通…...

VO,PO,DTO
DTO(Data Transfer Object)数据传输对象 前后端之间的传输时使用 比如前端登录请求的请求参数有username,password,但后端pojo类user有username,password,birthday,gender时,可以创…...

Java设计模式-工厂
Java设计模式中,工厂模式主要包括普通工厂模式以及抽象工厂模式,普通工厂模式是用于制造输出不同类型的对象,抽象工厂模式是用于制造输出不同类型的普通工厂,本文主要描述工厂模式的基本用法。 如上所示,使用普通工厂模…...

【JavaEE】【1.3 Servlet】1.3.6 监听
什么是Servlet上下文? Servlet上下文(Servlet Context)是Java Servlet技术中的一个概念,它代表了一个Web应用程序的上下文环境。在Servlet规范中,每个Web应用程序都有一个唯一的Servlet上下文对象,该对象在…...