一种基于无人机的实时三维重建方法与流程

文档序号:15230829发布日期:2018-08-21 19:25阅读:3913来源:国知局

本发明属于无人机控制技术领域,特别涉及一种基于无人机的实时三维重建方法。



背景技术:

随着信息技术的飞速发展以及装备技术的不断成熟,出现了无人驾驶飞机,简称无人机(uav)。由于其具有非接触、零伤亡、可长时间工作的特点,在军事领域及民用领域都得到了广泛的应用。

无人机从技术角度定义可以分为:无人直升机、无人固定翼机、无人多旋翼飞行器、无人飞艇和无人伞翼机这几大类。在民用领域,无人机可应用于航拍摄影、新闻报道、环境监测、快递送货、灾情监视、交通巡逻和电力巡检等;在军事领域,无人机可应用于战场侦察和监视、定位校射、毁伤评估、电子战等,对服务国民经济,促进科技创新,维护国家权益和捍卫国家安全等方面均具有重要意义。在快递送货、电力巡检、战场侦察和电子战等领域的应用中,需要无人机能够识别当前环境信息,绕开障碍物,躲避敌机和识别目标等,这就需要对无人机所处的场景进行三维重建,得到距离信息和场景信息,然后配合上智能避障算法等使得无人机具有自主感知、自主决策和自主避障等能力。三维重建技术广泛应用于机器视觉、计算机图形学以及机器人等诸多领域。并且随着三维游戏、电影行业、vr&ar的火爆以及房地产中对虚拟三维地图的需求,三维技术在医疗行业的三维心脏、教育行业、三维数字城市、中国古代建筑三维数字化保护等领域都有应用。

目前,现有的三维重建方法包括:

基于运动恢复结构(sfm)的方法,该方法是先获取手机或者网络上的图片,对图片进行特征点的提取,包括sift或者surf特征点,然后对这些特征点进行匹配,将匹配后的特征点进行三角化,得到稀疏模型,再用cmvs/pmvs进行稠密化,最后得出场景的三维模型,但这种方法有以下不足:

(1)构建一个场景的三维模型需要较多该场景的照片数目;

(2)当图片之间偏转角度较大或者光照、季节等的不同会导致特征点之间很难匹配;

(3)特征匹配速度较慢,十分耗费时间,不具有实时性。

利用激光雷达对场景进行快速扫描能够高效,精确获得场景三维点的信息,但是激光雷达成本较高,很难普及与应用。

基于三维体素的重建算法,该方法是首先初始化一个三维体,然后将其进行分割,得到较小的立方体栅格,即为体素,接着通过自行设计一个成本泛函来对三维体上每一个体素之间的一致性进行评估,最后最小化成本函数来完成三维表面的估计;这种方法普遍存在的问题是:重建结果中包含较多噪声。



技术实现要素:

本发明的目的在于提供一种基于无人机的实时三维重建方法,以解决上述存在的技术问题。本发明的重建方法能够实现场景的实时三维重建,且无需用成本较高的方式获取场景的图片;重建结果中包含的噪声较少,表面较平滑。

为达到上述目的,本发明采用以下技术方案:

一种基于无人机的实时三维重建方法,其特征在于,包括以下步骤:

步骤1,采集场景数据,根据采集的场景数据通过深度传感器得到深度数据,并获取深度图;

步骤2,对步骤1得到的深度图进行噪声预处理,噪声预处理包括形态学操作以及滤波操作;

步骤3,对步骤2噪声预处理后的深度图进行加速处理,加速处理包括对噪声预处理后的深度图中的二维点进行均匀采样;

步骤4,将步骤3加速处理后的深度图转换为点云;

步骤5,对步骤4获得的点云进行建模;

步骤6,对步骤5获得的结果进行噪声再处理,生成场景的三维模型实现三维重建。

进一步的,步骤1具体包括:通过双目摄像机拍摄场景图片,将获得的场景图片通过深度传感器进行处理,获取深度传感器的深度数据得到深度图。

进一步的,步骤3中深度图中二维点的均匀采样方式为每两帧取一帧。

进一步的,步骤2具体包括:

步骤2.1,用7*7的核对步骤1得到的深度图进行一次腐蚀操作;

步骤2.2,使用7*7的核对步骤2.1得到的图像进行两次膨胀操作;

步骤2.3,对步骤2.2得到的图像用5*5的核进行中值滤波,中值滤波输出为:

g(x,y)=med{f(x-k,y-l),(k,l)∈w}(1)

其中,f(x,y),g(x,y)分别为原始图像和处理后图像,med表示取中值,w是二维模板,为5*5的方形区域,(k,l)表示模板中像素的位置,k表示模板中的行坐标,l表示模板中的列坐标,(x,y)表示图像中像素的位置,x表示图像中的行坐标,y表示图像中的列坐标。

进一步的,在步骤4中,将步骤3处理后的深度图中的图像坐标经过相机坐标最终转换成世界坐标,完成深度图到点云的转换,转换公式为:

其中,xw,yw,zw)表示世界坐标系下的任意坐标,zc与光轴重合,表示相机坐标的z轴值,即深度传感器得到的深度值,f表示相机的焦距,(u,v)为图像坐标系下的坐标,u表示图像的行坐标,v表示图像的列坐标;(u0,v0)为图像的中心坐标,u0表示图像中心的行坐标,v0表示图像中心的列坐标,dx表示像素在行坐标上的微元,dy表示像素在列坐标上的微元,dx*dy表示像素的物理尺寸大小。

进一步的,步骤4具体包括:

步骤4.1,将步骤3处理后的深度图中的图像坐标系转换为相机坐标系,转换关系为:

其中,(u,v)为图像坐标系下的坐标,u表示图像的行坐标,v表示图像的列坐标;(u0,v0)为图像的中心坐标,u0表示图像中心的行坐标,v0表示图像中心的列坐标,zc与光轴重合,表示相机坐标的z轴值,即深度传感器得到的深度值;f表示相机的焦距,每个像素点投影到图像平面是矩形而不是正方形,dx表示像素在行坐标上的微元,dy表示像素在列坐标上的微元,dx*dy表示像素的物理尺寸大小;(xc,yc,zc)表示相机坐标系下的坐标,xc表示相机坐标系下的行坐标,yc表示相机坐标系下的列坐标;

步骤4.2,将步骤4.1得到的相机坐标系转换为世界坐标系,转换关系如下:

其中,(xc,yc,zc)表示相机坐标系下的坐标,(xw,yw,zw)表示世界坐标系下的任意坐标,r为旋转矩阵,t为平移矩阵;

步骤4.3,将公式(3)和公式(4)进行合并,完成图像坐标系到世界坐标系的转换,转换关系表示为:

其中,zw=zc,公式(5)简化表示为:

将公式(6)矩阵进行计算,得到图像点[u,v]t到世界坐标点的转换公式:

进一步的,在步骤5中,采用体素化的建模方式,并采用离散化的八叉树存贮方式对步骤4获得的点云进行建模。

进一步的,步骤5具体包括:

步骤5.1,确定体素化大小,设置场景最大尺寸;

步骤5.2,读取点云数据,再将点云插入到八叉树中;

步骤5.3,先对八叉树中的节点采用离散化的方式进行表示,再从根节点到叶子节点遍历整个八叉树,然后将体素化后的坐标进行读取与输出。

进一步的,在步骤6中,采用基于统计的距离度量方法对步骤5获得的模型进行噪声再处理。

进一步的,步骤6具体包括:

步骤6.1,统计步骤5生成的三维点云个数;

步骤6.2,将序号为前百分之一的三维点不进行保存,用于去除部分噪声;

步骤6.3,以无人机gps坐标为中心,计算场景所有三维点到无人机的欧式距离,计算公式为:

其中,(x,y,z)为无人机的gps坐标,(xi,yi,zi)为三维点的位置坐标,n为三维点的个数;将计算的欧式距离值(dis1,dis2,···disi,···disn)按从小到大进行排序,并且每一个距离值与三维点的序号(s1,s2,···si,···sn)相对应,然后将前5个最小距离值所对应的三维点序号取出,删除这些序号的三维点坐标来进行噪声再处理。

相比于现有技术,本发明具有以下有益效果:

本发明的一种基于无人机的实时三维重建方法,在无人机飞行的过程中,通过无人机上搭载的信息采集设备采集场景数据,经过深度传感器获得深度数据和深度图;然后对深度图进行噪声预处理、加速处理、点云转换、建模以及噪声再处理之后,能够实时的重建场景的三维模型,为无人机的自主决策、自主避障提供可能。本发明的基于深度图融合的算法是先在任意两幅相邻图像之间生成深度图,然后将深度图转换为点云,映射到三维空间中,最后再对点云数据进行后处理来生成完整的三维场景模型。本发明的重建方法能够实现场景的实时三维重建,且无需用成本较高的方式获取场景的图片;重建结果中包含的噪声较少,表面较平滑。

进一步的,通过双目摄像机来获取场景的图片信息,通过深度传感器来获得若干左右相机图像与深度数据,并生成深度图,成本较低,且能满足实时三维重建的需求。

进一步的,采用均匀采样的方式来对深度图像中的二维点进行采样;主要是基于无人机上的双目摄像机拍摄的照片经过深度传感器处理之后,一秒钟能得到大概20张图片的深度数据,采取每两帧取一帧数据;而双目摄像头在拍摄过程中会产生比较多的噪声和无用数据,均匀采样就能丢掉这些数据,减少处理时间;并且双目拍摄时无人机是移动的,一秒钟拍摄的20张图片基本相同但是又有差异,因此对每一张图片均匀采样时,不同图片之间能弥补采样时可能丢失的场景信息;采样使得当前帧点的数目减少,能对后续的三维建模起到加速效果,有利于实现实时三维重建。

进一步的,运用图像的腐蚀、膨胀以及中值滤波来对图像进行预处理,能够初步去除图像中的噪声点,核的规格能够在较大程度上影响噪声点的去除效果,采用7*7的核能够得到较好的腐蚀和膨胀效果,另外腐蚀操作只需进行一次即可满足要求,膨胀操作只需进行两次即可满足要求,达到较好的效果,可节省处理时间;中值滤波选用5*5的方形区域能够获得较好的滤波效果。

进一步的,基于八叉树的体素化建模由点云得到三维模型,并采用合适的体素化大小以及离散化的节点表示方式能再次提高建模速度。

进一步的,采用基于统计的距离度量方法进一步去除体素化后的模型中存在的噪声,实现噪声的再处理,生成最后的三维模型。

本发明能够对廉价的双目拍摄的图片进行有效,实时的三维重建,为无人机的后续智能处理如:自主决策、自主避障提供可能,有助于推进无人机的应用。

附图说明

图1是本发明的一种基于无人机的实时三维重建方法的流程图;

图2是双目摄像机拍摄的一个场景的左相机图片;

图3是双目摄像机拍摄的又一个场景的左相机图片;

图4是一场景的体素化模型的噪声处理前的示意图;

图5是图4噪声处理后的示意图;

图6是图2场景的三维重建结果示意图;

图7是图3场景的三维重建结果示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施列用于解释说明本发明,但不用来限制本发明的范围。

参考图1至图7,本发明的一种基于无人机的实时三维重建方法,包括如下步骤:

步骤1,获取深度传感器的深度数据,得到深度图;

通过由无人机上搭载的双目摄像机进行场景拍摄,通过深度传感器根据拍摄的图片得到深度数据,进而获得场景的深度图;拍摄的图像为灰度图,大小为240*320;深度数据用一个xml文件进行保存,同时还保存有由guidence系统得到的无人机gps数据以及偏航角数据。图2和图3是无人机上双目摄像机拍摄的两个场景的左相机图片;大小都为240*320。

步骤2,对步骤1得到的深度图进行包括形态学操作以及滤波的噪声预处理;

噪声预处理的步骤是:

步骤2.1,先用7*7的核对深度图进行一次腐蚀操作,来达到去除噪声的目的,包括:将内核的中心点,即锚点划过图像,然后将图像与内核进行卷积操作,将内核覆盖区域的最小像素值进行提取并用来代替锚点位置的像素,来达到去除噪声的目的;

步骤2.2,然后使用7*7的核对腐蚀后的图像进行两次膨胀操作,来达到弥补腐蚀可能导致的场景三维点丢失以及连通空洞区域的目的,包括:将内核的中心点,即锚点划过图像,然后将图像与内核进行卷积操作,将内核覆盖区域的最大像素值进行提取并用来代替锚点位置的像素,来达到弥补腐蚀可能导致的场景三维点丢失以及连通空洞区域的目的;

步骤2.3,对形态学操作后的图像用5*5的核进行中值滤波,输出为:

g(x,y)=med{f(x-k,y-l),(k,l)∈w}

其中,f(x,y),g(x,y)分别为原始图像和处理后图像,med表示取中值,w是二维模板,为5*5的方形区域,(k,l)表示模板中像素的位置,k表示模板中的行坐标,l表示模板中的列坐标,(x,y)表示图像中像素的位置,x表示图像中的行坐标,y表示图像中的列坐标,将5*5区域内的中间像素值赋给5*5区域的中心点位置所对应的像素。

步骤3,对预处理后的深度图进行均匀采样的初步加速处理;

采用均匀采样的方式来对深度图像中的二维点进行采样。主要是基于无人机上的双目摄像机拍摄的照片经过深度传感器处理之后,一秒钟能得到大概20张图片的深度数据,我们采取每两帧取一帧数据的均匀采样方式。双目摄像机在拍摄过程中会产生比较多的噪声和无用数据,均匀采样就能丢掉这些数据,达到减少处理时间的目的;并且拍摄时无人机是移动的,一秒钟拍摄的20张左右的图片基本相同但是又有差异,因此对每一张图片均匀采样时,不同图片之间能弥补采样时可能丢失的场景信息;采样使得当前帧点的数目减少,能对后续的三维建模起到加速效果。

步骤4,将处理之后的深度图转换为点云。将深度图中的图像坐标经过相机坐标,最终转换成世界坐标,从而完成了深度图到点云的转换。

具体步骤如下:

步骤4.1,图像坐标系转换为相机坐标系,由于相机坐标系经过透视变换变成图像坐标系,因此可以利用转换关系由图像坐标系得到相机坐标系,转换关系如下:

其中,(u,v)为图像坐标系下的任意坐标,u表示图像的行,v表示图像的列;(u0,v0)为图像的中心坐标,zc与光轴重合,表示相机坐标的z轴值,也就是目标到相机的距离,即深度传感器得到的深度值;f表示相机的焦距,每个像素点投影到图像平面是矩形而不是正方形,dx*dy表示像素的物理尺寸大小;(xc,yc,zc)表示相机坐标系下的任意坐标。

步骤4.2,相机坐标系转换为世界坐标系,由于世界坐标系经过刚体变换变成图像坐标系,因此可以利用转换关系由相机坐标系得到世界坐标系,转换关系如下:

其中,(xc,yc,zc)表示相机坐标系下的任意坐标,(xw,yw,zw)表示世界坐标系下的任意坐标,r为旋转矩阵,t为平移矩阵。

步骤4.3,将上述公式进行合并即完成了图像坐标系到世界坐标系的转换,表示如下:

由于相机原点与世界坐标系的原点是重合的,即没有旋转和平移,因此:

同时因为没有旋转跟平移,所以世界坐标系与相机坐标系的同一个物体都具有相同的深度,即zw=zc,因此可再次进行简化为:

将上述矩阵进行计算,即可得到图像点[u,v]t到世界坐标点的转换公式:

其中,(xw,yw,zw)表示世界坐标系下的坐标,zc与光轴重合,表示相机坐标的z轴值,即深度传感器得到的深度值,f表示相机的焦距,(u,v)为图像坐标系下的坐标,u表示图像的行坐标,v表示图像的列坐标;(u0,v0)为图像的中心坐标,u0表示图像中心的行坐标,v0表示图像中心的列坐标,dx表示像素在行坐标上的微元,dy表示像素在列坐标上的微元,dx*dy表示像素的物理尺寸大小。

步骤4中首先利用相机坐标系与图像坐标系之间的透视变换关系,通过相机的焦距信息f,图像的中心坐标(u0,v0),像素的物理尺寸大小dx*dy和目标到相机的距离,即深度传感器得到的深度值zc实现图像坐标系到相机坐标系的转换;再利用世界坐标系与相机坐标系之间的刚体变换关系,通过相机的外部参数:旋转矩阵r与平移矩阵t,得到相机坐标系到世界坐标系的转换;最后将式子进行合并完成了图像坐标系到世界坐标系的转换,从而得到了场景的点云数据。

步骤5,采用体素化的方式来建模,利用八叉树来存储点云能够对点云进行快速查找,使用离散化的方式来表示八叉树的节点能够使得点云的处理变得更快以达到再加速的目的。

具体步骤如下:

步骤5.1,先确定体素化大小,设置场景最大尺寸;体素化大小是八叉树中叶子节点的大小,也是迭代的终止条件。体素大小的不同对最后所建立三维模型的影响还是比较大的,当体素比较小时,使得场景的细节比较明确,但是建立模型时所需要的计算量跟存储消耗比较大,而且需要更长的计算时间;体素较大时,场景的细节描述就没有较小体素的那么明确,但是计算量跟时间消耗都相对较小。因此我们需要选择一个合适的体素大小来适合本实例的需求,既要达到一定的识别精度,如:箱子,杆状物等,又能消耗较少的计算时间来达到实时性,最后我们使用体素大小res=0.4米达到本实例的实验要求。场景尺寸即是初始的最大体素大小,也就是确定场景的建模距离,基于双目的精度,场景的建模中,每一帧图片选择的建模距离均为10米。

步骤5.2,读取步骤4得到的点云数据,再将点云数据插入到八叉树中;

步骤5.3,对八叉树中的节点采用离散化的方式进行表示,用0和1来表示节点能够减少计算量,0表示对应的立方体为空,1表示对应的立方体有数据;然后从根节点到叶子节点遍历整个八叉树,将体素化后的坐标进行读取与输出。

步骤6,采用基于统计的距离度量方法来进一步去除体素化后的模型中存在的噪声,实现噪声的再处理,生成最后的三维模型实现三维重建。

具体步骤包括:

步骤6.1,统计步骤5生成的三维点云个数;

步骤6.2,将序号为前百分之一的三维点不进行保存,来去除部分噪声;

步骤6.3,以无人机坐标为中心,计算场景所有三维点到无人机的欧式距离dis,计算公式为:

其中,(x,y,z)为无人机的gps坐标,(xi,yi,zi)为三维点的位置坐标,n为三维点的个数,将计算的距离值(dis1,dis2,···disi,···disn)按从小到大进行排序,并且每一个距离值与三维点的序号(s1,s2,···si,···sn)相对应,然后将前5个最小距离值所对应的三维点序号取出,删除这些序号的三维点坐标来再次进行噪声处理,得到的噪声去除效果如图3的右边部分所示,完成场景三维重建,结果如图6和图7所示。

通过图4和图5的实验结果表明,本发明的三维重建方法可以有效的去除场景中的噪声数据,并且在复杂场景中建模达到每秒10到12帧的处理速度,而对于简单空旷的场景达到每秒20帧左右的处理速度。相比现有方法,本发明不但具有较高的重建精度,同时还具较快的重建速度,实现了场景的实时性建模。

本发明的基于无人机的实时三维重建的方法,运用图像的腐蚀、膨胀以及中值滤波来对图像进行噪声预处理,初步去除图像中的噪声点;使用均值采样来初步加速后续的三维建模;然后利用相机的内参跟外参将图像坐标转换成世界坐标,生成点云;基于八叉树的体素化建模由点云得到三维模型,并采用合适的体素化大小以及离散化的节点表示方式能再次提高建模速度;最后采用基于统计的距离度量方法进一步去除体素化后的模型中存在的噪声,实现噪声的再处理,生成最后的三维模型。本发明能够对廉价的双目拍摄的图片进行有效,实时的三维重建,为无人机的后续智能处理如:自主决策、自主避障提供可能,有助于推进无人机的应用。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以提出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

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