基于激光雷达的人型识别(无人车)

激光雷达目标识别算法研究综述 为了达到高可靠性的分类识别效果,通常采用现代模式识别理论和方法进行分类器设计,例如基于统计的模式分类方法、模糊模式分类方法、基于神经网络的模式分类方法、基于支持向量机的模式分类方法、基于模型的模式分类方法和基于句法的模式分类方法等。 基于统计的分类识别算法是用概率模型得到各类别的特征向量分布并以此进行未知样本的分类,其中主要的方法有聚类分析法、判别类域代数界面法、统计决策法和最近邻法等。Pasal... 阅读详情

原文在这 finalobject.cn

这个项目是无人车里的一部分,完成激光雷达的驱动,数据采集然后后期的处理以及人型识别,并不涉及车辆硬件的控制。主要分三个大块讲吧,硬件驱动、数据聚类,以及模式识别,本来还想写一写UI部分的,但是感觉自己的UI写的其实蛮简陋的,所有还是不写了,对UI实现有兴趣的自己拔一下源代码吧。

github:https://github.com/finalObject/HumanDetectingOnLidar

这个项目是我大二时候写的,那时候还不会用github,版本记录都是直接备份实现的,所以在源代码里就会出现很多版本的项目,以最新的为准即可。然后里面files里还有一些项目中用到的硬件驱动库,型号资料。项目里有两个main类,带有radar的是连接雷达实时显示的,不带radar的,是把官方软件储存下来的数据文件作为数据来源。两者就是数据来源不一样。

这是程序的截图

硬件驱动部分

使用的传感器是一只小型的激光雷达,型号UTM-30LX-EW,用到的库直接就是官网下载的java库urg_java_lib,另外files还提供了C++/VS版本的驱动库urg_library-1.2.0。驱动激光雷达的代码封装在RadarReader.java中。

这种小的激光雷达一般可以通过USB连接或者网口连接,当时可能是USB连接驱动装不上吧(忘记了),选择的是网口连接,所以在代码直接输入IP地址就可以进行连接。

device = new UrgDevice(new EthernetConnection());
device.connect("192.168.0.10");
RangeSensorInformation info = device.getInformation();
if(info != null){
    System.out.println("Sensor model:" + info.product);
    System.out.println("Sensor serial number:" + info.serial_number);
}else{
    System.out.println("Sensor error:" + device.what());
}
device.setCaptureMode(CaptureSettings.CaptureMode.MD_Capture_mode);
//We set the capture type to a continuous mode so we have to start the capture
device.startCapture();

然后通过

capData= device.capture()

这个函数就可以获取一帧数据,因为返回的CaptureData类,我写了下面的函数把它解析成了一个数组,以方便后面对于数据的使用

public static int[] setDepthsFromRadar(CaptureData data)

这种激光雷达的基础工作模式其实类似于超声波测距,只不过把超声波换成了激光,然后这个传感器还会旋转。这个型号的激光雷达视场角为270度,所以它一帧的数据其实就是不同角度下,激光雷达和最近不透光障碍物之间的距离。data这里存了用官方软件记录下来的数据,txt格式,直接打开看其实也就是一帧一帧的数据,每一帧数据用一些时间之类的标签,主要还是就是一个数组,储存着测量结果。

我这个函数返回的结果就是把一帧里,所有距离储存成一个数据作为结果返回。至此就完成了硬件的驱动和数据采集。

聚类

因为要进行模式识别把,必须要有识别的对象,如果需要识别每一帧下,这些数据哪几块是人,哪几块是墙。因为一帧数据是整个数组,首先需要在这个数组中,找出哪几个数据点是一块,属于同一个物体,这之后才能进行模式识别。这个就是聚类。上面那张程序截图里,蓝色点就是数据结果,然后聚类之后认为是同一物体的,用红线连接起来了。

这里聚类我没有用那些传统的聚类算法,原因是这个场景比较简单,为了代码效率,放弃了需要大量迭代的k均值。

场景:这里所有数据都是有顺序的,每一个物体拥有的数据点都是连续的。这些数据都是一维的。

基本分类的原则就是,当连续两个点,距离激光雷达的距离相差大于某个阈值是判定不属于同一类。这个阈值如果手动输入的话就会很鸡肋,所有需要设计一个评价标准,让程序自动选择分类效果好的阈值。

每一个类的数据,应该都非常集中的分布在同一个距离范围内,所以可以用所有类数据的标准差之和,来判断集中程度,但是光是这样不够,因为这样一来,最好的分类结果就是所有点自成一类,标准差就全是0了。所以分类结果中,类的数量也必须足够多。因此我设计一个标准,就是【标准差之和】以及【分类类的数量】加权求和,值越小分类效果越小。这样一来遍历所有阈值,选择最好分类效果的就行,这样就实现的聚类。

模式识别

用的是libsvm-3.21这个库,官网提供了各种语言的支持。这部分内容其实很简单了,就是从每一类数据中提取有用的特征,然后开始学习就好了。

用到的特征如下:

  1. 数据长度。可以是数据点的数量,或者是数据起点和终点直接的物理距离(可以用距离和角度算出二维坐标,然后计算距离)
  2. 曲率。就是把这一类数据,拟合成椭圆,计算曲率。因为人体被激光雷达扫描的部分主要就是躯干,差不多就是一个椭圆。可以用这个来筛选墙面之类曲率过小以及垃圾桶之类曲率过大的物体

还有别的参数,但是我具体也说不上来了,自己扒扒代码吧。

第一篇综述-无人车系统架构(三) 第一篇综述-无人车简介(一) 第一篇综述-无人车简介(二) 目录 硬件架构 软件架构 前面简述了无人车的定义及分级、发展历程、社会影响及所面临的技术挑战。本章将讲述无人车的系统架构,包括硬件架构和软件架构,使读者从系统层面对无人车的体系架构有个宏观的认知,这样对于后续要讲解的各硬件传感器原理、各算法模块的原理、工程系统平台等的理解打下坚实的基础,以便我们能够更加系统全面地对无人车各部件(... 阅读详情

相关推荐

激光雷达的7大分类讲解

  激光雷达是集激光、全球定位系统(GPS)、和IMU(惯性测量装置)三种技术于一身的系统,相比普通雷达,激光雷达具有分辨率高,隐蔽性好、抗干扰能力更强等优势。随着科技的不断发展,激光雷达的应用越来越广泛,在机器人、无人驾驶、无人车等领域都能看到它的身影,有需求必然会有市场,随着激光雷达需求的不断增大,激光雷达的种类也变得琳琅满目,按照使用功能、探测方式、载荷平台等激光雷达可分为不同的类型。 ...

SLAMTEC的博客 3万+

雷达扫描java,SLAM-OpenGL实现rplidar A2激光雷达扫描显示

//// Created by PulsarV on 18-10-26.//#include #include #include #include #include #include #include #include #include #define _countof(_Array) (int)(sizeof(_Array) / sizeof(_Array[0]))#define GL_WIDT...

weixin_39841825的博客 500

第二篇硬件-激光雷达

第一篇综述-无人车简介(一) 第一篇综述-无人车简介(二) 第一篇综述-无人车系统架构(三)  第二篇硬件-概述 目录 引言 工作原理 指标参数 在上文硬件概述,以ISO-16750为例,介绍了通用的电气负荷、机械负荷、气候负荷、化学负荷及电磁兼容性(EMC)等详细的硬件测试方法和标准,本文开始,将针对特殊的自动驾驶车辆硬件设备,介绍其工作原理、性能指标和评测技术方法。     ...

thomashtq的专栏 9215

【2024 行人重识别最新进展】ReID3D:首个关注激光雷达行人 ReID 的工作!

基于摄像头的重识别(ReID)系统在公共安全领域得到了广泛的应用。然而,摄像机往往缺乏对人类三维形态信息的感知,并且容易受到各种限制,如照明不足、背景复杂和个人隐私,如图:在本文中,我们提出了一种基于激光雷达的 ReID 框架,ReID3D,该框架利用预训练策略来检索三维体型的特征,并引入了基于图的互补增强编码器来提取综合特征。由于缺乏激光雷达数据集,我们构建了第一个基于 LiDAR 的行人 ReID 数据集 LReID,该数据集在几个自然条件变化的室外场景中收集。

梁瑛平的博客 2860

基于多视角融合的夜间无人车三维目标检测

基于多视角融合的夜间无人车三维目标检测 人工智能技术与咨询 来源:《应用光学》,作者王宇岚等 摘 要:为了提高无人车在夜间情况下对周围环境的物体识别能力,提出一种基于多视角通道融合网络的无人车夜间三维目标检测方法。引入多传感器融合的思想,在红外图像的基础上加入激光雷达点云进行目标检测。通过对激光雷达点云进行编码变换成鸟瞰图形式和前视图形式,与红外图像组成多视角通道,各通道信息之间融合互补,从而提高夜间无人车对周围物体的识别能力。该网络将红外图像与激光雷达点云作为网络的输入,网络通过特征提取层、候.

m0_62870606的博客 4844

传感器之激光雷达简介与使用

根据线束数量的多少,激光雷达可分为单线束激光雷达与多线束(4线、8线、16线、32线、64线)激光雷达。激光雷达可以发射激光束,光束照射到物体上,再反射回激光雷达,可以通过三角法测距或TOF测距计算出激光雷达与物体的距离。激光雷达工作于光学波段,频率比微波高2~3个数量级以上,因此,与微波雷达相比,激光雷达具有极高的距离分辨率、角分辨率和速度分辨率;激光雷达的点云数据是物体的几何外形呈现,无法如同人类视觉一样,分辨物体的物理特征,比如:颜色、纹理...:易受天气影响(大雾、雨天、烟尘)

LSG_Dawn的博客 3953

java雷达数据解析_雷达数据包解析

截取了一段激光雷达扫描的数据包 里面包含了质量 角度 距离 数据 ,数据包-----[2020-03-19 15:51:13.694]# RECV HEX>3E 61 6C 00 00 3E 2B 4C 00 00 3E 8B 4C 00 00 3E 07 49 00 00 3E 67 49 7B 61 3E C7 49 82 61 3E 2D 4A 00 00 3E 93 4A 00 00...

weixin_39788960的博客 1815

基于欧几里德聚类的激光雷达点云分割及ROS实现

在之前的博客https://blog.youkuaiyun.com/qq_33287871/article/details/106154735中复现了一种基于射线坡度阈值的地面分割方法,并且使用pcl_ros实现了一个简单的节点,在完成了点云的地面分割以后,为了使用激光雷达完成环境感知,我们通常会对非地面点云进行进一步的分割,换句话说,我们希望对地面以上的障碍物的点云进行聚类,通过聚类,我们可以检测出障碍物的边缘,并且使用3维的Bounding Box将障碍物从三维点云中框出来。本文将介绍一种基于欧几里德聚类的点云分割

qq_33287871的博客 7826

【虹科】激光雷达安全系统:让世界更安全

基于3D 激光雷达的安全系统具有更高的可靠性和更少的误报,因此具有更高的安全性。在这篇文章中,我们概述几个案例,并解释它们是如何工作的。

m0_49762095的博客 1565

java8看不到源码-HDM:3D激光雷达人体检测模块

java8 看不到源码HDM 3D 激光雷达人体检测模块 积压 概述 该项目展示了使用头戴式 3d 激光雷达在 3 维空间中检测和定位人类障碍物的能力。 它接收点云数据并输出现场检测到的人类的 X、Y 和 Z 坐标。 主要工作流程包括解析 .PCD 文件并将其转换为 pcl::PointXYZ 格式。 然后应用体素网格滤波器将高分辨率数据下采样为均匀间隔的点。 直通过滤器确保选择合理范围的数据点。 (x:-5:5, y:-5:5, z:-2:0.5) 使用 SACSegmentation,我们通过随机尝试拟合平面上的点来推断地平面,当相当多的点满足平面方程时,我们找到了地平面。 然后从原始点云中减去这些点,留下激光雷达周围物体的点云。 使用内置的欧几里得聚类算法,根据质心非常接近检测到的人类的相对坐标的点数给出最主要的聚类。 完成本项目使用的核心库是点云库。 提供的过滤、分割、可视化和数据处理模块大大提高了整个项目的工作效率。 依赖关系 这些说明将为您提供一份项目副本,并在您的本地机器上运行,用于开发和测试目的。 先决条件 您可以使用以下命令为 Linux 安装预构建的 PCL 库 s

实战指南:彻底清除TIA Portal卸载后遗留的SQL Server WinCC实例

本文详细介绍了如何彻底清除TIA Portal卸载后遗留的SQL Server WinCC实例,解决重新安装时的冲突问题。通过控制面板排查、注册表验证、安全卸载操作流程和注册表深度清理等步骤,确保完全移除残留组件,避免系统崩溃。文章还提供了安装环境重建策略和预防措施,帮助工程师高效管理西门子自动化软件。

weixin_30482181的博客 405

华为云如何赋能无人车飞驰?从这群AI热血少年谈起

摘要:由华为云携手上海交通大学学生创新中心举办的“第二届华为云人工智能大赛 · 无人车挑战杯”中,来自电子科技大学的“暑期休闲队”获得大赛季军。 由华为云携手上海交通大学学生创新中心举办的“第二届华为云人工智能大赛 · 无人车挑战杯”总决赛已成功落下帷幕。来自电子科技大学的“暑期休闲队”,自身拥有扎实的模式识别、机器人等学科知识,借助华为云一站式AI开发管理平台ModelArts和端云协同解决方案HiLens,进行无人车模型开发与部署,最终获得季军。 电子科技大学自动化工程学院 贵兴泰 “暑期休闲

华为云官方博客 2742

IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)

实现三分频电路最简单的是: 利用计数器实现。 时序图分析(本人比较懒,平常科研忙,所以直接手画时序图了,懒得用软件画了): 直接上图分析:利用计数器每隔三个周期信号翻转一次,同时在不同的计数下翻转得到的同步信号 clk_1和clk_2,再利用异或即可实现出一个不同占空比的三分频信号(同样的方法也可扩展到其他奇数分频设计中)。 例如占空比50%: module Div_three( input clk, input rst_n, output div_three ); reg

qq_41884662的博客 1万+

论激光雷达在无人车领域的作用和前景

** 激光雷达,是以发射激光束探测目标的位置、速度等特征量的雷达系统。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数,从而对飞机、导弹等目标进行探测、跟踪和识别。它由激光发射机、光学接收机、转台和信息处理系统等组成,激光器将电脉冲变成光脉冲发射出去,光接收机再把...

weixin_43837228的博客 1183

从零到一:RagFlow源码架构深度解析与二次开发实战指南

本文深入解析RagFlow源码架构,提供从环境搭建到二次开发的全流程实战指南。作为企业级AI搜索框架,RagFlow通过模块化设计和多模态处理能力,支持自定义智能体开发与文搜文档功能,帮助开发者高效构建智能搜索系统。

w1x2y3的博客 267

基于PCIE8311+FPGA+TMS320F28335 PCIE应用项目开发板PROTEL99设计硬件(原理图+PCB)文件

基于PCIE8311+FPGA+TMS320F28335 PCIE X1应用项目开发板PROTEL99设计硬件(原理图+PCB)文件,Protel 99se 设计的项目工程文件,包括原理图及PCB印制板图,可用Protel或 Altium Designer(AD)软件打开或修改,都已经制板在实际项目中使用,可作为你产品设计的参考。

GJZGRB的博客 577

树莓派vsRK3588 对比及无人车集成方案(RTK / 激光雷达 / 云卓 H16)

本文对比了树莓派与RK3588在无人车应用中的性能差异,重点分析了硬件配置、实时处理能力和场景适配性。RK3588凭借八核CPU、6TOPS NPU算力和多接口扩展性,在激光雷达避障、RTK定位等场景表现优异,支持实时路径规划和AI决策。文章详细介绍了基于RK3588的无人车系统架构,包括硬件连接方案、ROS2软件环境搭建、核心功能实现及性能调优方法,同时提供了树莓派简化版适配方案。测试表明RK3588能实现厘米级定位和毫秒级响应,是高性能无人车的理想计算平台。

OuNuo5280的博客 2638

GPU运维基础知识

常见的GPU型号如NVIDIA Tesla系列(V100、A100)、GeForce RTX系列(3090、4090)和AMD Instinct系列(MI250X)。硬件监控工具包括NVIDIA的nvidia-smi和AMD的rocm-smi,用于实时监控GPU状态、温度、功耗和显存使用情况。NVIDIA和AMD是主流GPU供应商,NVIDIA的CUDA架构和AMD的ROCm生态是核心。GPU包含流处理器、显存、显存带宽等关键组件,不同型号的GPU在计算能力、显存容量和功耗上存在差异。

云原生运维的博客 762

用Python打造无人驾驶车-激光雷达数据(1)

ROS环境安装ROS/Tutorials - ROS Wiki ROS数据包Udacity Didi Challenge - Round 2 Dataset 前言: 激光雷达是无人驾驶车的一个重要数据源,同时也是最难处理的数据之一。相对于图像数据而言,激光雷达有着更可靠的深度数据。特斯拉的辅助驾驶系统曾因为过度依赖图像数据产生的误判而造成严重的事故,而有了激光雷达之后,就可以避免因为图像造成的误判。本文将介绍如何初步的处理激光雷达生成的点云数据。 数据可视化 在处理数据之前,让我们先来看看原始

2637

手把手教你在ARM64架构下编译和部署Milvus:从环境搭建到Docker镜像制作全攻略

本文详细介绍了如何在ARM64架构下编译和部署Milvus,包括环境搭建、源码下载与编译、Docker镜像制作等关键步骤。通过本文的方法,您可以快速构建适用于ARM64设备的Milvus编译环境,并解决常见的编译错误。同时,还提供了基于Docker Compose的测试方法,帮助用户高效地完成向量数据库的部署与应用。这是一次深入探索开源AI工具的实用指南,为开发者在多种硬件架构上的创新应用提供了强有力的支持。

小盒子的博客 1266

【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

AI人人懂 2658

200支高校无人车赛队,华科为什么能赢?

作者 | 华中科技大学人工智能与自动化学院 黎瑞在2020年第二届华为云人工智能大赛•无人车挑战杯中,“华中科技大学无人车一队”借助华为云一站式AI开发与管理平台ModelArts及Hi...

优快云资讯 3263

【华为OD机试真题】29、组成最大数 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >小组中每位都有一张卡片,卡片上是6位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字

KJ.JK 2418

探秘京东无人车

时间过得真快,眼瞅着“国庆”假期就即将来到,而过了国庆,一年一度的网友们的购物大趴“双11”就要粉墨登场,作为国内最大电商之一的京东,当然也要在双11大展拳脚。为此,京东除了在商品的准备上要下很多功夫以外,在其他环节更需要高科技的运用,以提高在“双11”购物节各个环节的效率,比如,在物流环节,京东早有耳闻的黑科技——无人车,将有可能会投入使用,快递员只要在站点将货物放置在无人车上,无人车会按照地址...

科技峰行者的博客 9410

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

从零搭建自主Pix无人车

硬件:PIX飞控T265D435差速小车一个软件ROSAPM/PX4opencv具体的原理就是用opencv识别线条,然后通过pid给线速度和角速度给无人车执行,具体就是调用mavros的接口(调用接口时需要注意掩码,否则可能无法控制)废话不多说,先上视频(感兴趣可以关注b站,后续视频更精彩)开源PIX无人车室内巡线由于最近时间紧,先列目录,后面有时间了继续完成。

超维空间科技的博客 4515

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

薛建儒:无人车的场景理解与自主运动

来源:人工智能前沿讲习一报告导读本文为西安交通大学人工智能与机器人研究所薛建儒教授,做的题为无人车场景计算与自主运动的研究进展的报告,主要从无人车概述、场景理解、自主运动...

人工智能学家 2058

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 弹球游戏
下一篇: 火柴人
finalObject
博客等级 码龄8年 8粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值