发明内容
鉴于上述问题,提出了一种克服上述问题或者至少部分地解决上述问题的基于稀疏直接法的语义要素测距方法、装置和电子设备。
本发明的一个目的是降低对道路图像中的语义要素的测距成本以及提高语义要素测距的准确性。
根据本发明的一方面,本发明提供了一种基于稀疏直接法的语义要素测距方法,包括:
使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧所述道路图像对应的深度图像,并将各所述深度图像拼接得到半稠密点云,所述深度图像包含与其对应的道路图像中的部分像素的坐标和深度值;
对各帧所述道路图像进行语义要素分割得到各类型的语义要素;
利用所述半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标。
可选地,利用所述半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标,包括:
从各类型语义要素中选取一种可构建平面方程的要素作为目标要素;
在所述深度图像中确定与其对应的道路图像中的目标要素对应的目标像素组,所述目标像素组包含多个具有深度值的像素;
基于相机内参矩阵以及所述目标像素组中每个像素的深度值和在道路图像中的坐标计算所述目标像素组的每个像素在相机坐标系中的坐标;
根据所述目标像素组的每个像素在相机坐标系中的坐标得到包含平面参数的平面方程;
将所述目标像素组的部分像素在相机坐标系中的坐标代入所述平面方程确定所述平面参数;
根据确定所述平面参数后的平面方程计算所述道路图像中各类型语义要素的每个像素在相机坐标系中坐标。
可选地,当目标要素为地面要素时,根据确定所述平面参数后的平面方程计算所述道路图像中各类型语义要素的每个像素在相机坐标系中坐标,包括:
根据所述道路图像中地面要素的每个像素的坐标、相机内参矩阵以及所述道路图像中地面要素的每个像素在相机坐标系中的z轴分量得到计算所述道路图像中地面要素的每个像素在相机坐标系中坐标的坐标方程;
将所述坐标方程中用于计算所述道路图像中地面要素的每个像素在相机坐标系中坐标的部分代入确定所述平面参数后的平面方程从而确定所述道路图像中地面要素的每个像素在相机坐标系中的z轴分量;
将确定的所述道路图像中地面要素的每个像素在相机坐标系中的z轴分量代入所述坐标方程得到所述道路图像中地面要素的每个像素在相机坐标系中坐标。
可选地,当目标要素为指示牌要素时,在所述深度图像中确定与其对应的道路图像中各类型语义要素的目标要素对应的目标像素组,包括:
在所述深度图像中确定与其对应的道路图像中的指示牌要素对应的指示牌像素组的四个顶点的指示牌像素;
根据确定所述平面参数后的平面方程计算所述道路图像中各类型语义要素的每个像素在相机坐标系中坐标,包括:
根据所述道路图像中指示牌要素的四个顶点的像素的坐标、相机内参矩阵以及所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量得到计算所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标的坐标方程;
将所述坐标方程中用于计算所述道路图像中指示牌要素的每个像素在相机坐标系中坐标的部分代入确定所述平面参数后的平面方程从而确定所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量;
将确定的所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量代入所述坐标方程得到所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标。
可选地,当目标要素为地面要素,且语义要素包括杆状物要素时,根据确定所述平面参数后的平面方程计算所述道路图像中各类型语义要素的每个像素在相机坐标系中坐标,包括:
在所述深度图像中确定与其对应的道路图像中的杆状要素对应的杆状像素组,所述杆状像素组包含多个具有深度值的像素;
基于相机内参矩阵以及所述杆状像素组中每个像素的深度值和在道路图像中的坐标计算所述杆状像素组的每个像素在相机坐标系中的坐标;
去掉所述深度图像中杆状像素组的每个杆状像素在相机坐标系中的垂直坐标,保留水平坐标;
对每个所述杆状像素进行聚类得到至少一个杆状物要素的杆状像素;
计算聚类后的每个杆状像素的水平坐标的平均坐标;
根据确定所述平面参数后的平面方程找到经过聚类后的每个杆状像素的平均坐标所在位置且与地平面垂直的直线与地平面的交点;
获取位于所述交点的正上方且至所述交点的距离为预设杆状高度的顶点位置;
计算所述交点和与其对应的所述顶点位置在相机坐标系中的坐标。
可选地,对每个所述杆状像素进行聚类得到至少一个杆状物要素的杆状像素,包括:
按照预设水平间距对每个所述杆状像素进行划分,分别将划分在每个所述预设水平间距内的所述杆状像素聚类为同一个杆状物的杆状像素。
可选地,所述各帧道路图像为所述各帧道路图像中关键帧的道路图像。
根据本发明的另一方面,本发明还提供了一种基于稀疏直接法的语义要素测距装置,包括:
图像处理模块,使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧所述道路图像对应的深度图像,并将各所述深度图像拼接得到半稠密点云,所述深度图像包含与其对应的道路图像中的部分像素的坐标和深度值;
语义要素分割模块,对各帧所述道路图像进行语义要素分割得到各类型的语义要素;
测距模块,利用所述半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标。
可选地,测距模块适于从各类型语义要素中选取一种可构建平面方程的要素作为目标要素;
在所述深度图像中确定与其对应的道路图像中的目标要素对应的目标像素组,所述目标像素组包含多个具有深度值的像素;
基于相机内参矩阵以及所述目标像素组中每个像素的深度值和在道路图像中的坐标计算所述目标像素组的每个像素在相机坐标系中的坐标;
根据所述目标像素组的每个像素在相机坐标系中的坐标得到包含平面参数的平面方程;
将所述目标像素组的部分像素在相机坐标系中的坐标代入所述平面方程确定所述平面参数;
根据确定所述平面参数后的平面方程计算所述道路图像中各类型语义要素的每个像素在相机坐标系中坐标。
可选地,当目标要素为地面要素时,测距模块适于根据所述道路图像中地面要素的每个像素的坐标、相机内参矩阵以及所述道路图像中地面要素的每个像素在相机坐标系中的z轴分量得到计算所述道路图像中地面要素的每个像素在相机坐标系中坐标的坐标方程;
将所述坐标方程中用于计算所述道路图像中地面要素的每个像素在相机坐标系中坐标的部分代入确定所述平面参数后的平面方程从而确定所述道路图像中地面要素的每个像素在相机坐标系中的z轴分量;
将确定的所述道路图像中地面要素的每个像素在相机坐标系中的z轴分量代入所述坐标方程得到所述道路图像中地面要素的每个像素在相机坐标系中坐标。
可选地,当目标要素为指示牌要素时,测距模块适于在所述深度图像中确定与其对应的道路图像中的指示牌要素对应的指示牌像素组的四个顶点的指示牌像素;
根据所述道路图像中指示牌要素的四个顶点的像素的坐标、相机内参矩阵以及所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量得到计算所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标的坐标方程;
将所述坐标方程中用于计算所述道路图像中指示牌要素的每个像素在相机坐标系中坐标的部分代入确定所述平面参数后的平面方程从而确定所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量;
将确定的所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量代入所述坐标方程得到所述道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标。
可选地,当目标要素为地面要素,且语义要素包括杆状物要素时,测距模块适于在所述深度图像中确定与其对应的道路图像中的杆状要素对应的杆状像素组,所述杆状像素组包含多个具有深度值的像素;
基于相机内参矩阵以及所述杆状像素组中每个像素的深度值和在道路图像中的坐标计算所述杆状像素组的每个像素在相机坐标系中的坐标;
去掉所述深度图像中杆状像素组的每个杆状像素在相机坐标系中的垂直坐标,保留水平坐标;
对每个所述杆状像素进行聚类得到至少一个杆状物要素的杆状像素;
计算聚类后的每个杆状像素的水平坐标的平均坐标;
根据确定所述平面参数后的平面方程找到经过聚类后的每个杆状像素的平均坐标所在位置且与地平面垂直的直线与地平面的交点;
获取位于所述交点的正上方且至所述交点的距离为预设杆状高度的顶点位置;
计算所述交点和与其对应的所述顶点位置在相机坐标系中的坐标。
可选地,测距模块适于按照预设水平间距对每个所述杆状像素进行划分,分别将划分在每个所述预设水平间距内的所述杆状像素聚类为同一个杆状物的杆状像素。
可选地,所述各帧道路图像为所述各帧道路图像中关键帧的道路图像。
根据本发明的又一方面,本发明还提供了一种电子设备,包括:
存储器和处理器,所述存储器内存储有控制程序,所述控制程序被所述处理器执行时用于实现根据上述任一项所述的基于稀疏直接法的语义要素测距方法。
根据本发明的再一方面,本发明还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据上述任一项所述的基于稀疏直接法的语义要素测距方法。
在本发明的基于稀疏直接法的语义要素测距方法中,使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧道路图像对应的深度图像,并将各深度图像拼接得到半稠密点云,对各帧道路图像进行语义要素分割得到各类型的语义要素,利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标,该方法无需使用激光雷达,只需使用车辆的轮速和道路图像即可,依赖的传感器较少,成本较低,并且易于在车辆上实施,具有较高的实施效率;并且,稀疏直接法是一种不使用特征点的视觉SLAM算法,相对于基于特征点的视觉SLAM算法,稀疏直接法得到的深度图像更加稠密,语义要素的信息更加全面,从而对各种语义要素进行多点测距,保证对各种语义要素测距的准确性。另外,上述方法还可以用于众包建图,具有很好的适应性。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
具体实施方式
目前,常用的语义要素测距方法是通过激光雷达和相机联合进行测距,但是激光雷达的成本较高。除了通过激光雷达和相机联合进行语义要素测距外,目前还可以使用特征点法进行语义要素测距,但是该方法无法保证所有语义要素都能提取到特征,因此会导致有些语义要素无法测距。另外,特征点法得到的图像深度图非常稀疏,只能对语义要素上的几个点进行测距,导致这些语义要素的测距不够准确。
针对上述问题,本发明实施例提供了一种基于稀疏直接法的语义要素测距方法。对语义要素进行测距即计算语义要素的像素坐标。
图1是根据本发明一个实施例的基于稀疏直接法的语义要素测距方法的流程图。参见图1,基于稀疏直接法的语义要素测距方法可包括以下步骤S102至步骤S106。
步骤S102:使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧道路图像对应的深度图像,并将各深度图像拼接得到半稠密点云。深度图像包含与其对应的道路图像中的部分像素的坐标和深度值。
在本步骤中,各帧道路图像可以由车辆的图像采集设备获取。采集设备可以是摄像头或者相机等设备。轮速可以理解为车轮的转速,当然,轮速也可以理解为车辆的行驶速度。之所以将轮速作为得到各帧道路图像对应的深度图像的一个条件,是因为轮速可以使得到的深度值更加接近真实的深度值。具体地,例如,在没有轮速这个条件时,得到的深度值和真实的深度值之间存在一个比例系数,通过轮速可以得到这个比例系数。将各深度图像拼接得到半稠密点云时,可以依据相机的运动轨迹进行拼接。
并且,各帧道路图像可以为各帧道路图像中关键帧的道路图像。采用关键帧的目的是对稀疏直接法进行加速和提精,例如,相机1秒中可得到30帧道路图像,如果对每帧图像都进行处理,将消耗大量的时间,因此采用一些策略从30帧图像中选取5至10帧图像进行处理,从而提高处理速度。在稀疏直接法中,当相机运动一定距离或者旋转一定角度时,或者相机获取的前后图片的亮度变化大于预设阈值时,可以选择其中的一帧图像作为关键帧图像。由于关键帧的图像是经过一定运动和光照变化得到的,可以提高对语义要素测距的准确性。
稀疏直接法的输入可以是时间上连续的道路图像序列和轮速数据。相机可以采用一个直角坐标系表示,相机光心为坐标系的原点,该坐标系随着车辆移动而移动。可以将相机开始采集时的相机坐标系称为起始坐标系,轨迹可由关键帧位姿组成,关键帧位姿可以是采集到该关键帧图像时的相机坐标系在起始坐标系中的位姿。位姿指的是相机的位置和朝向。
步骤S104:对各帧道路图像进行语义要素分割得到各类型的语义要素。
在本步骤中,步骤S104和步骤102可以没有先后顺序。道路图像分割得到各类型的语义要素的示意图可以参照图2。图2是根据本发明另一个实施例各类型语义要素分割图和半稠密点云的示意图。图2中左上图中包括了分割后的地面要素,左下图中包括了分割后的指示牌要素和杆状物要素,右侧图中为半稠密点云。左侧图像中分割出的地面要素、指示牌要素和杆状物要素在右侧的半稠密点云中可以找到对应的像素。可以通过感知网络对各帧道路图像进行语义要素分割得到各类型的语义要素。感知网络可以为DeepLab v3网络,也可以为其他的感知网络。对各帧道路图像进行语义要素分割可以理解为找到各类型的语义要素在道路图像中的坐标。语义要素可以包括地面要素、指示牌要素和杆状物要素等,这三类语义要素已足够用于语义定位和构建语义地图。地面要素一般可以包括车道线、人行横道以及地面箭头等。图2中的左侧图像为语义要素的分割图像,右侧图像为稀疏直接法根据各帧道路图像和轮速得到的半稠密点云,左侧图像中分割出的地面要素、指示牌要素和杆状物要素在右侧的半稠密点云中可以找到对应的像素。
步骤S106:利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标。
在本实施例中,使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧道路图像对应的深度图像,并将各深度图像拼接得到半稠密点云,对各帧道路图像进行语义要素分割得到各类型的语义要素,利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标,该方法无需使用激光雷达,只需使用车辆的轮速和道路图像即可,依赖的传感器较少,成本较低,并且易于在车辆上实施,具有较高的实施效率;并且,稀疏直接法是一种不使用特征点的视觉SLAM算法,相对于基于特征点的视觉SLAM算法,稀疏直接法得到的深度图像更加稠密,语义要素的信息更加全面,从而对各种语义要素进行多点测距,保证对各种语义要素测距的准确性。另外,上述方法还可以用于众包建图,具有很好的适应性。众包建图是一种利用多辆车采集的语义信息进行建图的方法。
在本发明一个实施例中,利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标,可包括:
从各类型语义要素中选取一种可构建平面方程的要素作为目标要素;当某一类型的语义要素具有平面特征的时候,这类语义要素可以用于构建平面方程,如地面要素、指示牌要素等;
在深度图像中确定与其对应的道路图像中的目标要素对应的目标像素组,目标像素组包含多个具有深度值的像素;
基于相机内参矩阵以及目标像素组中每个像素的深度值和在道路图像中的坐标计算目标像素组的每个像素在相机坐标系中的坐标;具体地,计算相机坐标系中的坐标的公式(1)如下所示
公式(1)中,Pu表示目标像素组中每个像素在道路图像中的坐标;K表示相机内参
矩阵;d表示目标像素组中每个像素的深度值;P表示目标像素组的每个像素在相机坐标系
中的坐标,即
;如图4所示,图4是根据本发明另一个实施例的对目标要素
测距的模型示意图,O表示相机光心;
根据目标像素组的每个像素在相机坐标系中的坐标得到包含平面参数的平面方程;平面方程的公式(2)如下所示
公式(2)中,
表示需要求解的平面参数,
表示目标
像素组的每个像素在相机坐标系中的坐标;
将目标像素组的部分像素在相机坐标系中的坐标代入平面方程确定平面参数;例如,将目标像素组的N个像素在相机坐标系中的坐标代入平面方程后的公式(3)如下所示,将公式(3)中函数值最小时的平面参数作为确定的平面参数,一般情况下,N可以为大于或等于3的整数;
公式(3)中Pi表示目标像素组中第i个目标像素在相机坐标系中的坐标;
根据确定平面参数后的平面方程计算道路图像中各类型语义要素的每个像素在相机坐标系中坐标。
在本实施例中,先计算目标像素组的每个像素在相机坐标系中的坐标,再将目标像素组的部分像素在相机坐标系中的坐标代入平面方程确定平面参数,这种方式可以保证确定的平面参数的准确性。
在本发明一个实施例中,参见图3,图3是根据本发明另一个实施例的地面要素分割图和与其对应的深度图的示意图,图3中右侧深度图可以理解为一个轨迹点(图中的圆点)处的道路图像通过稀疏直接法得到的深度图,箭头指向的左侧要素分割图为该轨迹点处的道路图像对应的分割图。当目标要素为地面要素时,根据确定平面参数后的平面方程计算道路图像中各类型语义要素的每个像素在相机坐标系中坐标,可包括:
根据道路图像中地面要素的每个像素的坐标、相机内参矩阵以及道路图像中地面要素的每个像素在相机坐标系中的z轴分量得到计算道路图像中地面要素的每个像素在相机坐标系中坐标的坐标方程;坐标方程的公式(4)如下所示
公式(4)中,
表示道路图像中地面要素的每个像素的坐标,K表
示相机内参矩阵,z表示道路图像中地面要素的每个像素在相机坐标系中的z轴分量,
表示道路图像中地面要素的每个像素在相机坐标系中坐标;
将坐标方程中用于计算道路图像中地面要素的每个像素在相机坐标系中坐标的部分代入确定平面参数后的平面方程从而确定道路图像中地面要素的每个像素在相机坐标系中的z轴分量;具体地,将坐标方程中用于计算道路图像中地面要素的每个像素在相机坐标系中坐标的部分代入确定平面参数后的平面方程后得到的公式(5)如下所示
将确定的道路图像中地面要素的每个像素在相机坐标系中的z轴分量代入坐标方程得到道路图像中地面要素的每个像素在相机坐标系中坐标。
在本发明一个实施例中,参见图5和图6,图5是根据本发明另一个实施例的指示牌要素分割图和与其对应的深度图的示意图,图6是根据本发明另一个实施例的对指示牌要素测距的模型示意图。图6中O表示相机光心。当目标要素为指示牌要素时,在深度图像中确定与其对应的道路图像中各类型语义要素的目标要素对应的目标像素组,可包括:在深度图像中确定与其对应的道路图像中的指示牌要素对应的指示牌像素组的四个顶点的指示牌像素。
根据确定平面参数后的平面方程计算道路图像中各类型语义要素的每个像素在相机坐标系中坐标,可包括:
根据道路图像中指示牌要素的四个顶点的像素的坐标、相机内参矩阵以及道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量得到计算道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标的坐标方程;坐标方程可以参照上述实施例,这里不再赘述;
将坐标方程中用于计算道路图像中指示牌要素的每个像素在相机坐标系中坐标的部分代入确定平面参数后的平面方程从而确定道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量;
将确定的道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量代入坐标方程得到道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标。
在本实施例中,当目标要素为指示牌要素时,只需要计算道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标即可,无需计算指示牌要素的全部像素在相机坐标系中坐标,这种方式可以大大提高指示牌要素的计算效率。
在本发明一个实施例中,参见图7,图7是根据本发明另一个实施例的杆状物要素分割图和与其对应的深度图的示意图。当目标要素为地面要素,且语义要素包括杆状物要素时,根据确定平面参数后的平面方程计算道路图像中各类型语义要素的每个像素在相机坐标系中坐标,可包括:在深度图像中确定与其对应的道路图像中的杆状物要素对应的杆状像素组,杆状像素组包含多个具有深度值的像素;
基于相机内参矩阵以及杆状像素组中每个像素的深度值和在道路图像中的坐标计算杆状像素组的每个像素在相机坐标系中的坐标;
去掉深度图像中杆状像素组的每个杆状像素在相机坐标系中的垂直坐标,保留水平坐标;具体地,对于相机坐标系,其x轴朝右,y轴朝下,z轴朝前,这里是去掉y轴分量,保留x轴、z轴分量;
对每个杆状像素进行聚类得到至少一个杆状物要素的杆状像素;
计算聚类后的每个杆状像素的水平坐标的平均坐标;
根据确定平面参数后的平面方程找到经过聚类后的每个杆状像素的平均坐标所在位置且与地平面垂直的直线与地平面的交点;
获取位于交点的正上方且至交点的距离为预设杆状高度的顶点位置;
计算交点和与其对应的顶点位置在相机坐标系中的坐标。
在本实施例中,之所以获取位于交点的正上方且至交点的距离为预设杆状高度的顶点位置,是因为实际中的杆状物体一般为具有一定高度的直立物体,且杆状物体固定在地面上,即与地面具有交点,因此,获得交点之后,再根据杆状物体的预设杆状高度得到杆状物体的顶点位置便可以确定杆状物体,即确定杆状物要素。在确定杆状物要素后,只需要得到杆状物要素中的顶点位置和上述交点位置在相机坐标系中的坐标,便可以确定杆状物要素的具体位置。当语义要素包括杆状物要素时,只需要计算杆状物要素两端的的像素在相机坐标系中坐标即可,无需计算杆状物要素的全部像素在相机坐标系中坐标,这种方式可以大大提高杆状物要素的计算效率。另外,杆子像素在相机坐标系中的坐标是离散的,对每个杆状像素进行聚类,可以使最终得到的杆状像素的坐标更加真实的反映杆状物体的位置。
具体地,在本发明一个实施例中,根据确定平面参数后的平面方程找到经过聚类后的每个杆状像素的平均坐标所在位置且与地平面垂直的直线与地平面的交点,可包括:
根据平面方程得到地面法向量;
将地面法向量与直线参数相乘,并与平均坐标相加得到经过平均坐标所在位置且与地平面垂直的直线的直线方程;直线方程的公式(6)如下所示
公式(6)中,
表示地面法向量,即平面方程中确定的平面参数,Pv表示聚类后的
每个杆状像素的水平坐标的平均坐标,
是直线参数;参见图8,图8是根据本发明另一个实
施例的对杆状物要素测距的模型示意图,图8中O表示相机光心,Pv可表示每个杆状像素的
水平坐标的平均坐标;
将直线方程中地面法向量与直线参数相乘,并与平均坐标相加的部分代入上述平面方程的公式(2)中以得到由直线参数、平均坐标和平面参数构成的方程;由直线参数、平均坐标和平面参数构成的方程的公式(7)如下所示
根据直线参数、平均坐标和平面参数构成的方程得到用于表示直线参数的平均坐标和平面参数的运算关系;运算关系的公式(8)如下所示
将运算关系代入直线方程得到交点。
具体地,直线方程中的
表示杆状像素,Pv和
均为已知量,杆状像素的位置
由
决定,如果杆状像素既要在地平面上,也要在杆状物体上,需要将直线方程中地面法向
量与直线参数相乘,并与平均坐标相加的部分代入上述平面方程的公式(2)中得到公式
(7),进而根据公式(7)得到计算
的公式(8),将公式(8)代入直线方程的公式(6)后得到的
公式(9)如下所示
公式(9)中的Pv和
均为已知量,公式(9)的计算结果得到的杆状像素既属于平面
方程,也属于直线方程,即为上述交点。
在发明一个实施例中,对每个杆状像素进行聚类得到至少一个杆状物要素的杆状像素,可包括:
按照预设水平间距对每个杆状像素进行划分,分别将划分在每个预设水平间距内的杆状像素聚类为同一个杆状物的杆状像素。
在本实施例中,预设水平间距可以与杆子之间的实际间距相等。预设水平间距内的杆状像素视为同一个杆状物的杆状像素。具体地,例如,预设水平间距可以为2m、5m、10m等。
参见图9,基于同一构思,本发明还提供了一种基于稀疏直接法的语义要素测距装置900。语义要素测距装置900进而包括图像处理模块901、语义要素分割模块902以及测距模块903。图像处理模块901使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧道路图像对应的深度图像,并将各深度图像拼接得到半稠密点云,深度图像包含与其对应的道路图像中的部分像素的坐标和深度值。
图像处理模块901之所以将轮速作为得到各帧道路图像对应的深度图像的一个条件,是因为轮速可以使得到的深度值更加接近真实的深度值,具体地,例如,在没有轮速这个条件时,得到的深度值和真实的深度值之间存在一个比例系数,通过轮速可以得到这个比例系数。图像处理模块901将各深度图像拼接得到半稠密点云时,可以依据相机的运动轨迹进行拼接。
各帧道路图像为各帧道路图像中关键帧的道路图像。采用关键帧的目的是对稀疏直接法进行加速和提精,例如,相机1秒中可得到30帧道路图像,如果对每帧图像都进行处理,将消耗大量的时间,因此采用一些策略从30帧图像中选取5至10帧图像进行处理,从而提高处理速度。在稀疏直接法中,当相机运动一定距离或者旋转一定角度时,或者相机获取的前后图片的亮度变化大于预设阈值时,可以选择其中的一帧图像作为关键帧图像。由于关键帧的图像是经过一定运动和光照变化得到的,可以提高对语义要素测距的准确性。
稀疏直接法的输入可以是时间上连续的道路图像序列和轮速数据。相机可以采用一个直角坐标系表示,相机光心为坐标系的原点,该坐标系随着车辆移动而移动。可以将相机开始采集时的相机坐标系称为起始坐标系,轨迹可由关键帧位姿组成,关键帧位姿可以是采集到该关键帧图像时的相机坐标系在起始坐标系中的位姿。位姿指的是相机的位置和朝向。
语义要素分割模块902对各帧道路图像进行语义要素分割得到各类型的语义要素。语义要素分割模块902可以通过感知网络对各帧道路图像进行语义要素分割得到各类型的语义要素。感知网络可以为DeepLab v3网络,也可以为其他的感知网络。
测距模块903利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标。
在本实施例中,图像处理模块901使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧道路图像对应的深度图像,并将各深度图像拼接得到半稠密点云,语义要素分割模块902对各帧道路图像进行语义要素分割得到各类型的语义要素,测距模块903利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标,该语义要素测距装置900无需使用激光雷达,只需使用车辆的轮速和道路图像即可,依赖的传感器较少,成本较低,并且易于在车辆上实施,具有较高的实施效率;并且,稀疏直接法是一种不使用特征点的视觉SLAM算法,相对于基于特征点的视觉SLAM算法,稀疏直接法得到的深度图像更加稠密,语义要素的信息更加全面,从而对各种语义要素进行多点测距,保证对各种语义要素测距的准确性。另外,上述语义要素测距装置900还可以用于众包建图,具有很好的适应性。众包建图是一种利用多辆车采集的语义信息进行建图的方法。
在本发明一个实施例中,测距模块903适于从各类型语义要素中选取一种可构建平面方程的要素作为目标要素;
在深度图像中确定与其对应的道路图像中的目标要素对应的目标像素组,目标像素组包含多个具有深度值的像素;
基于相机内参矩阵以及目标像素组中每个像素的深度值和在道路图像中的坐标计算目标像素组的每个像素在相机坐标系中的坐标;
根据目标像素组的每个像素在相机坐标系中的坐标得到包含平面参数的平面方程;
将目标像素组的部分像素在相机坐标系中的坐标代入平面方程确定平面参数;
根据确定平面参数后的平面方程计算道路图像中各类型语义要素的每个像素在相机坐标系中坐标。
在本发明一个实施例中,当目标要素为地面要素时,测距模块903适于根据道路图像中地面要素的每个像素的坐标、相机内参矩阵以及道路图像中地面要素的每个像素在相机坐标系中的z轴分量得到计算道路图像中地面要素的每个像素在相机坐标系中坐标的坐标方程;
将坐标方程中用于计算道路图像中地面要素的每个像素在相机坐标系中坐标的部分代入确定平面参数后的平面方程从而确定道路图像中地面要素的每个像素在相机坐标系中的z轴分量;
将确定的道路图像中地面要素的每个像素在相机坐标系中的z轴分量代入坐标方程得到道路图像中地面要素的每个像素在相机坐标系中坐标。
在本发明一个实施例中,当目标要素为指示牌要素时,测距模块903适于在深度图像中确定与其对应的道路图像中的指示牌要素对应的指示牌像素组的四个顶点的指示牌像素;
根据道路图像中指示牌要素的四个顶点的像素的坐标、相机内参矩阵以及道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量得到计算道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标的坐标方程;
将坐标方程中用于计算道路图像中指示牌要素的每个像素在相机坐标系中坐标的部分代入确定平面参数后的平面方程从而确定道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量;
将确定的道路图像中指示牌要素的四个顶点的像素在相机坐标系中的z轴分量代入坐标方程得到道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标。
在本实施例中,当语义要素包括指示牌要素时,测距模块903只需要计算道路图像中指示牌要素的四个顶点的像素在相机坐标系中坐标即可,无需计算指示牌要素的全部像素在相机坐标系中坐标,这种方式可以大大提高指示牌要素的计算效率。
在本发明一个实施例中,当目标要素为地面要素,且语义要素包括杆状物要素时,测距模块903适于在深度图像中确定与其对应的道路图像中的杆状要素对应的杆状像素组,杆状像素组包含多个具有深度值的像素;
基于相机内参矩阵以及杆状像素组中每个像素的深度值和在道路图像中的坐标计算杆状像素组的每个像素在相机坐标系中的坐标;
去掉深度图像中杆状像素组的每个杆状像素在相机坐标系中的垂直坐标,保留水平坐标;
对每个杆状像素进行聚类得到至少一个杆状物要素的杆状像素;
计算聚类后的每个杆状像素的水平坐标的平均坐标;
根据确定平面参数后的平面方程找到经过聚类后的每个杆状像素的平均坐标所在位置且与地平面垂直的直线与地平面的交点;
获取位于交点的正上方且至交点的距离为预设杆状高度的顶点位置;
计算交点和与其对应的顶点位置在相机坐标系中的坐标。
在本实施例中,当语义要素包括杆状物要素时,测距模块903只需要计算杆状物要素两端的的像素在相机坐标系中坐标即可,无需计算杆状物要素的全部像素在相机坐标系中坐标,这种方式可以大大提高杆状物要素的计算效率。另外,杆子像素在相机坐标系中的坐标是离散的,对每个杆状像素进行聚类,可以使最终得到的杆状像素的坐标更加真实的反映杆状物体的位置。
在本发明一个实施例中,测距模块903适于:
根据平面方程得到地面法向量;
将地面法向量与直线参数相乘,并与平均坐标相加得到经过平均坐标所在位置且与地平面垂直的直线的直线方程;直线方程的公式可以参照上述实施例,这里不再赘述;
将直线方程中地面法向量与直线参数相乘,并与平均坐标相加的部分代入平面方程中以得到由直线参数、平均坐标和平面参数构成的方程;由直线参数、平均坐标和平面参数构成的方程的公式可以参照上述实施例,这里不再赘述;
根据直线参数、平均坐标和平面参数构成的方程得到用于表示直线参数的平均坐标和平面参数的运算关系;运算关系的公式可以参照上述实施例,这里不再赘述;
将运算关系代入直线方程得到交点。
在本发明一个实施例中,测距模块903适于按照预设水平间距对每个杆状像素进行划分,分别将划分在每个预设水平间距内的杆状像素聚类为同一个杆状物的杆状像素。预设水平间距可以与杆子之间的实际间距相等。预设水平间距内的杆状像素视为同一个杆状物的杆状像素。具体地,例如,预设水平间距可以为2m、5m、10m等。
参见图10,基于同一构思,本发明还提供了一种电子设备400。电子设备400可以为一种车机、DHU(娱乐主机和仪表的集成机器)、IHU(Infotainment Head Unit,信息娱乐主机)、IVI(In-Vehicle Infotainment,车载信息娱乐系统)或任意一种车载信息交互终端等。电子设备400可包括可存储器401和处理器402。存储器401内存储有控制程序。控制程序被处理器402执行时用于实现根据上述任一项实施例的基于稀疏直接法的语义要素测距方法。
基于同一构思,本发明还提供了一种计算机存储介质。计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行根据上述任一项实施例的基于稀疏直接法的语义要素测距方法。
上述各个实施例可以任意组合,根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
使用稀疏直接法根据采集的各帧道路图像和车辆的轮速得到各帧道路图像对应的深度图像,并将各深度图像拼接得到半稠密点云,对各帧道路图像进行语义要素分割得到各类型的语义要素,利用半稠密点云中各深度图像包含的道路图像中部分像素的坐标和深度值计算与其对应的道路图像中各类型的语义要素的像素坐标,该方法无需使用激光雷达,只需使用车辆的轮速和道路图像即可,依赖的传感器较少,成本较低,并且易于在车辆上实施,具有较高的实施效率;并且,稀疏直接法是一种不使用特征点的视觉SLAM算法,相对于基于特征点的视觉SLAM算法,稀疏直接法得到的深度图像更加稠密,语义要素的信息更加全面,从而对各种语义要素进行多点测距,保证对各种语义要素测距的准确性。另外,上述方法还可以用于众包建图,具有很好的适应性。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。