激光雷达的原始点云数据都会被存放在一个数据包里(pcap),原始点云数据的接收主要是通过UDP(用户数据报协议)的形式向网络发送数据。每帧的数据长度固定为1248字节,这些字节包括前42字节的前数据包标识、12组数据包、4字节时间戳和最后两字节雷达型号参数。
每个数据包中的数据都包含了激光光束的旋转角度、距离值、反射强度的信息。这些信息都是以两字节表示。
数据包(pcap)中的原始数据需要进一步转换为可被感知技术人员使用的pcd格式的数据集。pcd格式文件是激光点云的一种存储格式,pcd文件主要是由笛卡尔坐标(x,y,z)和强度值i组成的列表,即每个点云都会附带独有的三维坐标系和能量反射强度。
运动畸变是指在一帧时间内,激光雷达或者其载体在发生运动后,产生的点云位置不一样的问题。
常见的运动畸变补偿的方法:
n纯估计方法(ICP/VICP)
迭代最近点(ICP)方法是采用ICP算法来匹配两个点云,通过不断地算法迭代后,将点云之间的误差缩至最小。
VICP方法是ICP算法的变种形式,模型假设车辆是在匀速运动,在进行匹配点云的同时估计车辆的自身速度。
迭代最近点(ICP)和VICP被统称为“纯估计方法”。
n传感器辅助方法(IMU/ODOM)
惯性测量单元(IMU)方法是在IMU队列中查找相邻两帧IMU的数据,然后通过球面线性插值的方式计算扫描点所在时刻的激光雷达位姿,并应用齐次坐标系变化将两个点云坐标变换至同一坐标系下。
轮式里程计(ODOM)方法是通过求解当前帧激光雷达数据中每个点云对应的坐标系下的里程计位姿后,再根据求得的位姿把每个点云坐标都转化到同一坐标系下(需要转化两次),最后重新封装该帧点云数据。
惯性测量单元(IMU)和轮式里程计(ODOM)被统称为传感器辅助方法。
n融合的方法
该方法是同时使用里程计和ICP的融合方案,会先利用里程计方法进行矫正,去除大部分的运动畸变,再通过ICP方法进行匹配,得到里程计的误差值,再把误差值均摊到每个点云上,并重新对点云位置进行修正。最后,再利用ICP方法进行迭代,直至误差收敛为止。
完成点云的运动畸变补偿后,会发现一个问题:激光雷达发送的点云数据包中的点云数量其实非常少,完全无法用来进行后续感知和定位层面的处理工作。感知算法人员就需要对这些数据包进行点云组帧的处理:多个点云数据包叠加到同一帧上,让这一帧上的点云数据能包含上万个点云,以便后续感知和定位流程的处理。把多个激光雷达在t时刻的点云都汇集在一起,作为一帧点云数据来处理。
点云坐标系属于激光雷达坐标系,要将激光雷达的坐标系转化为车辆的坐标系,这个建立联系的过程称之为点云的外参变化。
由于激光雷达与车体是刚性连接,所以在车辆运动过程中,两者之间的相对姿态和位移是固定不变的,只需要建立两者相对坐标系之间的位置关系,通过旋转或者平移的方式,就能将这两个三维坐标系统一到一个三维坐标系下
由于待测物体表面及扫描环境等因素的影响,点云数据中会不可避免地夹杂着一些噪点(离群点),需要将其直接剔除或者以平滑的方式进行处理。
n噪点是指对模型处理无用的点云数据。
n离群点是指远离主观测区域的点云数据。
整个点云预处理工作完成后,感知算法人员会将点云数据分别进行感知和定位层面的处理。
感知功能层面的处理
感知层面的流程中,点云数据主要是用于3D目标检测,即自动驾驶系统需要识别检测出车辆感知区域内的障碍物,从而采取避障等措施。
感知层面的处理会有两个分支:一个是应用传统的3D目标检测方法,包括点云分割、目标物的聚类分析等;另一个是直接应用深度学习模型来完成3D目标检测。
(1)地面点云分割
点云数据中会有很大一部分点云属于地面点数据,并呈现出一定的纹理状,这会对后续目标物的点云处理流程产生影响。
l平面栅格法、点云法向量、模型拟合法-平面拟合(RANSAC)、面元网格法
(2)目标物的点云分割
目标障碍物的点云分割是根据空间、几何和纹理等特征对点云进行划分。
l基于边缘的方法、基于区域增长的方法、基于属性的方法、
(3)目标物聚类分析
lK-means、DBSCAN、欧式聚类、
(4)匹配与跟踪
匹配和跟踪的算法流程是先将目标预测的结果与测量的点云数据计算关联矩阵,然后利用匈牙利算法(其核心原理是寻找增广路径,从而达成最 大匹配)进行匹配关系的确定,最后将点云数据分为匹配上的目标和未匹配上的目标两类,将其分别保存,并为跟踪做准备。
深度学习在点云数据处理中也会遇到一些挑战
一方面,点云作为场景中点的位置具有稀疏和非结构化的性质,因此它们的密度和数量都随着场景中对象的变化而变化。另一方面,由于自动驾驶汽车行驶时需要非常快速地做出反应,因此必须实时执行物体检测,而这意味着检测网络必须在两次扫描之间的时间间隔内提供计算结果。
深度学习等AI算法目前还做不到100%的精准识别和检测,容易导致目标漏检。AI算法是3D点云感知的非常重要的手段,但是不能只靠AI。通过综合应用AI算法和传统算法,可以解决数据样本空间的不完备性问题,从而避免目标漏检情况。
基于深度学习的目标检测方法:
nPointNet、PointNet++、VoxelNet、SECOND、PointPillar、PCT
定位功能层面的处理
点云数据做定位的第 一步就是先要让自动驾驶车辆知道“我在哪里”。
感知算法人员就需要先提取周边场景的目标物特征,并通过这些特征和所获取到的相对距离信息来建立一个小地图,知道车辆的相对初始位置。
点云特征提取往往是实时的,为了减少点云数据的计算量,点云数据在被提取特征时,一般会被优先提取一些较为明显的特征,比如物体的轮廓信息。
激光雷达不会像视觉一样,视觉会有深度的语义信息,而激光雷达为了减少计算量,只会提取目标物的特征,主要是提取目标物的“线面角”特征。比如,电线杆就是线的特征,路面就是面的特征,建筑物的角点就是角的特征。
提取完周围目标物的特征后,感知算法人员就需要根据这些特征来进行点云地图匹配,来获取各个点云之间的相对位姿。
点云地图匹配一般可分为帧间匹配和高精地图匹配。
n帧间匹配,也叫子图匹配,指将前后帧上有相同特征的点云做匹配,最后得到一张局部小地图。
n高精地图匹配,指将优化后的点云与高精地图做匹配。
点云数据在做完匹配后,可以获取各点云间的相对位姿,而相对位姿的准确性会影响构建地图的准确性,所以需要对点云的相对位姿做一定的优化。
通常来说,相对位姿的不准确主要是由于一些不可控因素造成的,如点云被物体遮挡或者激光雷达视场角的限制。点云的位姿优化通过一定的点云坐标系的刚体变化(旋转或平移)来得到最优相对位姿。
点云的分类是将点云分类到不同的点云集。同一个点云集具有相似或相同的属性,例如地面、树木、人等;点云分割是根据空间、几何和纹理等特征点进行划分,同一划分内的点云拥有相似的特征。
基于半径选择局部区域,针对得到的每个区域进行特征提取,关键核心原理:
最远点采样法(farthest point sampling):尽可能覆盖到原始点云数据,例如输入1024个点,要选择128个中心点
点云异常处理
在复杂交通驾驶场景中,存在诸如高反物体、近处障碍物、阳光照射、多雷达对射等极端工况,这会对激光雷达点云成像带来一连串的异常,直接使后期感知产生误判,进而导致事故。
n高反“鬼影”和 “膨胀”
在实际驾驶场景,高反射率物体十分常见,比如交通指示牌,激光雷达对其反射回来的高强度回波非常敏感,容易在点云中形成“鬼影”和“膨胀”。
当一个真实高反物体进入激光雷达视场的任一区域时,输出的点云除了在该高反真实位置有成像以外还可能在其他方位也会成像一个形状大小类似“鬼影”。在不同场景中,不同类型激光雷达“鬼影”的行踪可能各不相同。
“膨胀”现象通常表现为一个正常高反指示牌的点云轮廓会向四周扩散,成像出来一个比真实物体更大的点云形状,且多出来的点云部分的反射强度表现会偏低。
n“吸点”和“空洞”
近场障碍物的探测能力在智能驾驶中的用处也非常明显,比如在拥堵跟车(TJP)功能中,激光雷达的最近探测距离值越小,跟车距离可以越缩短,被加塞的可能性就越小。
然而,中长距激光雷达探测近距离物体时出现的“吸点”(测距不准)和“空洞”(测不到)现象一直困扰着行业,在出现以上两类问题的小区域通常会被设定为“盲区”,输出的点云数据不建议使用。
M1通过光学系统与测距系统的优化,将盲区缩减到0.5米,对于前车车牌之类的高反射率物体,盲区更是减少到0.3米,帮助智能驾驶系统合理控制与前方车辆或其他障碍物的距离。
“空洞”描述的是激光雷达对于近场低矮障碍物的探测在从远到近过程中“时有时无”的丢失现象。障碍物原始点云“时有时无”会让感知软件难以连续跟踪,这容易导致智能驾驶的急刹车或频繁“减速加速”顿挫。
n太阳光干扰
强烈的太阳光照射是激光雷达环境光干扰源中的重大影响因子,当车辆面向太阳方向行驶的时候且激光雷达视窗也朝向阳光方向,如果处理缺乏经验,会导致激光雷达点云中出现明显噪点。
n对射干扰Multiple LiDAR Crosstalk
当激光雷达相互之间靠得太近,不同雷达发射和接受脉冲容易被混淆,导致点云出现噪点。针对这种情况,M1采用了独特的激光编码加密技术,过滤其他激光雷达脉冲,实现抗多雷达对射干扰。
点云质量锁定:参数指标优异
点云质量过硬的同时,测距方面,M1的最远探测可达200m,150m@10%反射率,可以准确稳定识别处于150米外的黑色车辆(车牌与车灯同时用黑布盖住)。M1的近场探测能力同样出色,即使是0.3米处的高反物体也能有效探测。
M1强大的测距能力,结合平均0.2°x0.2°分辨率,探测前方150米处的小轿车,依然可以获得“4根线13个点”的成像,远大于感知软件所需“2根线3个点”的检测阈值。同时,M1支持双回波功能,每秒最 大出点数高达1,500,000点。
目前,M1的测距能力、测距精度、视场角、盲区等基础性能的出厂检测指标已对齐车企标准并完全锁定,量产产品均按照以上性能指标批量出货。
关于我们
RoboSense(速腾聚创)是全球领先的智能激光雷达系统(Smart LiDAR Sensor System)科技企业。RoboSense通过激光雷达硬件、感知软件与芯片三大核心技术闭环,为市场提供具有信息理解能力的智能激光雷达系统,颠覆传统激光雷达硬件纯信息收集的定义,赋予机器人和车辆超越人类眼睛的感知能力,守护智能驾驶的安全。
激光雷达点云异常场景、原因和一般应对方案
这些异常场景主要包括:**高反“鬼影”、高反“膨胀”、点云粘连、吸点、雨雾、**粉尘和雪干扰、内部串扰(Crosstalk)、光干扰、外部雷达干扰、电磁干扰、地面积水干扰****等等。
n高反“鬼影”
尤其是具备高反射率的物体,这种现象最为常见,例如:交通指示牌、锥桶、三角指示牌、汽车牌照,尾灯等。
主要原因是多径效应,激光在传输路径中发生了多次反射。
激光扫描到高反射率的目标物表面后,点云图像会出现向四周扩散的现象,使得原有的目标物点云图像显得更大,看起来像目标发生了“膨胀”。
“膨胀”多出来的点云一般出现在高反射率物体边缘,其反射强度也更低。
例如一些高反的细杆,由于发生了“膨胀”,在雷达的视场内,变成了一个“球”。
有的时候,高反目标没有发生严重的“膨胀”,但是在周围出现了大量噪声,如下所示:
当有高反目标时,激光雷达的感光单元产生的热载流子溢出,发射出近红外串扰光子,这些光子溢出至其周围的感光单元时,周围的感光单元因此受到影响。
该过程类似于使用相机拍摄明亮的天空时,树叶或树枝边缘发生“高光溢出”,使得树枝细节不可见。
1. 提升感光芯片的动态范围,减少热载流子溢出概率;
2. 增加通道间的隔离措施,或者增加“高光溢出保护”(anti-blooming gates)功能,吸收溢出的电荷,减少溢出电荷对附近象素的滋扰。
3. 根据“膨胀”噪声的特点,根据反射率、形状和位置等信息,通过软件信号处理的方法进行滤除。
激光雷达点云粘连,也被称为**“拖点”**,表现为两个相距较近的目标之间,出现了连接两个目标的虚假点云,该现象在近距离的复杂场景下比较常见。
一个行人和后面目标之间,出现点云粘连:
dToF激光雷达通过发射激光脉冲进行距离的测量,激光脉冲存在一定的发散角,激光束的光斑尺寸会随距离的增加而增大,当激光束同时打到前后两个相距较近物体边界时,会同时产生前后两个反射回波。
但由于两个物体相隔较近,前后两个回波在时间维度上会叠加在一起,从而会出现一个介于两个物体之间的虚假点,即“粘连点云”。
发散角越大,则越容易在两个物体中间形成虚假点,有时遇到斑马线或者棋盘格这种高低相隔的物体时,甚至会检测出来“波浪线”。
结合基于底层物理信号和点云层特征的算法,识别粘连点云,并进行去除。
激光雷达在探测近距离物体时,出现的测距不准(“吸点”)或者完全消失(“空洞”)。
物体进入了激光雷达的距离盲区。激光雷达感知单元接收两个激光脉冲存在一个最短时间,如果目标距离过近,激光的飞行时间小于该最短时间,该物体的脉冲回波将难以被探测到,从而导致近距离物体测距不准后者无法探测。
长距激光雷达的盲区通常在0.5~1m。
通过提升激光雷达探测器的软硬件性能,尽量缩短盲区距离。不过,受限于物理原理的极限,盲区不可能完全消除,应用算法不应当使用过近距离的点云数据。
当雨量不大时,在雷达视场内会出现大量噪声点云,同时,激光雷达的测距性能发生衰减。如下图所示,下雨导致了大量噪点(白色点):
当大雨或者暴雨时,点云密度和测距范围大幅下降,点云基本无法反映有效目标:
雾的影响和雨水类似。一般来说,在雾天不严重的情况下,如轻雾(能见度为1km-10km),雾天并不会明显影响激光雷达点云。但是,当雾天能见度越来越低后,激光点云的透过率会下降,雷达视场内出现大量噪点(如下图白色点)。
激光雷达光束打到雨滴或者雾滴上,激光发生反射和吸收,造成点云的异常增加或者点云的消失。
通过反射特性(反射率、方向、强度)、尺寸、形状等特征来识别目标,通过记录目标波形,来识别被检测目标是否是雾或者浓烟,以进行滤除。
激光雷达光束打到一些物体上会发生透射,透射的光再遇到物体还会发生反射,这样激光雷达发射一束光可以接收到多次反射光,采用相应的算法对多次发射光进行处理,就是多回波技术。
如果在雨雾环境中,激光可以穿透雨雾,最后打到障碍物上并反射,采用最后一次回波就可以把雨雾滤除掉。
不过,多次回波的作用是只用于较小的雨雾,如果雨雾很大,导致激光完全无法穿透雨雾,则依然无法有效检测。
目前市面上的激光雷达通常会支持单回波与双回波两种模式。
l单回波模式:一般有两种选择,即“最后回波”或者“最强回波”。“最后回波”是指雷达只输出最远的一个回波;“最强回波”是只输出最强的一个回波。
l双回波模式:通常是“最后回波”和“最强回波”,也可能有别的模式。开启双回波的激光雷达点云密度通常是单回波的2倍。
下图是不同波长的激光雷达去水系数谱(Water extinction coefficient spectrum):
相对于905nm的激光,1550nm的激光更容易被水雾吸收。
正是由于该特性,1550nm激光对人眼安全影响更小(激光还没有打到视网膜,就被眼球里面的水给吸收了)。但是同时,1550nm激光雷达在雨天的表现,一般会比905nm激光雷达要差一些。
对于线扫描激光雷达来说,发射光是一个细小的光束,对于光束的路径上的雨滴等颗粒比较敏感,容易形成噪点。
Flash激光雷达发射面阵激光,雨雾颗粒只反射一小部分激光,通过滤波算法,可以较为容易将雨滴、灰尘颗粒等的噪点滤除掉。
粉尘和雪是固体,比雨雾更容易反射激光,从而形成更为明显的噪点。
主要是使用去噪算法,进行滤除。主要分为点云滤波算法、波形识别算法、以及基于深度学习的去噪算法。
1. 点云滤波算法常见的有体素滤波、高斯滤波、双边滤波等方法,但是在对于一些特定场景下的点云噪声,这些传统算法往往起不了太大效果。
2. 波形识别算法(和雨雾处理类似),主要是依据经验,分析噪声点云出现的方位、反射率的大小,通过这些信息设置阈值过滤点云。
3. 目前基于深度学习的去噪方法也越来越受到大家重视。通过开发基于语义信息的噪声滤除网络,例如基于体素的CNN方法、CycleGANs等等,具体可参考:Mariella Dreissig等,《Survey on LiDAR Perception in Adverse Weather Conditions》。
在薄膜晶体管液晶显示器中,通常将串扰定义为整个屏幕中某一区域的显示会受到另一区域的影响,而造成画面失真的一种显示异常的现象。
类似的,在激光雷达中,接收阵列中的一个雪崩事件在像素内触发时,大量的雪崩热载流子溢出,发射出900-1700nm波长范围内的近红外串扰光子。这些串扰光子直接或者间接的被相邻的像素检测到,从而导致串扰。如下图所示(接收阵列以SPAD为例):
串扰会降低信噪比(SNR),并降低成像的空间分辨率。
串扰强度随着像素间距的减小而增大,从而限制了SPAD阵列可达到的像素密度。
一般情况下,通常采用在相邻像素间刻蚀隔离沟槽,以及串扰滤波层和背面金属化,来阻断串扰光子的传输链路。
利用聚焦离子束(FIB)蚀刻和铂填充沟槽的方法可以抑制最近相邻像素间60%的串扰。不过引入的刻蚀,以及倍增区的暴露侧壁和分离损伤,会降低接收器件的可靠性、稳定性,同时还可能会增加暗电流,从而导致高的暗计数率(DCR)。
在有强光照射时,激光雷达的测量距离和点云数量大幅减少。
在下图的实验中,车辆位于距离氙灯光源40m处,峰值照度为200 klx。此时,人体模型上仅有4个点(青色框),反射板仅有3个点(品红框),黑色车辆有10个点(绿色框)。
作为对比,热像仪可以较为清楚的检测行人和车辆目标。
日光是连续谱,几乎涵盖了所有激光雷达的工作波长,强烈的阳光入射会导致多个SPAD单元饱和,并且在恢复初始状态前都无法吸收光子,因而有可能漏掉真正的反射信号。
所以在强烈的日光下,使用 SPAD/SiPM 的激光雷达经常会出现探测距离明显下降或者目标点云稀疏的问题。
虽然目前已有一些算法进行日光干扰的处理,但往往效果并不完美,有时还会引入额外噪声。
FMCW激光雷达可以较好的抑制光干扰
当有多个激光雷达相距较近时,不同雷达发射和接受脉冲容易相互干扰,从而出现干扰点云。该现象对于采用dToF体制的激光雷达更容易出现。
1. 采用光随机编码,通过校验分辨干扰信号,从而滤除错误数据。其他还包括增加滤光片,偏光片,调光俯仰角,分时收发,调节占空比等等方法,也都可以降低被干扰的概率。
2. 比较能彻底解决激光雷达间干扰的技术是激光相干技术,即FMCW激光雷达。相干激光雷达采用回波与本征光相互干涉来检测回波,环境中其他光(包括太阳光,其他激光雷达的光)很难与本征光产生干涉,也就不会被检测到,不容易产生噪点。
当自动驾驶车辆经过一些特定区域时,如机场、发电站等,这些区域也会产生电磁波的干扰。如果激光雷达的防电磁干扰措施做得不够时,会产生由于电磁辐射导致的噪点。
例如下图中的白色噪点:
较强的电磁信号在透射进入激光雷达内部后,对整个电路或者接收端的器件形成电压变化,影响了激光雷达内部的正常工作。尤其是,激光雷达接收器的灵敏度非常高,非常容易受到电磁信号的干扰。
这种噪点很难通过滤波算法来处理,需要通过提升激光雷达硬件的电磁屏蔽性能,来进行抑制。
地面积水时,导致点云消失,以及车辆在积水旁边,发生镜面反射。
有异物(例如冰雪、泥水、鸟粪和飞虫等)覆盖在雷达表面,导致雷达视场角受限,引起点云质量下降。
通过增加激光雷达清洗装置(水或者超声波)或者加热装置,清洗或者融化表面异物,这些方法可有效去除飞溅物、污垢、雾凝结等等。
当Lidar内部收发机构发生故障时,由于数据错误,导致出现大量噪点:
采用感知融合是弥补激光雷达不足的有效方法。例如,毫米波穿透雨雾、灰尘的能力很强,几乎不受雨雾、灰尘的影响。将毫米波雷达的识别结果与激光雷达的识别结果进行融合,也可以有效滤除雨雾、灰尘造成的误识别。
几种常用传感器应对复杂场景的特点如下:
不同传感器在不同特殊场景下的影响程度:
其中:
0 - 可忽略:几乎可以忽略的影响;
1 - 轻微:几乎不会导致检测错误的影响;
2 - 轻微:在特殊场合造成小错误的影响;
3 - 中等:影响导致感知错误高达 30% 的时间;
4 - 严重:影响导致感知错误超过 30% 但低于 50% 的时间;
5 - 很严重:噪声或堵塞导致误检或检测失败;
2. 地图和定位融合
除了传感融合之外,还可以融合地图、定位等信息,进一步提升对特殊场景下的感知弱势场景进行应对。例如,下图展示了一种不受恶劣天气影响的自动驾驶汽车架构。
目前SLAM程序的流程大抵上都一样,基本的流程都是:
1. 对陌生环境进行一次扫描,建立地图;
2. 保存地图;
3. 以后运行时,打开这张地图进行定位。
机器人用的栅格地图,主要表达何处有障碍物,何处是可通行的区域,此外就没有了。它具有基础的导航与定位功能,精度也不错(厘米级),制作起来十分简单,基本可以让机器人自动生成。
· 在室内,机器人可以去任意可以通过的地方,不会有太多阻拦,而对于自动驾驶来说,每条路都有对应的交通规则:有些地方只能靠右行驶,有些地方不能停车,十字路口还有复杂的通行规则。
· 室内机器人可以利用栅格地图进行导航,但在室外可不能在十字路口上横冲直撞。所以,在导航层面,室内与室外的机器人出现了明显的区别。室内的导航可以基于栅格来实现诸如A*那样的算法,但室外基本要依赖事先画好的车道。
· 在广场、机场等开阔区域,即使是多线激光,也只能看到几圈地面上的点云。仅使用地面点云进行匹配,很可能在水平面上发生随机移动。
· 在长隧道、单侧墙、桥梁等场地中,激光匹配会存在一个方向上的额外自由度。也就是说,沿着隧道前进时,获取到的激光点云是一样的,使得匹配算法无法准确估计这个方向上的运动。类似地,如果机器绕着一个圈柱形物体运动时,也会发生这种情况。
· 在一些异形建筑面前,激光可能发生意想不到的失效情形。
解决思路:建图算法适当降低激光轨迹的权重,利用其他轨迹(或者数据约束)来补偿激光的失效。
公众号 扫码咨询
![]() |
上海市闵行区中春路4999号莘庄商务楼1326室 |
![]() |
service@covond.com |
![]() |
www.covond.com |
![]() |
交换机:18017588179(孙经理) 无人机:13311882358(孙总) |