对象检测方法及装置、电子设备和计算机可读存储介质
文献发布时间:2024-04-18 19:59:31
技术领域
本公开涉及计算机技术和自动驾驶技术领域,更具体地,涉及一种对象检测方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,自动驾驶技术应运而生。在自动驾驶场景中,由于无人车安装激光雷达的布局以及激光雷达自身的特性,导致无人车对于顶部障碍物的感知存在一定局限。通常可以通过基于改善雷达配置信息的方式和基于改善车辆配置信息的方式来避免上述问题。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:由于基于改善雷达配置信息的方式增加了激光雷达的扫描线数,因而导致顶部障碍物识别的成本较高,而基于改善车辆配置信息的方式降低了无人车的通过性,导致无法较为有效地保障顶部障碍物识别的准确性。
发明内容
有鉴于此,本公开提供了一种对象检测方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一个方面,提供了一种对象检测方法,包括:响应于接收到来自于激光雷达的点云信息,对上述点云信息进行处理,得到点云分布信息,其中,上述点云分布信息包括M个位置信息和与上述M个位置信息各自对应的第一点云集合,M为正整数;响应于上述第一点云集合中存在与车辆高度满足第一预定条件的点,对上述第一点云集合进行聚类,得到N个聚类点云集合,其中,N为正整数;根据上述N个聚类点云集合,确定与上述N个聚类点云集合各自对应的对象高度;以及,根据上述车辆高度,对与上述N个聚类点云集合各自对应的对象高度分别进行检测,得到对象检测结果。
根据本公开的另一个方面,提供了一种对象检测装置,包括:处理模块,用于响应于接收到来自于激光雷达的点云信息,对上述点云信息进行处理,得到点云分布信息,其中,上述点云分布信息包括M个位置信息和与上述M个位置信息各自对应的第一点云集合,M为正整数;聚类模块,用于响应于上述第一点云集合中存在与车辆高度满足第一预定条件的点,对上述第一点云集合进行聚类,得到N个聚类点云集合,其中,N为正整数;第一确定模块,用于根据上述N个聚类点云集合,确定与上述N个聚类点云集合各自对应的对象高度;以及,检测模块,用于根据上述车辆高度,对与上述N个聚类点云集合各自对应的对象高度分别进行检测,得到对象检测结果。
根据本公开的另一个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种计算机可读存储介质,其上存储有可执行指令,上述可执行指令被处理器执行时使处理器实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述计算机可执行指令在被执行时用于实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种自动驾驶车辆,自动驾驶车辆可以包括本公开实施例所述的电子设备。
根据本公开的实施例,通过对激光雷达的点云信息进行处理,并根据车辆高度对得到的与栅格位置对应的第一点云集合进行聚类,得到聚类点云集合,由此能够较为有效地识别出第一点云集合中具有相似特征的点云。由于对象高度是对聚类点云集合进行处理得到的,因而对象高度能够用于表征聚类点云集合的障碍物高度,进而提高了后续根据对象高度得到对象检测结果的准确性。在此基础上,由于对象检测结果是根据车辆高度对对象高度进行检测自动得到的,由此提高了对象检测的效率,进而提高了障碍物识别的实时性和自动驾驶过程中的安全性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用对象检测方法的系统架构;
图2示意性示出了根据本公开实施例的对象检测方法的流程图;
图3示意性示出了根据本公开实施例的响应于接收到来自于激光雷达的点云信息,对点云信息进行处理,得到点云分布信息过程的示例示意图;
图4示意性示出了根据本公开实施例的响应于第一点云集合中存在与车辆高度满足第一预定条件的点,对第一点云集合进行聚类,得到N个聚类点云集合过程的示例示意图;
图5示意性示出了根据本公开实施例的根据N个聚类点云集合,确定与N个聚类点云集合各自对应的对象高度过程的示例示意图;
图6示意性示出了根据本公开实施例的对象检测过程的示例示意图;
图7示意性示出了根据本公开实施例的对象检测装置的框图;以及
图8示意性示出了根据本公开实施例的适于实现对象检测方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的实施例中,所涉及的数据(例如,包括但不限于用户个人信息)的收集、更新、分析、处理、使用、传输、提供、公开、存储等方面,均符合相关法律法规的规定,被用于合法的用途,且不违背公序良俗。特别地,对用户个人信息采取了必要措施,防止对用户个人信息数据的非法访问,维护用户个人信息安全、网络安全和国家安全。
在本公开的实施例中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
例如,在收集激光雷达的点云信息之后,可以采用包括去标识化或者匿名化处理方式对您的信息进行脱敏,以保护您的信息安全。
在自动驾驶场景中,由于无人车安装激光雷达的布局以及激光雷达自身的特性导致无人车对于顶部障碍物的感知存在一定局限。具体地,由于激光雷达通常为线扫描形式,这种激光雷达受激光束数量的限制,每两条激光束之间的夹角比较大,当远处顶部出现一个特定高度的障碍物时,激光雷达所发出的探测雷达信号的最低位置可能只有某个点打到障碍物上,但该点的高度可能超过了无人车的高度,因此无人车会判断前方没有危险可以通行,但实际情况是障碍物高度低于车高,当车不断前进,随着近处的激光雷达束之间间距越来越小,无人车检测到了低于车高的障碍物,但是,此时障碍物已经距离无人车很近,导致无人车急刹车这样容易造成后方车辆追尾事故,若刹车距离不够会造成和障碍物碰撞事故。
在相关技术中,通常通过基于改善车辆配置信息的方式和基于改善雷达配置信息的方式来避免上述问题。基于改善车辆配置信息的方式可以指提高无人车可通过的最低高度条件,以便于将激光雷达导致的高度不确定性包括进来。基于改善雷达配置信息的方式可以指提高激光雷达线数,增加垂直方向上激光束的密度,以便于减少障碍物在远处位置视觉的误差。
但是,在基于改善车辆配置信息的方式中,由于降低了无人车的通过性,障碍物高度低于判断高度但高于无人车的高度则判断为不可通过,遇到不可绕行路段则容易形成阻塞。在基于改善雷达配置信息的方式中,由于增加了激光雷达的扫描线数,因而提高了无人车传感器的成本。
为了至少部分地解决相关技术中存在的技术问题,本公开提供了一种对象检测方法及装置、电子设备和计算机可读存储介质,可以应用于计算机技术和自动驾驶技术领域。
图1示意性示出了根据本公开实施例的可以应用对象检测方法的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括第一终端设备101、第二终端设备102、第三终端设备103,网络104和服务器105。网络104用以在不同设备之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
需要说明的是,本公开实施例所提供的对象检测方法一般可以由服务器105执行。相应地,本公开实施例所提供的对象检测装置一般可以设置于服务器105中。
备选地,本公开实施例所提供的对象检测方法也可以由第一终端设备101、第二终端设备102或第三终端设备103执行。相应地,本公开实施例所提供的对象检测装置也可以设置于第一终端设备101、第二终端设备102或第三终端设备103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
图2示意性示出了根据本公开实施例的对象检测方法的流程图。
如图2所示,该对象检测方法200包括操作S210~S240。
在操作S2 1 0,响应于接收到来自于激光雷达的点云信息,对点云信息进行处理,得到点云分布信息,其中,点云分布信息包括M个位置信息和与M个位置信息各自对应的第一点云集合,M为正整数。
在操作S220,响应于第一点云集合中存在与车辆高度满足第一预定条件的点,对第一点云集合进行聚类,得到N个聚类点云集合,其中,N为正整数。
在操作S230,根据N个聚类点云集合,确定与N个聚类点云集合各自对应的对象高度。
在操作S240,根据车辆高度,对与N个聚类点云集合各自对应的对象高度分别进行检测,得到对象检测结果。
根据本公开的实施例,在自动驾驶领域,为了对车辆周围的障碍物进行检测,可以在车辆上方部署激光雷达。激光雷达(即Laser Radar)是指以发射激光束探测目标障碍物的位置、速度等特征量的雷达系统。激光雷达在探测过程中,可以返回点云信息。点云信息可以指由激光雷达设备扫描得到的空间点的数据集,每个点云均可以包含三维坐标和激光反射强度。三维坐标可以用于表征点云在空间中的位置。激光反射强度可以与目标障碍物的表面材质、粗糙度、激光入射角度、激光波长和激光雷达的能量密度有关。
根据本公开的实施例,在接收到来自激光雷达的点云信息之后,可以利用点云分割方法对点云信息进行分割处理,得到点云分布信息。点云分割方法可以根据实际业务需求进行配置,在此不作限定。例如,点云分割方法可以包括以下至少之一:传统点云分割方法和基于深度学习的点云分割方法。传统点云分割方法可以包括以下至少之一:基于边缘信息的分割方法、基于模型拟合的分割方法、基于区域增长的分割方法、基于属性的分割方法和基于图优化的分割方法。基于深度学习的方法可以包括以下至少之一:基于投影的分割方法、基于体素的分割方法和基于点的分割方法。
例如,可以基于平面栅格法对点云信息进行处理,得到M个位置信息和与M个位置信息各自对应的第一点云集合,在此情况下,位置信息可以用于表征与栅格对应的位置。备选地,可以将三维的点云信息投影到二维平面上,得到M个位置信息,再基于卷积神经网络(Convolutional Neural Networks,CNN)来对M个位置信息进行处理,得到与M个位置信息各自对应的第一点云集合,在此情况下,位置信息可以用于表征与投影得到的二维平面点对应的位置。
根据本公开的实施例,在获得点云分布信息之后,针对M个位置信息中的每个位置信息,可以确定与该位置信息对应的第一点云集合。根据第一点云集合中的至少一个点云,确定与该第一点云集合对应的平均高度。在此基础上,可以根据平均高度和车辆高度,确定第一点云集合中是否存在与车辆高度满足第一预定条件的点。例如,在确定第一点云集合中未存在与车辆高度满足第一预定条件的点的情况下,可以继续执行对下一帧点云信息的处理。备选地,在确定第一点云集合中存在与车辆高度满足第一预定条件的点的情况下,可以对第一点云集合进行聚类,得到N个聚类点云集合。第一预定条件可以根据实际业务需求进行配置,在此不作限定。例如,第一预定条件可以设置为平均高度大于车辆高度。
根据本公开的实施例,可以利用点云聚类方法对第一点云集合进行聚类,以便于将第一点云集合进行分组,得到N个聚类点云集合。点云聚类方法可以根据实际业务需求进行配置,在此不作限定。例如,点云聚类方法可以包括以下至少之一:基于距离的点云聚类方法、基于密度的点云聚类方法、基于模型的点云聚类方法和基于图论的点云聚类方法。具体地,基于距离的点云聚类方法是指基于点与点之间的距离来确定它们是否属于同一个距离的方法。基于密度的点云聚类方法是指通过计算点的密度来确定聚类的方法。基于模型的点云聚类方法是指将点云数据拟合为数学模型,并根据数学模型的参数进行聚类的方法。基于图论的点云聚类方法是指将点云数据表示为图的形式,并利用图的连通性进行聚类的方法。
根据本公开的实施例,在获得N个聚类点云集合之后,可以针对N个聚类点云集合中的每个聚类点云集合,针对聚类点云集合中的S个候选点,根据S个候选点各自对应的位置信息,来确定第一目标点和与第一目标点对应的激光束标识。在此基础上,可以根据第一目标点和激光束标识来确定与该聚类点云集合对应的对象高度。对象高度可以用于表征待检测障碍物的高度。
根据本公开的实施例,在获得与N个聚类点云集合各自对应的对象高度之后,可以针对N个聚类点云集合中的每个聚类点云集合,根据车辆高度对与聚类点云集合对应的对象高度分别进行检测,得到对象检测结果。对象检测结果可以用于表征对象是否存在风险。例如,在与聚类点云集合对应的对象高度小于车辆高度的情况下,可以确定表征对象存在风险的对象检测结果。备选地,在与聚类点云集合对应的对象高度大于或等于车辆高度的情况下,可以确定表征对象未存在风险的对象检测结果。
根据本公开的实施例,在获得对象检测结果之后,针对表征对象存在风险的对象检测结果,可以利用规划和控制(Planning And Control,PNC)模块,将该对象标记为可疑碰撞障碍物。在车辆行驶途中遇到可疑碰撞障碍物的标记的情况下,可以选择优先绕行或者减速缓慢通行的策略通过。在此基础上,在车辆靠近障碍物的情况下,若障碍物高度大于车高,则可以正常通行;若障碍物高度低于车高,则可以在低速情况下刹车,以便于消除碰撞及追尾事故的潜在隐患。
根据本公开的实施例,通过对激光雷达的点云信息进行处理,并根据车辆高度对得到的与栅格位置对应的第一点云集合进行聚类,得到聚类点云集合,由此能够较为有效地识别出第一点云集合中具有相似特征的点云。由于对象高度是对聚类点云集合进行处理得到的,因而对象高度能够用于表征聚类点云集合的障碍物高度,进而提高了后续根据对象高度得到对象检测结果的准确性。在此基础上,由于对象检测结果是根据车辆高度对对象高度进行检测自动得到的,由此提高了对象检测的效率,进而提高了障碍物识别的实时性和自动驾驶过程中的安全性。
下面参考图3~图6,对根据本发明实施例的对象检测方法200做进一步说明。
根据本公开的实施例,对象检测方法200还可以包括如下操作。
确定与车辆对应的车辆高度和与激光雷达对应的雷达配置信息。根据雷达配置信息,确定目标夹角,其中,目标夹角用于表征每两条相邻激光束之间的角度。
根据本公开的实施例,在部署激光雷达的过程中,可以确定与车辆对应的车辆高度和与激光雷达对应的雷达配置信息。雷达配置信息可以包括以下至少之一:测距半径、采样频率、测距分辨率和角分辨率。
具体地,测距半径可以用于表征激光雷达的测距范围。采样频率可以用于表征1s内激光雷达完成激光发射和激光接收的次数,采样频率越高,则能够进行更多次的扫描,从而点云信息的质量越高。测距分辨率越低,则点云信息的质量越高。角分辨率可以用于表征两个相邻测点的角度,角分辨率越小,则能够扫描到的物体越小,从而点云信息的质量越高。
根据本公开的实施例,在获得雷达配置信息之后,例如可以根据测距分辨率和角分辨率,来确定激光雷达垂直方向的分辨率。在此基础上,可以根据垂直方向的分辨率,确定每两条相邻激光束之间的目标夹角。备选地,可以通过增加多线激光雷达的线数,加密垂直方向上点云的扫描区域来提高点云信息的质量。
根据本公开的实施例,通过预先确定车辆高度,有利于后续利用车辆高度对对象高度进行检测,由此提高了对象检测的准确性。通过预先确定雷达配置信息,并根据雷达配置信息来确定目标夹角,因而目标夹角能够用于表征每两条相邻激光束之间的角度,有利于后续根据目标夹角进行对象检测,从而提高了对象检测结果的可靠性。
根据本公开的实施例,点云信息包括激光束标识和与第一数目个候选点各自对应的候选位置信息。
根据本公开的实施例,操作S210可以包括如下操作。
根据预定尺寸,生成栅格图,其中,栅格图包括M个栅格和与M个栅格各自对应的位置信息。根据与第一数目个候选点各自对应的候选位置信息和与M个栅格各自对应的位置信息,将第一数目个候选点投影至栅格图,得到与M个位置信息各自对应的候选点云集合。针对M个位置信息中的每个位置信息,根据位置信息,确定与候选点云集合对应的点云集合高度。根据预定阈值和点云集合高度,对候选点云集合进行筛选,得到与位置信息对应的第一点云集合。
根据本公开的实施例,在获得点云信息之后,可以在数据中对点云属于多线激光雷达的哪条激光束进行对应,对应关系由激光雷达提供,由此可以确定点云信息中包括的激光束标识。
根据本公开的实施例,预定尺寸可以根据实际业务需求进行配置,在此不作限定。栅格图可以包括以下之一:平面网格、多层网格和三维体素。例如,可以根据预定尺寸生成M个栅格,然后根据与第一数目个候选点各自对应的候选位置信息和与M个栅格各自对应的位置信息,将点云信息中原始的第一数目个候选点投影到对应的栅格中。
根据本公开的实施例,在获得与M个位置信息各自对应的候选点云集合之后,可以针对M个候选点云集合中的每个候选点云集合,对该候选点云集合中的每个点云进行特征提取。提取的点云特征可以根据实际业务需求进行配置,在此不作限定。例如,点云特征可以包括以下至少之一:平均高度、最大高度、高度差和密度。在此基础上,可以根据预定阈值,对所提取的与每个点云各自对应的点云特征进行分类并标记分地面点。
根据本公开的实施例,通过将第一数目个候选点投影到根据预定尺寸生成的栅格图中,根据与M个栅格各自对应的位置信息,可以得到与M个位置信息各自对应的候选点云集合。在此基础上,通过根据位置信息,可以确定与候选点云集合对应的点云集合高度,通过设定预定阈值,对候选点云集合进行筛选,能够得到与位置信息对应的第一点云集合,即通过生成栅格图并点云的投影和筛选,能够较为有效地获得与位置信息对应的第一点云集合,有利于提高后续对象检测的准确性。
图3示意性示出了根据本公开实施例的响应于接收到来自于激光雷达的点云信息,对点云信息进行处理,得到点云分布信息过程的示例示意图。
如图3所示,在300中,可以根据预定尺寸301,生成栅格图302,栅格图302可以包括M个栅格302_1和与M个栅格302_1各自对应的位置信息302_2。
根据与第一数目个候选点各自对应的候选位置信息303和与M个栅格302_1各自对应的位置信息302_2,将第一数目个候选点投影至栅格图,得到与M个位置信息各自对应的候选点云集合304。
针对M个位置信息302_2中的每个位置信息302_2,可以根据位置信息302_2,确定与与M个位置信息各自对应的候选点云集合304的点云集合高度305。在此基础上,可以根据预定阈值306和点云集合高度305,对与M个位置信息各自对应的候选点云集合304进行筛选,得到与位置信息302_2对应的第一点云集合307。
根据本公开的实施例,对象检测方法200还可以包括如下操作。
针对M个位置信息中的每个位置信息,根据与位置信息对应的第一点云集合,确定与第一点云集合对应的平均高度。响应于平均高度大于车辆高度,确定第一点云集合中存在与车辆高度满足第一预定条件的点。
根据本公开的实施例,在获得与M个位置信息各自对应的第一点云集合之后,可以针对M个位置信息中的每个位置信息,确定与该位置信息对应的第一点云集合的平均高度。第一预定条件可以根据实际业务需求进行配置,在此不作限定。例如,第一预定条件可以设置为点的高度是否高于地面加上车辆高度。在平均高度大于车辆高度的情况下,可以确定第一点云集合中存在与车辆高度满足第一预定条件的点。
根据本公开的实施例,通过将点云数据按照栅格位置进行划分,能够得到多个不同的第一点云集合,针对每个第一点云集合,通过计算其点云中所有点的纵坐标之和来得到平均高度,并比较平均高度与车辆高度,可以判断该第一点云集合中是否存在可满足第一预定条件的点,从而能够较为有效地实现目标的检测和识别,有利于提高自动驾驶的安全性。
根据本公开的实施例,第一点云集合包括P个第一候选点,P为正整数。
根据本公开的实施例,操作S220可以包括如下操作。
根据车辆高度和与P个第一候选点各自对应的候选位置信息,对P个第一候选点进行筛选,得到Q个第二候选点,其中,Q为正整数。利用基于密度的聚类算法,确定聚类扫描半径和预定点数阈值。针对Q个第二候选点中的每个目标第二候选点,根据聚类扫描半径,在Q个第二候选点中确定与目标第二候选点对应的第二数目个待聚类候选点。响应于待聚类候选点的数量和预定点数阈值满足第二预定条件,对第二数目个待聚类候选点进行聚类,得到聚类点云集合。
根据本公开的实施例,基于密度的聚类算法可以包括以下之一:DBSCAN(Density-Based Spatial Clustering of Application with Noise,基于密度的噪声应用空间聚类)算法和CFSFDP(Clustering by Fast Search and Find of Density Peaks,基于快速搜索和发现密度峰值的聚类)算法等。
例如,在基于密度的聚类算法为DBSCAN算法的情况下,需要确定聚类点云集合的聚类扫描半径(即eps)和预定点数阈值(即minPts)。聚类点云集合的聚类扫描半径和预定点数阈值可以自适应设置,还可以根据实际业务需求设置,在此不作限定。例如,可以确定聚类点云集合中所有点云的距离矩阵,获取该距离矩阵的上三角矩阵,根据该距离矩阵包括的各个元素值的大小,确定聚类点云集合的聚类扫描半径。在聚类点云集合的聚类扫描半径是该聚类点云集合的聚类扫描半径的情况下,可以对第一点云集合进行预聚类得到至少一个预聚类点云集合各自包括的点云数目。根据至少一个预聚类点云集合各自包括的点云数目,确定预定点数阈值。例如,可以将根据至少一个预聚类点云集合各自包括的点云数目确定的平均值确定为预定点数阈值。
备选地,针对与第一点云集合对应的P个第一候选点,可以在P个第一候选点中确定未被访问(即unvisited)的点p,根据聚类扫描半径,确定与点p距离在聚类扫描半径之内的所有附近点,即第二数目个待聚类候选点。如果第二数目个待聚类候选点的数量大于或等于预定点数阈值,则可以对点p和第二数目个待聚类候选点进行聚类,即将当前点与其附近点形成一个簇得到聚类点云集合,并将点p标记为已被访问(即visited)。在此基础上,可以递归地以相同的方法处理该簇内所有未被标记为已被访问的点,从而对簇进行扩展。如果附近点的数量小于预定点数阈值,则可以将点p暂时标记为噪声点。如果簇充分地被扩展,即簇内的所有点均被标记为已被访问,则可以用同样的方式去处理未被访问的点。
根据本公开的实施例,由于第二候选点是通过根据车辆高度对第一候选点进行筛选得到的,在此基础上,通过在第二候选点中确定目标第二候选点,根据基于密度的聚类算法确定的聚类扫描半径来在第二候选点中确定与目标第二候选点对应的待聚类候选点,并根据基于密度的聚类算法确定的预定点数阈值来对待聚类候选点的数量进行校验,可以消除聚类过程中出现的聚类噪声,提高了聚类点云集合的质量,进而提高了候选对象检测的准确性。
图4示意性示出了根据本公开实施例的响应于第一点云集合中存在与车辆高度满足第一预定条件的点,对第一点云集合进行聚类,得到N个聚类点云集合过程的示例示意图。
如图4所示,在400中,针对M个位置信息401中的每个位置信息401,可以根据与位置信息401对应的第一点云集合402,确定与第一点云集合402对应的平均高度403。在获得平均高度403之后,可以执行操作S410。
在操作S410,确定平均高度是否大于车辆高度?若否,则可以继续针对下一位置信息401进行处理。若是,则可以确定第一点云集合402中存在与车辆高度406满足第一预定条件的点404。可以根据车辆高度404和与P个第一候选点各自对应的候选位置信息405,对P个第一候选点进行筛选,得到Q个第二候选点407。
利用基于密度的聚类算法,确定聚类扫描半径409和预定点数阈值。针对Q个第二候选点407中的每个目标第二候选点407,可以根据聚类扫描半径409,在Q个第二候选点407中确定与目标第二候选点对应的第二数目个待聚类候选点410。在获得第二数目个待聚类候选点410之后,可以执行操作S420。
在操作S420,确定待聚类候选点的数量和预定点数阈值是否满足第二预定条件?若否,则可以结束流程。若是,则可以对第二数目个待聚类候选点410进行聚类,得到聚类点云集合411。
根据本公开的实施例,聚类点云集合包括S个候选点,S为正整数。
根据本公开的实施例,操作S230可以包括如下操作。
针对N个聚类点云集合中的每个聚类点云集合,根据与S个候选点各自对应的位置信息,确定第一目标点和与第一目标点对应的激光束标识。根据第一目标点和激光束标识,确定第二目标点的位置信息。根据第二目标点的位置信息,确定与聚类点云集合对应的对象高度。
根据本公开的实施例,第一目标点可以指聚类点云集合中最低的点。在获得聚类点云集合之后,可以根据聚类点云集合中的S个候选点各自对应的位置信息,在S个候选点中确定位置最低的第一目标点。在此基础上,可以确定与该第一目标点对应的激光束标识。
根据本公开的实施例,在获得激光束标识之后,可以根据第一目标点和与该第一目标点对应的激光束标识,确定第二目标点的位置信息。在此基础上,可以根据第二目标点的位置信息,进一步确定与聚类点云集合对应的对象高度。对象高度的确定方式如下式(1)所示。
H
其中,H
根据本公开的实施例,通过根据与S个候选点各自对应的位置信息,确定第一目标点和与第一目标点对应的激光束标识,能够更为准确地确定对象在点云数据中的位置和与之相关联的激光束。通过分析激光束和相邻点的位置关系,可以得到第二目标点的位置信息,从而实现更为精确的定位。在此基础上,由于对象高度是根据第二目标点的位置信息确定的,由此能够进一步提高对象检测的准确性。
根据本公开的实施例,根据第一目标点和激光束标识,确定第二目标点的位置信息可以包括如下操作。
确定与激光束标识相邻的目标激光束标识。将第一目标点投影至与目标激光束标识对应的目标激光束,得到第二目标点。根据目标夹角、第一目标点的位置信息、车辆与对象之间的水平位置信息,确定第二目标点的位置信息。
根据本公开的实施例,在获得激光束标识之后,可以根据雷达配置信息,确定与该激光束标识相邻的目标激光束标识。可以将位于与激光束标识对应的激光束上的第一目标点,按照该第一目标点的相同位置向下投影至与目标激光束标识对应的目标激光束上,得到与目标激光束的交点,即第二目标点。
根据本公开的实施例,可以根据激光束和目标激光束之间的目标夹角、第一目标点的位置信息和车辆与对象之间的水平位置信息,来确定第二目标点的位置信息。第二目标点的位置信息确定方式如下式(2)和(3)所示。
L
L
其中,L
根据本公开的实施例,由于第二目标点是通过将第一目标点投影至与目标激光束标识对应的目标激光束得到的,目标激光束标识是与激光束标识相邻的,由此能够实现第二目标点的自动确定。在此基础上,通过根据预先确定的目标夹角、第一目标点的位置信息和车辆与对象之间的水平位置信息,能够确定第二目标点的位置信息,有利于后续利用第二目标点的位置信息来确定对象高度,从而提高了对象检测的效率。
图5A示意性示出了根据本公开实施例的在相关技术中确定对象高度过程的示例示意图。
如图5A所示,在500A中,无人车501上部署有激光雷达502,以激光雷达502和障碍物503为例说明确定对象高度的过程。
在激光雷达502所发出的多条激光束中,例如,最低的激光束504能够探测到障碍物503上的A点,由于A点的高度高于无人车501的高度,因此无人车501会判断前方没有危险能够通行。
而实际上障碍物503的高度低于无人车501的高度,因而当无人车501不断前进,随着近处的激光雷达502所发出的多条激光束之间间距越来越小,无人车501才能够检测到低于无人车501的高度的障碍物503,但是此时障碍物503已经距离无人车501较近,导致无人车501急刹车这样容易造成后方车辆追尾事故,若刹车距离不够则会造成和障碍物碰撞事故。
图5B示意性示出了根据本公开实施例的根据N个聚类点云集合,确定与N个聚类点云集合各自对应的对象高度过程的示例示意图。
如图5B所示,在500B中,无人车506上部署有激光雷达507,以激光雷达507和障碍物508为例说明确定与聚类点云集合对应的对象高度的过程。
根据聚类点云集合所包括的与S个候选点各自对应的位置信息,确定聚类点云集合中的最低点和与该最低点对应的激光束标识,即第一目标点B和激光束509。可以根据激光束509,确定与激光束标识相邻的目标激光束标识,即与激光束509相邻的激光束510。在此基础上,可以将第一目标点B投影到激光束510上得到焦点,即第二目标点C。
激光束509和激光束510之间的夹角,角BDC即为目标夹角θ,可以获知三角形BCD为等腰三角形,进而可以利用如上所述的式(2)和式(3),来计算得到第二目标点C的位置信息。
根据本公开的实施例,通过多线扫描激光雷达特性,依据两条激光线的角分辨率、障碍物距离车的距离和距离地面的高度,能够判断出顶部障碍物是否存在低于车高的可能,从而至少部分地克服相关技术中顶部障碍物检测场景下无人车通过的局限性,使得无人车在不提升成本的情况下,面对这种顶部障碍物检测能够顺利检测并通过,避免了突然出现过近的顶部障碍物车速较高产生的急刹车现象,消除了碰撞事故和追尾事故的潜在隐患。
图6示意性示出了根据本公开实施例的对象检测过程的示例示意图。
如图6所示,在600中,针对N个聚类点云集合601中的每个聚类点云集合601,可以根据与S个候选点各自对应的位置信息602,确定第一目标点603和与第一目标点603对应的激光束标识604。
可以确定与激光束标识604相邻的目标激光束标识605。将第一目标点603投影至与目标激光束标识605对应的目标激光束,得到第二目标点606。根据目标夹角、第一目标点的位置信息、车辆与对象之间的水平位置信息,确定第二目标点的位置信息607。在此基础上,根据第二目标点的位置信息607,确定与聚类点云集合601对应的对象高度608。
根据本公开的实施例,操作S240可以包括如下操作。
针对N个聚类点云集合中的每个聚类点云集合,在与聚类点云集合对应的对象高度小于车辆高度的情况下,确定表征对象存在风险的对象检测结果。在与聚类点云集合对应的对象高度大于或等于车辆高度的情况下,确定表征对象未存在风险的对象检测结果。
根据本公开的实施例,对象检测结果可以用于表征对象是否存在风险。在获得与聚类点云集合对应的对象高度之后,可以判断对象高度和车辆高度之间的大小关系。
例如,在对象高度小于车辆高度,即存在碰撞风险的情况下,可以确定表征对象存在风险的对象检测结果,并可以将该障碍物标记为可疑碰撞障碍物。备选地,在对象高度大于或等于车辆高度,即不存在碰撞风险的情况下,可以确定表征对象未存在风险的对象检测结果,并可以继续对其他聚类点云集合进行判断。
根据本公开的实施例,通过在与聚类点云集合对应的对象高度小于车辆高度的情况下,确定表征对象存在风险的对象检测结果,可以帮助自动驾驶系统或智能交通系统更为准确地识别和判断潜在的危险对象,以便及早采取措施避免事故发生。通过在与聚类点云集合对应的对象高度大于或等于车辆高度的情况下,确定表征对象未存在风险的对象检测结果,可以帮助自动驾驶系统或智能交通系统更快速地识别并过滤掉无关目标,从而能够保证行驶安全性的同时,提高交通效率。
以上仅是示例性实施例,但不限于此,还可以包括本领域已知的其他对象检测方法,只要能够提高对象检测的效率和准确性即可。
图7示意性示出了根据本公开实施例的对象检测装置的框图。
如图7所示,对象检测装置700可以包括处理模块710、聚类模块720、第一确定模块730和检测模块740。
处理模块710,用于响应于接收到来自于激光雷达的点云信息,对点云信息进行处理,得到点云分布信息,其中,点云分布信息包括M个位置信息和与M个位置信息各自对应的第一点云集合,M为正整数。
聚类模块720,用于响应于第一点云集合中存在与车辆高度满足第一预定条件的点,对第一点云集合进行聚类,得到N个聚类点云集合,其中,N为正整数。
第一确定模块730,用于根据N个聚类点云集合,确定与N个聚类点云集合各自对应的对象高度。
检测模块740,用于根据车辆高度,对与N个聚类点云集合各自对应的对象高度分别进行检测,得到对象检测结果。
根据本公开的实施例,对象检测装置700还可以包括第二确定模块和第三确定模块。
第二确定模块,用于针对M个位置信息中的每个位置信息,根据与位置信息对应的第一点云集合,确定与第一点云集合对应的平均高度。
第三确定模块,用于响应于平均高度大于车辆高度,确定第一点云集合中存在与车辆高度满足第一预定条件的点。
根据本公开的实施例,第一点云集合包括P个第一候选点,P为正整数。
根据本公开的实施例,聚类模块720可以包括第一筛选单元、第一确定单元、第二确定单元和聚类单元。
第一筛选单元,用于根据车辆高度和与P个第一候选点各自对应的候选位置信息,对P个第一候选点进行筛选,得到Q个第二候选点,其中,Q为正整数。
第一确定单元,用于利用基于密度的聚类算法,确定聚类扫描半径和预定点数阈值。
第二确定单元,用于针对Q个第二候选点中的每个目标第二候选点,根据聚类扫描半径,在Q个第二候选点中确定与目标第二候选点对应的第二数目个待聚类候选点。
聚类单元,用于响应于待聚类候选点的数量和预定点数阈值满足第二预定条件,对第二数目个待聚类候选点进行聚类,得到聚类点云集合。
根据本公开的实施例,对象检测装置700还可以包括第四确定模块和第五确定模块。
第四确定模块,用于确定与车辆对应的车辆高度和与激光雷达对应的雷达配置信息。
第五确定模块,用于根据雷达配置信息,确定目标夹角,其中,目标夹角用于表征每两条相邻激光束之间的角度。
根据本公开的实施例,点云信息包括激光束标识和与第一数目个候选点各自对应的候选位置信息。
根据本公开的实施例,处理模块710可以包括生成单元、投影单元、第三确定单元和第二筛选单元。
生成单元,用于根据预定尺寸,生成栅格图,其中,栅格图包括M个栅格和与M个栅格各自对应的位置信息。
投影单元,用于根据与第一数目个候选点各自对应的候选位置信息和与M个栅格各自对应的位置信息,将第一数目个候选点投影至栅格图,得到与M个位置信息各自对应的候选点云集合。
第三确定单元,用于针对M个位置信息中的每个位置信息,根据位置信息,确定与候选点云集合对应的点云集合高度。
第二筛选单元,用于根据预定阈值和点云集合高度,对候选点云集合进行筛选,得到与位置信息对应的第一点云集合。
根据本公开的实施例,聚类点云集合包括S个候选点,S为正整数。
根据本公开的实施例,确定模块730可以包括第四确定单元、第五确定单元和第六确定单元。
第四确定单元,用于针对N个聚类点云集合中的每个聚类点云集合,根据与S个候选点各自对应的位置信息,确定第一目标点和与第一目标点对应的激光束标识。
第五确定单元,用于根据第一目标点和激光束标识,确定第二目标点的位置信息。
第六确定单元,用于根据第二目标点的位置信息,确定与聚类点云集合对应的对象高度。
根据本公开的实施例,第五确定单元可以包括第一确定子单元、投影子单元和第二确定子单元。
第一确定子单元,用于确定与激光束标识相邻的目标激光束标识。
投影子单元,用于将第一目标点投影至与目标激光束标识对应的目标激光束,得到第二目标点。
第二确定子单元,用于根据目标夹角、第一目标点的位置信息、车辆与对象之间的水平位置信息,确定第二目标点的位置信息。
根据本公开的实施例,检测模块740可以包括第七确定单元和第八确定单元。
第七确定单元,用于针对N个聚类点云集合中的每个聚类点云集合,在与聚类点云集合对应的对象高度小于车辆高度的情况下,确定表征对象存在风险的对象检测结果。
第八确定单元,用于在与聚类点云集合对应的对象高度大于或等于车辆高度的情况下,确定表征对象未存在风险的对象检测结果。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中对象检测装置部分与本公开的实施例中对象检测方法部分是相对应的,对象检测装置部分的描述具体参考对象检测方法部分,在此不再赘述。
图8示意性示出了根据本公开实施例的适于实现对象检测方法的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分809加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至输入/输出(I/O)接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出(I/O)接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的对象检测方法。
在该计算机程序被处理器801执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码。
根据本公开的实施例,提供了一种自动驾驶车辆,自动驾驶车辆可以包括本公开实施例所述的电子设备。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
- 载具机构及其应用的作业设备
- 载具机构及其应用的作业设备