一种从图像中提取三维平面的方法与流程

文档序号:13165998阅读:2740来源:国知局
一种从图像中提取三维平面的方法与流程

本发明属于计算机图像处理技术领域,特别涉及了一种从图像中提取三维平面的方法。



背景技术:

目前,对于三维平面的提取方法,由于生成三维模型的计算复杂并且精度较低,查找平面的速度较慢,所以一直无法做到实时运算。对于这一问题一直没有稳定有效的解决方案。

中国专利申请(公开号:cn101639355)公开了“一种三维平面提取方法”,该方案利用已知的三维模型和其中的线段特征,利用直线计算平面方程,使得找出的平面准确有效,但是该方案并没有克服复杂模型难获取的问题,同时基于直线的方案,运算量相对较大,无法做到实时运算。

中国专利申请(公开号:cn102945551b)公开了“一种基于图论的三维点云数据平面提取方法”,该方案在已知三维点云的基础上,通过最近邻连接三角形的方法提取共面的三角形,使得查找的平面准确度极高,但是此方案的计算量异常庞大,几乎无法做到实时处理,并且三维点云的获取方式没有一个很好的途径。

中国专利申请(公开号:cn105260737a)公开了“一种融合多尺度特征的激光扫描数据物理平面自动化提取方法”,该方案通过激光扫描的数据提取平面信息,由于激光扫描具有很高的精度和很高的检测频率,使得提取的平面准确度很高,但是此方案利用了昂贵的激光扫描设备,无法应用到消费级市场。

综上所述,如何克服现有技术在简单三维信息获取和运算性能上的不足已成为当今三维平面提取技术中亟待解决的重点难题。



技术实现要素:

为了解决上述背景技术提出的技术问题,本发明旨在提供一种从图像中提取三维平面的方法,克服现有技术存在缺陷,提高三维平面提取的实时性。

为了实现上述技术目的,本发明的技术方案为:

一种从图像中提取三维平面的方法,包括以下步骤:

(1)获取场景的深度图像,深度图像用于表征场景中物体与深度图像采集设备之间的距离;

(2)采用大小为a*b像素的窗口对深度图像进行遍历;其中,a=2n,b=2m,且n和m均为大于等于6的整数;

(3)在当前窗口中,利用小孔相机模型,将窗口中所有像素点的二维坐标转换为三维世界坐标,得到当前窗口的三维点集;

(4)在当前窗口的三维点集中,任意取3个像素点,求解三维平面方程;

(5)计算当前窗口的三维点集中每个点与所求解的三维平面的距离,若距离小于设定的距离阈值,则判断该点在三维平面上,即该点为三维平面的内点;

(6)重复步骤(4)-(5),将内点数量最多的三维平面作为当前窗口的最佳三维平面;

(7)获取每个窗口的最佳三维平面,对这些最佳三维平面进行筛选,去除重复的三维平面或者内点数量少于设定的内点数阈值的三维平面。

进一步地,在步骤(1)中,获取深度图像的方法包括基于光结构的获取方法、基于光飞行时间的获取方法以及基于多目视觉的获取方法。

进一步地,在步骤(2)中,采用大小为64*64像素的窗口对深度图像进行遍历。

进一步地,在步骤(3)中,采用下式将像素点的二维坐标转换为三维世界坐标:

上式中,x、y、z为当前点在三维世界坐标系中的坐标;x、y为当前点在成像平面上的二维坐标;z为当前点的深度值;cx、cy为相机光心在成像平面上的二维坐标;fx、fy为相机焦点在水平方向、垂直方向的长度。

进一步地,在步骤(4)中,求解三维平面的过程如下:

设三维平面方程为:

ax+by+cz+d=0

上式中,(x,y,z)表示三维坐标,a、b、c、d为方程参数;

将参数d固定为1,并将3个点的坐标分别代入上式中,得三元一次方程组:

上式中,(x0,y0,z0)、(x1,y1,z1)、(x2,y2,z2)分别为3个点的坐标;

求解上述三元一次方程组,得到参数a、b、c的值,得到三维平面方程。

采用上述技术方案带来的有益效果:

本发明能够高效地利用深度图所提供的信息,快速准确地查找出图像中的三维平面,同时具有较强的抗噪声抗干扰能力,满足实时性和精度的要求,为三维测绘和增强现实等行业应用提供了良好的底层支持。

附图说明

图1是本发明的方法流程图;

图2是获取的深度图的实例图;

图3是二维坐标转换为三维世界坐标的示意图。

具体实施方式

以下将结合附图,对本发明的技术方案进行详细说明。

一种从图像中提取三维平面的方法,如图1所示,具体步骤如下。

步骤1,获取场景的深度图像。获取深度图的方式包括基于结构光、基于光的飞行时间以及基于多目视觉。获得的深度图为一个二维矩阵形式,矩阵中的每个位置的点为图像的像素点,像素点的数值表征的是场景中的物体距离摄像头的物理距离。

所获得的深度图如图2所示,在图中,101为场景中背景墙面,102为场景中的地面,103、104为桌面和显示器平面;在深度图中,本发明将实现101、102、103、104等不同平面的提取。

步骤2,利用大小为64*64个像素的窗口对深度图进行遍历。具体现实如下:

从深度图像的第一行的第一个像素开始,取64个像素,再跳转到第二行的第一个像素,开始取64个像素,以此类推,直到第64行为止;完成后,从第一行的第65个像素开始,取64个像素,依照上述规则,直到第64行为止;此后利用上述规则,遍历完整幅图像,此时把图像分成了大小为64*64个像素的若干个窗口。

步骤3,在各窗口中,将二维图像坐标转三维世界坐标。根据小孔相机模型,如图3所示,x为成像平面上的二维坐标,即图像中的坐标;x为x对应的三维世界坐标;c为相机的光心;f为相机的焦点。可以推导出二维图像坐标转换为三维世界坐标的公式:

其中x、y、z为当前点在三维世界坐标系中的坐标;x、y为当前点在二维图像坐标系中的坐标;z为当前点的深度值(从深度图像中得到);cx、cy为光心c在二维图像坐标系中的坐标;fx、fy为相机焦点f在水平和垂直方向的长度;

利用上述公式,把所有窗口中的二维点全部转换为三维世界坐标系中的三维点。

步骤4,从每个窗口中各自任意取出3个点,求解平面方程。典型的三维平面方程为:

ax+by+cz+d=0

把取出的3个点(x0,y0,z0)、(x1,y1,z1)、(x2,y2,z2)的坐标分别代入上述方程,把参数d固定为1,则可以生成一个三元一次方程组:

求解后,可以得到过此3点的唯一三维平面方程。

步骤5,计算点与平面的距离,判断内点。利用点到面的距离公式:

计算出窗口内所有点与平面的距离,当距离小于设定的阈值时,即认为此点在平面上,即为内点,否则为外点。

步骤6,重复步骤4-5的操作若干次,选取内点数量最多的平面为当前窗口的最佳三维平面。

步骤7,筛选平面。由于窗口大小为64*64,图像中的墙面和地面等大一些的平面会同时存在于多个窗口之中,此时需要对比每个窗口算出的最佳三维平面,去除相同的平面和过小的平面(内点数过少)。

实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

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