专利详情

标题一种三维点云对齐的方法和装置
[标]当前申请(专利权)人华为技术有限公司 | 南开大学
申请日2017年9月19日
申请号CN201710858162.2
公开(公告)日2021年2月23日
公开(公告)号CN109523581B
授权日-
法律状态/事件授权
专利类型授权发明
发明人任博 | 王亚慧 | 张德军
受理局中国
当前申请人(专利权)地址518129 广东省深圳市龙岗区坂田华为总部办公楼 (广东,深圳,龙岗区)
IPC分类号G06T7/32
国民经济行业分类号I6571 | I6572 | I6579
代理机构北京中博世达专利商标代理有限公司
代理人申健
被引用专利数量-
专利价值$ 230,000

摘要

本申请实施例公开了一种三维点云对齐的方法和装置,涉及数据处理技术领域,有助于提高点云对齐过程中确定的相对位姿的准确性。该方法包括:获取至少两个点对,点对由目标点云中的第一点和源点云中与第一点对应的第二点构成;根据至少两个点对的加权距面距离,确定目标点云与源点云之间的相对位姿,加权距面距离由累加至少两个点对中每个点对的距面距离和每个点对对应的权重的乘积获得,距面距离为第一点和第二点之间的距离在以第二点为切点的切平面的目标法线上的投影长度,目标法线和切平面交于第二点,权重用于表征第一点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关性;根据相对位姿调整目标点云的位姿。

1.一种三维点云对齐的方法,其特征在于,包括:

获取至少两个点对,所述点对由目标点云中的第一点和源点云中与所述第一点对应的第二点构成;

根据所述至少两个点对的加权距面距离,确定所述目标点云与所述源点云之间的相对位姿,其中,所述加权距面距离由累加所述至少两个点对中每个点对的距面距离和所述每个点对对应的权重的乘积获得,所述距面距离为所述第一点和所述第二点之间的距离在以所述第二点为切点的切平面的目标法线上的投影长度,所述目标法线和所述切平面交于所述第二点,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性;

根据所述相对位姿调整所述目标点云的位姿。

2.根据权利要求1所述的方法,其特征在于,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性,包括:

所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得。

3.根据权利要求2所述的方法,其特征在于,在所述计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积之前,还包括:

确定在所述周边预设范围内的点中,深度值不为0的点的个数大于第一阈值;

对应的,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得,包括:

当所述深度值不为0的点的个数大于所述第一阈值时,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和所述第一预设值的乘积获得。

4.根据权利要求3所述的方法,其特征在于,当所述深度值不为0的点的个数小于等于所述第一阈值时,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性,包括:

所述权重为第二预设值。

5.根据权利要求1所述的方法,其特征在于,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性,包括:

所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,其中,所述类协方差矩阵为N为第k个所述对应点的周边预设范围内的深度值不为0的点的集合,|N|为所述集合中的点的个数,k为正整数;其中,xk为所述深度图像中的第k个所述对应点在所述深度图像中的坐标值,x为所述集合中的点在所述深度图像中的坐标值,或者,xk为所述深度图像中的第k个所述对应点在所述目标点云中的坐标值,x为所述集合中的点在所述目标点云中的坐标值。

6.根据权利要求5所述的方法,其特征在于,在所述计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积之前,还包括:

确定在所述周边预设范围内的点中,所述集合中的点的个数大于第二阈值;

对应的,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,包括:

当所述集合中的点的个数大于所述第二阈值时,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和所述第三预设值的乘积获得。

7.根据权利要求6所述的方法,其特征在于,当所述集合中的点的个数小于等于所述第二阈值时,所述权重用于表征点对与所述点对的周边点对的相关性,包括:

所述权重为第四预设值。

8.根据权利要求1至7任一项所述的方法,其特征在于,在所述确定所述目标点云与所述源点云之间的相对位姿之前,所述方法还包括:

获取所述目标点云中的异常点,其中,所述异常点是所述目标点云中不属于任一点对的点;

对应的,所述根据所述至少两个点对的加权距面距离,确定所述目标点云与所述源点云之间的相对位姿,包括:

根据所述至少两个点对的加权距面距离和所述异常点产生的能量损失之和,确定所述目标点云与所述源点云之间的相对位姿,所述能量损失由如下公式表示:



其中,Ω为所述异常点的集合,vj为第j个所述异常点的坐标值,nj为所述第j个所述异常点对应的单位法向量,a为预设常数,j为正整数,为所述相对位姿。

9.一种三维点云对齐的装置,其特征在于,包括:

获取模块,用于获取至少两个点对,所述点对由目标点云中的第一点和源点云中与所述第一点对应的第二点构成;

确定模块,用于根据所述至少两个点对的加权距面距离,确定所述目标点云与所述源点云之间的相对位姿,其中,所述加权距面距离由累加所述至少两个点对中每个点对的距面距离和所述每个点对对应的权重的乘积获得,所述距面距离为所述第一点和所述第二点之间的距离在以所述第二点为切点的切平面的目标法线上的投影长度,所述目标法线和所述切平面交于所述第二点,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性;

调整模块,用于根据所述相对位姿调整所述目标点云的位姿。

10.根据权利要求9所述的装置,其特征在于,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性,包括:

所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得。

11.根据权利要求10所述的装置,其特征在于,

所述确定模块还用于,确定在所述周边预设范围内的点中,深度值不为0的点的个数大于第一阈值;

对应的,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得,包括:

当所述深度值不为0的点的个数大于所述第一阈值时,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的协方差矩阵和所述第一预设值的乘积获得。

12.根据权利要求11所述的装置,其特征在于,当所述深度值不为0的点的个数小于等于所述第一阈值时,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性,包括:

所述权重为第二预设值。

13.根据权利要求9所述的装置,其特征在于,所述权重用于表征所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的相关性,包括:

所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,其中,所述类协方差矩阵为N为第k个所述对应点的周边预设范围内的深度值不为0的点的集合,|N|为所述集合中的点的个数,k为正整数;其中,xk为所述深度图像中的第k个所述对应点在所述深度图像中的坐标值,x为所述集合中的点在所述深度图像中的坐标值,或者,xk为所述深度图像中的第k个所述对应点在所述目标点云中的坐标值,x为所述集合中的点在所述目标点云中的坐标值。

14.根据权利要求13所述的装置,其特征在于,

所述确定模块还用于,确定在所述周边预设范围内的点中,所述集合中的点的个数大于第二阈值;

对应的,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,包括:

当所述集合中的点的个数大于所述第二阈值时,所述权重由计算所述第一点在所述目标点云的深度图像中的对应点与所述对应点的周边预设范围内的点的类协方差矩阵和所述第三预设值的乘积获得。

15.根据权利要求14所述的装置,其特征在于,当所述集合中的点的个数小于等于所述第二阈值时,所述权重用于表征点对与所述点对的周边点对的相关性,包括:

所述权重为第四预设值。

16.根据权利要求9至15任一项所述的装置,其特征在于,

所述获取模块还用于,获取所述目标点云中的异常点,其中,所述异常点是所述目标点云中不属于任一点对的点;

对应的,所述确定模块具体用于:根据所述至少两个点对的加权距面距离和所述异常点产生的能量损失之和,确定所述目标点云与所述源点云之间的相对位姿,所述能量损失由如下公式表示:



其中,Ω为所述异常点的集合,vj为第j个所述异常点的坐标值,nj为所述第j个所述异常点对应的单位法向量,a为预设常数,j为正整数,为所述相对位姿。

17.一种三维点云对齐的装置,其特征在于,包括:处理器和存储器;其中,所述存储器用于存储计算机执行指令,当所述装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述装置执行如权利要求1至8任一项所述的三维点云对齐的方法。

18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得如权利要求1至8任一项所述的三维点云对齐的方法被执行。

技术领域

[0001]本申请涉及数据处理技术领域,尤其涉及一种三维点云对齐的方法和装置。

背景技术

[0002]迭代最近点(iterative closest point,ICP)算法是局部点云对齐算法中最受欢迎的算法之一。ICP算法应用于点云对齐场景时具体过程如下:通过快速迭代确定出目标点云(例如当前帧深度图像对应的点云)与源点云(例如当前帧的前一帧深度图像对应的点云)之间的相对位姿,然后根据相对位姿调整目标点云的位姿,使得目标点云与源点云对齐。

[0003]目前,在ICP算法应用于点云对齐场景中时,在确定相对位姿时,对目标点云各个方向上的偏移采用了相同的距离评价标准,这样会导致点云对齐过程中确定的相对位姿不准确。

发明内容

[0004]本申请提供了一种三维点云对齐的方法和装置,有助于提高点云对齐过程中确定的相对位姿的准确性。

[0005]第一方面,本申请提供了一种三维点云对齐的方法。该方法可以包括如下步骤:获取至少两个点对,点对由目标点云中的第一点和源点云中与第一点对应的第二点构成;然后,根据至少两个点对的加权距面距离,确定目标点云与源点云之间的相对位姿,其中,加权距面距离由累加该至少两个点对中每个点对的距面距离和每个点对对应的权重的乘积获得,距面距离为第一点和第二点之间的距离在以第二点为切点的切平面的目标法线上的投影长度,目标法线和该切平面交于第二点,权重用于表征第一点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关性;根据该相对位姿调整目标点云的位姿。其中,该至少两个点对可以是源点云和目标点云中的部分或全部点对。该技术方案,在点云对齐的过程中,采用了不同的距离评价标准,有助于实现提高点云对齐过程中确定的相对位姿的准确性。

[0006]在一种可能的设计中,权重用于表征第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的相关性,可以包括:权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得。

[0007]在一种可能的设计中,在计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积之前,该方法还可以包括:确定在该周边预设范围内的点中,深度值不为0的点的个数大于第一阈值。对应的,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得,可以包括:当深度值不为0的点的个数大于第一阈值时,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得。可选的,当深度值不为0的点的个数小于等于第一阈值时,权重用于表征第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的相关性,可以包括:权重为第二预设值。其中,第二预设值具体可以是一个预设矩阵。这样,可以进一步提高点云对齐过程中确定的相对位姿的准确性。

[0008]在一种可能的设计中,权重用于表征第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的相关性,可以包括:权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,其中,类协方差矩阵为N为该深度图像中的第k个对应点的周边预设范围内的深度值不为0的点的集合,|N|为集合中的点的个数,k为正整数;其中,xk为该深度图像中的第k个对应点在该深度图像中的坐标值,x为集合中的点在该深度图像中的坐标值,或者,xk为该深度图像中的第k个对应点在目标点云中的坐标值,x为集合N中的点在目标点云中的坐标值。在上述基于协方差矩阵确定权重的是技术方案中,需要计算集合N中的多个点的坐标值的均值,在该可能的设计中,不需要计算集合N中多个点的坐标值的均值,因此可以减少计算量。

[0009]在一种可能的设计中,在计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积之前,该方法还可以包括:确定在该周边预设范围内的点中,集合N中的点的个数大于第二阈值。对应的,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,可以包括:当集合N中的点的个数大于第二阈值时,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得。可选的,当集合N中的点的个数小于等于第二阈值时,权重用于表征点对与点对的周边点对的相关性,可以包括:权重为第四预设值。第四预设值具体可以是一个预设矩阵。这样,可以进一步提高点云对齐过程中确定的相对位姿的准确性。

[0010]在一种可能的设计中,在确定目标点云与源点云之间的相对位姿之前,该方法还可以包括:获取目标点云中的异常点,其中,异常点是目标点云中不属于任一点对的点。对应的,根据至少两个点对的加权距面距离,确定目标点云与源点云之间的相对位姿,可以包括:根据至少两个点对的加权距面距离和异常点产生的能量损失之和,确定目标点云与源点云之间的相对位姿,能量损失由如下公式表示:其中,Ω为异常点的集合,vj为第j个异常点的坐标值,nj为第j个异常点对应的单位法向量,a为预设常数,j为正整数,为相对位姿。该可能的设计,在确定相对位姿时,考虑了异常点的能量损失,这样,可以进一步提高点云对齐过程中确定的相对位姿的准确性。

[0011]第二方面,本申请提供了一种三维点云对齐的装置,该装置可以实现第一方面提供的任一种三维点云对齐的方法。该装置可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。

[0012]在一种可能的设计中,该装置可以包括:存储器和处理器。其中,存储器用于存储计算机执行指令,当该装置运行时,处理器执行存储器存储的计算机执行指令,以使该装置执行上述第一方面提供的任一种三维点云对齐的方法。

[0013]在一种可能的设计中,该装置可以包括:执行上述第一方面提供的任一方法的功能模块。例如,可以包括:获取模块、确定模块和调整模块。其中,获取模块用于获取至少两个点对,点对由目标点云中的第一点和源点云中与第一点对应的第二点构成。确定模块用于根据至少两个点对的加权距面距离,确定目标点云与源点云之间的相对位姿,其中,加权距面距离由累加该至少两个点对中每个点对的距面距离和每个点对对应的权重的乘积获得,距面距离为第一点和第二点之间的距离在以第二点为切点的切平面的目标法线上的投影长度,目标法线和该切平面交于第二点,权重用于表征第一点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关性。调整模块用于根据该相对位姿调整目标点云的位姿。

[0014]在一种可能的设计中,权重用于表征第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的相关性,可以包括:权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得。

[0015]在一种可能的设计中,确定模块还可以用于确定在该周边预设范围内的点中,深度值不为0的点的个数大于第一阈值。对应的,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得,可以包括:当深度值不为0的点的个数大于第一阈值时,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的协方差矩阵和第一预设值的乘积获得。可选的,当深度值不为0的点的个数小于等于第一阈值时,权重用于表征第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的相关性,可以包括:权重为第二预设值。

[0016]在一种可能的设计中,权重用于表征第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的相关性,可以包括:权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,其中,类协方差矩阵为N为该深度图像中的第k个对应点的周边预设范围内的深度值不为0的点的集合,|N|为集合中的点的个数,k为正整数;其中,xk为该深度图像中的第k个对应点在该深度图像中的坐标值,x为集合N中的点在该深度图像中的坐标值,或者,xk为该深度图像中的第k个对应点在目标点云中的坐标值,x为集合N中的点在目标点云中的坐标值。

[0017]在一种可能的设计中,确定模块还可以用于确定在该周边预设范围内的点中,集合N中的点的个数大于第二阈值。对应的,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得,可以包括:当集合N中的点的个数大于第二阈值时,权重由计算第一点在目标点云的深度图像中的对应点与对应点的周边预设范围内的点的类协方差矩阵和第三预设值的乘积获得。可选的,当集合N中的点的个数小于等于第二阈值时,权重用于表征点对与点对的周边点对的相关性,可以包括:权重为第四预设值。

[0018]在一种可能的设计中,获取模块还可以用于获取目标点云中的异常点,其中,异常点是目标点云中不属于任一点对的点。对应的,确定模块具体可以用于:根据至少两个点对的加权距面距离和异常点产生的能量损失之和,确定目标点云与源点云之间的相对位姿,能量损失由如下公式表示:其中,Ω为异常点的集合,vj为第j个异常点的坐标值,nj为第j个异常点对应的单位法向量,a为预设常数,j为正整数,为相对位姿。

[0019]第三方面,本申请提供了一种三维点云对齐的方法。该方法可以包括如下步骤:获取至少两个点对,点对由目标点云中的第一点和源点云中与第一点对应的第二点构成;以及获取目标点云中的异常点,其中,异常点是目标点云中不属于任一点对的点。根据至少两个点对的距面距离之和和异常点产生的能量损失之和,确定目标点云与源点云之间的相对位姿,其中,能量损失由如下公式表示:其中,Ω为异常点的集合,vj为第j个异常点的坐标值,nj为第j个异常点对应的单位法向量,a为预设常数,j为正整数。距面距离为第一点和第二点之间的距离在以第二点为切点的切平面的目标法线上的投影长度,目标法线和该切平面交于第二点。根据该相对位姿调整目标点云的位姿。该技术方案中,在确定相对位姿时,考虑了异常点的能量损失,这样,可以提高点云对齐过程中确定的相对位姿的准确性。

[0020]第四方面,本申请提供了一种三维点云对齐的装置。该装置可以实现第三方面提供的三维点云对齐的方法。该装置可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。

[0021]在一种可能的设计中,该装置可以包括:存储器和处理器。其中,存储器用于存储计算机执行指令,当该装置运行时,处理器执行存储器存储的计算机执行指令,以使该装置执行上述第三方面提供的三维点云对齐的方法。

[0022]在一种可能的设计中,该装置可以包括:执行上述第三方面提供的方法的功能模块。例如,可以包括:获取模块、确定模块和调整模块。其中,获取模块用于获取至少两个点对,点对由目标点云中的第一点和源点云中与第一点对应的第二点构成;以及获取目标点云中的异常点,其中,异常点是目标点云中不属于任一点对的点。确定模块用于根据至少两个点对的距面距离之和和异常点产生的能量损失之和,确定目标点云与源点云之间的相对位姿,其中,能量损失由如下公式表示:其中,Ω为异常点的集合,vj为第j个异常点的坐标值,nj为第j个异常点对应的单位法向量,a为预设常数,j为正整数。距面距离为第一点和第二点之间的距离在以第二点为切点的切平面的目标法线上的投影长度,目标法线和该切平面交于第二点。调整模块用于根据该相对位姿调整目标点云的位姿。

[0023]本申请还提供了一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时,使得上述第一方面或第三方面所述的任一方法被执行。

[0024]本申请还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第三方面所述的任一方法。

[0025]可以理解地,上述提供的任一种装置或计算机可读存储介质或计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。

附图说明

[0026]图1为本申请实施例提供的技术方案所适用的一种场景的示意图;

[0027]图2为本申请实施例提供的一种点对的示意图;

[0028]图3为本申请实施例提供的一种三维点云对齐的方法的流程示意图;

[0029]图4为本申请实施例提供的一种三维点云对齐的方法的流程示意图;

[0030]图5为本申请实施例提供的一种获取点对的距面距离的权重的方法的流程示意图;

[0031]图6为本申请实施例提供的另一种三维点云对齐的方法的流程示意图;

[0032]图7为本申请实施例提供的一种三维点云对齐的装置的结构示意图;

[0033]图8为本申请实施例提供的另一种三维点云对齐的装置的结构示意图。

具体实施方式

[0034]近年来,ICP算法以其简单快速有效的特性更是在实时同步定位与地图构建(simultaneous localization and mapping,SLAM)应用如实时三维重建、增强现实、混合现实等应用场景以及机器人领域中获得了广泛的应用。以ICP算法应用于实时三维重建应用场景中为例对ICP算法的应用场景进行说明:用户使用深度相机扫描所要重建的目标场景,在不同的时刻t1、t2、t3,相机分别处于不同的位姿(分别表示为T1、T2、T3),并以不同的角度朝向目标场景,因此深度摄像机分别捕捉到了三个不同时刻的深度图像,如图1所示;然后,将深度图像反投影至三维空间得到目标场景不同视角的三维点云;接着,通过ICP算法对齐不同时刻的点云,以将不同角度的点云拼接成如图1所示的场景三维模型。

[0035]以下,对本申请中的相关术语及技术进行说明,以方便读者理解:

[0036]1)、深度图像,点云(point cloud),源点云,目标点云

[0037]深度图像(depth image),也可以被称为距离影像(range image),是指将从图像采集器(例如深度传感器,或深度相机)到场景中各点的距离(即深度)作为像素值的图像。深度图像直接反映了景物可见表面的几何形状。点云是在获取物体表面每个采样点的空间坐标后,得到的点的集合。

[0038]其中,深度图像经过坐标转换可以计算得到点云,有规则及必要信息的点云也可以反算为深度图像。关于如何根据深度图像得到其对应的点云,以及如何根据点云反算出其对应的深度图像,本申请不进行限定。例如,根据深度图像和深度传感器的参数,计算得到该深度图像对应的点云。或者,根据点云和深度传感器的参数,反算得到该点云对应的深度图像。需要说明的是,本申请中,将根据某一深度图像得到的点云,称为该深度图像的点云。相应的,该深度图像即为该点云的深度图像。

[0039]例如,假设点云中的点在该点云中的坐标标记为P(xw,yw,zw),该点在该点云的深度图像中的坐标标记为P'(u,v),其深度值标记是Zc。则P与P'之间的转换关系可例如但不限于通过如下公式表示:

[0040]

[0041]其中,表示相机的内参矩阵,u0表示光心在x轴上的坐标值,v0表示光心在y轴上的坐标值,fx表示相机的焦距在x轴上的坐标值,fy表示相机的焦距在y轴上的坐标值。[R t]表示相机的外参矩阵,R是3*3的旋转矩阵,t是3*1的平移矩阵。

[0042]本申请中涉及源点云和目标点云。通常,源点云和目标点云是依据对同一场景从不同视角下采集到的深度图像得到的点云。源点云也可以被称为参考点云,其可以是依据当前深度图像的前一帧深度图像得到的点云,也可以是3d模型对应的点云等。当然本申请不限于此。目标点云也可以被称为输入点云,其可以是依据当前深度图像得到的点云。

[0043]目标点云中的部分或全部的点,可以在源点云中找到对应点。目标点云中的点与该点在源点云中的对应点构成一个点对。本申请对获取目标点云中的点在源点云中的对应点的具体实现方式不进行限定,例如,目标点云中的点s的对应点的获取方式可以如下:将目标点云中的点s在目标相平面坐标系中的坐标(x1,y1),转换至源相平面坐标系中,得到(x2,y2);其中,目标相平面是指生成目标点云时相机的成像平面,源相平面是指生成源点云时相机的成像平面;将源相平面坐标系中本身存在的坐标为(x2,y2)的点标记为点d。然后,获取点s的深度值与点d的深度值的差值,若该差值小于等于阈值,则将该点d作为点s在源点云中的对应点。其中,点s的深度值的获取方式如下:将点s在目标相平面坐标系下的坐标(x2,y2)转换为在目标点云坐标系中的坐标(x2',y2',d2),该坐标中的深度值d2即为点s的深度值。点d的深度值的获取方式如下:将点d在源相平面坐标系下的坐标(x1,y2)转换为在源点云坐标系中的坐标(x1',y1',d1),该坐标中的深度值d1即为点d的深度值。

[0044]目标点云中的在源点云中找不到对应点的点,被称为异常点(outlier)。例如,上述示例中,若点s的深度值与点d的深度值的差值大于阈值,则将点s作为异常点;或者,若源相平面中找不到坐标为(x2,y2)的点,则将点s作为异常点。

[0045]为了便于描述,在本申请的一些实施例中,将目标点云中的点称为第一点,将源点云中的点称为第二点。基于此,一个点对是由一个第一点和该第一点对应的第二点构成的。

[0046]2)、点对的距面距离,至少两个点对的加权距面距离

[0047]一个点对的距面距离,是指该点对的第一点和该点对的第二点之间的距离在以第二点为切点的切平面的目标法线上的投影长度,其中,目标法线和该切平面交于第二点。

[0048]如图2所示,假设曲线1表示源点云,曲线2表示目标点云。其中,d1、d2和d3是源点云上的3个点(即第二点),s1、s2和s3是目标点云上的3个点(即第一点)。目标点云中的点与源点云中的点构成的点对如下:(s1,d1)、(s2,d2)和(s3,d3)。那么,点对(s1,d1)的距面距离,是指点s1与点d1之间的距离在以点d1为切点的切平面的目标法线n1上的投影长度l1。点对(s2,d2)的距面距离,是指点s2与点d2之间的距离在点d2为切点的切平面的目标法线n2上的投影长度l2。点对(s3,d3)的距面距离,是指点s3与点d3之间的距离在以点d3为切点的切平面的目标法线n3上的投影长度l3。

[0049]至少两个点对的加权距面距离,由累加该至少两个点对中每个点对的距面距离和每个点对对应的权重的乘积获得。其中,点对对应的权重,即是该点对的距面距离的权重。本申请中,权重可以是一个值,也可以是一个矩阵。由于相比权重是一个值来说,权重是一个矩阵时,能够表达的信息更丰富,因此,下文中均以此为例进行说明。需要说明的是,若权重是一个矩阵,则权重的大小具体是指该权重的行列式的值的大小。

[0050]3)、能量函数

[0051]能量函数,是用于计算目标点云与源点云的相对位姿而设计的一个函数,即是关于相对位姿的一个函数。相对位姿是指相机拍摄用于生成源点云的图像(例如深度图像等)时相机的位姿,相对于拍摄用于生成目标点云的图像(例如深度图像等)时相机的位姿的偏差。相对位姿可以通过拍摄这两帧图像过程中,相机的旋转矩阵和位移矢量(即平移矩阵)来描述。

[0052]在本申请的一些实施例中,能量函数可以用于表征至少两个点对的加权距面距离。

[0053]在本申请的另一些实施例中,能量函数可以用于表征至少两个点对的加权距面距离与各异常点产生的能量损失之和的和。

[0054]在本申请的另一些实施例中,能量函数可以用于表征至少两个点对的距面距离之和与各异常点产生的能量损失之和的和。

[0055]4)、其他术语

[0056]本申请中的术语“多个”是指两个或两个以上。本申请中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。本申请中的术语“第一”、“第二”等是为了区分不同的对象,并不限定该不同对象的顺序。

[0057]本申请中的“点云中的点/对应点”、“深度图像中的点/对应点”等类似的描述中的“点”均是指像素点。本申请中的“各点”、“各点对”等类似的描述,均是为了提高点云对齐过程中确定的相对位姿的准确性,或者让本领域技术人员更好地理解本申请的角度而描述的。实际实现时,不一定需要用到每一个点或者每一个点对等。

[0058]本申请的一种针对点到点的ICP测度方法的实施例,示例性的,如图3所示,包括如下步骤S101~S105:

[0059]S101:获取目标点云的深度图像和该深度图像的初始位姿的估计值T0,以及源点云。然后,根据目标点云的深度图像和该深度图像的初始位姿的估计值T0,计算得到目标点云。其中,目标点云的初始位姿的估计值即是该目标点云的深度图像的初始位姿的估计值T0。例如,T0可以是目标点云的深度图像的上一帧深度图像的位姿,也可以是随机的一个位姿等。

[0060]S102:获取源点云与当前位姿下的目标点云中的点对。其中,目标点云中的一个点与该点在源点云中的对应点构成一个点对。其中,关于获取点对的具体实现方式可参考上文,此处不再赘述。

[0061]S103:根据如下能量函数,计算能量函数的值E:

[0062]

[0063]其中,φ是目标点云的一个子集,该子集中的每个点均能够在源点云中找到对应点。D是点对的距面距离,用于描述φ中的点与该点在源点云中的对应点之间的距离在以该对应点为切点的切平面的目标法线上的投影长度,其中,目标法线和该切平面交于该对应点。在三维坐标系中,D是3*1的列向量,DT是D的转秩。D与目标点云的当前位姿,以及目标点云与源点云之间的相对位姿相关。

[0064]例如,D的一种计算公式可以是:

[0065]又如,D的一种计算公式可以是:

[0066]其中,在上述任一种D的计算公式中,D表示:位姿为Tx的目标点云中的第k个点(如图2中的s1、s2、s3)与源点云中的对应点vk(如图2中的d1、d2、d3)之间的距离在以对应点vk为切点的切平面的经vk的目标法线(如n1、n2、n3)上的投影长度(如图2中的l1、l2、l3),nk为目标法线的单位向量。其中,表示目标点云是依据第n帧深度图像得到的点云中的第k个点。Tx表示目标点云的当前位姿的估计值。为目标点云相对于源点云的位姿,即目标点云与源点云之间的相对位姿。

[0067]S104:最小化能量函数得到其中,最小化能量函数的方法可以为最小二乘法、牛顿法或者梯度下降法等。具体的:通过多次迭代,计算能量函数的值E最小时的应注意,每一次迭代过程中例如但不限于执行步骤S102~S103。其中,在步骤S102中,首次迭代过程中,目标点云的当前位姿的估计值是目标点云的初始位姿的估计值,即T0。后续迭代过程中,目标点云的当前位姿的估计值是根据上一次迭代过程计算得到的相对位姿确定的。

[0068]上述S103~S104可以认为是:根据点对的距面距离之和确定目标点云与源点云之间的相对位姿的具体实现。S104中计算能量函数的值E最小时的可以理解为:计算点对的距面距离之和最小时的

[0069]S105:根据步骤S104中得到的相对位姿调整目标点云的位姿。

[0070]上述方法中,在点云发生偏移的各个方向上采用了相同的距离评价标准,这样会导致点云对齐过程中确定的相对位姿不准确。

[0071]在本申请的另一个实施例中提供了一种三维点云对齐的方法和装置。其基本思想为:确定相对位姿时,对不同的点对的距面距离附以不同的权重。其中,权重用于表征目标点云中的点在该目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关性。以下,结合附图对技术方案进行说明。

[0072]如图4所示,为本申请实施例提供的一种三维点云对齐的方法的示意图。具体可以包括如下步骤S201~S205:

[0073]S201~S202:可以参考上述S101~S102,当然本申请不限于此。

[0074]S203:根据如下能量函数,计算能量函数的值E:

[0075]

[0076]其中,G表示点对的距面距离的权重。权重用于表征目标点云中的点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关性。

[0077]S204~S205:可以参考上述S104~S105,当然本申请不限于此。

[0078]上述S203~S204可以认为是:根据至少两个点对的加权距面距离确定目标点云与源点云之间的相对位姿的具体实现。S204中,计算能量函数的值E最小时的可以理解为:计算点对的加权距面距离最小时的

[0079]本实施例,在三维点云对齐的过程中,采用了不同的距离评价标准,具体的,每一点对的距面距离的权重与该点对中所属目标点云的点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关。相比现有技术,有助于提高确定的相对位姿的准确性。

[0080]在本申请的一些实施例中,权重用于表征目标点云中的点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的相关性,包括:权重由计算目标点云中的点在目标点云的深度图像中的对应点与该对应点的周边预设范围内的点的协方差矩阵/类协方差矩阵和预设值的乘积获得。其中,预设值可以是一个常数,当权重是一个值时,该预设值用于调节权重的大小。当权重是一个矩阵时,该预设值用于调节权重中的元素的大小,进而调整该权重的大小。其中,在基于协方差矩阵计算权重和基于类协方差矩阵计算权重时,该预设值可以相同也可以不同。

[0081]为了便于计算,该对应点的周边预设范围,可以例如但不限于包括以下任一种:

[0082]1)、以该对应点为中心的预设半径范围,该情况下,该预设范围是圆形区域。

[0083]2)、以该对应点为中心的m*m的窗口,m是窗口的边长,本申请对m的取值不进行限定,如是5个像素点;该情况下,该预设范围是正方形区域。

[0084]上述仅为示例,其不构成对该预设范围的限定。实际实现时,该对应点也可以不是该预设范围的中心,或者,该预设范围还可以是其他的形状等。

[0085]以点对(s1,d1)为例,其距面距离的权重可以包括:目标点云的深度图像中的点S1与该点S1周边预设范围内的点的协方差矩阵/类协方差矩阵,其中,深度图像中的点S1是目标点云的点s1在目标点云的深度图像中的对应点。

[0086]需要说明的是,可以利用目标点云的深度图像所在的坐标系中的坐标值计算该协方差距阵/类协方差矩阵,也可以在目标点云所在的坐标系中的坐标值计算该协方差距阵/类协方差矩阵。以点对(s1,d1)为例,该点对(s1,d1)的距面距离的权重可以是根据目标点云的深度图像中的点S1在该深度图像中的坐标值,以及点S1周边预设范围内的点在该深度图像中的坐标值,计算得到的。或者,该点对(s1,d1)的距面距离的权重可以是根据目标点云的点s1在目标点云中的坐标值,以及点S1周边预设范围的点在目标点云中的坐标值,计算得到的。

[0087]如图5所示,为本申请实施例提供的一种获取点对的距面距离的权重的方法的流程示意图。具体可以包括如下步骤S203a~S203d:

[0088]S203a:对于任一点对,获取点对中所属目标点云的点在目标点云的深度图像中的对应点。

[0089]S203b:确定该对应点的周边预设范围。

[0090]S203c:确定该预设范围中每个有效点的三维坐标值,以及有效点的个数。

[0091]S203d:根据以下公式3~公式6中的任一种,确定该点对的距面距离的权重。具体的:

[0092]若权重是该点对中所属目标点云的点在目标点云的深度图像中的对应点的周边预设范围内的点的协方差距阵,则第k个点对的距面距离的权重Gk的计算公式可以表示为如下公式3:

[0093]

[0094]其中,N是第k个点对中所属目标点云的点在目标点云的深度图像中的对应点的周边预设范围内的深度值不为0的点构成的集合。|N|是集合N中的点的个数。K为正整数。x是集合N中的点的在目标点云的深度图像中的坐标值,是集合N中多个点在目标点云的深度图像中的坐标值的均值。或者,x是集合N中的点的在目标点云中的坐标值,是集合N中多个点在目标点云中的坐标值的均值。该多个点可以是集合N中的部分或所有点。例如,的计算公式可以如下:xi是集合N中的第i个点。是的转秩。

[0095]若权重是该点对中所属目标点云的点在目标点云的深度图像中的对应点的周边预设范围内的点的类协方差距阵,则第k个点对的距面距离的权重Gk的计算公式可以表示为如下公式4:

[0096]

[0097]其中,N是第k个点对中所属目标点云的点在目标点云的深度图像中的对应点的周边预设范围内的深度值不为0的点构成的集合。|N|是集合N中的点的个数。K为正整数。x是集合N中的点的在目标点云的深度图像中的坐标值,xk是第k个点对中所属目标点云的点在目标点云的深度图像中的对应点在目标点云的深度图像中的坐标值。或者,x是集合N中的点的在目标点云中的坐标值,xk是第k个点对中所属目标点云的点在目标点云的深度图像中的对应点在目标点云中的坐标值。(x-xk)T是(x-xk)的转秩。

[0098]可选的,考虑到目标点云的深度图像中可能会存在很多空洞(即深度值为0的像素点),即目标点云中的某个或某些点在目标点云的深度图像中的对应点的周边预设范围内的有效点(即深度值不为0的像素点)的个数小于等于阈值,(下文中用kx表示该阈值)。若使用协方差矩阵/类协方差矩阵作为权重,会导致计算结果不精确。因此,可以采用一个预设值(具体可以是一个预设矩阵)代替上述协方差矩阵/类协方差矩阵。该情况下,第k个点对的距面距离的权重Gk的计算公式可以表示为如下公式5或公式6:

[0099]

[0100]

[0101]其中,Kn是预设值,Kn可以是一个经验值,例如可以是0.01,当然不限于此。I是单位矩阵,具体可以是3*3的单位矩阵。kr是预设值,kr的具体取值可以根据实际需求(例如实际精确度需求)确定。其中,在基于协方差矩阵计算权重和基于类协方差矩阵计算权重时,预设值kr可以相同也可以不同,且预设值Kn可以相同也可以不同。

[0102]需要说明的是,实际实现时,点对的距面距离的权重除了包含上文描述的权重之外,还可以包含其他权重。

[0103]例如,点对的距面距离的权重还可以包括与深度值相关的权重。这是在考虑到如下情况而提出的技术方案:结合图1,离相机(即深度相机)越近的点深度值误差越小,置信度越高,越可靠,因此可以附以较高权重;离相机越远的点深度值误差越大,置信度越低,越不可靠,因此可以附以较低权重。例如,参见图1,相机处于位姿T3时捕捉到的深度图像中的点a与相机之间的距离小于该深度图像中的点b与相机之间的距离。该技术方案可以尤其适用于3d重建场景中。如此一来,能够增强3d重建的精度和重建质量。例如,对于第k个点对,k是大于等于1的整数,与深度值相关的权重的计算公式可以是:其中,dk是第k个点对中所属目标点云的点的深度值,dmin是预设的最小深度值,dmax是预设的最大深度值。

[0104]又如,点对的距面距离的权重还可以包括:其中,表示目标点云中点与源点云中的对应点vk之间的距离,Distmax为的最大值,可以为固定值,也可以为各点对之间的距离的最大值。其中,关于的解释可参考上文,此处不再赘述。

[0105]再如,点对的距面距离的权重还可以包括:nk·mk。其中,nk是目标点云中点对应的法向量,mk是目标点云中点在源点云中的对应点vk对应的法向量。

[0106]另外,在上述任一种实现方式中,点对的距面距离的权重还可以包括归一化因子。也就是说,该方法还可以包括:在按照上文提供的任一方式得点对的距面距离的权重的基础上,再对该权重进行归一化运算。这样,能够减少深度图像中深度值变化对ICP算法的精确度的影响。在一种实现方式中,第k个点对的权重Gk的归一化因子mk可以表示为:其中,r可以取1、2或3等,关于该公式中的相关参数的解释可参考上文,此处不再赘述。

[0107]如图6所示,为本申请实施例提供的另一种三维点云对齐的方法的流程示意图。具体可以包括如下步骤S301~S306:

[0108]S301~S302:可以参考上述S101~S102,当然本申请不限于此。

[0109]S303:获取目标点云中的异常点。

[0110]S304:根据能量函数,计算能量函数的值E,能量函数用于表征各点对的加权距面距离和与各异常点产生的能量损失之和的和。例如,能量函数可以表示为如下公式7:

[0111]

[0112]其中,即是表征各异常点产生的能量损失之和的一个示例,当然本申请不限于此。从公式7可以看出,位姿不发生改变即其中,I是单位矩阵时,异常点的能量损失最小,因此,异常点的作用在于维持目标点云当前位姿的稳定。迭代中的异常点越多,则迭代所得的位姿越倾向于保持不变。Ω是异常点构成的集合,vj为第j个异常点的坐标值,nj为第j个异常点对应的单位法向量,a为预设常数,j为正整数。

[0113]S305~S306:可以参考上述S104~S105,当然本申请不限于此。

[0114]上述S303~S304可以认为是:根据至少两个点对的加权距面距离和异常点产生的能量损失之和确定目标点云与源点云之间的相对位姿的具体实现。S304中,计算能量函数的值E最小时的可以理解为:计算点对的加权距面距离和异常点产生的能量损失之和最小时的

[0115]需要说明的是,在另一个实施例中,上述能量函数可以是用于表征各点对的距面距离之和与各异常点产生的能量损失之和的和。例如,能量函数可以表示为如下公式8:

[0116]

[0117]其中,公式8中相关参数的解释可以参考上文,此处不再赘述。

[0118]现有技术方案中,计算能量函数的值时,均不考虑异常点,即将异常点排除在能量函数之外。这样,若异常点较多,则ICP算法的结果的精确度不高。为此,本实施例中,将异常点的能量损失引入到能量函数中,这样,可以进一步提高点云对齐过程中确定的相对位姿的准确性。

[0119]上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

[0120]本申请实施例可以根据上述方法示例对三维点云对齐的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。

[0121]如图7所示,为本申请提供的一种三维点云对齐的装置7的结构示意图。该装置7用于执行图4~图6中所示的步骤。该装置7可以包括:获取模块701、确定模块702和调整模块703。

[0122]在本申请的一个实施例中,获取模块701可以用于执行图4中的S201、S202,和/或本申请中的其他步骤。确定模块702可以用于执行图4中的S203、S204,和/或本申请中的其他步骤。调整模块703可以用于执行图4中的S205,和/或本申请中的其他步骤。可选的,确定模块702具体可以用于执行图5中的各步骤。

[0123]在本申请的一个实施例中,获取模块701可以用于执行图6中的S301、S302、S303,和/或本申请中的其他步骤。确定模块702可以用于图6中的S304、S305,和/或本申请中的其他步骤。调整模块703可以用于执行图6中的S306,和/或本申请中的其他步骤。

[0124]在硬件实现上,上述获取模块701、确定模块702和调整模块703中的部分或全部可以以硬件形式内嵌于或独立于装置7的存储器中,以便于处理器调用以上各单元对应的操作。关于三维点云对齐的装置的硬件实体的示例可以参考图8。

[0125]如图8所示,为本申请实施例提供的一种三维点云对齐的装置8的结构示意图,该装置8可以包括至少一个处理器801,通信总线802,以及存储器803。

[0126]处理器801可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。

[0127]通信总线802可包括一通路,在上述组件之间传送信息。

[0128]存储器803可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器803可以是独立存在,通过总线与处理器相连接。存储器803也可以和处理器801集成在一起。

[0129]其中,存储器803用于存储执行本申请方案的计算机程序,并由处理器801来控制执行。处理器801用于执行这些计算机程序,从而实现本申请实施例提供的三维点云对齐的方法。

[0130]在具体实现中,作为一种实施例,处理器801可以包括一个或多个CPU,例如图8中的CPU0和CPU1。

[0131]在具体实现中,作为一种实施例,装置8可以包括多个处理器,例如图8中的处理器801和处理器804。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序)的处理核。

[0132]上述的装置8可以是一个通用设备或者是一个专用设备。在具体实现中,装置8可以是图8所示的任一种设备,或者是有图8中类似结构的设备。本申请实施例不限定三维点云对齐的装置8的类型。

[0133]由于本申请实施例提供的三维点云对齐的装置可用于执行上述提供的三维点云对齐的方法,因此其所能获得的技术效果可参考上述方法实施例,本申请实施例在此不再赘述。

[0134]上述提供的任一种装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。

[0135]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

[0136]尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

[0137]尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。