具体实施方式
为了使本公开实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开实施例,并不用于限定本公开实施例。
首先,在具体介绍本公开实施例的技术方案之前,先对本公开实施例基于的技术背景或者技术演进脉络进行介绍。目前,具有自动驾驶功能的车辆,通常采用激光雷达向周围环境发射激光光束,然后根据回波信号进行环境感知。在一些场景中,车辆周围存在玻璃幕墙、车辆玻璃或路面积水,激光光束会在玻璃或积水表面发生镜面反射,导致车辆在根据回波信号进行环境感知时,在反射面后生成一个鬼影,该鬼影严重影响车辆对环境感知的准确度。如图1a所示,A为本车,B为前车,B’为反射面后产生的前车的鬼影,A在环境感知时,会得到A前方存在两个车辆的环境感知结果,与实际情况不符。需要说明的是,从反射面的存在会产生鬼影,鬼影影响车辆对环境感知的准确度以及下述实施例介绍的技术方案,发明人均付出了大量的创造性劳动。
下面结合本公开实施例所应用的场景,对本公开实施例涉及的技术方案进行介绍。
本公开实施例提供的环境感知方法,可以应用于如图1b所示的应用环境中。该应用环境可以包括电子设备101和车辆102,其中,电子设备101设置在车辆102中。电子设备可以包括但不限于是各种车载中控、智能手机、平板电脑和便携式可穿戴设备,便携式可穿戴设备可为智能手表、智能手环、头戴设备等。车辆102具有自动驾驶功能,车辆102上设置有环境感知设备,环境感知设备可以包括但不限于是各种激光雷达。激光雷达具有双回波采集功能,即在发射激光光束后,可以采集到至少两个从检测对象反射的回波信号。
在一个实施例中,如图2所示,提供了一种环境感知方法,以该方法应用于图1b中的电子设备为例进行说明,包括以下步骤:
步骤201,获取双回波采集的第一点云数据和第二点云数据。
其中,第一点云数据和第二点云数据均包括多个点云点的位置和各点云点对应的反射率等信息。并且,第一点云数据和第二点云数据中存在位置不同的点云点。本公开实施例对第一点云数据和第二点云数据不做限定。
电子设备可以控制激光雷达发射激光光束,在激光雷达采集到从检测对象反射的回波信号后,电子设备从激光雷达获取第一个回波信号对应的第一点云数据和第二个回波信号对应的第二点云数据。
步骤202,根据第一点云数据构造占据格栅。
其中,占据格栅中的每个单元格对应有检测状态;该检测状态为占据状态、未占据状态和未检测状态中的一种。通过各单元格中的检测状态,占据格栅可以表征车辆周围的环境。
电子设备可以先划分出多个单元格,之后,根据第一点云数据中多个点云点的位置确定各单元格对应的检测状态。其中,激光雷达扫描范围外的单元格对应未检测状态,激光雷达扫描范围内存在点云点的单元格对应占据状态,激光雷达扫描范围内不存在点云点的单元格对应未占据状态。如图3所示,灰色单元格对应未检测状态,黑色单元格对应占据状态,白色单元格对应未占据状态。
步骤203,根据第二点云数据和占据格栅中每个单元格的检测状态,确定占据格栅中反射镜面的位置。
电子设备根据第二点云数据中多个点云点的位置,对占据格栅中每个单元格的检测状态进行确认。
正常情况下,检测对象所在的单元格对应占据状态,激光雷达与检测对象之间的单元格对应未占据状态。例如,行人、其他车辆、障碍物所在的单元格对应占据状态,激光雷达与行人、其他车辆、障碍物之间的单元格对应未占据状态。
但是,当存在玻璃幕墙、车窗、积水等反射镜面时,如果激光雷达与检测对象之间出现对应占据状态的单元格,则表明检测对象并不是真实的检测对象,而是在反射面后产生的鬼影。根据激光雷达与检测对象之间对应占据状态的单元格,可以确定反射镜面的位置。
步骤204,根据反射镜面的位置进行环境感知,得到环境感知结果。
电子设备在确定反射镜面的位置后,可以根据反射镜面的位置确定第二点云数据中各点云点是真实的点云点还是鬼影点,去除第二点云数据中的鬼影点,根据第二点云数据中真实的点云点位置进行环境感知,得到环境感知结果。
上述环境感知方法中,获取双回波采集的第一点云数据和第二点云数据;根据第一点云数据构造占据格栅;根据第二点云数据和占据格栅中每个单元格的检测状态,确定占据格栅中反射镜面的位置;根据反射镜面的位置进行环境感知,得到环境感知结果。本公开实施例通过第一点云数据和第二点云数据确定反射镜面的位置,根据反射镜面的位置进行环境感知,可以去除因反射镜面而产生的鬼影,因此可以提高车辆对环境感知的准确度。
在一个实施例中,如图4所示,上述根据第二点云数据和占据格栅中每个单元格的检测状态,确定反射镜面在占据格栅中的位置的步骤,可以包括:
步骤301,根据第二点云数据进行光线投射处理。
电子设备根据光线投射算法(Raycasting)和第二点云数数据进行光线投射处理,投射过程中,将激光雷达作为起始点,将第二点云数据中的一个点云点作为终点,从起始点出发向终点投射出一条光线。
例如,将激光雷达作为起始点,将第二点云数据汇中的点云点1作为终点,从激光雷达出发向点云点1投射出一条光线;再将第二点云数据汇中的点云点2作为终点,从激光雷达出发向点云点2投射出一条光线。以此类推可以投射出多条光线。
步骤302,在光线到达终点前,将检测状态为占据状态的单元格确定为反射镜面对应的目标单元格。
在从起始点向终点投射光线的过程中,在光线到达终点之前,如果遇到检测状态为占据状态的单元格,表明该单元格为反射镜面对应的目标单元格,而终点应为鬼影点,如图5所示。
如果在光线到达终点之前,未遇到检测状态为占据状态的单元格,则将终点确定为真实的点云点。
步骤303,根据多个目标单元格,确定反射镜面在占据格栅中的位置。
在根据第二点云数据进行多次投射之后,可以确定出反射镜面对应的多个目标单元格,多个目标单元格的位置即为反射镜面在占据格栅中的位置。
上述实施例中,根据第二点云数据进行光线投射处理;在光线到达终点前,将检测状态为占据状态的单元格确定为反射镜面对应的目标单元格;根据多个目标单元格,确定反射镜面在占据格栅中的位置。本公开实施例根据第二点云数据重新确认占据格栅中各单元格的检测状态,可以确定反射镜面的位置,为后续进行环境感知时消除反射镜面的影响提供了依据。
在一个实施例中,如图6所示,上述根据反射镜面的位置进行环境感知,得到环境感知结果的步骤,可以包括:
步骤401,获取激光光束的入射信息。
其中,入射信息包括入射点位置、入射方向和全路径距离。
激光雷达在发射激光光束时,激光雷达的位置即为入射点位置,激光光束的发射方向即为入射方向。激光雷达可以获取激光光束的飞行时间(Time of flight,TOF),然后根据激光光束的飞行时间和光速计算出全路径距离。例如,飞行时间为t,光速为v,则全路径距离L=vt。
电子设备可以从激光雷达获取入射点位置、入射方向和全路径距离等入射信息。
步骤402,根据入射信息和反射镜面的位置,确定真实的点云点位置。
在获取到入射信息以及反射镜面的位置后,可以根据入射信息和反射镜面的位置确定出反射方向和反射距离。然后,根据反射方向和反射距离确定出真实的点云点位置。
步骤403,根据真实的点云点位置进行环境感知,得到环境感知结果。
在确定真实的点云点位置后,可以根据真实的点云点位置确定检测对象的真实位置,得到环境感知结果。
在其中一种实施方式中,可以将第二点云数据中真实的点云点位置输入到预先训练的目标检测模型中,得到目标检测模型输出的检测对象所在的区域。目标检测模型可以是神经网络模型,本公开实施例对此不做限定。
上述实施例中,获取激光光束的入射信息,根据入射信息和反射镜面的位置,确定真实的点云点位置;根据真实的点云点位置进行环境感知,得到环境感知结果。本公开实施例通过入射信息和反射镜面的位置确定真实的点云点位置,根据真实的点云点位置可以得到较为准确的环境感知结果。
在一个实施例中,如图7所示,上述根据入射信息和反射镜面的位置,确定真实的点云点位置的步骤,可以包括:
步骤501,确定与反射镜面的位置对应的各目标单元格的法向量。
反射镜面的位置包括多个目标单元格,对于各目标单元格,根据目标单元格中的点云点拟合出目标平面,并将目标平面的法向量确定为目标单元格的法向量。本公开实施例对平面拟合方式不做限定,可以根据实际情况进行设置。
步骤502,根据激光光束的入射方向和各目标单元格的法向量确定激光光束的反射方向和反射点位置。
对于各目标单元格,根据激光光束的入射方向和目标单元格的法向量可以确定激光光束的反射方向,以及激光光束与目标单元格中目标平面的交点,交点位置即为反射点位置。
步骤503,根据激光光束的全路径距离、激光光束的反射方向、入射点位置和反射点位置确定真实的点云点位置。
在确定激光光束的全路径距离、激光光束的反射方向、入射点位置和反射点位置后,可以根据入射点位置和反射点位置确定入射距离;再根据全路径距离和入射距离确定反射距离;之后根据反射方向和反射距离确定真实的点云点位置。
上述实施例中,确定与反射镜面的位置对应的各目标单元格的法向量;根据激光光束的入射方向和各目标单元格的法向量确定激光光束的反射方向和反射点位置;根据激光光束的全路径距离、激光光束的反射方向、入射点位置和反射点位置确定真实的点云点位置。本公开实施例通过确定反射镜面对应的各目标单元格的法向量,可以确定激光光束的光路,从而确定真实的点云点位置,进而得到较为准确的环境感知结果。
在一个实施例中,如图8所示,上述根据第一点云数据构造占据格栅的步骤,可以包括:
步骤601,根据预设尺寸构造格栅。
其中,格栅包括多个单元格。
电子设备根据预设尺寸将车辆周围的环境划分为多个单元格,其中,预设尺寸可以为单元格的边长,本公开实施例对此不做限定。
步骤602,根据第一点云数据进行光线投射处理,并在投射过程中填充各单元格的检测状态,得到占据格栅。
在光线投射过程中,将激光雷达作为起始点,将第一点云数据中的点云点作为终点,从起始点出发向终点进行光线投射。对于激光雷达扫描范围外的单元格,填充未检测状态,对于激光雷达扫描范围内的单元格,若存在点云点,则填充为占据状态;若不存在点云点,则填充为未占据状态。在光线投射处理完毕后,得到占据格栅。
上述实施例中,根据预设尺寸构造格栅;根据第一点云数据进行光线投射处理,并在投射过程中填充各单元格的检测状态,得到占据格栅。本公开实施例通过构建占据格栅来表示车辆周围的环境,以便后续可以确定反射镜面的位置,从而避免反射镜面造成的干扰,进而提高环境感知的准确度。
在一个实施例中,如图9所示,提供了一种环境感知方法,以该方法应用于图1b中的电子设备为例进行说明,包括以下步骤:
步骤701,获取双回波采集的第一点云数据和第二点云数据。
步骤702,根据预设尺寸构造格栅;格栅包括多个单元格。
步骤703,根据第一点云数据进行光线投射处理,并在投射过程中填充各单元格的检测状态,得到占据格栅。
步骤704,根据第二点云数据进行光线投射处理。
步骤705,在光线到达终点前,将检测状态为占据状态的单元格确定为反射镜面对应的目标单元格。
步骤706,根据多个目标单元格,确定反射镜面在占据格栅中的位置。
步骤707,获取激光光束的入射信息。
步骤708,确定与反射镜面的位置对应的各目标单元格的法向量。
步骤709,根据激光光束的入射方向和各目标单元格的法向量确定激光光束的反射方向和反射点位置。
步骤710,根据激光光束的全路径距离、激光光束的反射方向、入射点位置和反射点位置确定真实的点云点位置。
步骤711,根据真实的点云点位置进行环境感知,得到环境感知结果。
上述实施例中,获取双回波采集的第一点云数据和第二点云数据,根据第一点云数据构建占据格栅,根据第二点云数据对占据格栅中各单元格的检测状态进行确认,从而确定反射镜面的位置。之后,根据反射镜面的位置和激光光束的入射信息,确定真实的点云点位置,再根据真实的点云点位置进行环境感知得到环境感知结果。传统技术中,由于反射镜面的存在,可能会在环境感知时在反射镜面后生成鬼影,而本公开实施例可以避免反射镜面的干扰,去除鬼影,根据真实的点云点位置进行环境感知,因此环境感知的准确度更高。
应该理解的是,虽然图2至9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种环境感知装置,包括:
数据获取模块801,用于获取双回波采集的第一点云数据和第二点云数据;
占据格栅构造模块802,用于根据第一点云数据构造占据格栅;其中,占据格栅中的每个单元格对应有检测状态;
镜面位置确定模块803,用于根据第二点云数据和占据格栅中每个单元格的检测状态,确定占据格栅中反射镜面的位置;
环境感知模块804,用于根据反射镜面的位置进行环境感知,得到环境感知结果。
在其中一个实施例中,镜面位置确定模块803,具体用于根据第二点云数据进行光线投射处理;在光线到达终点前,将检测状态为占据状态的单元格确定为反射镜面对应的目标单元格;根据多个目标单元格,确定反射镜面在占据格栅中的位置。
在其中一个实施例中,环境感知模块804,具体用于获取激光光束的入射信息;入射信息包括入射点位置、入射方向和全路径距离;根据入射信息和反射镜面的位置,确定真实的点云点位置;根据真实的点云点位置进行环境感知,得到环境感知结果。
在其中一个实施例中,环境感知模块804,具体用于确定与反射镜面的位置对应的各目标单元格的法向量;根据激光光束的入射方向和各目标单元格的法向量确定激光光束的反射方向和反射点位置;根据激光光束的全路径距离、激光光束的反射方向、入射点位置和反射点位置确定真实的点云点位置。
在其中一个实施例中,环境感知模块804,具体用于根据入射点位置和反射点位置确定入射距离;根据全路径距离和入射距离确定反射距离;根据反射方向和反射距离确定真实的点云点位置。
在其中一个实施例中,环境感知模块804,具体用于对于各目标单元格,根据目标单元格中的点云点拟合出目标平面,并将目标平面的法向量确定为目标单元格的法向量。
在其中一个实施例中,占据格栅构造模块802,具体用于根据预设尺寸构造格栅;格栅包括多个单元格;根据第一点云数据进行光线投射处理,并在投射过程中填充各单元格的检测状态,得到占据格栅。
关于环境感知装置的具体限定可以参见上文中对于环境感知方法的限定,在此不再赘述。上述环境感知装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图11是根据一示例性实施例示出的一种电子设备1300的框图。例如,电子设备1300可以是车载中控,移动电话,平板设备,个人数字助理等。参照图11,电子设备1300可以包括以下一个或多个组件:处理组件1302,存储器1304,电源组件1306,多媒体组件1308,音频组件1310,输入/输出(I/ O)的接口1312,传感器组件1314,以及通信组件1316。其中,存储器上存储有在处理器上运行的计算机程序或者指令。
处理组件1302通常控制电子设备1300的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1302可以包括一个或多个处理器1320来执行指令,以完成上述方法的全部或部分步骤。此外,处理组件1302可以包括一个或多个模块,便于处理组件1302和其他组件之间的交互。例如,处理组件1302可以包括多媒体模块,以方便多媒体组件1308和处理组件1302之间的交互。
存储器1304被配置为存储各种类型的数据以支持在电子设备1300的操作。这些数据的示例包括用于在电子设备1300上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1304可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1306为电子设备1300的各种组件提供电力。电源组件1306可以包括电源管理系统,一个或多个电源,及其他与为电子设备1300生成、管理和分配电力相关联的组件。
多媒体组件1308包括在所述电子设备1300和用户之间的提供一个输出接口的触控显示屏。在一些实施例中,触控显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1308包括一个前置摄像头和/或后置摄像头。当电子设备1300处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1310被配置为输出和/或输入音频信号。例如,音频组件1310包括一个麦克风(MIC),当电子设备1300处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1304或经由通信组件1316发送。在一些实施例中,音频组件1310还包括一个扬声器,用于输出音频信号。
I/ O接口1312为处理组件1302和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1314包括一个或多个传感器,用于为电子设备1300提供各个方面的状态评估。例如,传感器组件1314可以检测到电子设备1300的打开/关闭状态,组件的相对定位,例如所述组件为电子设备1300的显示器和小键盘,传感器组件1314还可以检测电子设备1300或电子设备1300一个组件的位置改变,用户与电子设备1300接触的存在或不存在,电子设备1300方位或加速/减速和电子设备1300的温度变化。传感器组件1314可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1314还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1314还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1316被配置为便于电子设备1300和其他设备之间有线或无线方式的通信。电子设备1300可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1316经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1316还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备1300可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述环境感知方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1304,上述指令可由电子设备1300的处理器1320执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序被处理器执行时,可以实现上述方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行这些计算机指令时,可以全部或部分地按照本公开实施例所述的流程或功能实现上述方法中的部分或者全部。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开实施例所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开实施例构思的前提下,还可以做出若干变形和改进,这些都属于本公开实施例的保护范围。因此,本公开实施例专利的保护范围应以所附权利要求为准。