本技术公开了一种基于深度图像的实时平面检测及提取的方法。
本技术包括如下步骤:步骤1:对深度图像做预处理,并对深度图像提取区块信息;步骤2:对区块的几何参数分布做降维统计;步骤3:对估计的各个平面法向量查找平行平面;步骤4:平面参数优化。
本技术根据深度图像的成像原理及平面结构的空间特性,使得计算机可以实时地通过深度图像获取环境中的平面结构信息,使得三维重建结果更加准确。
从而准确高效地从深度图像中提取平面结构信息。
技术要求1.一种基于深度图像的实时平面检测及提取的方法,其特征在于包括如下步骤:步骤1:对深度图像做预处理,并对深度图像提取区块信息;步骤2:对区块的几何参数分布做降维统计;步骤3:对估计的各个平面法向量查找平行平面;步骤4:平面参数优化。
2.根据权利要求1所述的一种基于深度图像的实时平面检测及提取的方法,其特征在于步骤1具体实现如下:1-1.使用双边滤波算法对深度图像做滤波处理;1-2.然后将深度图像划分为多个等大小矩形的区块;1-3.将矩形区块中的像素反投影到三维空间中得到三维点云,提取区块的切平面信息,包括区块的空间坐标、切平面的法向量、切平面与原点的距离、区块置信度;记第(u,v)区块为patch(u,v)。
3.根据权利要求2所述的一种基于深度图像的实时平面检测及提取的方法,其特征在于步骤2具体实现如下:2-1.将各个区块的法向量做球极映射从三维空间nx-ny-nz到二维平面Px-Py上;2-2.对映射到二维平面Px-Py上的法向量点做栅格划分,并以高斯加权的方式对二维平面Px-Py上的法向量点做直方图统计,得到Px-Py直方图;2-3.对Px-Py直方图查找8-领域极大值,并将对应点Px-Py坐标做球极逆映射得到估计的平面法向量参数。
4.根据权利要求3所述的一种基于深度图像的实时平面检测及提取的方法,其特征在于步骤3具体实现如下:3-1.将所有区块的空间坐标与估计的平面法向量作内积,即将区块的空间坐标向法向量方向上做投影;3-2.对投影得到的区块分布做直方图统计,并查找极大值,即得到该法向量上各个平行平面与原点的距离。
5.根据权利要求4所述的一种基于深度图像的实时平面检测及提取的方法,其特征在于步骤4具体实现如下:记第i个平面参数为Pi,包含平面的法向量以及平面与原点的距离;使用MeanShift优化Pi,消除直方图统计的栅格误差,单次迭代过程为:查找在均值半径内的所有区块并计算其均值,得到新的Pi;再使用K-means对每个区块查询最接近的平面参数,并通过查询结果优化Pi。
6.根据权利要求5所述的一种基于深度图像的实时平面检测及提取的方法,其特征在于步骤2-1具体实现如下:所述的对每个区块的法向量做球极映射,映射关系为:其中px,py为映射后的Px-Py坐标,平面的法向量为(nx,ny,nz)。
技术说明书一种基于深度图像的实时平面检测及提取的方法技术领域本技术涉及机器人定位、三维重建领域,尤其涉及深度图像的平面结构检测及分割方法。
背景技术最早在2010年,微软(Microsoft)公司研发出一种低成本的结构光深度相机,该相机能够在室内小范围的场景中获取精确的深度图像,从而能够重建出室内的场景。
在2011年的SIGGRAPH(Special Interest Group on Graphics and Interactive Techniques,是图形学及互交技术特殊爱好者集团的简称)会议上微软展示了KinectFusion实时重建算法,Newcombe是该算法项目的主要负责人,该算法是首个实现实时稠密场景重建的算法。
Izadi在此基础上完成了场景与人的动态交互。
2016年,Whelan提出一种利用彩色图像特征检测地图回环的方法,该方法同时还能够检测单个点光源在空间中的位置。
该文章也是面元表达模型(SurfelRepresentation)的代表。
在离线(非实时)稠密重建领域的技术方法,对实时稠密重建也有非常深远的影响,Zhou Q Y团队在该领域做出巨大的贡献,在2012年该团队提出一种基于兴趣点的稠密重建方法。
然而直到现在,由于室内无法接收GPS信号,仍然没有一种适合于真实场景的无漂移室内定位、重建算法,该领域最近几年关于无漂移的室内定位重建算法研究中,核心都在于检测、分割深度相机所拍摄到的平面作为基准点,以提高定位的精度。
至今为止,能够实时地对深度图提取平面的方法仅基于曼哈顿平面假设的前提下,即假设空间中所有平面均相互正交,没有涉及存在非正交平面的情况。
技术内容本技术提出一种实时的、可并行的基于深度图像的平面检测及分割方法。
一种基于深度图像的实时平面检测及提取的方法,可以准确地对场景中存在非正交平面的深度图提取出平面信息,包括以下步骤:步骤1:对深度图像做预处理,并对深度图像提取区块信息,具体步骤如下:1-1.使用双边滤波算法对深度图像做滤波处理;1-2.然后将深度图像划分为多个等大小矩形的区块;1-3.如图2所示,将矩形区块中的像素反投影到三维空间中得到三维点云,提取区块的切平面信息,包括区块的空间坐标、切平面的法向量、切平面与原点的距离、区块置信度。
记第(u,v)区块为patch(u,v)。
步骤2:对区块的几何参数分布做降维统计;2-1.如图3所示,将各个区块的法向量做球极映射从三维空间nx-ny-nz到二维平面Px-Py上;2-2.对映射到二维平面Px-Py上的法向量点做栅格划分,并以高斯加权的方式对二维平面Px-Py上的法向量点做直方图统计,得到Px-Py直方图;2-3.对Px-Py直方图查找8-领域极大值,并将对应点Px-Py坐标做球极逆映射得到估计的平面法向量参数。
步骤3:对估计的各个平面法向量查找平行平面;3-1.将所有区块的空间坐标与估计的平面法向量作内积,即将区块的空间坐标向法向量方向上做投影;3-2.对投影得到的区块分布做直方图统计,并查找极大值,即得到该法向量上各个平行平面与原点的距离;步骤4:平面参数优化,记第i个平面参数为Pi,包含平面的法向量以及平面与原点的距离;4-1.使用MeanShift优化Pi,消除直方图统计的栅格误差,单次迭代过程为:查找在均值半径内的所有区块并计算其均值,得到新的Pi。
4-2.使用K-means对每个区块查询最接近的平面参数,并通过查询结果优化Pi。
本技术有益效果如下:本技术根据深度图像的成像原理及平面结构的空间特性,使得计算机可以实时地通过深度图像获取环境中的平面结构信息,使得三维重建结果更加准确。
从而准确高效地从深度图像中提取平面结构信息。
传统的对深度图提取平面的方法仅基于曼哈顿平面假设的前提下,即假设空间中所有平面均相互正交,没有涉及存在非正交平面的情况。
平面相互正交的条件对深度图平面提取算法的影响主要在实时性和准确性上。
本技术是提出一种实时的、可并行的、高效的深度图平面检测及提取算法,且多个平面可以是非正交的几何关系。
传统的对深度图提取平面的方法,需要提取主平面信息,即先提取出深度图中最大的平面,再通过空间中所有平面均相互正交的先验条件提取剩余的平面。
而在现实中,空间中的平面可以是非相互正交的。
为此,利用本技术能够对深度图提取场景中所有平面的几何信息,算法结果更加准确全面。
附图说明图1是平面法向量检测流程图;图2是区块划分及区块信息图;图3是球极映射图;图4是二维统计直方图。
图5是平行平面查询流程图。
图6是平面法向量优化效果图。
图7是平面分割结果渲染图。
具体实施方式下面根据附图详细说明本技术,本技术的目的和效果将变得更加明显。
图1是平面法向量检测流程图,图2到图4是图1的可视化过程图。
此部分是本算法检测平面法向量的部分,主要描述了如何从输入的深度图像检测出场景中平面的法向量。
以下为图1到图4的详细描述:第一步,如图2所示,对输入的深度图像做预处理,使用双边滤波初步滤除传感器的噪声,并将深度图像分割为若干个等大小的区块,这里以16×16的区块为例。
每个区块包含法向量(nx,ny,nz)、位置(x,y,z)、有效点数量c即置信度三个主要信息,通过将每个区块的所有像素反投影到三维空间中形成点云,可以计算区块中所有点的平均位置(x,y,z),对区块中所有点拟合平面可以计算得到区块的切平面法向量(nx,ny,nz),并且可以得到区块中符合切平面分布的顶点数量,即有效点数量c,等价于区块的平面性质置信度。
第二步,如图3所示,对每个区块的法向量做球极映射,映射关系为:其中px,py为映射后的Px-Py坐标。
图中的球面为单位球面,其球面上的蓝色点为各个区块的法向量分布点,Px-Py上的红色点为法向量点映射到Px-Py平面上的点。
红色粗线为球面的最高点到某个法向量点与映射点的连线。
第三步,如图4所示,对第二步中映射到Px-Py的结果做栅格化分割,并以高斯加权的方式做直方图统计,得到图4中的二维直方图分布,通过8-领域查找二维直方图中的极大值及其在Px-Py坐标系下的坐标,得到深度图像场景中平面的法向量映射到Px-Py坐标系下的坐标(px,py)。
通过计算该坐标的球极逆映射,即可计算得到平面的法向量(nx,ny,nz)。
如图5所示由前三步计算可以得到平面的法向量,将各个区块依次投影到法向量所在的方向,得到在法向量方向上区块到原点的距离,通过离散化各个区块到原点的距离并作高斯加权的直方图统计,得到各个区块在各个法向量方向的直方图分布,查找直方图的极大值得到某个法向量方向上的各个平行平面与原点的距离。
通过以上步骤,已经得到了深度图像所对应实际场景中各个平面的参数Pi,使用MeanShift 算法对Pi在区块的数据上做优化,消除栅格化对平面参数造成的误差。
再使用带阈值的K-means算法以Pi为初始种子点,在对各个区块标记对应平面参数的同时对Pi做优化。
法向量优化效果如图6所示,图中白色点云是深度图像对应的场景点云,蓝色细线、红色短细线表示各个区块的切平面方向,黄色的长线为优化前一个平面的法向量方向,粉色粗线为优化后该平面的法向量方向,可以观察到优化前结果与实际场景中的平面不完全垂直,优化后的结果与对应实际场景平面垂直。
平面分割结果如图7所示,右图是彩色相机拍摄的场景,左图为本算法对深度图的实时分割点云渲染结果,红色区域表示非平面区域,其他彩色区域为检测、分割出的不同平面。
本算法在CUDA 3.5算力架构的并行标准下,在Titan X(Pascal)GPU上的运行时间为1.90毫秒,达到了非常高的运算效率。