掌桥专利:专业的专利平台
掌桥专利
首页

过滤玻璃噪点的方法、激光雷达及机器人

文献发布时间:2024-04-18 19:58:26


过滤玻璃噪点的方法、激光雷达及机器人

技术领域

本申请实施例涉及机器人技术领域,尤其涉及一种过滤玻璃噪点的方法、激光雷达及机器人。

背景技术

随着科技的不断发展,激光雷达广泛应用于机器人、无人驾驶、无人车等领域。激光雷达(Laser Detection and Ranging,LADAR)是以发射激光光束来探测目标的位置、速度等特征量的雷达系统。激光雷达包括发射器和接收器,发射器向目标发射探测信号(激光),接收器接收从目标反射回来的信号(反射光),然后,激光雷达将接收到的信号与发射信号进行比较,作适当处理后,就可获得目标的有关信息,例如目标距离、方位、高度、速度、姿态、甚至形状等参数。

其中,激光雷达采用的测距方法有三角测距法和TOF法(Time of Flight,TOF)。在三角测距法中,激光雷达发射激光打在物体上发生反射,反射光线被接收器接收,在接收器上形成光斑,提取光斑的质心得到激光点。随着激光点的不断产生,生成点云数据。然而,激光打在多层玻璃上经过多次反射及受到了阳光、玻璃上灰尘等的影响会对光斑质心提取带来很大的不确定性。对于玻璃等物体,扫描生成的点云数据中会存在大量的噪点(即玻璃噪点),对室内的SLAM建图定位造成干扰。

发明内容

有鉴于此,本申请一些实施例提供了一种过滤玻璃噪点的方法、激光雷达及机器人,该方法应用于激光雷达,激光雷达能够准确过滤掉点云数据中的玻璃噪点,减少噪点干扰,有利于机器人建图和避障的准确性。

第一方面,本申请实施例提供了一种过滤玻璃噪点的方法,包括:

对于点云数据中每个激光点,根据激光点的光斑形态,标记激光点的属性类别,属性类别反映激光点是否为疑似玻璃噪点;

若激光点被标记为疑似玻璃噪点,则分析激光点附近的点云形态,确定激光点是否为玻璃噪点;

若激光点为玻璃噪点,则将激光点从点云数据中剔除。

在一些实施例中,前述根据激光点的光斑形态,标记激光点的属性类别,包括:

对激光点的光斑进行灰度统计,得到光斑曲线;

确定光斑曲线中的光斑有效区域;

根据光斑有效区域中曲线的波形特征,标记激光点的属性类别。

在一些实施例中,前述根据光斑有效区域中曲线的波形特征,标记激光点的属性类别,包括:

分别统计光斑有效区域两侧的外灰度值大于第一灰度阈值的像素个数,得到左侧像素个数和右侧像素个数;

分别确定光斑有效区域的两侧是否出现梯度方向变化,得到左侧梯度方向变化结果和右侧梯度方向变化结果;

根据左侧像素个数、右侧像素个数以及左侧梯度方向变化结果、右侧梯度方向变化结果,标记激光点的属性类别。

在一些实施例中,前述根据左侧像素个数、右侧像素个数以及左侧梯度方向变化结果、右侧梯度方向变化结果,标记激光点的属性类别,包括:

若左侧梯度方向发生改变且左侧像素个数大于第一阈值,则确定左侧属性类别为疑似玻璃噪点;

若右侧梯度方向发生改变且右侧像素个数大于第二阈值,则确定右侧属性类别为疑似玻璃噪点;

在左侧属性类别为疑似玻璃噪点和右侧属性类别为疑似玻璃噪点的情况下,标记激光点的属性类别为疑似玻璃噪点。

在一些实施例中,前述根据光斑有效区域中曲线的波形特征,标记激光点的属性类别,包括:

分别统计光斑有效区域中灰度值大于第二灰度阈值的像素个数,得到区域像素个数;

根据区域像素个数,标记激光点的属性类别;或,

根据光斑有效区域的宽,标记激光点的属性类别。

在一些实施例中,根据光斑有效区域中曲线的波形特征,标记激光点的属性类别,包括:

若光斑有效区域中曲线的波峰数量大于或等于第三阈值,则标记激光点的属性类别为疑似玻璃噪点。

在一些实施例中,前述分析激光点附近的点云形态,确定激光点是否为玻璃噪点,包括:

预设长度的滑动窗口在点云数据上滑动,当激光点位于滑动窗口的中间位置时,根据滑动窗口中激光点的平均距离和/或滑动窗口中有效激光点,确定激光点是否为玻璃噪点。

在一些实施例中,前述根据滑动窗口中激光点的平均距离和/或滑动窗口中有效激光点,确定激光点是否为玻璃噪点,包括:

确定激光点和滑动窗口中有效激光点的平均距离;

若平均距离大于距离阈值,则确定激光点为玻璃噪点;或,

若滑动窗口中有效激光点的数量小于数量阈值,则确定激光点为玻璃噪点。

第二方面,本申请实施例提供了一种激光雷达,包括:

至少一个处理器,以及

与至少一个处理器通信连接的存储器,其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面的方法。

第三方面,本申请实施例提供了一种机器人,包括第二方面的激光雷达。

本申请实施例的有益效果:区别于现有技术的情况,本申请实施例提供的过滤玻璃噪点的方法,对于点云数据中每个激光点,根据激光点的光斑形态,标记激光点的属性类别,属性类别反映激光点是否为疑似玻璃噪点。若激光点被标记为疑似玻璃噪点,则分析激光点附近的点云形态,确定该激光点是否为玻璃噪点。若激光点为玻璃噪点,则将激光点从点云数据中剔除。

在此实施例中,分两步筛选出玻璃噪点,首先根据光斑形态,标记出疑似玻璃噪点的激光点。然后,对于疑似玻璃噪点的激光点,进一步分析其附近的点云形态,确定其是否为玻璃噪点。筛选出玻璃噪点后,将玻璃噪点激光点从点云数据中剔除。也即,根据光斑形态进行粗筛,能够快速标记出疑似玻璃噪点,对于疑似玻璃噪点,根据附近的点云形态进行细筛,能够准确确定其是否为玻璃噪点。相比于对点云数据中所有激光点云进行粗筛或细筛,本申请实施例中结合光斑形态和点云形态分两步筛选的方式,不仅能准确过滤玻璃噪点,而且能够有效节省算力,从而,该方法能够应用于算力低的器件(例如单片机等),有利于在激光雷达上实施,使得激光雷达最终输出的点云数据准确,减少了噪点干扰,有利于机器人建图和避障的准确性。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1为本申请一些实施例的应用环境示意图;

图2为本申请一些实施例中机器人建立的地图的示意图;

图3为本申请一些实施例中过滤玻璃噪点的方法的流程示意图;

图4为本申请一些实施例中三角测距法的示意图;

图5为本申请一些实施例中光斑曲线的示意图;

图6为本申请一些实施例中具有多个波峰的光斑曲线的示意图;

图7为本申请一些实施例中出现波峰偏移的光斑曲线的示意图;

图8为本申请一些实施例中波峰附近出现毛刺的光斑曲线的示意图;

图9为本申请一些实施例中滑动窗口的示意图;

图10为本申请一些实施例中过滤玻璃噪点前后的点云示意图;

图11为本申请一些实施例中激光雷达的结构示意图;

图12为本申请一些实施例中机器人的结构示意图。

具体实施方式

下面结合具体实施例对本申请进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本申请,但不以任何形式限制本申请。应当指出的是,对本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进。这些都属于本申请的保护范围。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

需要说明的是,如果不冲突,本申请实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。此外,本文所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。

除非另有定义,本说明书所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本说明书中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本申请。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本申请实施例中,机器人可以是能够提供功能服务的移动设备,例如:可以是清洁机器人、宠物机器人、配送机器人、看护机器人、远程监控机器人、扫地机器人等机器人。机器人配置有激光雷达,机器人基于激光雷达扫描得到的激光点云进行建立地图、避障或定位等。

下面以机器人为清洁机器人,示例性说明本申请中过滤玻璃噪点的方法。

请参阅图1,图1是本申请实施例提供的一种过滤玻璃噪点的应用环境示意图。如图1所示,清洁机器人100位于地面上,该地面可以是居住室、办公室或室外等场所的地面。如图1所示,清洁机器人100位于地面上,该地面可以是居住室或办公室等场所的地面。清洁机器人100所在的场所包括书桌、花盆、沙发或玻璃门等障碍物。

清洁机器人100的自由行走主要依靠建图、定位、导航和避障这几个模块完成。可以理解的是,这些模块由传感器和相应的控制程序实现。

在一些实施例中,该清洁机器人100上安装有激光雷达和可见光摄像头,其中,激光雷达对清洁机器人100所在的周围环境进行扫描,得到激光点云。可见光摄像头对清洁机器人100所在的周围环境进行拍摄,获取图像。激光雷达和可见光摄像头分别与控制器通信连接,将激光点云和图像分别发送给控制器,控制器调用清洁机器人100的存储器内事先预置好的构建语义图像的程序,基于激光点云和图像建议语义地图。其中,构建语义图像的程序可以包括SLAM算法(Simultaneous Localization and Mapping,SLAM)对应的程序,在此不作详细介绍。将语义地图保存在清洁机器人10的存储器中。当清洁机器人移动作业时,控制器调用语义地图作为自主定位、路径规划和避障的依据。

可以理解的是,SLAM算法同时具有定位和导航。在定位过程中,控制激光雷达高速旋转发射激光,测量清洁机器人与障碍物之间的距离,结合语义地图来判断清洁机器人与障碍物之间的相对位置,从而实现定位。在一些实施例中,清洁机器人100可基于可见光摄像头进行视觉定位。在导航过程中,基于定位和清洁目的地进行路径规划,按路径进行导航。

清洁机器人100可基于可见光摄像头采集的图像信息和激光雷达采集的点云信息检测出障碍物。例如,采用事先训练好的目标检测模型或语义分割模型从图像信息中识别出障碍物。例如,基于由点云信息计算出的距离检测出障碍物。当清洁机器人100靠近障碍物至一定程度时,控制清洁机器人改变行驶方向,以躲避障碍物。

清洁机器人100可以被构造成任何合适形状,以便实现特定业务功能操作,例如,在一些实施例中,清洁机器人100可以为基于SLAM系统的移动机器人。其中,清洁机器人100包括且不限于扫地机器人、吸尘机器人、拖地机器人或洗地机器人等。

在一些实施例中,清洁机器人100包括主体和驱动轮部件、传感单元、激光雷达以及控制器。主体的外形可以大体上呈椭圆形、三角形、D形或其他形状。控制器设置于主体,主体是清洁机器人100的主体结构,可以根据清洁机器人100的实际需要,选用相应的形状结构及制造材质(如硬质塑料或者铝、铁等金属),例如设置为扫地机器人常见的较为扁平的圆柱形。

其中,驱动轮部件安装于主体,驱动机器人在待清洁面上移动。在一些实施例中,驱动轮部件包括左驱动轮、右驱动轮及全向轮,左驱动轮和右驱动轮分别安装于主体的相对两侧。全向轮安装于主体的底部的靠前位置,全向轮为活动脚轮,可以水平360度旋转,以使得清洁机器人可以灵活转向。左驱动轮、右驱动轮及全向轮的安装构成三角形,以提高机器人行走的平稳性。

在一些实施例中,传感单元用于采集机器人的一些运动参数及环境空间各类数据,传感单元包括各类合适传感器,诸如陀螺仪、里程计、磁场计、加速度计或速度计等等。

在一些实施例中,该激光雷达设置于清洁机器人100的机身,例如:激光雷达设置于清洁机器人100的机身的移动底盘。激光雷达用于感知移动清洁机器人100周围环境的障碍物情况,获得周围物体的距离,并发送给控制器,以便控制器基于周围物体的距离控制机器人行走。在一些实施例中,激光雷达包括脉冲激光雷达、连续波激光雷达等雷达,移动底盘包括全能型通用底盘、拱腰式移动底盘等机器人移动底盘。

在一些实施例中,控制器设置于主体内部,是内置于机器人主体中的电子计算核心,用于执行逻辑运算步骤以实现机器人的智能化控制。其中,控制器分别与左驱动轮、右驱动轮以及全向轮电连接。控制器作为机器人的控制核心,用于控制机器人行走、后退、避障以及一些业务逻辑处理。

可以理解的是,控制器可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。控制器还可以是任何传统处理器、控制器、微控制器或状态机。控制器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置,或者微控制单元(Microcontroller Unit,MCU)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、系统级芯片(System on Chip,SoC)中的一种或多种组合。

可以理解的是,本申请实施例中清洁机器人10的存储器包括但不限于:FLASH闪存、NAND闪存、垂直NAND闪存(VNAND)、NOR闪存、电阻随机存取存储器(RRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移扭矩随机存取存储器(STT-RAM)等设备中的一种或多种。

需要说明的是,根据所要完成的任务,除了以上的功能模组以外,清洁机器人的主体上还可以搭载一个或者多个其它不同的功能模组(如储水箱、清扫装置等),相互配合用以执行相应的任务。

然而,上述激光雷达属于光学检测传感器,通过采集反射光生成或点云信息。现在越来越多的建筑外墙是由两层或者两层以上钢化玻璃建成,激光打在多层玻璃上经过多次反射及受到了阳光、玻璃上灰尘等的影响会对光斑质心提取带来很大的不确定性。对于玻璃等物体,扫描生成的点云数据中会存在大量的噪点(即玻璃噪点),对于清洁机器人SLAM建图、定位或避障等造成干扰。

在一些场景中,激光雷达的发射器发射激光,激光打在多层玻璃表面发生,在玻璃表面发生反射,反射激光被接收器接收,在接收器上形成光斑,提取光斑的质心得到激光点。随着扫描的进行,不断产生激光点,生成点云数据。点云数据表现为两端存在跳跃的噪点(即玻璃噪点)。如图2所示,会造成清洁机器人对玻璃的距离产生误判,SLAM建图会出现毛刺及建图的墙会比较厚的情况,严重影响到清洁机器人的正常工作,影响用户的体验。

在本申请发明人所知晓的一些过滤玻璃噪点的方案中,一般是在上位机对点云数据做后处理,然而,容易造成点云数据被过度过滤的问题,并且需要较大的算力,占用上位机资源。

针对上述问题,本申请一些实施例提供了一种过滤玻璃噪点的方法,对于点云数据中每个激光点,根据激光点的光斑形态,标记激光点的属性类别,属性类别反映激光点是否为疑似玻璃噪点。若激光点被标记为疑似玻璃噪点,则分析激光点附近的点云形态,确定该激光点是否为玻璃噪点。若激光点为玻璃噪点,则将激光点从点云数据中剔除。

在此实施例中,分两步筛选出玻璃噪点,首先根据光斑形态,标记出疑似玻璃噪点的激光点。然后,对于疑似玻璃噪点的激光点,进一步分析其附近的点云形态,确定其是否为玻璃噪点。筛选出玻璃噪点后,将玻璃噪点激光点从点云数据中剔除。也即,根据光斑形态进行粗筛,能够快速标记出疑似玻璃噪点,对于疑似玻璃噪点,根据附近的点云形态进行细筛,能够准确确定其是否为玻璃噪点。相比于对点云数据中所有激光点云进行粗筛或细筛,本申请实施例中结合光斑形态和点云形态分两步筛选的方式,不仅能准确过滤玻璃噪点,而且能够有效节省算力,从而,该方法能够应用于算力低的器件(例如单片机等),有利于在激光雷达上实施,使得激光雷达最终输出的点云数据准确,减少了噪点干扰,有利于机器人建图和避障的准确性。

根据上文可以理解,本申请实施例提供的过滤玻璃噪点的方法可以由各种类型具有计算处理能力的电子设备实施,例如由激光雷达实施执行、由机器人的控制器实施执行或由其它具有计算处理能力的设备实施执行等。

下面结合本申请实施例提供的激光雷达的示例性应用和实施,说明本申请实施例提供的过滤玻璃噪点的方法。请参阅图3,图3是本申请实施例提供的过滤玻璃噪点的方法的流程示意图。

可以理解的是,激光雷达安装于机器人,具体地,该过滤玻璃噪点的方法的执行主体为该激光雷达的一个或多个处理器。

如图3所示,该方法S100具体可以包括以下步骤:

S10:对于点云数据中每个激光点,根据所述激光点的光斑形态,标记激光点的属性类别,属性类别反映激光点是否为疑似玻璃噪点。

其中,点云数据为激光雷达在工作环境(例如住房)中扫描得到的激光点云。光斑形态是指激光雷达的接收器接收到反射激光后,在接收器上形成的光斑的形态特征。在一些实施例中,形态特征可以是光斑的灰度分布特征。

为便于理解,这里对激光雷达的工作原理进行简单介绍:激光雷达包括发射器、接收器、处理器和旋转机构。其中,发射器是一种发射激光的装置,例如可以是气体激光器、固体激光器、半导体激光器或自由电子激光器等。接收器是一种接收激光的装置,例如可以是感光耦合组件(Charge coupled Device,CCD)。

处理器主要负责控制发射器发射激光,以及对接收器接收到的激光信号进行处理,计算出目标物体的距离信息。处理器可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

旋转机构是激光雷达安装骨架,用于进行方向调节。在一些实施例中,旋转机构可以包括由皮带带动旋转的旋转基座。发射器、接收器和处理器设置于旋转机构上,旋转机构以稳定的转速旋转,从而,激光雷达能够对周围环境进行扫描,并产生点云数据。

激光雷达采用的测距方法有三角测距法,请参阅图4,为三角测距法的原理示意图。三角测距法主要是通过发射器发射一束激光,激光以一定的入射角度照射目标物体,激光在目标物体表面发生反射和散射,在另一角度利用透镜对反射激光汇聚成像,光斑成像在接收器上。由于发射器和接收器间隔了一段距离s,依照光学路径,不同距离的目标物体将会成像在接收器上不同的位置。如图4中所示,s为发射器和接收器的焦点之间的距离(即基准线),d为发射器到目标物体之间的距离,α为航向角,p为目标物体到基准线的垂直距离,f为焦距。焦点平行于激光方向的虚线与接收器的交点A位置已知,激光反射后成像在接收器上的成像点B中心离该交点A的距离为x。作几何相似三角形可知,目标物体的距离p=f*s/x。

在一些实施例中,三角测距法的测距公式如下所示:

d=n1/(n2-cx)(1)

其中,n1和n2为激光雷达通过标定可得到的测距参数,cx为光斑质心(即光斑最亮的地方),即光斑在接收器上的横坐标的值,单位为pixel,当接收器的宽度为480个像素值时,cx的取值范围为1-480。n1参数大小与激光雷达的结构相关,n2参数大小与光斑所落在接收器上的位置相关。

采用三角测距法,激光雷达生成的点云数据包括各激光点的角度、距离和亮度等。其中,角度为激光打到目标物体上的扫描点在极坐标中的角度,距离为激光打到目标物体上的扫描点至激光雷达的距离,亮度为接收器中光斑的亮度,即灰度。

在一些应用场景中,不同材质的物体表面,激光点的反射和散射情况不同,例如,激光打在多层玻璃上经过多次反射及受到了阳光、玻璃上灰尘等的影响,从而,使得光斑形态发生改变。也即,从光斑形态可大致区分出是正常的激光点,还是噪点。

这里,根据激光点的光斑形态,标记激光点的属性类别,属性类别反映激光点是否为疑似玻璃噪点。

其中,属性类别包括正常激光点或疑似玻璃噪点。可以理解的是,若一个激光点被标记为疑似玻璃噪点,说明该激光点可能是玻璃噪点。

在一些实施例中,前述步骤S10具体包括:

S11:对激光点的光斑进行灰度统计,得到光斑曲线。

S12:根据光斑曲线,标记激光点的属性类别。

可以理解的是,接收器接收到的光斑是由反射激光经透镜汇聚成像形成,从而,光斑在接收器的宽度上占比一定范围的像素(由上可知接收器的宽度采用像素表征),光斑呈中间灰度高(亮度高),周围灰度低(亮度低)的灰度分布。从而,对光斑进行灰度统计,得到光斑曲线。如图5所示,光斑曲线的横坐标为像素(单位pixel),纵坐标为灰度值。

可以理解的是,不同的光斑,其对应的光斑曲线中波形不同。例如,光斑曲线中波峰偏左,导致光斑质心偏左;光斑曲线中可能出现多个波峰或波峰偏小,导致光斑选取不准确。从而,可以根据光斑曲线区分激光点的属性类别,标记激光点的属性类别。

在此实施例中,将光斑转换为光斑曲线,有利于识别光斑特性,进而有益于标记属性类别的准确性。

在一些实施例中,前述步骤S12具体包括:

S121:确定光斑曲线中的光斑有效区域。

由图5可知,光斑曲线中间区域的灰度值高,对应光斑中心;光斑曲线中两侧的灰度值低,对应光斑边缘。这里,提取出光斑曲线中的光斑有效区域。其中,光斑有效区域可以是波峰所在的区域,即灰度大的区域。

在一些实施例中,从光斑曲线中提取出光斑有效区域(又称,blob区域)。其中,所采用的提取算法为BLOB提取算法,这是一种根据某种规则分割图像前景、背景的算法。可以理解的是,BLOB提取算法为现有算法,在此不进行详细介绍。

如图5所示,光斑有效区域(blob区域)为竖线1#至竖线3#之间的区域。光斑有效区域的宽blob_width为竖线3#的横坐标减去竖线1#的横坐标。在blob区域内进行灰度加权计算得到质心cx,图5中竖线2#即为质心位置。

S122:根据光斑有效区域中曲线的波形特征,标记激光点的属性类别。

这里,根据blob区域中曲线的波形特征,例如波峰特征等,识别激光点的属性类别(属于正常激光点,还是玻璃噪点),并为激光点标记属性类别。

在一些实施例中,本申请发明人收集多层玻璃场景下,不同激光雷达、不同距离、不同角度的光斑数据,总结出引起玻璃噪点的三种光斑特征,多个波峰、偏峰及主峰两侧出现毛刺。

在一些实施例中,前述步骤S122具体包括:

(a)若光斑有效区域中曲线的波峰数量大于或等于第三阈值,则标记激光点的属性类别为疑似玻璃噪点。

其中,第三阈值为本领域技术人员基于玻璃场景下点云特点设置的经验值,例如,第三阈值可以为2或3等。

如图6中的(a)或(b)所示,光斑有效区域中曲线出现3个波峰。可以理解的是,多个波峰可能给确定光斑有效区域带来误差,从而,导致测距出现较大偏差。此种类型的光斑,通过统计波峰数量,即可确定激光点的属性类别,进而进行标记。

光斑有效区域中曲线的波峰数量大于或等于第三阈值,说明该激光点出现多个波峰,光斑亮度不集中,不属于正常的激光点,则标记为疑似玻璃噪点。

在一些实施例中,前述步骤S122具体包括:

(b)分别统计光斑有效区域两侧的外灰度值大于第一灰度阈值的像素个数,得到左侧像素个数和右侧像素个数。

(c)分别确定光斑有效区域的两侧是否出现梯度方向变化,得到左侧梯度方向变化结果和右侧梯度方向变化结果。

(d)根据左侧像素个数、右侧像素个数以及左侧梯度方向变化结果、右侧梯度方向变化结果,标记激光点的属性类别。

可以理解的是,基于光斑灰度(亮度)集中在质心的特性,正常情况下光斑有效区域中灰度值大,两侧的灰度值小,区域分界处灰度值变化梯度较大。如图7中的(a)或(b)所示若光斑质心发生偏移,则反映在光斑曲线上,波峰出现偏移,区域分界处灰度值变化梯度较小,不容易区分。

在此实施例中,从两侧的灰度值大小情况以及梯度方向变化情况,确定激光点的属性类别。具体地,分别统计光斑有效区域两侧的外灰度值大于第一灰度阈值的像素个数,得到左侧像素个数和右侧像素个数。

其中,第一灰度阈值是本领域技术人员基于玻璃场景下光斑特性而确定的经验值。在一些实施例中,第一灰度阈值采用以下公式确定:

gray_thr1=min_gray+0.5*(max_gray-min_gray)(2)

其中,gray_thr1为第一灰度阈值,max_gray为光斑有效区域中的最大灰度值或者光斑有效区域外扩(例如两侧各外扩50个像素)后的区域中的最大灰度值。min_gray为光斑有效区域中的最小灰度值或者光斑有效区域外扩(例如两侧各外扩50个像素)后的区域中的最小灰度值。

在此实施例中,第一灰度阈值是基于光斑有效区域或其外扩区域中的灰度值确定的,使得第一灰度阈值更加合理。

对于光斑有效区域左侧或其外扩区域左侧,统计灰度值大于第一灰度阈值的像素个数,得到左侧像素个数left_pixel_cnt。

对于光斑有效区域右侧或其外扩区域右侧,统计灰度值大于第一灰度阈值的像素个数,得到右侧像素个数right_pixel_cnt。

分别确定光斑有效区域的两侧是否出现梯度方向变化,得到左侧梯度方向变化结果和右侧梯度方向变化结果。其中,梯度方向变化是指光斑曲线中曲线的变化趋势(梯度方向)发生改变。

在一些实施例中,采用以下公式计算梯度值:

delta_gradient(i)=P(i)-P(i+step)(2)

其中,P(i)为第i个像素的灰度值,P(i+step)为第(i+step)个像素的灰度值,step为步数,delta_gradient(i)为梯度值。在一些实施例中,考虑到局部的灰度值波动,step可以为3。

在一些实施例中,采用以下公式确定梯度方向变化结果:

其中,gray_thr为灰度阈值,例如为上述第一灰度阈值。当flag_change为1时,表示梯度方向发生改变;当flag_change为0时,表示梯度方向未发生改变。

在此实施例中,若第i个像素的梯度值和第i+1个像素的梯度值的正负不同,则说明曲线的变化趋势发生改变,即说明可能会发生梯度方向变化。在此基础上,进一步将第i+1个像素的灰度值和灰度阈值进行比较,若P(i+1)>gray_thr,说明在光斑有效区域外出现了较大的灰度值(异常),从而,确定出现梯度方向变化,即flag_change=1。

可以理解的是,光斑有效区域或其外扩区域的左侧和右侧,分别采用上述flag_change公式进行判断,得到左侧梯度方向变化结果left_flag_change和右侧梯度方向变化结果right_flag_change。

最后,根据左侧像素个数left_pixel_cnt、右侧像素个数right_pixel_cnt以及左侧梯度方向变化结果left_flag_change、右侧梯度方向变化结果right_flag_change,确定激光点的属性类别,并标记激光点的属性类别。

在一些实施例中,前述根据左侧像素个数left_pixel_cnt、右侧像素个数right_pixel_cnt以及左侧梯度方向变化结果left_flag_change、右侧梯度方向变化结果right_flag_change,确定并标记激光点的属性类别,具体包括:若左侧梯度方向发生改变(即left_flag_change=1)且左侧像素个数left_pixel_cnt大于第一阈值,则确定左侧属性类别为疑似玻璃噪点。若右侧梯度方向发生改变(即right_flag_change)且右侧像素个数大于第二阈值,则确定右侧属性类别为疑似玻璃噪点。在左侧属性类别为疑似玻璃噪点和右侧属性类别为疑似玻璃噪点的情况下,标记激光点的属性类别为疑似玻璃噪点。

其中,第一阈值为用于判断左侧像素个数left_pixel_cnt的临界值,当左侧像素个数left_pixel_cnt大于第一阈值时,说明左侧异常的灰度值较多,该激光点可能是疑似玻璃噪点。在一些实施例中,第一阈值可以为0.4倍的blob_width(光斑有效区域的宽)。这里,结合左侧梯度方向(是否发生改变)和左侧像素个数(left_pixel_cnt是否大于第一阈值),能够准确确定左侧属性类别。

第二阈值为用于判断右侧像素个数right_pixel_cnt的临界值,当右侧像素个数right_pixel_cnt大于第二阈值时,说明右侧异常的灰度值角度,该激光点可能是疑似玻璃噪点。在一些实施例中,第二阈值可以为0.4倍的blob_width(光斑有效区域的宽)。这里,结合右侧梯度方向(是否发生改变)和右侧像素个数(right_pixel_cnt是否大于第二阈值),能够准确确定右侧属性类别。

在此实施例中,分两侧判断疑似玻璃噪点,在左侧属性类别为疑似玻璃噪点和右侧属性类别为疑似玻璃噪点的情况下,标记激光点的属性类别为疑似玻璃噪点,使得激光点的属性类别更加准确。

在一些实施例中,可采用以下公式确定激光点的属性类别:

其中,left_flag表示左侧属性类别,right_flag表示右侧属性类别。可以理解的是,左侧属性类别即为根据光斑曲线中光斑有效区域的左侧确定的属性类别,右侧属性类别即为根据光斑曲线中光斑有效区域的右侧确定的属性类别。flag表示最终确定的属性类别,即激光点被标记的属性类别。

对于光斑曲线中光斑有效区域的左侧,若左侧梯度方向变化结果left_flag_change=0(即为正常激光点),且左侧像素个数left_pixel_cnt大于0.4倍的blob_width(光斑有效区域的宽),则确定left_flag=1,即左侧属性类别为疑似玻璃噪点。否则,确定left_flag=0,即左侧属性类别为正常。

同理,对于光斑曲线中光斑有效区域的右侧,若右侧梯度方向变化结果right_flag_change=0(即为正常激光点),且右侧像素个数right_pixel_cnt大于0.4倍的blob_width(光斑有效区域的宽),则确定right_flag=1,即右侧属性类别为疑似玻璃噪点。否则,确定right_flag=0,即右侧属性类别为正常。

最后,根据左侧属性类别、右侧属性类别以及blob_width(光斑有效区域的宽)综合确定最终的属性类别flag。在此实施例中,若左侧属性类别为疑似玻璃噪点或右侧属性类别为疑似玻璃噪点,且,blob_width小于预设阈值,则确定flag=1,即激光点的属性类别为疑似玻璃噪点,否则,flag=0,激光点的属性类别为正常激光点。

在一些实施例中,预设阈值为0.6*ref_width,其中,ref_width为拟合blob宽度。在一些实施例中,由于雷达之间的结构差异,收集大量的雷达数据拟合出质心和ref_width之间的函数关系,另外为了保证函数的统一性,考虑了结构带来的偏移量。拟合出来的函数为如下:

ref_width=k*(cx-offset)+b,其中,k,offset,b为标定参数,cx为质心。

在此实施例中,综合考虑左侧属性类别、左侧属性类别以及blob_width等维度,确定激光点的属性类别flag,能够有效区分出偏峰(光斑质心发生偏移)的激光点,使得激光点的属性类别更加准确。

在一些实施例中,前述步骤S122具体包括:

(e)统计光斑有效区域中灰度值大于第二灰度阈值的像素个数,得到区域像素个数。

(f)根据区域像素个数,标记激光点的属性类别。

可以理解的是,如图8中的(a)或(b)所示,在光斑曲线中,主峰的亮度比较高,但不一定是真正激光光斑的区域,计算的质心也会存在偏差。与多个波峰的情况不同,除了主峰外,其余的波峰都比较低。这种情况下blob_width比较小,在blob底部区域,得到的宽度明显大于blob_width。

在此实施例中,从光斑有效区域中灰度值大小情况,确定激光点的属性类别。具体地,统计光斑有效区域中灰度值大于第二灰度阈值的像素个数,得到区域像素个数。

其中,第二灰度阈值是本领域技术人员基于玻璃场景下光斑特性而确定的经验值。在一些实施例中,第二灰度阈值采用以下公式确定:

gray_thr2=min_gray+0.2*(max_gray-min_gray)

其中,gray_thr2为第二灰度阈值,max_gray为光斑有效区域中的最大灰度值或者光斑有效区域外扩(例如两侧各外扩50个像素)后的区域中的最大灰度值。min_gray为光斑有效区域中的最小灰度值或者光斑有效区域外扩(例如两侧各外扩50个像素)后的区域中的最小灰度值。

在此实施例中,第二灰度阈值是基于光斑有效区域或其外扩区域中的灰度值确定的,使得第二灰度阈值更加合理。

对于光斑有效区域,统计灰度值大于第二灰度阈值的像素个数,得到区域像素个数pixel_cnt。然后,根据区域像素个数确定激光点的属性类别,并标记激光点的属性类别。在一些实施例中,将区域像素个数pixel_cnt与阈值进行比较,当区域像素个数pixel_cnt小于阈值时,说明光斑的质心发生异常,可能为玻璃噪点,从而确定激光点的属性类别为疑似玻璃噪点。

在一些实施例中,前述步骤S122具体包括:

(g)根据光斑有效区域的宽,标记激光点的属性类别。

可以理解的是,若光斑有效区域的宽小于阈值,说明光斑有效区域较窄,光斑的质心发生异常,可能为玻璃噪点,从而确定激光点的属性类别为疑似玻璃噪点。

在一些实施例中,采用以下公式确定激光点的属性类别:

其中,flag为激光点的属性类别,当flag=1时,为疑似玻璃噪点,当flag=0时,为正常激光点。blob_width为光斑有效区域的宽,ref_width为上述拟合blob宽,pixel_cnt为区域像素个数。

在此实施例中,采用上述公式从光斑有效区域的宽区域像素个数两个维度,确定激光点的属性类别flag,能够有效区分出主峰附近出现毛刺(光斑质心附近出现异常亮度)的激光点,使得激光点的属性类别更加准确。

S20:若激光点被标记为疑似玻璃噪点,则分析激光点附近的点云形态,确定激光点是否为玻璃噪点。

对于疑似玻璃噪点的激光点,进一步分析其附近的点云形态,确定其是否为玻璃噪点。其中,激光点附近的点云包括该激光点左侧和/或右侧的多个激光点。点云形态包括点云中各个激光点的距离、亮度等分布形态。

也即,在上述步骤S10中根据光斑形态进行粗筛,能够快速标记出疑似玻璃噪点。在此步骤S20中,对于疑似玻璃噪点,根据附近的点云形态进行细筛,能够准确确定其是否为玻璃噪点。

在一些实施例中,前述步骤S20具体包括:预设长度的滑动窗口在点云数据上滑动,若激光点位于滑动窗口的中间位置时,根据滑动窗口中的多个激光点的形态,确定激光点是否为玻璃噪点。

其中,预设长度为本领域技术人员基于实际情况而设置的经验值,在一些实施例中,预设长度为奇数,例如预设长度为11,从而,使得激光点能够准确位于滑动窗口的中间。可以理解的是,该滑动窗口是遍历获取激光点附近的点云的虚拟窗口,可以采用长度和位移表征。例如,滑动窗口的预设长度为11,单步位移为1个激光点或单位角分辨率。

如图9所示,位于滑动窗口中间的当前激光点为疑似玻璃噪点,滑动窗口中的多个激光点包括当前激光点一侧的5个连续的激光点和另一侧的5个连续的激光点。

从而,可以根据这11个激光点的距离、有效点等分布形态,确定该激光点是否为玻璃噪点。示例性地,若该当前激光点的距离,与其它激光点的距离差异较大,则该当前激光点为玻璃噪点;若这11个激光点中有效激光点的数量较少,则该当前激光点为玻璃噪点。

在一些实施例中,前述根据滑动窗口中的多个激光点的形态,确定激光点是否为玻璃噪点,具体包括:根据滑动窗口中激光点的平均距离和/或滑动窗口中有效激光点,确定激光点是否为玻璃噪点。

以上述图8中的滑动窗口为例进行示例性说明,计算滑动窗口中有效激光点和当前激光点的平均距离,当平均距离大于或等于距离阈值时,说明滑动窗口内的点云距离变化比较大。由于已在步骤S10中进行了初步筛选,在该平均距离过大时,则确定当前激光点为玻璃噪点。

在一些实施例中,根据滑动窗口中有效激光点,确定该当前激光点是否为玻璃噪点。可以理解的是,点云数据中可能存在无效激光点,例如对空采集的点或对雷达盲区采集的点,这些无效激光点没有距离。其中,有效激光点是指输出距离的激光点。从而,基于有效激光点,可以确定该当前激光点是否为玻璃噪点。例如,若有效激光点的数量小于数量阈值,则说明点云残缺,确定该当前激光点为玻璃噪点。

在一些实施例中,采用以下公式确定当前激光点是否为玻璃噪点:

其中,

factor=2.5*2*sin(angle_resolution*0.5)

其中,当result=1时,代表确定该当前激光点为玻璃噪点,当result=0时,代表确定该当前激光点为正常激光点。sum_dist为滑动窗口内有效激光点与当前激光点的绝对距离之差的累加和。dist为滑动窗口内一个有效激光点的距离;current_dist为当前激光点的距离;valid_idx为有效激光点的索引,即索引号。factor为一个距离系数,其与角分辨率angle_resolution有关。current_dist为当前激光点的距离;valid_cnt为滑动窗口内有效激光点的数量;cnt_thr为数量阈值,即滑动窗口内最少有效激光点的数量。

采用上述公式,在sum_dist大于factor*current_dist*valid_cnt或valid_cnt

S30:若激光点为玻璃噪点,则将激光点从点云数据中剔除。

可以理解的是,在激光点为玻璃噪点的情况下,将激光点从点云数据中剔除,以实现过滤掉玻璃噪点。从而,过滤掉玻璃噪点后的点云数据,减少了噪点干扰,有利于机器人建图和避障的准确性。

如图10所示,图10中点云数据呈高亮白点线,在未进行过滤玻璃噪点前,双层玻璃对应的点云数据两侧杂乱,呈放射状;在过滤玻璃噪点后,过滤后的点云数据整体形态正常。也即,进一步验证了该过滤玻璃噪点的方法具有较好过滤效果,能够过滤掉呈放射状的玻璃噪点,保留正常的玻璃点云。

此外,该方法能获取更多的激光光斑特征信息,从雷达底层就能解决玻璃噪点问题,对于后续的SLAM建图及定位有较好的效果;更重要的是算力要求比较低,具备在普通单片机实现的可能。

综上所述,本申请实施例提供的过滤玻璃噪点的方法,分两步筛选出玻璃噪点,首先根据光斑形态,标记出疑似玻璃噪点的激光点。然后,对于疑似玻璃噪点的激光点,进一步分析其附近的点云形态,确定其是否为玻璃噪点。筛选出玻璃噪点后,将玻璃噪点激光点从点云数据中剔除。也即,根据光斑形态进行粗筛,能够快速标记出疑似玻璃噪点,对于疑似玻璃噪点,根据附近的点云形态进行细筛,能够准确确定其是否为玻璃噪点。相比于对点云数据中所有激光点云进行粗筛或细筛,本申请实施例中结合光斑形态和点云形态分两步筛选的方式,不仅能准确过滤玻璃噪点,而且能够有效节省算力,从而,该方法能够应用于算力低的器件(例如单片机等),有利于在激光雷达上实施,使得激光雷达最终输出的点云数据准确,减少了噪点干扰,有利于机器人建图和避障的准确性。

本申请实施例还提供了一种激光雷达,请参阅图11,图11是本申请实施例提供的一种激光雷达的硬件结构示意图。

如图11所示,该激光雷达300包括通信连接的至少一个处理器301和存储器302(图11中以总线连接、一个处理器为例)。

其中,处理器301用于提供计算和控制能力,以控制激光雷达300执行相应任务,例如,控制激光雷达300执行上述任一方法实施例中过滤玻璃噪点的方法。

处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、硬件芯片或者其任意组合;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。

存储器302作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本申请实施例中过滤玻璃噪点的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非暂态软件程序、指令以及模块,可以实现上述述任一方法实施例中过滤玻璃噪点的方法,即能够实现图3-图9实现的各个过程,为避免重复,这里不再赘述。

具体地,存储器302可以包括易失性存储器(volatile memory,VM),例如随机存取存储器(random access memory,RAM);存储器302也可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-only memory,ROM),快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)或其他非暂态固态存储器件;存储器302还可以包括上述种类的存储器的组合。

在本申请实施例中,存储器302还可以包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

在本申请实施例中,激光雷达300还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,激光雷达300还可以包括其他用于实现设备功能的部件,在此不做赘述。

请再参阅图12,图12是本申请实施例提供的一种机器人的结构示意图。

如图12所示,该机器人400,包括:激光雷达300以及控制器401,其中,激光雷达300通信连接该控制器401,该控制器401用于基于激光雷达300发送的过滤玻璃噪点后的点云数据进行建图或定位等,以使机器人400完成相关业务(例如清洁业务)。

可以理解的是,该激光雷达300为上述实施例中的激光雷达,具有相同的结构和功能,在此不再一一赘述。

需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

相关技术
  • 一种移动物体定位纠编及噪点过滤的方法
  • 机器人激光雷达避障的噪点滤波方法
  • 一种自动驾驶中激光雷达泛光噪点的过滤方法和装置
技术分类

06120116492719