一种标定方法、设备、可移动平台及存储介质
技术领域
本发明涉及控制技术领域,尤其涉及一种标定方法、设备、可移动平台及存储介质。
背景技术
目前,激光雷达和相机之间的标定方法主要包括有目标和无目标的外参标定。通常有目标的外参标定方法依赖于特定的标志物如标定板或者标签,且外参标定过程大多是离线的。这类方法可以在依赖特定的标志物的情况下实现较高精度的外参标定,且标定结果一致性较好。
然而,上述外参标定方法需要特定的标志物,标定过程较为繁琐,适用场景有限,不适合在室外进行标定,并且需要比较稠密的点云数据,因此对设备本身的性能要求较高。因此,如何实现在没有特定标志物时提高标定精度和标定结果的一致性成为研究的重点。
发明内容
本发明实施例提供了一种标定方法、设备、可移动平台及存储介质,实现了在没有特定标志物时对可移动平台周围环境的标定,提高了标定精度。
第一方面,本发明实施例提供了一种标定方法,应用于可移动平台,所述可移动平台上设置了激光扫描装置和相机,所述方法包括:
获取激光扫描装置采集的所述可移动平台周围环境的第一点云数据以及相机采集的图像数据;
根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据;
将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间;
当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置。
第二方面,本发明实施例提供了一种标定设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取激光扫描装置采集的所述可移动平台周围环境的第一点云数据以及相机采集的图像数据;
根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据;
将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间;
当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置。
第三方面,本发明实施例提供了一种可移动平台,所述可移动平台包括:
机身;
配置在机身上的动力系统,用于为所述可移动平台提供移动的动力;
如上述第二方面所述的标定设备。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的方法。
本发明实施例中,标定设备通过获取激光扫描装置采集的可移动平台周围环境的第一点云数据以及相机采集的图像数据,并根据所述第一点云数据确定第二点云数据,以及将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间,当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置,从而实现了在没有特定标志物时对可移动平台周围环境进行标定,提高了标定精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种标定系统的结构示意图;
图2是本发明实施例提供的一种标定方法的流程示意图;
图3是本发明实施例提供的一种三维栅格空间的示意图;
图4是本发明实施例提供的一种不连续点云的示意图;
图5是本发明实施例提供的一种离线标定方法的流程示意图;
图6是本发明实施例提供的一种在线标定方法的流程示意图;
图7是本发明实施例提供的一种标定设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明实施例中提供的标定方法可以由一种标定系统执行,具体的,可以由标定系统中的标定设备执行。其中,所述标定系统包括标定设备和可移动平台。在某些实施例中,所述标定设备可以安装在可移动平台上;在某些实施例中,所述标定设备可以在空间上独立于可移动平台;在某些实施例中,所述标定设备可以是可移动平台的部件,即所述可移动平台包括标定设备。在其他实施例中,所述标定方法还可以应用于其他可移动设备上,如能够自主移动的机器人、无人车、无人船等可移动设备。
所述标定系统中标定设备可以获取激光扫描装置采集的可移动平台所处周围环境对应的第一点云数据以及相机采集的图像数据;在某些实施例中,所述激光扫描装置和所述相机分别与所述可移动平台可拆卸连接,在其他实施例中,所述激光扫描装置和所述相机也可以固定设置在可移动平台,在此不作限定。进一步地,在某些实施例中,所述激光扫描装置包括激光雷达、毫米波雷达、超声波雷达中的任意一种或多种;在某些实施例中,所述第一点云数据可以是通过激光雷达采集得到,也可以是通过可移动平台上的毫米波雷达、超声波雷达等获取得到,本发明实施例不做具体限定。
所述激光雷达是一种感知传感器,可以获得场景的三维信息。其基本原理为主动对被探测对象发射激光脉冲信号,并获得其反射回来的脉冲信号,根据发射信号和接收信号之间的时间差计算被测对象的距离探测器的深度信息;基于激光雷达的已知发射方向,获得被测对象相对激光雷达的角度信息;结合前述深度和角度信息得到海量的探测点(称为点云),基于点云即可以重建被测对象相对激光雷达的空间三维信息。
本发明提供了一种不依赖特定标志物在自然场景下的激光雷达和相机标定方法,也提供了在线检测标定结果并矫正的方案。通过点云在空间中分布的多样性,采集足够的数据,并利用多种点云特征和图像信息进行匹配得到标定精度更高的标定结果。在某些实施例中,本方案可以离线对相机和激光雷达进行标定;在某些实施例中,本方案也可以在线对相机和激光雷达进行标定,并检测激光雷达和相机之间的标定误差,以对该标定误差进行校正,提高标定精度。
下面结合附图1对本发明实施例提供的标定系统进行示意性说明。
请参见图1,图1是本发明实施例提供的一种标定系统的结构示意图。所述标定系统包括:标定设备11、可移动平台12。其中,可移动平台12和标定设备11之间可以通过无线通信连接方式建立通信连接。其中,在某些场景下,所述可移动平台12和标定设备11之间也可以通过有线通信连接方式建立通信连接。所述可移动平台12可以为无人车、无人船、可移动机器人等可移动设备。所述可移动平台12包括动力系统121,所述动力系统121用于为可移动平台12提供移动的动力。在其他实施例中,可移动平台12和标定设备11彼此独立,例如标定设备11设置在云端服务器中,通过无线通信连接方式与可移动平台12建立通信连接。
本发明实施例中,所述标定设备可以获取激光扫描装置采集的所述可移动平台周围环境的第一点云数据以及相机采集的图像数据,并根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据。所述标定设备可以将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间,当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述相机采集的图像数据上,从而获取所述投影三维空间投影到所述图像数据上的最优位置,以实现不依赖标定物的标定方法,并提高了标定结果的一致性。
下面结合附图对本发明实施例提供的标定方法进行示意性说明。
具体请参见图2,图2是本发明实施例提供的一种标定方法的流程示意图,所述方法可以由标定设备执行,其中,标定设备的具体解释如前所述。具体地,本发明实施例的所述方法包括如下步骤。
S201:获取激光扫描装置采集的可移动平台周围环境的第一点云数据以及相机采集的图像数据。
本发明实施例中,标定设备可以获取激光扫描装置采集的所述可移动平台周围环境的第一点云数据以及相机采集的图像数据。
在一些实施例中,所述激光扫描装置包括激光雷达、毫米波雷达、超声波雷达中的任意一种或多种。
在一些实施例中,所述相机可以挂载在可移动平台上。在某些实施例中,所述相机还可以独立于可移动平台,安装于所述可移动平台所处环境当中。在某些实施例中,所述相机的摄像头包括但不限于双目摄像头、单目摄像头,TOF摄像头等摄像装置。
在一些实施例中,所述标定设备可以基于预设转换矩阵将所述第一点云数据转换到相机坐标系中,得到所述可移动平台所处周围环境对应的相机坐标系下的第一点云数据;其中,所述预设转换矩阵包括内参矩阵和外参矩阵,所述外参矩阵包括旋转矩阵和/或平移向量。在某些实施例中,当所述相机坐标系的原点设定在所述可移动平台上时,所述外参矩阵只包括旋转矩阵。
在某些实施例中,所述内参矩阵是根据多个内参数确定得到,所述内参数可以是相机的参数,如焦距、像主点坐标等。在某些实施例中,所述外参矩阵可以是相机和激光扫描装置标定得到的参数,例如可以包括旋转矩阵和/或平移向量,其中,所述旋转矩阵可以通过相机的姿态确定得到的,所述平移向量可以通过相机的定位信息确定得到。
在一个实施例中,所述标定设备可以在所述可移动平台的移动速度小于预设速度阈值时,此时可以确定所述可移动平台处于离线低速状态,并获取激光扫描装置采集的所述可移动平台处于离线低速状态时周围环境的第一点云数据以及相机采集的图像数据,以实现离线标定。通过离线标定可以快速一次性收集足够多的标定数据,减少运动对标定精度的影响,提高标定精度。
在一个实施例中,所述标定设备在获取激光扫描装置采集的所述可移动平台处于离线低速状态时周围环境的第一点云数据之前,可以建立一个相对于相机坐标系的三维栅格空间。所述标定设备在获取激光扫描装置采集的所述可移动平台处于离线低速状态时周围环境的第一点云数据之后,可以通过外参将所述第一点云数据投影到如图3所示的相机坐标系下的三维栅格空间,图3是本发明实施例提供的一种三维栅格空间的示意图。当所述三维点云空间中的第一点云数据的数量大于预设数量阈值时,确定离线低速采集到了足够多的点云数据,并执行步骤S202。
在一个实施例中,所述标定设备可以在所述可移动平台的移动速度大于或等于所述预设速度阈值时,确定所述可移动平台处于运动状态,并获取激光扫描装置采集的所述可移动平台处于运动状态时周围环境的第一点云数据以及相机采集的图像数据,以实现在线误差检测。通过在线误差检测会在可移动平台的运动过程中,持续采集符合一定场景要求的标定数据,并检测当前标定是否最优,如果持续发现有更优的标定结果,则会对当前的标定效果进行更新,从而确保标定结果的一致性。
S202:根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据。
本发明实施例中,标定设备可以根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据。
在一个实施例中,所述第二点云数据用于指示不连续的点云数据。具体地,所述标定设备在根据所述第一点云数据确定第二点云数据时,可以确定所述第一点云数据中相邻两个所述第一点云数据之间的距离,并根据所述相邻两个所述第一点云数据之间的距离,确定不连续的第二点云数据。
在一个实施例中,所述标定设备在根据所述相邻两个所述第一点云数据之间的距离,确定不连续的第二点云数据时,可以确定所述相邻两个所述第一点云数据之间的距离是否大于第一预设阈值,当确定出所述相邻两个所述第一点云数据之间的距离大于第一预设阈值时,确定所述相邻两个所述第一点云数据为不连续的第二点云数据。
具体实施例中,由于激光雷达的工作特性,激光雷达采集的数据是连续的,如果前后两个点云数据的距离发生了较大的变化,说明这是一个深度跳变的地方,属于不连续的点云数据。例如,可以根据两个点云数据的深度信息,通过合适的算法得到两个点云之间的距离。
具体可以图4为例进行举例说明,图4是本发明实施例提供的一种不连续点云的示意图。如图4所述,相邻两个第一点云数据点云41和点云42,如果确定出所述点云41和点云42之间的距离大于第一预设阈值时,则可以确定所述点云41和点云42为不连续的第二点云数据。例如,该第一预设阈值可以为一定值。
在另一个实施例中,还可以获取第一点云数据和原点之间的距离,进而通过第一点云数据和原点之间的距离、以及相邻两个第一点云数据之间的距离,确定该相邻的两个点云数据是否为不连续的第二点云数据。具体地,可以确定与原点之间的距离大于预设值的第一点云数据,并从所述与原点之间的距离大于预设值的第一点云数据中,确定相邻两个所述第一点云数据之间的距离是否大于预设距离阈值。当相邻两个第一点云数据之间的距离大于预设距离阈值时,确定该相邻两个第一点云数据为不连续的第二点云数据。在某些实施例中,由于受到发散角的影响,可以将距离原点大于预设值的相邻两个第一点云数据之间的距离设为预设距离阈值。在一种实施方式中,该预设距离阈值可以为与原点的距离相关的函数,例如,当距离原点越远,该预设距离阈值逐渐增大,当距离原点越近,该预设距离阈值逐渐减小。如此,可以补偿发散角所引起的误差,减小误检的概率,提高标定精度。
在一个实施例中,所述第二点云数据用于指示无效的点云数据。具体地,所述标定设备在根据所述第一点云数据确定第二点云数据时,可以确定所述第一点云数据中是否存在深度信息,并根据所述深度信息确定所述第一点云数据中为无效的所述第二点云数据。通过这种实施方式可以在没有雷达回波的场景下确定出无效的点云数据。在某些实施例中,所述没有雷达回波的场景包括背景为天空、水域等。
在一个实施例中,所述标定设备在根据所述深度信息确定所述第二点云数据时,可以从所述第一点云数据中确定不存在深度信息的所述第一点云数据为无效的所述第二点云数据。
例如,假设相机和激光雷达采集第一点云数据的背景为天空,由于激光雷达是主动对被探测对象发射激光脉冲信号,来获得其反射回来的脉冲信号,当激光雷达采集第一点云数据的背景为天空时,天空中没有被探测对象,因此激光雷达接收不到被探测对象返回的脉冲信号,从而获取不到第一点云数据的深度信息,因此如果获取到的第一点云数据不存在深度信息,则可以确定该第一点云数据为无效的第二点云数据。
在一个实施例中,所述标定设备在根据所述深度信息确定所述第二点云数据时,可以获取所述第一点云数据的深度信息的变化值,当所述第一点云数据的深度信息的变化值大于第二预设阈值时,确定所述大于第二预设阈值对应的所述第一点云数据为无效的所述第二点云数据。
例如,假设相机和激光雷达采集第一点云数据的背景为诸如栅栏、草丛等场景时,由于激光雷达穿过诸如栅栏、草丛等时会获取到大量波动较大的深度信息,此类深度信息为无效的点云数据。当激光雷达穿过诸如栅栏、草丛等时获取到许多第一点云数据,如果获取到的多个第一点云数据的深度信息的变化值均大于第二预设阈值,此时,获取到的多个第一点云数据的深度信息波动较大,则可以确定该第一点云数据为无效的第二点云数据。
在另一种实施例中,所述第二点云数据用于指示无效的点云数据和不连续的点云数据,具体地,所述标定设备在根据所述第一点云数据确定第二点云数据中的无效的点云数据和不连续的点云数据的方法如上所述,在此不再赘述。
在一个实施例中,所述标定设备在根据所述第一点云数据确定第二点云数据之前,可以将获取到的当前帧的第一点云数据与已经获取到的所述第一点云数据进行匹配,并确定所述当前帧的第一点云数据的空间分布与所述已经获取到的所述第一点云数据的空间分布的相似度。如果所述相似度大于预设相似度阈值,则所述标定设备可以删除所述当前帧的第一点云数据;如果所述相似度小于或等于所述预设相似度阈值,则可以确定将所述当前帧的第一点云数据加入已经获取到的所述第一点云数据。
可见,通过这种实施方式,可以避免重复场景的数据被反复检测出来,从而可以减小无效点云数据的数据量,提高计算效率。对于每一帧检测出来的第一点云数据会和已经获取到的第一点云数据进行比较,如果空间分布比较相似,则将该帧的第一点云数据删除,从而确保挑选出来的每一帧的第一点云数据能够尽可能覆盖不同的场景。
S203:将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间。
本发明实施例中,标定设备可以将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间。
在一个实施例中,所述标定设备在将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间时,可以确定所述激光扫描装置和相机之间的相对位置信息,并根据所述相对位置信息将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间。
在一个实施例中,所述标定设备在根据所述相对位置信息将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间之前,可以确定所述第二点云数据与所述三维栅格空间中已存在的点云数据的空间分布相似度,并删除所述空间分布相似度大于预设相似度阈值的第二点云数据。如此,可以预先删除冗余的点云数据,提高运算效率。
在一个实施例中,所述标定设备在根据所述相对位置信息将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间时,可以根据所述相对位置信息将所述删除后的第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间。
在一个实施例中,所述标定设备在确定所述第二点云数据与所述三维栅格空间中已存在的点云数据的空间分布相似度时,可以确定所述第二点云数据的位置信息以及所述三维栅格空间中已存在的点云数据的位置信息,并根据所述第二点云数据的位置信息与所述三维栅格空间中已存在的点云数据的位置信息,确定所述第二点云数据与所述三维栅格空间中已存在的点云数据的空间分布相似度。
在一个实施例中,所述标定设备将所述第二点云数据投影至相机坐标系下的三维栅格空间之前,可以确定所述相机的视角是否小于所述激光扫描装置的视角,当确定所述相机的视角小于所述激光扫描装置的视角时,可以执行所述将所述第二点云数据投影至相机坐标系下的三维栅格空间的步骤。
可以理解,在一种实施例中,也可以将步骤S202和步骤S203的先后顺序进行调换,例如,可以先把点云数据投影到相机的三维栅格空间,然后根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据,此处仅为示例性说明,在此不作限定。
S204:当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置。
本发明实施例中,当所述投影三维空间中的每个栅格区域满足预设条件时,标定设备可以将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置。具体地,在该最优位置上,该投影三维空间与该图像数据位置匹配最优。
在某些实施例中,所述满足预设条件,包括所述投影三维空间中的每个栅格区域中的第二点云数据的数量大于预设数量阈值。
在一个实施例中,所述标定设备在将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,可以根据所述相机采集的图像数据,确定与所述图像数据对应的梯度图像,并将所述投影三维空间的第二点云数据投影至所述梯度图像。当确定所述投影三维空间的第二点云数据投影至所述梯度图像,所述投影三维空间的第二点云数据与所述梯度图像完全融合时,所述标定设备可以确定所述投影三维空间投影到所述图像数据上的最优位置。
在一个实施例中,当确定所述投影三维空间的第二点云数据投影至所述梯度图像,所述投影三维空间的第二点云数据与所述梯度图像完全融合时,所述标定设备可以根据如下公式(1)确定所述投影三维空间投影到所述图像数据上的最优位置。
其中,Dp为图像上对应投影点的梯度。
在一个实施例中,所述标定设备在根据所述相机采集的图像数据,确定与所述图像数据对应的梯度图像时,可以根据所述相机采集的图像数据,确定与所述图像数据对应的灰度图像,并从所述灰度图像中提取梯度信息和/或边缘信息,从而根据所述梯度信息和/或边缘信息,确定所述梯度图像。
在一个实施例中,所述标定设备将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,可以获取将所述投影三维空间投影至所述相机采集的图像数据上得到的目标图像,并确定所述目标图像中第二点云数据的反射率,以及确定与所述目标图像对应的灰度图像的灰度值,从而根据所述目标图像中第二点云数据的反射率以及与所述目标图像对应的灰度图像的灰度值,确定所述投影三维空间投影到所述图像数据上的最优位置。
在一个实施例中,所述标定设备在根据所述目标图像中第二点云数据的反射率以及与所述目标图像对应的灰度图像的灰度值,确定所述投影三维空间投影到所述图像数据上的最优位置时,可以根据公式(2)确定所述投影三维空间投影到所述图像数据上的最优位置。
其中,Ip为图像上对应投影点的灰度值。
在一个实施例中,所述标定设备将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,可以获取所述可移动平台在移动过程中的运动信息,并根据所述运动信息,确定所述第二点云数据的补偿信息,以及根据所述补偿信息对所述投影三维空间中的第二点云数据进行补偿,从而将补偿后的所述第二点云数据投影至所述相机采集的图像数据上,以获取所述投影三维空间投影到所述图像数据上的最优位置。在某些实施例中,所述运动信息包括位置、速度信息、加速度信息中的任意一种或多种。
可见,通过这种实施方式,可以避免由于可移动平台的运动速度太快时,导致积累的点云数据出现模糊的情况,通过对点云数据进行补偿提高在可移动平台运动过程中采集的点云数据与图像数据的一致性。
在一个实施例中,所述标定设备将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,可以获取所述可移动平台在预设时间范围内移动过程中的第二点云数据,并将在所述预设时间范围内获取到的所述投影三维空间中的第二点云数据投影至所述相机采集的图像数据上,以获取所述投影三维空间投影到所述图像数据上的最优位置。
可见,通过降低点云的累积时间使用尽可能短时间的点数据的这种实施方式,可以提高在可移动平台运动过程中采集的点云数据与图像数据的一致性。
可以理解,相机采集的图像数据并不限定为灰度图像,本实施例仅为示例性说明,在此不作限定。例如,也可以对相机采集的彩色图像数据进行处理。具体地,可以通过机器学习等算法先识别出场景中的具体物体,例如车道线、电线杆等,根据识别出的具体物体的反射率、亮度等物理信息,确定所述投影三维空间投影到所述图像数据上的最优位置,如此,可以减小误检概率,提高标定精度。
在一个实施例中,所述标定设备将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,可以获取所述可移动平台在移动过程中将所述投影三维空间投影至所述相机采集的图像数据上得到的多个目标图像,并将每个目标图像的数据进行比较,如果确定每个目标图像的数据一致,则可以确定所述目标图像的位置信息为所述投影三维空间投影到所述图像数据上的最优位置。
在一个实施例中,所述标定设备在将每个目标图像的数据进行比较时,如果确定每个所述目标图像的数据不一致,则可以确定激光扫描装置的外参发生变化;进一步地,可以对所述激光扫描装置的外参进行更新。
在一个实施例中,所述标定设备在将每个目标图像的数据进行比较时,如果确定每个所述目标图像的数据不一致,则可以触发预设的报警装置进行报警,以提示用户该激光扫描装置的外参发生变化,进一步地,还可以提示用户对激光扫描装置进行检查,或者自动对激光扫描装置进行检查,在此不作限定。
本发明实施例中,标定设备通过取激光扫描装置采集的可移动平台周围环境的第一点云数据以及相机采集的图像数据,并根据所述第一点云数据确定第二点云数据,以及将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间,当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置,从而实现了在没有特定标志物时对可移动平台周围环境进行标定,提高了标定精度。
下面结合附图对离线标定和在线标定的过程进行举例说明。
请参见图5,图5是本发明实施例提供的一种离线标定方法的流程示意图,如图5所示,在所述离线标定的过程中,通过激光雷达采集可移动平台周围环境的第一点云数据,通过相机采集图像数据,根据所述第一点云数据检测点云深度不连续点,并确定所述点云深度不连续点为第二点云数据,将所述第二点云数据投影到三维栅格空间,得到投影三维空间,将所述投影三维空间和已有数据比较相似性,如果相似,则丢弃该帧数据,如果不相似,则将所述投影三维空间的数据加入数据库,当确定所述数据库中的数据足够时,求取所述投影三维空间投影到所述图像数据上的最优位置。
请参见图6,图6是本发明实施例提供的一种在线标定方法的流程示意图,如图6所示,所述在线标定的过程包括所述离线标定的过程,此处对在线标定过程中包括的离线标定过程不再赘述,所述在线标定的过程与离线标定的过程的不同之处在于,在所述在线标定过程中,在求取到所述投影三维空间投影到所述图像数据上的最优位置后,可以对所述最优位置进行一致性检测。在某些实施例中,所述一致性检测包括:将所述最优位置的结果存储到结果队列中,并根据所述结果队列中存储多个最优位置,检测各最优位置是否一致,并输出检测结果,根据检测结果判断所述最优位置是否与图像数据一致,如果一致,则说明外参发生了变化,需要对最优位置进行更新,如果不一致,则说明结构有可能松动,不能完成标定。进一步地,当最优位置与图像数据不一致时,可以触发预设的报警装置进行报警,以提示用户该激光扫描装置的外参发生变化,或者提示用户对激光扫描装置进行检查,也可以自动对激光扫描装置进行检查,在此不作限定。
请参见图7,图7是本发明实施例提供的一种标定设备的结构示意图。具体的,所述标定设备包括:存储器701、处理器702。
在一种实施例中,所述标定设备还包括数据接口703,所述数据接口703,用于传递标定设备和其他设备之间的数据信息。
所述存储器701可以包括易失性存储器(volatile memory);存储器701也可以包括非易失性存储器(non-volatile memory);存储器701还可以包括上述种类的存储器的组合。所述处理器702可以是中央处理器(central processing unit,CPU)。所述处理器702还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA)或其任意组合。
所述存储器701用于存储程序,所述处理器702可以调用存储器701中存储的程序,用于执行如下步骤:
获取激光扫描装置采集的可移动平台周围环境的第一点云数据以及相机采集的图像数据;
根据所述第一点云数据确定第二点云数据,所述第二点云数据用于指示无效的点云数据和/或不连续的点云数据;
将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间;
当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置。
进一步地,所述处理器702根据所述第一点云数据确定第二点云数据时,具体用于:
确定所述第一点云数据中相邻两个所述第一点云数据之间的距离;
根据所述相邻两个所述第一点云数据之间的距离,确定不连续的第二点云数据。
进一步地,所述处理器702根据所述相邻两个所述第一点云数据之间的距离,确定不连续的第二点云数据时,具体用于:
确定所述相邻两个所述第一点云数据之间的距离是否大于第一预设阈值;
当确定出所述相邻两个所述第一点云数据之间的距离大于第一预设阈值时,确定所述相邻两个所述第一点云数据为不连续的第二点云数据。
进一步地,所述处理器702还用于:
获取所述第一点云数据和原点之间的距离;
根据所述第一点云数据和原点之间的距离以及所述相邻两个所述第一点云数据之间的距离,确定所述不连续的第二点云数据。
进一步地,所述处理器702根据所述第一点云数据和原点之间的距离以及所述相邻两个所述第一点云数据之间的距离,确定所述不连续的第二点云数据时,具体用于:
确定与原点之间的距离大于预设值的第一点云数据;
从所述与原点之间的距离大于预设值的第一点云数据中,确定相邻两个所述第一点云数据之间的距离是否大于预设距离阈值;
若大于所述预设距离阈值,则确定所述相邻两个所述第一点云数据为不连续的第二点云数据。
进一步地,所述处理器702根据所述第一点云数据确定第二点云数据时,具体用于:
确定所述第一点云数据中是否存在深度信息;
根据所述深度信息确定所述第一点云数据中为无效的所述第二点云数据。
进一步地,所述处理器702根据所述深度信息确定所述第二点云数据时,具体用于:
从所述第一点云数据中确定不存在深度信息的所述第一点云数据为无效的所述第二点云数据。
进一步地,所述处理器702根据所述深度信息确定所述第二点云数据时,具体用于:
获取所述第一点云数据的深度信息的变化值;
当所述第一点云数据的深度信息的变化值大于第二预设阈值时,确定所述大于第二预设阈值对应的所述第一点云数据为无效的所述第二点云数据。
进一步地,所述处理器702根据所述第一点云数据确定第二点云数据之前,还用于:
将获取到的当前帧的第一点云数据与已经获取到的所述第一点云数据进行匹配;
确定所述当前帧的第一点云数据的空间分布与所述已经获取到的所述第一点云数据的空间分布的相似度;
如果所述相似度大于预设相似度阈值,则删除所述当前帧的第一点云数据;
如果所述相似度小于或等于所述预设相似度阈值,则确定将所述当前帧的第一点云数据加入已经获取到的所述第一点云数据。
进一步地,所述处理器702将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间时,具体用于:
确定所述激光扫描装置和相机之间的相对位置信息;
根据所述相对位置信息将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间。
进一步地,所述处理器702根据所述相对位置信息将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间之前,还用于:
确定所述第二点云数据与所述三维栅格空间中已存在的点云数据的空间分布相似度;
删除所述空间分布相似度大于预设相似度阈值的第二点云数据;
所述处理器702根据所述相对位置信息将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间时,具体用于:
根据所述相对位置信息将所述删除后的第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间。
进一步地,所述处理器702确定所述第二点云数据与所述三维栅格空间中已存在的点云数据的空间分布相似度时,具体用于:
确定所述第二点云数据的位置信息以及所述三维栅格空间中已存在的点云数据的位置信息;
根据所述第二点云数据的位置信息与所述三维栅格空间中已存在的点云数据的位置信息,确定所述第二点云数据与所述三维栅格空间中已存在的点云数据的空间分布相似度。
进一步地,所述处理器702将所述第二点云数据投影至相机坐标系下的三维栅格空间之前,还用于:
确定所述相机的视角是否小于所述激光扫描装置的视角;
当确定所述相机的视角小于所述激光扫描装置的视角时,执行所述将所述第二点云数据投影至相机坐标系下的三维栅格空间的步骤。
进一步地,所述满足预设条件,包括:
所述投影三维空间中的每个栅格区域中的第二点云数据的数量大于预设数量阈值。
进一步地,所述处理器702将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,具体用于:
根据所述相机采集的图像数据,确定与所述图像数据对应的梯度图像;
将所述投影三维空间的第二点云数据投影至所述梯度图像;
当确定所述投影三维空间的第二点云数据投影至所述梯度图像,所述投影三维空间的第二点云数据与所述梯度图像完全融合时,确定所述投影三维空间投影到所述图像数据上的最优位置。
进一步地,所述处理器702根据所述相机采集的图像数据,确定与所述图像数据对应的梯度图像时,具体用于:
根据所述相机采集的图像数据,确定与所述图像数据对应的灰度图像;
从所述灰度图像中提取梯度信息和/或边缘信息;
根据所述梯度信息和/或边缘信息,确定所述梯度图像。
进一步地,所述处理器702将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,具体用于:
获取将所述投影三维空间投影至所述相机采集的图像数据上得到的目标图像;
确定所述目标图像中第二点云数据的反射率;
确定与所述目标图像对应的灰度图像的灰度值;
根据所述目标图像中第二点云数据的反射率以及与所述目标图像对应的灰度图像的灰度值,确定所述投影三维空间投影到所述图像数据上的最优位置。
进一步地,所述处理器702将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,具体用于:
获取所述可移动平台在移动过程中的运动信息;
根据所述运动信息,确定所述第二点云数据的补偿信息;
根据所述补偿信息对所述投影三维空间中的第二点云数据进行补偿;
将补偿后的所述第二点云数据投影至所述相机采集的图像数据上,以获取所述投影三维空间投影到所述图像数据上的最优位置。
进一步地,所述运动信息包括位置信息、速度信息、加速度信息中的任意一种或多种。
进一步地,所述处理器702将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,具体用于:
获取所述可移动平台在预设时间范围内移动过程中的第二点云数据;
将在所述预设时间范围内获取到的所述投影三维空间中的第二点云数据投影至所述相机采集的图像数据上,以获取所述投影三维空间投影到所述图像数据上的最优位置。
进一步地,所述处理器702将所述投影三维空间投影至所述相机采集的图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置时,具体用于:
获取所述可移动平台在移动过程中将所述投影三维空间投影至所述相机采集的图像数据上得到的多个目标图像;
将每个目标图像的数据进行比较;
如果确定每个目标图像的数据一致,则确定所述目标图像的位置信息为所述投影三维空间投影到所述图像数据上的最优位置。
进一步地,所述处理器702还用于:
如果确定每个所述目标图像的数据不一致,则确定激光扫描装置的外参发生变化,并对所述激光扫描装置的外参进行更新。
进一步地,所述处理器702所述方法还用于:
如果确定每个所述目标图像的数据不一致,则触发预设的报警装置进行报警,以提示用户对激光扫描装置进行检查。
进一步地,所述激光扫描装置包括激光雷达、毫米波雷达、超声波雷达中的任意一种或多种。
本发明实施例中,标定设备通过获取激光扫描装置采集的可移动平台周围环境的第一点云数据以及相机采集的图像数据,并根据所述第一点云数据确定第二点云数据,以及将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间,当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置,从而实现了在没有特定标志物时对可移动平台周围环境进行标定,提高了标定精度。
本发明实施例还提供了一种可移动平台,所述可移动平台包括:机身;配置在机身上的动力系统,用于为可移动平台提供移动的动力;以及上述标定设备。本发明实施例中,可移动平台通过获取激光扫描装置采集的可移动平台周围环境的第一点云数据以及相机采集的图像数据,并根据所述第一点云数据确定第二点云数据,以及将所述第二点云数据投影至相机坐标系下的三维栅格空间,得到投影三维空间,当所述投影三维空间中的每个栅格区域满足预设条件时,将所述投影三维空间投影至所述图像数据上,并获取所述投影三维空间投影到所述图像数据上的最优位置,从而实现了在没有特定标志物时对可移动平台周围环境进行标定,提高了标定精度。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明图2所对应实施例中描述的方法,也可实现图7所述本发明所对应实施例的设备,在此不再赘述。
所述计算机可读存储介质可以是前述任一实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。