路侧激光雷达目标检测系统-篇1

news2024/12/28 18:07:18

  说明:又到了毕业的季节,拿出来我之前做的小雷达识别项目,给学弟学妹们做毕设一点参考。这个主要是根据雷达采集的数据包进行聚类识别,看那些是汽车,更改数据的特征之后可以识别特定目标,比如路上新人等。
  另外,这个是第一节,主要是介绍原理,流程,具体运行代码之后,分布实现成的效果可以移步第二篇,大概的步骤参考了大佬的流程,但是实际应用中还是有很多和我需求不同的点,于是我在大佬的基础上进行改进和二创,感谢大佬的无私奉献。参考的博客见:参考项目
  改进部分由本人原创,转载必究

成果展示

  按照惯例先展示效果(不知道csdn上能不能显示,看不了的可以去po站上看):
  bilibili传送

雷达识别

研究背景和意义

  1、为什么要研究目标检测?
  ①车辆数目增加,交通问题增多;②无人驾驶发展,安全性要求高;③改善特定道路地区的交通环境;
  2、为什么用激光雷达?
  ①需要更高分辨率交通数据;②传统传感器受影响的因素多;③体积小,重量轻,隐蔽性好;④可协同工作,构建高精度模型;
  3、为什么要布置在路侧?
  ①利于传统机动车的联网过渡;②较传统车载雷达方案成本低;③受实际道路地形,天气影响小;④便于联合组建交通地理网络;

研究方法和思路

如图所示,大概可以分为5步:
在这里插入图片描述

点云数据采集平台

  用的是RS-Ruby Lite 80 线激光雷达,其实数据是老师给我的,想要的我可以发在我的博客上,它的具体参数如下:
在这里插入图片描述

用到的数据处理软件

  1. 机器人操作系统
      实际上就是我们的ROS系统,我在使用Linux的ubantu系统上处理的。
       机器人操作系统是适用于机器人的开源元操作系统,它集成了大量的工具、库、协议,提供了类似操作系统所提供的功能,在某些方面类似于一个新的“机器人框架”。
      我们选用ROS处理三维激光雷达数据,包括点云显示节点、点云在硬盘中的加载与显示等功能。
  2. MATLAB2020a
  3. Cloud Compare
      它是一个三维点云(网格)编辑和处理软件。它可以实现三维点云数据和三角形网格之间的对比。此外,还新增了其他包括图像处理校准、重新采样、开放式图形库着色器和插件等的显示增强工具。
      它可以提供高斯、双边、统计、CSF地面滤波和坡度法地面滤波的过滤效果与对比。

点云预处理

在这里插入图片描述
  我把我要用的rosbag转换成KITTI类型的数据集
  KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。
   KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。整个数据集由389对立体图像和光流图,39.2 km视觉测距序列以及超过200k 3D标注物体的图像组成,以10Hz的频率采样及同步。
在这里插入图片描述
在这里插入图片描述
   Rosbag是记录了一系列连续帧的点云文件,对于道路障碍物识别则需要将连续帧分解为KITTI形式的单帧文件进行识别。
   ROS的message_filter 提供了两种同步方式: 精确同步和近似同步, 由于时间戳无法真正对齐, 本文采用近似同步, 总体思路就是回放rosbag, 发布topics, 然后自己编写节点代码订阅topics, 并按照自己的同步规则和提取数据的要求进行数据处理。
用到如下两条指令:
在这里插入图片描述
在这里插入图片描述

非地面点云分割

   前面的数据没看懂也没啥关系,直接用人家网站公开的KITTI数据也可以,具体可以去网站:cvlibs.net,我也有下载好的,很大有26个g,要用的话可能用不了这么多,我分批传到csdn上,后面我把百度云链接给上,平台定价策略太玄学了,我主要是想非必须的都免费分享给大家,你也可以根据自己的需要在matlab上人为生成,不过很麻烦,要做的可以探索下。
   常见的点云地面数据提取有垂直高度差、地面点云线性归纳法和刺状边缘平滑变化提取的方法。毕竟我们要在二维平面上进行聚类,如果从上面看有地面点云的影响,那还怎么识别?对吧。
上一下效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点云栅格化

   栅格地图是一种基于两维平面网格来存储点云类别等特性的存储方式。它可以将点云按所在的空间位置进行区域“窗格化”分割,将一定空间范围内的点云数据所包含的统计信息存储在提前指定大小范围内的所属坐标的栅格中,利用该点云块所在的栅格信息将原数据替换,大大减少了数据的处理时间。
   本文采用以实际长度大小为 0.1m* 0.1m为单位创建栅格,将路侧雷达空间位置作为几何基准点,构建图像,于是可以推得对任意一个点云,其具体位置坐标可用如下式表示:
在这里插入图片描述
栅格就是把点存到一个个小格子里面,抽象一下就长这样:
在这里插入图片描述
点二维可视化之后就长这样:
在这里插入图片描述

非地面栅格点云聚类

   聚类是一种寻找已知数据的内在分布规律的技术。它把全部数据的集合根据我们的主要需求特性组织成一系列类似组,而这些类似组被称作簇。处于相同簇中的数据属性彼此相同,处于不同簇中的数据属性在一定置信概率下视为不同。
   主流的聚类方法主要分为3类:

  1. 划分聚类,将数据对象组织成多个分区,在分类好的数据中选取几个初始特定点进行反复迭代,直到簇内的数据集合距离小,簇间数据大的分块效果。
  2. 层次聚类,该方法对给定的数据按层次分解,直至全部数据点都凝聚至一类聚类或者达到已经设定好的跳出条件而结束。
  3. 密度聚类,基于密度特征的聚类算法可适用于聚类复杂边缘分布点形状的簇。
       显然在非地面点云提取完成后,我们需要对格子点云进行聚类,由于点云的复杂性空间分布的属性,显然需要一种基于密度的点云聚类方法。
    分析一下原理,抽象化步骤如图,可以结合其他大佬原理分析来看,有空再写。它的核心思想就是一个类别簇内得有足够数量的相同类别数据才能让它归于一类,在每一个点周围画圈,聚在一起的就是一类。
    在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

利用多层感知机模型进行聚类识别

在这里插入图片描述
这里我们激活函数为sigmoid,损失函数用交叉熵,交叉熵和损失函数定义如下:
在这里插入图片描述

构建多层感知机分类识别模型

选取特征值

在这里插入图片描述
高度轮廓的意思跟下面一样,轿车高度不同作为特征:
在这里插入图片描述
将所得的输入向量导入到训练得到的多层感知机模型中。由于在多层感知机模型中交叉熵函数内部会实现Softmax函数用于估算输出机动车和非机动车的概率。
在这里插入图片描述

可行性评价指标及改进

评价指标就用日常的精确率、召回率和f1综合得分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
布置方案:

  1. 低坡度:在山地具有较大坡度的城市道路,就无法利用地面高度平滑性的工程特点来分割地面点云数据,即使使用地面坡度拟合,受噪声影响也较大;
  2. 非机动车目标高度一般:路侧电线杆、大型卡车和货运车的货物等目标对栅格转化影响较大,需要根据不同路段常过车辆来规定不同的栅格阈值;
  3. 路况微小单位较少:商业街道人群,学校路段,公园多宠物等复杂情况,会造成目标点云数据粘连在一起从而造成误识别。

改进:

  1. 本系统提出的基于点云数据二维栅格化后进行DBSCAN聚类方法,它在划分聚类和层次聚类算法运算适用性方面有了较大的提升,但它依赖于点云特征结构与点云数目的显著性,在与离采集雷达较远的机动车道,数据会受到角度与机动车方向近似平行导致数据波动和噪声较大,在滤波后会发生部分数据丢失的现象。

  2. 本系统使用的RS-Ruby-Lite激光雷达传感器虽然能采集到精度较高的三维信息,但路侧监测路况复杂多变且采集过程容易受到天气状况的影响,特别是在大雨、大雾天气基本无法使用,因此模型改进中可以考虑融合视觉传感器的联合特征计算,以此提升障碍物目标识别系统在复杂环境下的鲁棒性。

  3. 本系统所提基于多层感知机的神经网络分类器是用以识别典型交通道路的机动车与非机动车单位,在以后的研究中,可以增加例如行人,交通指示线等物理特征作为感知机的输入维度带入模型学习,提高路侧激光系统的适用性和智能化程度。

结论:高准确率的激光雷达点云数据的目标识别对于道路交通安全和效率分析非常重要。在研究工作中,路侧激光雷达传感器用于收集周围物体的 3D 点云。我们可以高实时性地识别RS-Ruby-Lite激光雷达采集的点云下的机动车和行人目标,并达到90%左右地精度。

编写不易,求个点赞!!!!!!!
“你是谁?”

“一个看帖子的人。”

“看帖子不点赞啊?”

“你点赞吗?”

“当然点了。”

“我也会点。”

“谁会把经验写在帖子里。”

“写在帖子里的那能叫经验贴?”

“上流!”
cheer!!!

在这里插入图片描述

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

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

相关文章

SpringCloud --- Nacos注册中心

一、认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 二、服务注册到nacos Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注…

Stable Diffusion公司发布首个大语言模型StableLM,已开源公测!

文 | 智商掉了一地 20号凌晨,Stability AI 发布了一个新的开源语言模型—— StableLM,该公司曾开发了 Stable Diffusion 图像生成工具。这则新闻意味着它不再局限于图像与视频生成领域,将正式加入文本生成 AI 赛道。 StableLM 模型可以生成文…

企业号运营全攻略,让你的品牌更具竞争力

实体企业抖音矩阵运营主要包含以下五个方面:多平台帐号绑定、短视频制作、短视频发布、私信评论维护以及提供数据分析报表。   一、多平台帐号绑定   多平台帐号绑定是实体企业进行抖音矩阵运营的第一步。通过将企业的各种社交账号与抖音账号进行绑定&#xff0…

CoreMark 测试指南

1、coremark 简介 coremark 是由EEMBC提出的一个评价CPU性能指标的跑分软件。其主要目标是测试处理器核心性能。CoreMark程序使用C语言写成,包含如下四类运算法则:数学矩阵操作(普通矩阵运算)、列举(寻找并排序&#…

[2019.01.25]Android NDK Crash错误定位

Android NDK开发Crash错误定位: D:\Users\Android\Sdk ndk-stack.exe: D:\Users\Android\Sdk\ndk-bundle\prebuilt\windows-x86_64\bin aarch64-linux-android-addr2line.exe: D:\Users\Android\Sdk\ndk-bundle\toolchains\ aarch64-linux-android-4.9\prebuilt\windows-x86_64…

六、Golang的并发

Go语言的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数创建为goroutine时,Go会将其视为一个独立的工作单元。这个单元会被调度到可用的逻辑处理器上执行。 Go语言运行时的调度器是一个复杂的软件,能管理被创建的所有goroutine并为其分配执…

对考研考公的过分执念,正在悄悄束缚你的职场选择!

随着近年来就业形势的严峻,越来越多的同学在找工作时碰壁,尤其是对于大部分应届生,这种现象尤为明显。 每年数百万的大学生进入到社会,却发现能选择的机会并不多。高等教育规模不断扩大的背景下,职场晋升的门槛越来越…

Hudi最流行数据湖框架介绍

目录 1. 第一章Hudi 框架概述1.1 数据湖Data Lake1.1.1 仓库和湖泊1.1.2 什么是数据湖1.1.3 数据湖的优点1.1.4 Data Lake vs Data warehouse1.1.5 数据湖框架1.1.5.1 Delta Lake1.1.5.2 Apache Iceberg1.1.5.3 Apache Hudi 1.1.6 湖仓一体(Data Lakehouse&#xff…

【1】从零开始学习目标检测:YOLO算法详解

从零开始学习目标检测:YOLO算法详解 文章目录 从零开始学习目标检测:YOLO算法详解1. 🌟什么是目标检测?2.🌟传统的目标检测与基于深度学习的目标检测3.🌟目标检测算法的工作流程4.🌟目标检测可以干什么&am…

拿到新的服务器必做的五件事(详细流程,开发必看)

目录 1. 配置免密登录 基本用法 远程登录服务器: 第一次登录时会提示: 配置文件 创建文件 然后在文件中输入: 密钥登录 创建密钥: 2.部署nginx 一、前提条件 二、安装 Nginx 3.配置python虚拟环境 1.安装虚拟环境 …

自习室管理系统的设计与实现(论文+源码)_kaic

摘要 近年来,随着高校规模的逐步扩大,学生对高校自习室座位的需求也在不断增加。然而,一些高校仍然采用人工管理学院自习室座位,这大大降低了管理效率。显然,开发一个成本低、占用资源少、能提高高校自习室座位管理效率…

WindowsHash简介及windows认证

Windows系统使用两种方法对用户的密码进行哈希处理,他们分别是LAN Manager(LM)哈希和NT LAN Manager(NTML)哈希。 现在已经有了更新的NTLMv2以及Kerberos验证体系。 Windows的系统密码hash默认情况下一般由两个部分组成:第一部分是LM-hash,…

Nginx中间件漏洞复现

Nginx 解析漏洞 该漏洞与nginx、php版本无关,属于用户配置不当造成的解析漏洞。 漏洞原理: 该解析漏洞是PHP fastcgi 的漏洞,在PHP的配置文件 php.ini 中有一个关键的选项 cgi.fix_pathinfo 默认值为1,表示开启。同时在 php-fp…

ASO优化之如何回复Google Play评论

应用的平均评分会影响 Google Play 商店优化 和应用的 Google Play 排名。应用的评分越高,我们在搜索结果中的排名就越靠前。因此,当应用处于 4 星评级范围内时,它会被更多 Google Play 商店的访问者看到和发现。我们可以使用应用雷达中的评级…

Linux进程通信:有名管道

有名管道: 无名管道只能用于有亲缘关系的进程间通信。 因此提出有名管道(也叫FIFO文件),以实现无亲缘关系进程间的通信。 不同于无名管道,有名管道FIFO文件的形式存在于文件系统,与一个路径名关联&#xff…

【复杂网络建模】——Python可视化重要节点识别(PageRank算法)

目录 一、复杂网络建模 二、建模的算法 三、使用PageRank算法进行网络重要节点识别 1、PageRank算法 2、基于PageRank算法的ER网络重要节点识别 3、基于PageRank算法的小世界网络重要节点识别 4、基于PageRank算法的无标度网络的重要节点识别 四、ER网络、小世界网络、…

春秋云境:CVE-2022-24663(远程代码执行漏洞exp)

目录 一、题目 二、构造exp执行php 三、蚁剑连接 一、题目 介绍: 远程代码执行漏洞,任何订阅者都可以利用该漏洞发送带有“短代码”参数设置为 PHP Everywhere 的请求,并在站点上执行任意 PHP 代码。P.S. 存在常见用户名低权限用户弱口令 …

华为OD机试真题(Java),开元音统计(100%通过+复盘思路)

一、题目描述 相对开音节构成的结构为辅音元音(aeiou)辅音(r除外)e,常见的单词有bike cake,给定一个字符串,以空格为分隔符。 反转每个单词的字母,若单词中包含如数字等其他非字母时不进行反转,反转后计算其中含有相对…

苹果手机屏幕上的圆点怎么设置?(开启悬浮按钮)

案例:苹果手机屏幕上的圆点怎么设置? 【求助!苹果手机的小圆点怎么调出来?就是悬浮按钮那个。】 如果您是苹果手机的用户,您可能会在手机屏幕上看到一个小圆点,它可以让您方便地进行操作。这个圆点是 Assi…

TortoiseSVN使用-合并深度介绍

文章目录 3.6 合并深度介绍 本人其他相关文章链接 3.6 合并深度介绍 Working copy(工作副本):即你当前的工作目录,一般默认为这个选项;Recursively(递归):即你选择的目录的版本库,包括了其下面的子文件,子文…