一种深度图确定方法及装置与流程

文档序号:23545294发布日期:2021-01-05 20:58阅读:99来源:国知局
一种深度图确定方法及装置与流程

本申请涉及图像处理技术领域,尤其涉及一种深度图确定方法及装置。



背景技术:

通常在构建某一区域的三维地图时,需要先采集该区域内大量的环境图像,并确定各环境图像的深度图,以根据各环境图像的深度图,构建三维地图。常见的确定深度图的方法主要有两种:一种是基于双目视觉系统通过图像匹配确定深度图,另一种是基于激光雷达采集的激光点云确定深度图。

当基于激光点云确定的深度图构建三维地图时,可先在待构建地图的区域内采集若干环境图像,并通过激光雷达采集各环境图像对应的激光点云。之后,针对采集的每张环境图像,根据该环境图像对应的激光点云中的各激光点的位置信息,分别确定各激光点在该环境图像中对应的像素点的深度值。由于激光雷达采集的激光点云较为稀疏,因此还需对采集的激光点云进行稠密化处理,根据各激光点在该环境图像中对应的像素点的深度值,通过深度插值的方法,补充该环境图像中其他像素点的深度值。最后,根据确定出的各像素点的深度值,确定该环境图像的深度图。

但是,实际环境中对体积较小的物体,例如:红绿灯、路灯杆等,由于反射激光的面积较小,因此采集的激光点云中可能没有或很少有位于这类物体上的激光点。使得通过深度插值的方法,补充得到的这类物体在环境图像上对应的像素点的深度值不够准确,确定出的深度图准确度较差。



技术实现要素:

本说明书实施例提供一种深度图确定方法及装置,用于部分解决现有技术中存在的上述问题。

本说明书实施例采用下述技术方案:

本说明书提供的一种深度图确定方法,包括:

获取环境图像以及与所述环境图像对应的各帧激光点云,其中,与所述环境图像对应的各帧激光点云包括一帧标准点云以及若干帧其他点云;

根据所述环境图像对应的标准点云中各激光点的位置信息,分别确定所述标准点云中各激光点在该环境图像中对应的像素点的深度值,以及确定该环境图像中的平滑区域;

根据已确定的位于所述平滑区域内的像素点的深度值,确定该环境图像的第一深度图;

针对每帧其他点云,根据该帧其他点云中各激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,从该帧其他点云中的各激光点中选择目标激光点;

根据各目标激光点的位置信息,分别确定各目标激光点在该环境图像中对应的像素点的深度值,并根据各帧其他点云中各目标激光点在该环境图像中对应的像素点的深度值,确定该环境图像的第二深度图;

根据所述第一深度图以及所述第二深度图,确定该环境图像的综合深度图,所述综合深度图用于构建三维地图。

可选地,根据所述环境图像对应的标准点云中各激光点的位置信息,确定该环境图像中的平滑区域,具体包括:

根据所述环境图像对应的标准点云中各激光点的位置信息,建立德洛内三角网;

针对所述德洛内三角网中的每个三角形,根据组成该三角形的各激光点的位置信息,确定该三角形对应的平面;

从所述德洛内三角网包含的各三角形中,确定与该三角形共边的其他三角形,并确定所述其他三角形对应平面;

分别确定该三角形对应的平面与所述其他三角形对应平面的夹角;

当确定出的各夹角均小于第一预设角度时,确定该三角形对应在环境图像中的区域为平滑区域。

可选地,所述环境图像中的平滑区域中至少包含一个三角形对应的区域;

根据已确定的位于所述平滑区域内的像素点的深度值,确定该环境图像的第一深度图,具体包括:

针对所述平滑区域中每个三角形对应的区域,根据组成该三角形对应的区域的各像素点的深度值,确定位于该三角形对应的区域内其他像素点的深度值;

根据确定出的各三角形对应的区域中像素点的深度值,确定该环境图像的第一深度图。

可选地,针对每帧其他点云,根据该帧其他点云中各激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,从该帧其他点云中的各激光点中选择目标激光点,具体包括:

针对每帧其他点云中的每个激光点,根据该激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,确定该激光点分别与采集该帧其他点云时采集设备的位置的连线对应的第一向量,以及与采集该环境图像时采集设备的位置的连线对应的第二向量,并确定所述第一向量与第二向量之间的夹角;

判断确定出的夹角是否小于第二预设角度;

若是,则确定该激光点是目标激光点;

若否,则确定该激光点不是目标激光点。

可选地,根据所述第一深度图以及所述第二深度图,确定该环境图像的综合深度图,具体包括:

针对该环境图像中的每个像素点,判断所述第一深度图中是否存在该像素点的深度值;

若是,则将该像素点在所述第一深度图中的深度值作为该像素点在综合深度图中的深度值;

若否,则将该像素点在所述第二深度图中的深度值作为该像素点在综合深度图中的深度值;

根据确定出的各像素点的深度值,确定该环境图像的综合深度图。

可选地,根据各帧其他点云中各目标激光点在该环境图像中对应的像素点的深度值,确定该环境图像的第二深度图之前,所述方法还包括:

针对该环境图像中的每个像素点,判断是否存在对应该像素点的目标激光点;

若是,则根据所述目标激光点的位置信息,确定该像素点的深度值;

若否,则确定该像素点的深度值为无穷大。

可选地,根据所述目标激光点的位置信息,确定该像素点的深度值,具体包括:

判断该像素点是否对应一个目标激光点;

若是,则根据该像素点对应的目标激光点的位置信息,确定该像素点的深度值;

若否,则根据该像素点对应的各目标激光点的位置信息,确定该像素点对应的各深度值,并从各深度值中确定最小的深度值作为该像素点的深度值。

可选地,确定该环境图像的第二深度图之前,所述方法还包括:

针对该环境图像中的每个像素点,确定以该像素点为中心,在预设尺寸的滑动窗口内的各像素点;

根据基于目标激光点确定出的各像素点的深度值中最小的深度值,确定该像素点用于确定第二深度图的深度值。

本说明书提供一种深度图确定装置,包括:

获取模块,获取环境图像以及与所述环境图像对应的各帧激光点云,其中,与所述环境图像对应的各帧激光点云包括一帧标准点云以及若干帧其他点云;

第一确定模块,根据所述环境图像对应的标准点云中各激光点的位置信息,分别确定所述标准点云中各激光点在该环境图像中对应的像素点的深度值,以及确定该环境图像中的平滑区域;

第二确定模块,根据已确定的位于所述平滑区域内的像素点的深度值,确定该环境图像的第一深度图;

第三确定模块,针对每帧其他点云,根据该帧其他点云中各激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,从该帧其他点云中的各激光点中选择目标激光点;

第四确定模块,根据各目标激光点的位置信息,分别确定各目标激光点在该环境图像中对应的像素点的深度值,并根据各帧其他点云中各目标激光点在该环境图像中对应的像素点的深度值,确定该环境图像的第二深度图;

第五确定模块,根据所述第一深度图以及所述第二深度图,确定该环境图像的综合深度图,所述综合深度图用于构建三维地图。

本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述深度图确定方法。

本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述深度图确定方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书中,可先获取环境图像以及该环境图像对应的一帧标准点云以及若干帧其他点云,之后,根据该标准点云中各激光点的位置信息,分别确定各激光点在该环境图像中对应的像素点的深度值,以及确定该环境图像中的平滑区域,并根据已确定的位于平滑区域内的像素点的深度值,确定该环境图像的第一深度图。然后,根据各帧其他点云中各激光点的位置信息、采集各帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,筛选出目标激光点,并根据各目标激光点的位置信息,确定对应在该环境图像中的像素点的深度值,以确定该环境图像的第二深度图。最后,根据该第一深度图以及该第二深度图,确定该环境图像的综合深度图,并根据该综合深度图构建三维地图。基于标准点云确定环境图像中平滑区域的像素点的深度值,以确定第一深度图,并基于各其他点云中的目标激光点确定第二深度图,通过第一深度图以及第二深度图相结合的方式,更精准的确定环境图像中各像素点的深度值。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本说明书实施例提供的一种深度图确定方法的流程示意图;

图2为本说明书实施例提供的确定其它点云的方法示意图;

图3为本说明书实施例提供的德洛内三角网的示意图;

图4为本说明书实施例提供的确定平面之间夹角方法的示意图;

图5为本说明书实施例提供的一种深度插值确定方法的示意图;

图6为本说明书实施例提供的一种深度插值确定方法的示意图;

图7为本说明书实施例提供的一种采集激光点云示意图;

图8a为本说明书实施例提供的一种确定目标激光点的示意图;

图8b为本说明书实施例提供的一种确定目标激光点的示意图;

图9为本说明书实施例提供的一种采集环境图像的示意图;

图10为本说明书实施例提供的一种最小值滤波方法的示意图;

图11为本说明书实施例提供的一种深度图确定装置的示意图;

图12为本说明书实施例提供的实现深度图确定方法的电子设备示意图;

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本说明书实施例提供的一种深度图确定方法的流程示意图,具体可包括以下步骤:

s100:获取环境图像以及与所述环境图像对应的各帧激光点云。

目前,无人车的导航以及定位方法一般依赖于预先构建的三维地图,在构建三维地图时,需要先采集待构建区域内的环境图像,以根据采集的环境图像进行构建。由于三维地图中需要包含有三维立体空间维度的信息,而环境图像对应是二维平面的信息,因此在根据环境图像构建三维地图时,还需确定包含环境图像深度信息的深度图,以根据深度图构建三维地图。

通常构建三维地图、确定深度图等过程,由于数据处理量较大,因此由服务器执行,同理本说明书实施例提供的深度图确定过程中,也可由服务器根据激光点云和环境图像,确定用于构建三维地图的深度图。需要说明的是,本说明书中该服务器可以是单个的服务器,也可以是多个服务器组成的系统,例如:分布式服务器等,本说明书对此不做限制,可根据需要设置。

于是,在本说明书中,服务器可先获取图像采集设备(例如:相机等)采集的待构建区域内的环境图像,并获取激光点云采集设备(例如:激光雷达等)采集待构建区域内的激光点云。

进一步的,由于激光点云采集设备采集的激光点云的密度较低,采集到的激光点较为稀疏,为增加采集的激光点的数量,可确定图像采集设备采集该环境图像时的位置,并确定在该位置周围采集的多帧激光点云。由于在该位置周围采集的帧激光点云中,通常部分激光点是包含在该环境图像的视野内的,因此可以增加激光点的数量,便于更准确的确定该环境图像的深度图。

在采集环境图像和激光点云时,通常在同一车辆上设置图像采集设备和激光点云采集设备,并按照相同的频率,同时采集环境图像以及激光点云。并且,为了减少后续根据激光点的坐标,确定像素点深度值的复杂程度,减少误差,一般情况下图像采集设备与激光点云采集设备设置在同一位置,或者邻近位置上。

具体的,服务器可获取在待构建区域内采集的环境图像以及各帧激光点云,并根据该环境图像的采集时间戳以及各帧激光点云的采集时间戳,确定与该环境图像的采集时间最近的一帧激光点云,作为该环境图像对应的标准点云。并且,该服务器还可根据在该环境图像的采集时间戳,以及预设的时长,确定在该采集时间戳前后预设时长内采集的各帧激光点云,其中,预设时长可根据需要设置,本说明书对此不做限制。如图2所示,假设采集该环境图像时的采集时间戳为20s,则根据预设时长,可确定在该20s前后0s、10s、30s、40s采集到的各帧激光点云。最后,将该环境图像对应的一帧标准点云以及若干帧其他点云,作为该环境图像对应的各帧激光点云。

其中,构建三维地图需要采集待构建区域内大量的环境图像,并确定各环境图像的深度图,本说明书以确定一张环境图像的深度图为例进行说明。

s102:根据所述环境图像对应的标准点云中各激光点的位置信息,分别确定所述标准点云中各激光点在该环境图像中对应的像素点的深度值,以及确定该环境图像中的平滑区域。

在本说明书实施例中,当通过步骤s100获取到环境图像以及该环境图像对应的标准点云后,便可将环境图像对应的标准点云中的激光点投影到环境图像中,确定各激光点在环境图像中对应的像素点的深度值,以根据环境图像中各像素点的深度值,确定环境图像的深度图。

进一步的,由于通过激光点云采集设备采集的激光点较为稀疏,为了确定出更多像素点的深度值,可通过深度插值的方法,补充该环境图像中像素点的深度值。而通常当环境图像中采集的空间物体的表面较为平滑时,平滑表面对应到图像中像素点的深度值变化更加容易预估,则通过深度插值的方法,补充得到的像素点的深度值较为准确。若其表面较为粗糙、凹凸不平,则通过深度插值的方法,补充得到的像素点的深度值准确度下降。于是,为了准确的补充像素点的深度值,服务器可确定该环境图像中包含的物体的光滑表面在该环境图像中对应的区域,作为该环境图像的平滑区域。可根据已确定出的位于平滑区域内的各像素点的深度值,通过深度插值的方法,补充该环境图像中平滑区域内各像素点的深度值。

具体的,该服务器可根据该环境图像对应的标准点云中各激光点的位置信息,将该标准点云中各激光点投影到该环境图像中,确定各激光点在该环境图像中对应的像素点以及各像素点的深度值。其中,激光点的位置信息至少包含激光点的三维坐标,还可包含采集该激光点时激光点云采集设备的采集角度等信息。并根据该环境图像对应的标准点云中各激光点的位置信息,确定该环境图像中的平滑区域。

其中,在根据该环境图像对应的标准点云中各激光点的位置信息,确定该环境图像中的平滑区域时,可先根据该环境图像对应的标准点云中各激光点的位置信息,建立德洛内(delaunay)三角网,该delaunay三角网由环境空间中若干三角形组成。如图3所示,图3中为环境图像中包含的各环境物体,分别有灯杆、建筑物以及车辆,图中分布在建筑物以及车辆上的各黑点表示采集到的标准点云中的各激光点,根据各激光点的位置信息,连线组成若干三角形,形成delaunay三角网。

之后,针对该delaunay三角网中的每个三角形,根据组成该三角形的各激光点的位置信息,确定该三角形对应的平面的法向量。以及从该delaunay三角网包含的各三角形中,确定与该三角形共边的其他三角形,并确定各其他三角形对应平面的法向量。然后,分别确定该三角形对应的平面的法向量与各其他三角形对应平面的法向量的夹角,并针对确定出的每个法向量之间的夹角,判断该夹角是否大于90°,若大于90°,则确定该夹角的补角为对应的两个平面之间的夹角。若小于90°,则确定该夹角为对应的两个平面之间的夹角。最后根据确定出的该三角形对应的平面分别与各其他三角形对应平面之间的夹角,当确定出的各平面之间的夹角均小于第一预设角度时,将该三角形对应在环境图像中的区域作为该环境图像中的平滑区域。其中,该第一预设角度可根据需要设置,本说明书对此不做限制。

以确定两个三角形所在平面的法向量之间的夹角为例进行说明,如图4所示,假设图4中的平面n以及平面m分别为三角形对应的平面,为平面n的法向量,为平面m的法向量,之间的夹角为角1。若角1大于90°时,则角1的补角为平面n与平面m之间的夹角,若角1小于90°时,则角1为平面n与平面m之间的夹角。之后可继续判断该平面n与平面m之间的夹角是否小于第一预设角度。

另外,在本说明书中确定三角形对应的平面的法向量,以法向量之间的夹角确定平面之间的夹角时,也可先确定该图像采集装置的中心与三角形中物体上的任一点的连线,并根据该连线以及该图像采集装置指向三角形的方向,确定参照向量。之后,将与该参照向量之间的夹角小于90°的法向量作为该三角形对应的平面的法向量,也就是说,该参照向量与该三角形对应的平面的法向量之间的夹角小于90°。最后,分别确定该三角形对应的平面的法向量与各其他三角形对应平面的法向量的夹角,并将该夹角作为该三角形对应的平面与各其他三角形对应平面之间的夹角。

当然,也可将与该参照向量之间的夹角大于90°的法向量作为该三角形对应的平面的法向量,也就是说,该参照向量与该三角形对应的平面的法向量之间的夹角大于90°。本说明书对确定三角形对应的平面的法向量的具体方式不做限制,可根据需要设置。

此外,在根据该环境图像对应的标准点云中各激光点的位置信息,确定该环境图像中的平滑区域时。还可根据激光点云采集设备采集到的该标准点云中各激光点的点云信息,确定各激光点的纹理信息,并根据各激光点的纹理信息,确定纹理相近的激光点组成的多边形,并将该多边形对应在环境图像中的区域,作为该环境图像的平滑区域。

需要说明的是,由于激光点云采集设备通常可采集到周围环境360°范围,而图像采集设备的视角通常小于180°,可采集到周围环境中视角范围内的环境信息。因此将标准点云中的激光点投影到环境图像之前,可先根据图像采集设备的视角,确定该标准点云中在该视角范围内的各激光点,再将在该视角范围内的各激光点投影到该环境图像中。当然,也可将该标准点云中的各激光点均进行投影,则只有位于该视角范围内的激光点才能投影到该环境图像中。

s104:根据已确定的位于所述平滑区域内的像素点的深度值,确定该环境图像的第一深度图。

当通过步骤s102确定出各激光点投影到环境图像中对应的像素点的深度值后,便可确定该环境图像的第一深度图。但由于该标准点云中的激光点较为稀疏,投影到环境图像中对应的像素点的数量也较少,因此在本说明书实施例中,可通过对该环境图像中的平滑区域进行深度插值的方法,补充该环境图像中的平滑区域的像素点的深度值。

具体的,该服务器可先根据确定出的该环境图像中的平滑区域,从各激光点投影对应的各像素点中,确定位于该环境图像中平滑区域内的各像素点。之后根据已确定的位于该平滑区域内的各像素点的深度值,确定位于该平滑区域内其他像素点的深度值。最后,根据确定出的位于该环境图像中平滑区域内的各像素点的深度值,确定该环境图像的第一深度图。

并且,在根据已确定的位于该平滑区域内的各像素点的深度值,确定位于该平滑区域内其他像素点的深度值时。由步骤s102可知,该环境图像中的平滑区域中至少包含该delaunay三角网中一个三角形对应的区域,因此可先针对该平滑区域中每个三角形对应的区域,根据组成该三角形对应的区域的各像素点的深度值,通过深度插值的方法确定位于该三角形对应的区域内其他像素点的深度值。之后,再根据确定出的各三角形对应的区域中像素点的深度值,确定该环境图像的第一深度图。

另外,该服务器根据组成该三角形对应的区域的各像素点的深度值,通过深度插值的方法确定位于该三角形对应的区域内其他像素点的深度值时,如图5所示,图中大的矩形表示采集到的环境图像,若干小的矩形表示该环境图像中的各像素点,假设平滑区域中三角形对应的区域为图中三角形框出的区域,该区域内包含有像素点a~像素点f。组成该三角形对应的区域的各像素点分别为像素点a、像素点c、像素点e,像素点a的深度值为3米,像素点c的深度值为3米,像素点e的深度值为5米,则通过深度插值的方法,可确定像素点b的深度值为3米,像素点d的深度值为4米,像素点f的深度值为4米。

此外,在根据组成该三角形对应的区域的各像素点的深度值,通过深度插值的方法确定位于该三角形对应的区域内其他像素点的深度值时,也可针对该区域内的每个其他像素点,根据该其他像素点与组成该三角形对应的区域的各像素点的距离,确定组成该三角形对应的区域的各像素点的深度值对该其他像素点的深度值影响的权重,之后根据确定出的权重以及组成该三角形对应的区域的各像素点的深度值,确定该其他像素点的深度值。

如图6所示,图中灰色圆表示该环境图像中的各像素点,假设组成该三角形对应的区域的各像素点分别为w、y、z,深度值分别为5米,10米,15米,针对该三角形对应的区域中的某一像素点x,该像素点x与像素点w的距离为5厘米,即,图中像素点w与像素点x连接的虚线长度为5厘米,与像素点y的距离为10厘米,即,图中像素点w与像素点y连接的虚线长度为10厘米,与像素点z的距离为15厘米,即,图中像素点w与像素点z连接的虚线长度为15厘米。由于在环境图像的平滑区域中,像素点的距离越近,像素点的深度值越接近,因此可根据像素点w、y、z分别与像素点x的距离,确定像素点w的深度值对确定该像素点x的深度值影响的权重为1/2,像素点y的深度值对确定该像素点x的深度值影响的权重为1/3,像素点z的深度值对确定该像素点x的深度值影响的权重为1/6,因此可确定该像素点x的深度值为

本说明书对于深度插值的方法不做限定,具体可以是最近邻插值算法、双线性内插算法等,本说明书对此不做限制,可根据需要设置。

s106:针对每帧其他点云,根据该帧其他点云中各激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,从该帧其他点云中的各激光点中选择目标激光点。

在本说明书实施例中,当通过步骤s104确定出该环境图像的第一深度图后,由于一帧标准点云中包含的激光点较为稀疏,对于环境中体积较小的物体,例如,红绿灯、路灯杆等,其反射激光的面积较小,因此标准点云中可能未包含这类环境物体上的激光点。但是,这类物体通常也属于地图中的重要的信息,因此在确定深度图时也需要这类物体在环境图像中的深度值,于是该服务器还可通过该环境图像对应的多帧其他点云,通过累积的方式增加小体积物体上的激光点,以补充该环境图像中像素点的深度值。

进一步的,由于在补充该环境图像中像素点的深度值时,需要补充的是可在该环境图像中采集到的激光点,但是激光点云采集设备采集范围为周围环境360°,因此在该环境图像的其他点云包含的各激光点中,可能存在一些在该环境图像中未能采集到的激光点。

例如,图7为激光点云采集设备在车辆行驶过程中采集激光点云的过程,图中四角星表示激光点,立方体表示环境中的建筑物,以建筑物a面和b面进行说明。假设在0s时刻采集了一张环境图像以及标准点云,其中,该环境图像中包含有建筑物的a面信息,标准点云包含a面上的激光点,但是不可能包含b面上的激光点。车辆在周围采集的其他点云,作为该环境图像对应的激光点云,如,在50s时刻采集的激光点云。可见,在50s时刻采集的其他点云中可包含该建筑物b面上的激光点,显然该建筑物b面上的激光点不做能为补充的激光点,补充该环境图像中像素点的深度值。因此,该服务器需要针对每帧其他点云,从该帧其他点云中的各激光点中选择目标激光点。其中,目标激光点为在采集该环境图像位置发射的激光可到达的物体表面的激光点。也就是说,在该激光点云采集设备的位置与物体表面的某个位置的直线上没有障碍物,使从该激光点云采集设备的位置向该物体表面的位置发射的激光,可到达该某个位置,并得到的该物体表面的某个位置的位置信息的激光点。

具体的,该服务器可针对每帧其他点云中的每个激光点,根据该激光点的位置信息、采集该帧其他点云时激光点云采集设备的位置以及采集该环境图像时图像采集设备的位置,确定该激光点与采集该帧其他点云时激光点云采集设备的位置的连线对应的第一向量,该第一向量的方向为从该激光点的位置指向采集该帧其他点云时激光点云采集设备的位置。并确定该激光点与采集该环境图像时图像采集设备的位置的连线对应的第二向量,该第二向量的方向为从该激光点的位置指向采集该环境图像时图像采集设备的位置。之后,确定第一向量与第二向量之间的夹角,并判断该夹角是否小于第二预设角度,若该夹角小于第二预设角度,则说明该激光点是目标激光点,否则,则说明该激光点不是目标激光点。

如图8a所示,图中立方体表示建筑物,假设第二预设阈值为90度,在车辆行驶过程中0s时刻采集了一张环境图像,在20s时刻采集了一帧该环境图像对应的其他点云,该其他点云中包含有激光点q,位于建筑物正面。则根据该激光点q的位置,确定该激光点q与0s时刻图像采集设备的位置的连线对应的第二向量,表示在采集环境图像时观察到的该激光点q的方向,并确定该激光点q与20s时刻激光点云采集设备的位置的连线对应的第一向量,表示采集20s时刻的其他点云时观察到的该激光点q的方向,该第一向量与第二向量组成的夹角为30度,小于90度,因此可认为该激光点q可在该环境图像中观察到,该激光点q为目标激光点。

假设车辆行驶过程中在50s时刻采集了另一帧该环境图像对应的其他点云,该50s时刻采集的其他点云中包含一激光点p,位于建筑物背面,根据该激光点p的位置,可确定该激光点p分别与50s时刻激光点云采集设备的位置的连线对应的第一向量,以及与0s时刻图像采集设备的位置的连线对应的第二向量,确定该第一向量与第二向量之间的夹角为130度,大于90度,则在该环境图像中观察不到该激光点p,因此该激光点p不是目标激光点。

此外,需要说明的是,当确定某激光点对应的第一向量与第二向量之间的夹角大于90°时,可能存在两种情况。第一种情况为在该环境图像中观察不到该激光点,如上述图8a所示,激光点p位于建筑物背面。这种情况下,由于该激光点在环境图像中观察不到,因此可直接删除。

第二种情况为在该环境图像中可观察到该激光点,如图8b所示,假设图8b中夹角x为120°,夹角y为90°,激光点k位于建筑物右侧面。在这种情况下,在0s到40s之间采集的其它点云中可能包含该激光点k,则在0s到40s之间的其它激光点云中,该激光点k对应的第一向量与第二向量之间的夹角小于90°,已经确定为目标激光点,则在50s采集的激光点云中筛选目标激光点云时,不将该激光点k作为目标激光点,对于确定深度图的影响较小。

综上,当激光点对应的第一向量与第二向量之间的夹角大于第二预设角度时,可确定该激光点不是目标激光点。

s108:根据各目标激光点的位置信息,分别确定各目标激光点在该环境图像中对应的像素点的深度值,并根据各帧其他点云中各目标激光点在该环境图像中对应的像素点的深度值,确定该环境图像的第二深度图。

当通过步骤s106从各帧其他点云包含的各激光点中筛选出目标激光点后,便可将确定出的各帧其他点云中的目标激光点,投影到该环境图像中,确定各目标激光点对应的像素点的深度值,以根据确定出的该环境图像中各像素点的深度值,确定该环境图像的第二深度图。

具体的,该服务器可根据各帧其他点云中目标激光点的位置信息,分别将各目标激光点投影到该环境图像中,确定各目标激光点在该环境图像中对应的像素点的深度值。之后,根据确定出的各帧其他点云中各目标激光点对应的像素点的深度值,确定该环境图像的第二深度图。

进一步的,由于采集的环境图像中可能存在天空等无法确定深度的环境物体,通过激光点云采集设备无法采集这类物体上的激光点,也无法确定这类物体对应的区域在环境图像中的深度信息,于是,可将这类物体对应在环境图像中的各像素点的深度值赋值为无穷大,表明这类物体距离采集设备无穷远。具体的,针对该环境图像中的每个像素点,可先判断是否存在对应该像素点的目标激光点,若存在对应该像素点的目标激光点,则确定可在该像素点对应的环境物体上采集到激光点,可根据该目标激光点的位置信息,确定该像素点的深度值,若不存在对应该像素点的目标激光点,则说明在该像素点对应的环境物体上未采集到激光点,可确定该像素点的深度值为无穷大。

更进一步的,由于环境中各物体分布复杂,在采集环境图像时,该环境图像中可能包含前景物体和背景物体。如图9所示,当在采集方向采集环境图像时,环境图像中建筑物1为前景物体,建筑物2为背景物体。由于建筑物1的高度低于建筑物1的高度,因此采集的环境图像中存在建筑物1以及建筑物2的未遮挡部分。当沿该采集方向行驶采集各帧其它激光点云时,其它激光点云中可能包含建筑物2上被遮挡部分的目标激光点,因此将各其它点云的目标激光点云投影到该环境图像中时,可能出现多个目标激光点投影到该环境图像中的同一像素点上的情况,于是确定出该同一像素点的多个深度值,但由于在采集环境图像建筑物2部分被建筑物1遮挡,因此采集到的深度值应为建筑物1的深度值。又因为前景物体的深度值往往小于背景物体的深度值。因此在确定像素点的深度值之前,还需判断该像素点是否仅对应一个目标激光点,若该像素点仅对应一个目标激光点,则根据该像素点对应的目标激光点的位置信息,确定该像素点的深度值。若该像素点对应多个目标激光点,则根据该像素点对应的各目标激光点的位置信息,确定该像素点对应的各深度值,并从各深度值中确定最小的深度值作为该像素点的深度值。

此外,为进一步消除位于背景物体上的目标激光点对确定像素点的深度值的影响,可通过最小值滤波的方法,更准确地确定该环境图像中各像素点的深度值。具体的,可依次针对该环境图像中的每个像素点,根据投影到该像素点上的目标激光点的位置信息,确定该像素点的深度值,并根据确定出的各像素点的深度值,确定中间深度图。之后,针对该中间深度图中的每个像素点,以该像素点为中心,确定在预设尺寸的滑动窗口内的各像素点,并将确定出的各像素点的深度值中最小的深度值,作为该像素点在第二深度图的深度值。最后,根据最小值滤波后的各像素点的深度值,确定第二深度图。

如图10所示,图10中的大矩形表示环境图像,若干小矩形表示该环境图像中的各像素点,图10中示例性的标出了部分像素点在中间深度图中的深度值,各小矩形中的数字表示各小矩形对应像素点基于目标激光点投影得到的深度值。假设滑动窗口的预设尺寸为3×3,图10中上方的图表示中间深度图,下方的图表示第二深度图。当采用滑动窗口进行最小深度值滤波时,可将该滑动窗口放置到该中间深度图上,如图10上方左图所示,该滑动窗口内各像素点的像素值分别为3、2、1、2、10、3、3、4、2,其中最小的深度值为1。于是,可确定该滑动窗口中心的像素点的深度值为1,如图10下方左图所示,在第二深度图中,该滑动窗口中心的像素点的深度值为1。之后,将该滑动窗口向右移动,如图10上方中间图所示,移动后的滑动窗口内各像素点的像素值分别为2、1、1、10、3、2、4、2、2,其中最小的深度值为1。于是,可确定该滑动窗口中心的像素点的深度值为1,如图10下方中间图所示,在第二深度图中该滑动窗口中心的像素点的深度值为1。然后,将该滑动窗口向下移动,如图10上方右图所示,移动后的滑动窗口内各像素点的像素值分别为10、3、2、4、2、2、7、8、4,其中最小的深度值为2。于是,可确定该滑动窗口中心的像素点的深度值为2,如图10下方右图所示,在第二深度图中该滑动窗口中心的像素点的深度值为2。通过在中间深度图中按照从左到右、从上到下的顺序依次移动该滑动窗口,通过最小值滤波的方式确定各滑动窗口的中心像素点的深度值,以确定第二深度图中各像素点的深度值。

s110:根据所述第一深度图以及所述第二深度图,确定该环境图像的综合深度图,所述综合深度图用于构建三维地图。

由于该环境图像的第一深度图仅根据该环境图像的标准点云确定,确定出的具有深度值的像素点较为稀疏。而该环境图像的第二深度图根据该环境图像周围的若干帧其他点云确定,但在采集若干帧其他点云时,环境中的移动物体(例如:车辆、行人等)可能多次出现,导致在各帧其他点云中均存在该移动物体上的激光点,则在投影回该环境图像中时,产生该移动物体的拖影,导致确定出的像素点的深度值不够准确。

于是,在本说明书实施例中,可根据该环境图像的第一深度图以及该环境图像的第二深度图,确定该环境图像的综合深度图,以根据该环境图像的综合深度图,构建三维地图。基于本说明书确定出的深度图所构建的三维地图可以用于无人车的导航或者定位,当然,也可用于电子地图中,向用户展示更加精准的三维地图,使用户基于三维地图可更轻松的确定自身位置。

具体的,该服务器可先针对该环境图像中的每个像素点,判断在该第一深度图中是否存在该像素点的深度值,若在该第一深度图中存在该像素点的深度值,则将该像素点在该第一深度图中的深度值作为该像素点在综合深度图中的深度值。若在该第一深度图中不存在该像素点的深度值,则将该像素点在该第二深度图中的深度值作为该像素点在综合深度图中的深度值。之后,根据确定出的各像素点的深度值,确定该环境图像的综合深度图。

基于图1所示的深度图确定方法,可先获取环境图像以及该环境图像对应的一帧标准点云以及若干帧其他点云,之后,根据该标准点云中各激光点的位置信息,分别确定各激光点在该环境图像中对应的像素点的深度值,以及确定该环境图像中的平滑区域,并根据已确定的位于平滑区域内的像素点的深度值,确定该环境图像的第一深度图。然后,根据各帧其他点云中各激光点的位置信息、采集各帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,筛选出目标激光点,并根据各目标激光点的位置信息,确定对应在该环境图像中的像素点的深度值,以确定该环境图像的第二深度图。最后,根据该第一深度图以及该第二深度图,确定该环境图像的综合深度图,并根据该综合深度图构建三维地图。基于标准点云确定环境图像中平滑区域的像素点的深度值,以确定第一深度图,并基于各其他点云中的目标激光点确定第二深度图,通过第一深度图以及第二深度图相结合的方式,更精准的确定环境图像中各像素点的深度值。

另外,在本说明书步骤s100中,确定该环境图像对应的各帧激光点云时,也可根据采集该环境图像时图像采集设备的位姿以及采集各帧激光点云时激光点云设备的位姿,确定位姿最近的一帧激光点云,作为该环境图像对应的标准点云,并确定位姿在预设范围内的若干帧激光点云,作为该环境图像对应的若干帧其他点云。其中,预设范围均可根据需要设置,本说明书对此不做限制。

在本说明书步骤s104中,通过深度插值的方法,补充该平滑区域内各像素点的深度值时。可针对该delaunay三角网中每个三角形,确定组成该三角形的各激光点,之后,根据组成该三角形的各激光点的位置信息,通过深度插值的方法,补全该三角形中的各激光点。最后,将补全后的该三角形中的各激光点投影回该环境图像中,确定各激光点在该环境图像中对应像素点的深度值。

由于补全后的空间三角形中的各激光点的数量较为密集,将该三角形中各激光点投影回环境图像中对应的区域的像素点时,可能出现同一像素点对应多个激光点,并确定出该同一像素点的若干深度值。此时,可从若干深度值选择一个深度值,作为该像素点在第一深度图中的深度值。例如:可选取各深度值中的中位数或平均值。

在本说明书另一种实施例中,在确定该环境图像的第二深度图时,还可根据各其他点云中各目标激光点对应的像素点的深度值以及该标准点云中各激光点对应的像素点的深度值共同确定。

需要说明的是,在本说明书步骤s110中,确定各像素点的深度值时,优先确定该像素点在该第一深度图中的深度值,并将该深度值作为该像素点在综合深度图中的深度值。只有当第一深度图中不存在该像素点的深度值时,再确定该像素点在该第二深度图中的深度值作为该像素点在综合深度图中的深度值,解决了第二深度图中移动物体导致的拖影问题。

在本说明书步骤s104中,根据已确定的位于平滑区域内的像素点的深度值,确定该环境图像的第一深度图时,也可根据深度学习训练得到的深度学习模型,补充该环境图像中平滑区域内各像素点的像素值。具体的,针对该平滑区域内的每个像素点,确定该像素点的特征信息,该像素点的特征信息至少包含该像素点的位置,该像素点的颜色、纹理以及该像素点周围像素点的特征。之后,将该像素点的特征信息输入预先训练的深度学习模型,得到该深度学习模型输出的该像素点的深度值。其中,该深度学习模型可以预先以该环境图像中已确定出的像素点以及像素点的深度值作为训练样本进行训练。

在本说明书步骤s108中,确定该环境图像的第二深度图时,也可通过上述步骤s102~s104所述的方法,针对每帧其他点云,根据该帧其他点云中各激光点的位置信息,确定该帧其他点云中各激光点在该环境图像中对应的像素点的深度值,以及该环境图像中的平滑区域。之后,根据该帧其他点云中各激光点在该环境图像中对应的像素点的深度值,补充该环境图像中的平滑区域内各像素点的深度值,以确定该环境图像的第二深度图。

另外,基于本说明书提供的深度图确定方法,所构建的三维地图可用于无人车的定位以及导航过程中。其中,该无人车可用于无人配送等领域,当无人车进行配送时,服务器可预先通过该深度图确定方法,构建三维地图,并通过构建出的三维地图,规划配送路径进行配送。具体可用于:如,使用无人车进行快递、外卖等配送的场景中。

进一步地,在本说明书中,无人车是对具有移动功能的无人驾驶设备的代称,也就是说,基于本说明书提供的方法确定出的深度图,所构建的三维地图也可用于各种无人驾驶设备的定位以及导航。其中,无人驾驶设备可包括:无人车、具有移动功能的机器人、智能车辆或具有无人驾驶功能的车辆等等,本说明书对此不做限制。

基于图1所示的深度值确定方法,本说明书实施例还对应提供一种深度值确定装置的结构示意图,如图11所示。

图11为本说明书实施例提供的一种深度值确定装置的结构示意图,所述装置包括:

获取模块200,获取环境图像以及与所述环境图像对应的各帧激光点云,其中,与所述环境图像对应的各帧激光点云包括一帧标准点云以及若干帧其他点云;

第一确定模块202,根据所述环境图像对应的标准点云中各激光点的位置信息,分别确定所述标准点云中各激光点在该环境图像中对应的像素点的深度值,以及确定该环境图像中的平滑区域;

第二确定模块204,根据已确定的位于所述平滑区域内的像素点的深度值,确定该环境图像的第一深度图;

第三确定模块206,针对每帧其他点云,根据该帧其他点云中各激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,从该帧其他点云中的各激光点中选择目标激光点;

第四确定模块208,根据各目标激光点的位置信息,分别确定各目标激光点在该环境图像中对应的像素点的深度值,并根据各帧其他点云中各目标激光点在该环境图像中对应的像素点的深度值,确定该环境图像的第二深度图;

第五确定模块210,根据所述第一深度图以及所述第二深度图,确定该环境图像的综合深度图,所述综合深度图用于构建三维地图。

可选地,所述第一确定模块202具体用于,根据所述环境图像对应的标准点云中各激光点的位置信息,建立德洛内三角网,针对所述德洛内三角网中的每个三角形,根据组成该三角形的各激光点的位置信息,确定该三角形对应的平面,从所述德洛内三角网包含的各三角形中,确定与该三角形共边的其他三角形,并确定所述其他三角形对应平面,分别确定该三角形对应的平面与所述其他三角形对应平面的夹角,当确定出的各夹角均小于第一预设角度时,确定该三角形对应在环境图像中的区域为平滑区域。

可选地,所述环境图像中的平滑区域中至少包含一个三角形对应的区域,所述第二确定模块204具体用于,针对所述平滑区域中每个三角形对应的区域,根据组成该三角形对应的区域的各像素点的深度值,确定位于该三角形对应的区域内其他像素点的深度值,根据确定出的各三角形对应的区域中像素点的深度值,确定该环境图像的第一深度图。

可选地,所述第三确定模块206具体用于,针对每帧其他点云中的每个激光点,根据该激光点的位置信息、采集该帧其他点云时采集设备的位置以及采集该环境图像时采集设备的位置,确定该激光点分别与采集该帧其他点云时采集设备的位置的连线对应的第一向量,以及与采集该环境图像时采集设备的位置的连线对应的第二向量,并确定所述第一向量与第二向量之间的夹角,判断确定出的夹角是否小于第二预设角度,若是,则确定该激光点是目标激光点,若否,则确定该激光点不是目标激光点。

可选地,所述第五确定模块210具体用于,针对该环境图像中的每个像素点,判断所述第一深度图中是否存在该像素点的深度值,若是,则将该像素点在所述第一深度图中的深度值作为该像素点在综合深度图中的深度值,若否,则将该像素点在所述第二深度图中的深度值作为该像素点在综合深度图中的深度值,根据确定出的各像素点的深度值,确定该环境图像的综合深度图。

可选地,所述第四确定模块208还用于,针对该环境图像中的每个像素点,判断是否存在对应该像素点的目标激光点,若是,则根据所述目标激光点的位置信息,确定该像素点的深度值,若否,则确定该像素点的深度值为无穷大。

可选地,所述第四确定模块208还用于,判断该像素点是否对应一个目标激光点,若是,则根据该像素点对应的目标激光点的位置信息,确定该像素点的深度值,若否,则根据该像素点对应的各目标激光点的位置信息,确定该像素点对应的各深度值,并从各深度值中确定最小的深度值作为该像素点的深度值。

可选地,所述第四确定模块208还用于,针对该环境图像中的每个像素点,确定以该像素点为中心,在预设尺寸的滑动窗口内的各像素点,根据基于目标激光点确定出的各像素点的深度值中最小的深度值,确定该像素点用于确定第二深度图的深度值。

本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的深度图确定方法。

基于图1所示的深度图确定方法,本说明书实施例还提出了图12所示的电子设备的示意结构图。如图12,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的深度图确定方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1