平面检测方法及其装置与流程
未命名
09-24
阅读:58
评论:0

1.本技术属于图像处理技术领域,具体涉及一种平面检测方法平面检测方法及其装置。
背景技术:
2.平面检测技术对于实现真实场景三维重建、增强现实以及室内导航等应用至关重要,将其应用于终端设备(例如手机),则能够极大提升终端设备的使用体验。
3.目前,进行平面检测时可以采用基于霍夫(hough)的平面检测算法,即将原始的空间平面转化为参数空间峰值问题。但是,该方法需要对所有点进行参数空间转化,并累计排序,因此,时间和空间复杂度相对较高。而终端设备往往无法支持此种复杂的平面检测算法。
技术实现要素:
4.本技术实施例的目的是提供一种平面检测方法平面检测方法及其装置,能够解决现有技术中终端无法对复杂度较高的平面进行检测的问题。
5.第一方面,本技术实施例提供了一种平面检测方法,所述方法包括:
6.获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像;
7.对所述第一深度图像进行降采样,获得降采样图像;
8.根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面;
9.对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界;
10.根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面;
11.其中,所述第二时刻位于所述第一时刻之后。
12.第二方面,本技术实施例提供了一种平面检测装置,所述装置包括:
13.图像获取模块,用于获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像;
14.降采样模块,用于对所述第一深度图像进行降采样,获得降采样图像;
15.第一平面检测模块,用于根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面;
16.边界调整模块,用于对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界;
17.第二平面检测模块,用于根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面;
18.其中,所述第二时刻位于所述第一时刻之后。
19.第三方面,本技术实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
20.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
21.第五方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
22.第六方面,本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
23.在本技术实施例中,能够获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像,从而对该第一深度图像进行降采样,得到降采样图像,并根据降采样图像检测拍摄场景在第一时刻的第一平面,进而对第一平面进行上采样,并根据上采样的结果,调整第一平面的区域边界,进而根据第一平面、摄像头在第二时刻在拍摄场景采集的第二深度图像,以及摄像头从第一时刻至第二时刻的位姿变化,检测拍摄场景在所述第二时刻的平面。
24.其中,降采样可以降低第一深度图像的尺寸,从而可以减少平面检测过程中的处理数据,进而降低平面检测的处理复杂度。在此基础上,进一步通过对检测到的第一平面进行上采样,从而根据上采样的结果调整第一平面的区域边界,则可以在降低处理复杂度的基础上,满足平面检测的精度。并且,在上述第二深度图像以及已经检测到的第一平面的基础上,结合摄像头的位姿变化,检测拍摄场景在第二时刻的平面,可以降低平面重复检测的几率,从而降低平面检测的复杂度,实现对复杂平面的检测。
附图说明
25.图1是本技术实施例的平面检测方法的流程图;
26.图2是本技术实施例中降采样的示意图;
27.图3是本技术实施例中一个示例性点集的凸包的示意图;
28.图4是本技术实施例中进行平面更新的示意图;
29.图5是本技术实施例的平面检测方法的具体实施方式的流程图;
30.图6是本技术实施例的平面检测装置的结构框图;
31.图7是本技术实施例的电子设备的示意框图之一;
32.图8是本技术实施例提供的电子设备的示意框图之二。
具体实施方式
33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本技术保护的范围。
34.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对
象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
35.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的平面检测方法进行详细地说明。
36.第一方面,本技术实施例提供了一种平面检测方法,如图1所示,该方法可以包括如下步骤:
37.步骤101:获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像。
38.其中,深度图像也被称为距离影像,是指从图像采集器到场景中各点的距离作为像素值的图像。
39.在本技术的实施例中,摄像头可以采集拍摄场景的深度图像。可选地,该摄像头可以为基于飞行时间(time of flight,tof)的摄像头。
40.其中,tof技术是光电测距中的一种高精度、高帧率的技术,即利用激光器产生的激光脉冲进行光电测距,计算出场景中所有物体与基于tof的摄像头之间的距离。在此基础上,通过将这些距离信息整合,则可以得到一个相对精确的深度图像。
41.步骤102:对所述第一深度图像进行降采样,获得降采样图像。
42.其中,降采样,即是采样点数减少。对于一幅a*b的图像来说,如果降采样系数为ki,则是在原图中每行每列每隔ki个点取一个点组成一幅图像。可选地,可以采用高斯金字塔对深度图像进行降采样。
43.例如图2所示,原始尺寸640*480的深度图201,先通过高斯滤波进行模糊处理,然后对模糊图像经过两层固定比例,k1=2,即水平和垂直均每隔2个点取一个;k2=4,即水平和垂直均每隔四个点取一个,降采样后,可得到320*240尺寸的降采样图像202和160*120尺寸的降采样图像203。
44.步骤103:根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面。
45.在步骤103中,所述第一平面包括水平面和垂直平面中的至少一者。
46.其中,降采样可以降低深度图像的尺寸,从而可以减少平面检测过程中的处理数据,进而降低平面检测的处理复杂度。
47.步骤104:对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界。
48.其中,上采样,即将图像从一个较低的尺寸恢复到一个较大的尺寸。因此上采样可以提高图像的分辨率。可见,在步骤101至103的基础上,进一步通过对第一平面进行上采样,从而根据上采样的结果调整第一平面的区域边界,可以在降低处理复杂度的基础上,满足平面检测的精度。
49.可选地,可以采用插值的方式实现上采样。
50.步骤105:根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面。
51.其中,所述第二时刻位于所述第一时刻之后。
52.另外,同一摄像头在不同时刻采集拍摄场景的图像时,可能由于摄像头的位姿变化,导致采集图像的角度发生变化,但是所采集的图像中会存在相同的平面,这样,在第一时刻检测到的第一平面,同样存在于在第二时刻采集的拍摄场景的第二深度图像中,基于此,在上述第二深度图像以及已经检测到的第一平面的基础上,结合摄像头的位姿变化,检测拍摄场景在第二时刻的平面,则可以降低平面重复检测的几率,从而降低了平面检测的复杂度,缩短了检测时间。
53.此外,检测出拍摄场景的平面之后,还可以基于检测出的平面对拍摄场景进行三维重建,完成建模和目标跟踪等任务。
54.由上述步骤101至105可知,在本技术实施例中,能够获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像,从而对该第一深度图像进行降采样,得到降采样图像,并根据降采样图像检测拍摄场景在第一时刻的第一平面,进而对第一平面进行上采样,并根据上采样的结果,调整第一平面的区域边界,进而根据第一平面、摄像头在第二时刻在拍摄场景采集的第二深度图像,以及摄像头从第一时刻至第二时刻的位姿变化,检测拍摄场景在所述第二时刻的平面。
55.其中,降采样可以降低第一深度图像的尺寸,从而可以减少平面检测过程中的处理数据,进而降低平面检测的处理复杂度。在此基础上,进一步通过对检测到的第一平面进行上采样,从而根据上采样的结果调整第一平面的区域边界,则可以在降低处理复杂度的基础上,满足平面检测的精度。并且,在上述第二深度图像以及已经检测到的第一平面的基础上,结合摄像头的位姿变化,检测拍摄场景在第二时刻的平面,可以降低平面重复检测的几率,从而降低平面检测的复杂度。因此,本技术实施例的平面检测方法不仅可以满足检测精度,而且具有较低的复杂度,可以适用于终端设备。
56.可选地,上述步骤103“根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面”,包括如下步骤a-1至a-4:
57.步骤a-1:计算所述降采样图像中各个像素点在相机坐标系下的第一坐标;
58.步骤a-2:根据所述第一坐标,对所述降采样图像中各个像素点进行聚类处理,得到至少一个聚类簇;
59.步骤a-3:对每一个所述聚类簇进行凸包检测,得到与每一个所述聚类簇对应的凸包;
60.步骤a-4:对所述凸包上的像素点进行平面拟合,得到与每一个所述凸包对应的拟合平面,并将所述拟合平面确定为所述第一平面。
61.由此可知,在根据降采样图像检测拍摄场景在第一时刻的第一平面时,可以先计算各个像素点在相机坐标系下的第一坐标,从而根据第一坐标,对各个像素点进行聚类,进而对得到的各个聚类簇分别进行凸包检测,得到多个凸包,进而对凸包上的像素点进行平面拟合,得到多个第一平面。其中,该过程中得到的每一个聚类簇对应一个凸包,每一个凸包对应拟合出一个第一平面。
62.下面具体介绍步骤a-1至a-4中各个步骤的具体实现过程,具体如下1.1至1.4所述:
63.1.1针对步骤a-1:
64.可选地,上述步骤a-1“计算所述降采样图像中各个像素点在相机坐标系下的第一坐标”包括:
65.根据降采样图像中的深度信息和摄像头的参数信息(例如内参系数),计算各个降采样图像中各个像素点在相机坐标系下的第一坐标。
66.进一步地,可以根据第(1)公式计算第一坐标;
[0067][0068]
其中,(xi,yi,zi)表示降采样图像中的第i个像素点在相机坐标系下的第一坐标,(u
i vi)表示降采样图像中的第i个像素点在像素坐标系下的坐标,depthi表示降采样图像中的第i个像素点的深度信息,通常可以深度图中的灰度值(可选地,可以将depthi与1
×
10-3
相乘,从而将单位转换为米(m));
[0069]
(f
x
,fy)表示摄像头的内参系数-焦距,(u0,v0)表示摄像头的内参系数-主点坐标;
[0070]ki
表示降采样的尺度因子。
[0071]
这里需要说明的是,还可以通过同时定位与建图(simultaneous localization and mapping,slam)提供的摄像头的旋转矩阵r和平移向量t,将上述第一坐标转换至世界坐标系下,从而便于在世界坐标系下进行其他处理,例如,对场景的三维重建、建模和目标跟踪。
[0072]
1.2针对步骤a-2:
[0073]
可选地,上述步骤a-2“根据所述第一坐标,对所述降采样图像中各个像素点进行聚类处理,得到至少一个聚类簇”,包括如下步骤b-1至b-3:
[0074]
步骤b-1:根据所述第一坐标,将所述降采样图像中各个像素点划分为水平平面的像素点和垂直平面的像素点中的至少一者;
[0075]
步骤b-2:对所述水平面的像素点和所述垂直平面的像素点中的至少一者,建立最近邻k维树;
[0076]
步骤b-3:对所述最近邻k维树中的像素点进行聚类处理,得到至少一个聚类簇。
[0077]
其中,水平平面像素点即为属于水平平面的像素点;垂直平面像素点即为属于垂直平面的像素点。
[0078]
这里需要说明的是,在步骤b-1中,将像素点划分为了水平平面像素点,则步骤b-2中对水平平面像素点建立最近邻k维树,在步骤b-3中对水平平面像素点建立的最近邻k维树进行聚类;在步骤b-1中,将像素点划分为了垂直平面像素点,则步骤b-2中对垂直平面像素点建立最近邻k维树,在步骤b-3中对垂直平面像素点建立的最近邻k维树进行聚类;在步骤b-1中,将像素点划分为水平平面像素点和垂直平面像素点,则步骤b-2中分别对水平平面像素点和垂直平面像素点建立最近邻k维树,在步骤b-3中分别对水平平面像素点建立的最近邻k维树,以及垂直平面像素点建立的最近邻k维树进行聚类。
[0079]
即水平平面像素点建立一个最近邻k维树,垂直平面像素点建立一个最近邻k维树。
[0080]
由步骤b-1至b-3可知,在本技术实施例中,在对降采样图像中的各个像素点进行
聚类时,可以先将各个像素点划分为水平平面像素点和垂直平面像素点,进而再分别针对水平平面像素点和垂直平面像素点进行处理,这样,在本技术实施例中,则可以检测出水平平面和垂直平面,从而可以使得本技术实施例的平面检测方法可以适用于阶梯结构或平面较为复杂的情况。
[0081]
下面具体介绍上述步骤b-1至b-3中各个步骤的具体实现过程,如下1.2.1至1.2.3所述:
[0082]
1.2.1:可选地,上述步骤b-1“根据所述第一坐标,将所述降采样图像中各个像素点划分为水平平面的像素点和垂直平面的像素点中的至少一者”,包括如下步骤c-1至c-4:
[0083]
步骤c-1:根据所述第一坐标,计算所述降采样图像中各个像素点在所述相机坐标系下的目标法向量;
[0084]
步骤c-2:计算所述目标法向量与所述相机坐标系下的水平面法向量的夹角;
[0085]
步骤c-3:在所述像素点对应的所述夹角小于第一阈值的情况下,将所述像素点划分为所述水平面的像素点;
[0086]
步骤c-4:在所述像素点对应的所述夹角大于第二阈值的情况下,将所述像素点划分为所述垂直平面的像素点。
[0087]
其中,在步骤c-1中,可以采用基于权重的邻域方法,求取空间点的法向量,具体过程可以为:根据第(2)公式计算各个像素点的法向量;
[0088][0089]
这里,ni表示降采样图像中第i个像素点下相机坐标系下的法向量,k为最近邻算法选择的点数,例如可以为4、8、12,wj为点q
i,j
、pi和q
i,j+1
组成的区域法向量的权值;pi表示降采样图像中第i个像素点,q
i,j
表示pi周围在逆时针方向上的第j像素点,q
i,j+1
表示pi周围在逆时针方向上的第j+1个像素点。
[0090]
其中,wj也可以通过角度进行计算,例如根据第(3)公式来计算;
[0091][0092]
另外,在步骤c-2中,可以根据第(4)公式计算第i个像素点的目标法向量ni与相机坐标系下的水平面法向量n0的夹角θi。
[0093][0094]
由上述步骤c-3至c-4可知,如果θi<θ
tmin
,θ
tmin
为第一阈值,则第i个像素点属于水平平面像素点;如果θi>θ
tmax
,θ
tmax
为第二阈值,则第i个像素点属于垂直平面像素点;如果θ
tmin
<θi<θ
tmax
,则第i个像素点不属于水平平面像素点,也不属于垂直平面像素。
[0095]
1.2.2:可选地,上述步骤b-2“对所述水平面的像素点和所述垂直平面的像素点中的至少一者,建立最近邻k维树”,包括如下步骤d-1至d-4:
[0096]
步骤d-1:分别计算第一像素点在所述相机坐标系的三个维度的坐标值的方差,并获取最大方差,其中,所述第一像素点包括所述水平面的像素点和所述垂直平面的像素点
中的至少一者;
[0097]
步骤d-2:选择所述最大方差所属的目标维度上的中位数,作为样本划分点;
[0098]
步骤d-3:将所述第一像素点中,在所述目标维度的坐标值小于所述样本划分点的像素点划分为左子树,将在所述目标维度的坐标值大于或等于所述样本划分点的像素点划分为右子树;
[0099]
步骤d-4:分别对所述左子树的像素点和所述右子树的像素点,建立最邻近k维树。
[0100]
其中,k维树状结构是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,主要应用于多维空间关键数据的搜索。最邻近k维树的构建过程包括:选择维度即步骤d-1、选择中位数即步骤d-2、分割数据即步骤d-3以及递归迭代即步骤d-4的四个步骤。
[0101]
在本技术实施例中,在选择维度时,所有第一像素点在x轴、y轴、z轴的三个维度存在相应的坐标值,则针对所有第一像素点在x轴的坐标值,可以计算得到一个方差;针对所有第一像素点在y轴的坐标值,可以计算得到一个方差;针对所有第一像素点在z轴的坐标值,可以计算得到一个方差;从而可以从这三个方差中选出一个最大方差,则该最大方差所属的维度,即为构建最近邻k维树所选择出的维度。
[0102]
其次,例如最大方差所属的维度为x轴,则所有第一像素点在x轴的坐标值中的中位数(即按照从小到大顺序排列后,位于中间位置上的坐标值),作为样本划分点;当最大方差所属的维度为y轴或z轴时,样本划分点的选择方法相同。
[0103]
再次,可以根据选择的样本划分点,将所有第一像素点划分为左子树或者右子树,进而再针对左子树和右子树中的像素点,重复执行选择维度、选择中位数、分割数据以及递归迭代的过程,直到得到的子树仅包括一个像素点。
[0104]
1.2.3:在上述步骤b-3中,可以采用凝聚层次聚类方法进行聚类处理,即针对其中一个最近邻k维树,可以先将每个叶子节点当成一个聚类簇,计算每两个聚类簇之间的相似性,例如,计算聚类簇之间的欧式距离,从而根据相似性进行聚类,重复聚类过程,直到当前聚类簇的数量与合并前的聚类簇的数量满足预设条件,例如,当前聚类簇的数量是合并前聚类簇的数量的5%,则停止聚类。
[0105]
可以理解的是,在步骤b-3中,也可以采用基于密度聚类、均值聚类等方法,对最近邻k维树中的像素点进行聚类处理。
[0106]
1.3针对步骤a-3:
[0107]
可选地,步骤a-3“对每一个所述聚类簇进行凸包检测,得到与每一个所述聚类簇对应的凸包”,包括:
[0108]
根据所述聚类簇包括的像素点的第二坐标,并采用葛立恒(graham)扫描法对每一个所述聚类簇进行凸包检测,得到与每一个所述聚类簇对应的凸包;
[0109]
其中,所述第二坐标包括所述第一坐标中的x轴坐标值和y轴坐标值。
[0110]
由此可知,在进行凸包检测时,将像素点从三维的相机坐标系转换至一个二维坐标系下进行,其中,该二维坐标系由相机坐标系的x轴和y轴构成,从而采用graham扫描法,对每一个聚类簇进行凸包检测,这样,每一个聚类簇则可以得到一个凸包。
[0111]
其中,对采用graham扫描法对其中一个聚类簇进行凸包检测的过程如下所述:
[0112]
首先,选出一个聚类簇中y轴坐标值最小的像素点,记为p0,如果y轴坐标值最小的
有多个像素点,则从y轴最小的像素点中选择x轴最小的像素点作为p0;
[0113]
其次,将p0作为极点,将该聚类簇中的像素点,按照极角即像素点到极点的连线和极轴的夹角从小到大排序,其中,极轴即x轴,极角相同的像素点按照到极点的距离从小到大排序,得到目标排序;
[0114]
再次,例如目标排序为(p0,p1,p2
……
pn),其中,由凸包的定义“给定平面上的一个有限点集,这个点集的凸包就是包含点集中所有点的最小面积的凸多边形”可知,目标排序中的p0和p1一定属于凸包上的点,则将的p0和p1压入一个堆栈;
[0115]
再次,判断p2是否属于凸包上的点,即:根据堆栈的栈顶最前两个点p0和p1作有向直线,如果p2在该有向直线的右边,则p2不属于凸包上的点,并把堆栈的栈顶的元素出栈;如果p2在该有向直线的左边,则p2属于凸包上的点,并将p2入栈;
[0116]
再次,重复上述过程,依次判断p3至pn是否属于凸包上的点;
[0117]
最后,堆栈中的元素就是凸包上的点。
[0118]
示例性地,以点集(p0,p1,p2
……
p8)为例,按照上述过程得到的该点集的凸包如图3所示。
[0119]
1.4针对步骤a-4:
[0120]
在对凸包上的像素点进行平面拟合时,可以采用最小二乘法进行平面拟合,得到拟合平面方程和拟合平面参数。
[0121]
需要说明的是,本技术实施例中,仅对凸包上的点进行平面拟合,从而可以节省平面参数的计算时间。
[0122]
可选地,所述方法还包括如下步骤e-1至e-2:
[0123]
步骤e-1:获取目标距离和目标面积中的至少一者,其中,所述目标距离包括每一个所述凸包上的点到与所述凸包对应的所述第一平面的距离,所述目标面积包括每一个所述凸包的最小面积外接矩形的面积;
[0124]
步骤e-2:根据所述目标距离和所述目标面积中的至少一者,删除所述第一平面中的异常平面。
[0125]
其中,上述目标距离用于指示凸包上的点与基于凸包上的点拟合得到的第一平面的位置关系,如果一个凸包上的大部分点距离该凸包对应的第一平面较远,则该第一平面属于异常的平面。
[0126]
上述目标面积用于指示第一平面对应的凸包的面积大小,而如果一个凸包的面积较小,则该凸包对应的第一平面属于异常平面。
[0127]
由此可知,对凸包上的点进行平面拟合,得到与每一个凸包对应的第一平面之后,还可以进一步结合上述目标距离和目标面积中的至少一者,将异常的第一平面删除,这样,进一步提升了平面检测的准确性。
[0128]
可选地,在上述步骤e-2中,根据所述目标距离和所述目标面积,删除所述第一平面中的异常平面,包括:
[0129]
在第m个所述凸包对应的目标距离中,大于第三阈值的目标距离的数量超过目标数量,或者第m个所述凸包对应的目标面积小于第四阈值的情况下,确定第m个所述凸包对应的所述第一平面属于异常平面,并删除所述异常合平面;
[0130]
其中,m为1至m的整数。
[0131]
由此可知,对于任何一个凸包,如果该凸包上的点到该凸包对应的第一平面的距离中,大于第三阈值的距离的数量超过目标数量,或者,该凸包的最小面积外接矩形的面积小于第四阈值,则该凸包对应的第一平面属于异常平面,从而将其删除。
[0132]
可以理解的是,如果上述步骤e-2中仅根据所述目标距离删除异常平面,则该过程可以包括:在第m个所述凸包对应的目标距离中,大于第三阈值的目标距离的数量超过目标数量的情况下,确定第m个所述凸包对应的第一平面属于异常第一平面,并删除所述异常平面;其中,m为1至m的整数。
[0133]
同理,如果上述步骤e-2中仅根据所述目标面积删除异常平面,则该过程可以包括:在第m个所述凸包对应的目标面积小于第四阈值的情况下,确定第m个所述凸包对应的第一平面属于异常平面,并删除所述异常平面;其中,m为1至m的整数。
[0134]
可选地,上述步骤104“对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界”,包括如下步骤k-1至k-2:
[0135]
步骤k-1:对每一个所述第一平面对应的凸包进行n层上采样,得到与每一个所述第一平面对应的n个上采样边界,其中,n为大于或等于1的整数;
[0136]
步骤k-2:在第m个所述第一平面对应的第n个上采样边界上的第二像素点,位于第m个所述第一平面上的情况下,将所述第二像素点加入第m个所述第一平面;
[0137]
其中,m为1至m的整数,n为1至n的整数。
[0138]
由此可知,本技术实施例中,可以调整检测到的每一个第一平面的区域的边界,即调整每一个第一平面对应的凸包,亦即进行边界精细化,从而提升平面检测的准确性。并且,通过对每一个第一平面对应的凸包进行多层上采样,并基于每一层采样结果向相应的第一平面增加像素点,使得最终得到的第一平面与摄像头采集的原始图像更加匹配,即进一步提升了平面的区域边界的完整性。
[0139]
可选地,上述步骤105“根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面”,包括如下步骤f1至f2:
[0140]
步骤f1:根据所述位姿变化,确定所述第一平面在所述第二深度图像中的目标位置;
[0141]
步骤f2:根据所述第二深度图像中除所述目标位置之外的图像,检测所述拍摄场景在所述第二时刻除所述第一平面之外的第二平面。
[0142]
例如图4所示,在第一时刻检测到第一平面401,该第一平面401在第二时刻,即第一时刻的下一时刻检测到的图像中变换至第三平面402的位置处,即第一平面401和第三平面402为不同时刻的同一平面,则在下一时刻的图像中无需再检测第三平面402。
[0143]
可选地,所述方法还包括如下步骤f-3:
[0144]
步骤f-3:在所述第二平面与所述第一平面的法向量的夹角小于第五阈值,且二者存在重叠的情况下,将二者合并为一个平面。。
[0145]
例如图4所示,在第二时刻的图像中,检测到第四平面403,而第四平面403与第二平面402存在重叠,且二者法向量的夹角小于第五阈值,则可以将二者融合为一个平面。
[0146]
由此可知,在本技术实施例中,还可以将检测到的多个平面中,满足条件的平面进行融合,进一步提升了平面检测的准确性。
[0147]
由上述步骤f-1至f-3可知,在本技术实施例中,还可以根据摄像头的位姿变化,对检测到的平面进行更新,从而避免平面的重复运算和加速多平面融合。
[0148]
综上所述本技术实施例的平面检测方法的具体实施方式可如图5所示,具体如下所述步骤501至511所述:
[0149]
步骤501:高斯金字塔降采样,即采用高斯金字塔,对摄像头在第一时刻在拍摄场景采集的第一深度图像降采样,得到降采样图像;
[0150]
步骤502:3d点计算,即计算降采样图像中各个像素点在相机坐标系下的第一坐标,这里具体的计算过程可参见前文所述,此处不再赘述;
[0151]
步骤503:法向量计算,即根据第一坐标,计算降采样图像中各个像素点在相机坐标系下的目标法向量,这里具体的计算过程可参见前文所述,此处不再赘述;
[0152]
步骤504:水平平面像素点与垂直平面像素点的划分,即计算各个像素点的目标法向量与相机坐标系下的水平面法向量的夹角;在像素点对应的夹角小于第一阈值的情况下,将像素点划分为水平面的像素点;在像素点对应的夹角大于第二阈值的情况下,将像素点划分为垂直平面的像素点;
[0153]
步骤505:建立最近邻k维树,即分别对水平平面像素点与垂直平面像素点建立最近邻k维树,这里,具体构建最近邻k维树的方法可参见前文所述,此处不再赘述;
[0154]
步骤506:凝聚层次聚类,即分别对水平平面像素点建立的最近邻k维树,以及对垂直平面像素点建立的最近邻k维树,进行凝聚层次聚类;这里,具体的聚类过程可参见前文所述,此处不再赘述;
[0155]
步骤507:凸包检测,即对步骤506中得到的每一个聚类簇进行凸包检测,得到与聚类簇对应的凸包;这里,具体的凸包检测过程可参见前文所述,此处不再赘述;
[0156]
步骤508:平面拟合,即对凸包上的像素点进行平面拟合,得到与每一个凸包对应的第一平面;
[0157]
步骤509:异常平面去除,这里异常平面去除的具体方法可参见前文(即步骤e-1至e-2)所述,此处不再赘述;
[0158]
步骤510:边界精细化,这里边界精细化的具体方法可参见前文,即步骤k-1至k-2所述,此处不再赘述;
[0159]
步骤511:平面更新,即根据第一平面、摄像头在第二时刻在拍摄场景采集的第二深度图像,以及摄像头从所述第一时刻至第二时刻的位姿变化,检测拍摄场景在第二时刻的平面,并进行平面融合;这里平面更新的具体方法可参见前文,即步骤f-1至f-3所述,此处不再赘述。
[0160]
由此可知,本技术实施例的平面检测方法,能够检测出视场区域内水平面和垂直面;并且,通过高斯金字塔对深度图进行降采样,将平面检索放在低层级的深度图中进行,通过对检测到的凸包进行多层上采样,将边界精细化和平面更新放在高层级的深度图中,提升速度的同时,也保证了平面检索和计算的精度,提升了平面的区域边界的完整性;并且,根据摄像头的位姿变化,对检测到的平面进行更新,从而避免了平面的重复运算,并且加速多平面融合。
[0161]
此外,需要说明的是,本技术实施例的平面检测方法,本算法可以应用于tof手机,但是相关算法也用于其它能够提供3d数据和相机位姿的设备。例如:无人机。
[0162]
本技术实施例提供的平面检测方法,执行主体可以为平面检测装置。本技术实施例中以平面检测装置执行平面检测方法为例,说明本技术实施例提供的平面检测装置。
[0163]
第二方面,本技术的实施例提供了一种平面检测装置,如图6所示,该平面检测装置600包括如下模块:
[0164]
图像获取模块601,用于获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像;
[0165]
降采样模块602,用于对所述第一深度图像进行降采样,获得降采样图像;
[0166]
第一平面检测模块603,用于根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面;
[0167]
边界调整模块604,用于对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界;
[0168]
第二平面检测模块605,用于根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面;
[0169]
其中,所述第二时刻位于所述第一时刻之后。
[0170]
可选地,所述第一平面检测模块603包括:
[0171]
第一计算子模块,用于计算所述降采样图像中各个像素点在相机坐标系下的第一坐标;
[0172]
聚类处理子模块,用于根据所述第一坐标,对所述降采样图像中各个像素点进行聚类处理,得到至少一个聚类簇;
[0173]
凸包检测子模块,用于对每一个所述聚类簇进行凸包检测,得到与每一个所述聚类簇对应的凸包;
[0174]
平面拟合子模块,用于对所述凸包上的像素点进行平面拟合,得到与每一个所述凸包对应的拟合平面,并将所述拟合平面确定为所述第一平面。
[0175]
可选地,所述聚类处理子模块包括:
[0176]
像素点划分单元,用于根据所述第一坐标,将所述降采样图像中各个像素点划分为水平平面的像素点和垂直平面的像素点中的至少一者;
[0177]
k维树建立单元,用于对所述水平面的像素点和所述垂直平面的像素点中的至少一者,建立最近邻k维树;
[0178]
聚类处理单元,用于对所述最近邻k维树中的像素点进行聚类处理,得到至少一个聚类簇。
[0179]
可选地,所述像素点划分单元具体用于:
[0180]
根据所述第一坐标,计算所述降采样图像中各个像素点在所述相机坐标系下的目标法向量;
[0181]
计算所述目标法向量与所述相机坐标系下的水平面法向量的夹角;
[0182]
在所述像素点对应的所述夹角小于第一阈值的情况下,将所述像素点划分为所述水平面的像素点;
[0183]
在所述像素点对应的所述夹角大于第二阈值的情况下,将所述像素点划分为所述垂直平面的像素点。
[0184]
可选地,所述装置还包括:
[0185]
参数获取模块,用于获取目标距离和目标面积中的至少一者,其中,所述目标距离包括每一个所述凸包上的点到与所述凸包对应的所述第一平面的距离,所述目标面积包括每一个所述凸包的最小面积外接矩形的面积;
[0186]
异常平面删除模块,用于根据所述目标距离和所述目标面积中的至少一者,删除所述第一平面中的异常平面。
[0187]
本技术实施例中的平面检测装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(mobile internet device,mid)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,还可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
[0188]
本技术实施例中的平面检测装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
[0189]
本技术实施例提供的平面检测装置能够实现图1至图5的方法实施例实现的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0190]
可选地,如图7所示,本技术实施例还提供一种电子设备700,包括处理器701和存储器702,存储器702上存储有可在所述处理器701上运行的程序或指令,该程序或指令被处理器701执行时实现上述平面检测方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0191]
需要说明的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
[0192]
图8为实现本技术实施例的一种电子设备的硬件结构示意图。
[0193]
该电子设备800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、以及处理器810等部件。
[0194]
本领域技术人员可以理解,电子设备800还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
[0195]
其中,处理器810用于:
[0196]
获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像;
[0197]
对所述第一深度图像进行降采样,获得降采样图像;
[0198]
根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面;
processing unit,gpu)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元806可包括显示面板8061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板8061。用户输入单元807包括触控面板8071以及其他输入设备8072中的至少一种。触控面板8071,也称为触摸屏。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0221]
存储器809可用于存储软件程序以及各种数据。存储器809可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器809可以包括易失性存储器或非易失性存储器,或者,存储器809可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本技术实施例中的存储器809包括但不限于这些和任意其它适合类型的存储器。
[0222]
处理器810可包括一个或多个处理单元;可选的,处理器810集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。
[0223]
本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述平面检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0224]
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器rom、随机存取存储器ram、磁碟或者光盘等。
[0225]
本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述平面检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0226]
应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
[0227]
本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述平面检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0228]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
[0229]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0230]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
技术特征:
1.一种平面检测方法,其特征在于,所述方法包括:获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像;对所述第一深度图像进行降采样,获得降采样图像;根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面;对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界;根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面;其中,所述第二时刻位于所述第一时刻之后。2.根据权利要求1所述的方法,其特征在于,所述根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面,包括:计算所述降采样图像中各个像素点在相机坐标系下的第一坐标;根据所述第一坐标,对所述降采样图像中各个像素点进行聚类处理,得到至少一个聚类簇;对每一个所述聚类簇进行凸包检测,得到与每一个所述聚类簇对应的凸包;对所述凸包上的像素点进行平面拟合,得到与每一个所述凸包对应的拟合平面,并将所述拟合平面确定为所述第一平面。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一坐标,对所述降采样图像中各个像素点进行聚类处理,得到至少一个聚类簇,包括:根据所述第一坐标,将所述降采样图像中各个像素点划分为水平平面的像素点和垂直平面的像素点中的至少一者;对所述水平面的像素点和所述垂直平面的像素点中的至少一者,建立最近邻k维树;对所述最近邻k维树中的像素点进行聚类处理,得到至少一个聚类簇。4.根据权利要求3所述的方法,其特征在于,所述根据所述第一坐标,将所述降采样图像中各个像素点划分为水平平面的像素点和垂直平面的像素点中的至少一者,包括:根据所述第一坐标,计算所述降采样图像中各个像素点在所述相机坐标系下的目标法向量;计算所述目标法向量与所述相机坐标系下的水平面法向量的夹角;在所述像素点对应的所述夹角小于第一阈值的情况下,将所述像素点划分为所述水平面的像素点;在所述像素点对应的所述夹角大于第二阈值的情况下,将所述像素点划分为所述垂直平面的像素点。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取目标距离和目标面积中的至少一者,其中,所述目标距离包括每一个所述凸包上的点到与所述凸包对应的所述第一平面的距离,所述目标面积包括每一个所述凸包的最小面积外接矩形的面积;根据所述目标距离和所述目标面积中的至少一者,删除所述第一平面中的异常平面。6.一种平面检测装置,其特征在于,所述装置包括:图像获取模块,用于获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图
像;降采样模块,用于对所述第一深度图像进行降采样,获得降采样图像;第一平面检测模块,用于根据所述降采样图像,检测所述拍摄场景在所述第一时刻的第一平面;边界调整模块,用于对所述第一平面进行上采样,并根据上采样的结果,调整所述第一平面的区域边界;第二平面检测模块,用于根据所述第一平面、所述摄像头在第二时刻在所述拍摄场景采集的第二深度图像,以及所述摄像头从所述第一时刻至所述第二时刻的位姿变化,检测所述拍摄场景在所述第二时刻的平面;其中,所述第二时刻位于所述第一时刻之后。7.根据权利要求6所述的装置,其特征在于,所述第一平面检测模块包括:第一计算子模块,用于计算所述降采样图像中各个像素点在相机坐标系下的第一坐标;聚类处理子模块,用于根据所述第一坐标,对所述降采样图像中各个像素点进行聚类处理,得到至少一个聚类簇;凸包检测子模块,用于对每一个所述聚类簇进行凸包检测,得到与每一个所述聚类簇对应的凸包;平面拟合子模块,用于对所述凸包上的像素点进行平面拟合,得到与每一个所述凸包对应的拟合平面,并将所述拟合平面确定为所述第一平面。8.根据权利要求7所述的装置,其特征在于,所述聚类处理子模块包括:像素点划分单元,用于根据所述第一坐标,将所述降采样图像中各个像素点划分为水平平面的像素点和垂直平面的像素点中的至少一者;k维树建立单元,用于对所述水平面的像素点和所述垂直平面的像素点中的至少一者,建立最近邻k维树;聚类处理单元,用于对所述最近邻k维树中的像素点进行聚类处理,得到至少一个聚类簇。9.根据权利要求8所述的装置,其特征在于,所述像素点划分单元具体用于:根据所述第一坐标,计算所述降采样图像中各个像素点在所述相机坐标系下的目标法向量;计算所述目标法向量与所述相机坐标系下的水平面法向量的夹角;在所述像素点对应的所述夹角小于第一阈值的情况下,将所述像素点划分为所述水平面的像素点;在所述像素点对应的所述夹角大于第二阈值的情况下,将所述像素点划分为所述垂直平面的像素点。10.根据权利要求7所述的装置,其特征在于,所述装置还包括:参数获取模块,用于获取目标距离和目标面积中的至少一者,其中,所述目标距离包括每一个所述凸包上的点到与所述凸包对应的所述第一平面的距离,所述目标面积包括每一个所述凸包的最小面积外接矩形的面积;异常平面删除模块,用于根据所述目标距离和所述目标面积中的至少一者,删除所述
第一平面中的异常平面。
技术总结
本申请公开了一种平面检测方法及其装置,属于图像处理技术领域。该平面检测方法包括:获取电子设备的摄像头在第一时刻在拍摄场景采集的第一深度图像;对第一深度图像进行降采样,获得降采样图像;根据降采样图像,检测拍摄场景在第一时刻的第一平面;对第一平面进行上采样,并根据上采样的结果,调整第一平面的区域边界;根据第一平面、摄像头在第二时刻在拍摄场景采集的第二深度图像,以及摄像头从第一时刻至第二时刻的位姿变化,检测拍摄场景在第二时刻的平面;其中,第二时刻位于第一时刻之后。后。后。
技术研发人员:毕松林
受保护的技术使用者:维沃移动通信有限公司
技术研发日:2023.06.29
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/