一种将球幕相机得到的三维大场景转成剖面图的方法与流程

文档序号:16213870发布日期:2018-12-08 08:06阅读:366来源:国知局
一种将球幕相机得到的三维大场景转成剖面图的方法与流程

本发明涉及三维成像建模技术领域,涉及一种三维场景转换技术,具体涉及一种将球幕相机得到的三维大场景转成剖面图的方法。

背景技术

传统slam相机基于小孔成像原理,比如手机相机,实际上是对普通相机做的,特点是平面化且视角单一,其次,传统相机基于相机焦距的平面坐标系找邻域。另一方面,传统的闭环检测基于时间序列,即每间隔一段时间进行一次检测,缺点在于没办法判断合适的检测时机,有的甚至在不是闭环的情况下进行检测,占用存储空间,加大cpu计算消耗,造成资源浪费。为了解决以上的技术问题,现在市场上出现了通过球幕相机拍摄,再进行三维建模,该球幕相机在同步定位与建图、特征点匹配、闭环检测等都更加准确和稳定。其次,基于结构化的建模速度更快、效率更高。

然而基于上述建模方法,技术人员又遇到了其它难点,由于球幕相机进行三维建模,需要大量的数据计算,目前的计算机性能无法完成如此大量的计算。这成为了该项技术是否能在实际中广泛使用重要条件。



技术实现要素:

为了解决背景技术中所提到的计算数据量过大的问题,本发明旨在于提供一种将球幕相机得到的三维大场景转成剖面图的方法,通过将球幕相机的到的三围场景转换成剖面图从而降低计算机的数据计算量。

为了实现上述目的,本发明采用的技术方案如下:一种将球幕相机得到的三维大场景转成剖面图的方法,其特殊之处在于:包括以下步骤:

s1持球幕相机对场景进行拍摄得到一组照片或者视频流;

s2对照片提取特征点;

s3匹配特征点;

s4根据特征点与相机位置计算出特征点的三维空间位置;

s5生成稀疏点云;

s6根据用户需要,自定义切点云;所述切点云是通过对稀疏点云进行截面,而后由截面上形成特征点组成;

s7在切点云颜色过渡的区域提取更多特征点,进行稠密重建;上述切点云颜色过渡以外的区域则不进行稠密重建;

s8生成剖面图。

在步骤s2中,视频流的关键帧也为照片,关键帧为任意一帧。上述步骤s2特征点的出现区域为颜色跃迁的过渡地带,步骤s3的特征点相互匹配的条件是特征点的运算符相同或相近。

步骤s7中的稠密重建,采用的是三维多视角立体视觉算法(pmvs)。

上述步骤s8先从稀疏点云中,获取截面的数据,将截面上的特征点进行二次运算稠密重建,从而形成剖面结果。

在步骤s8生成剖面图后,可对剖面图进行测距,测距方法包括以下步骤:

s81:在图片1找到目标点,得到其二维坐标值a和该点对应的相机点a;

s82:同时通过图片1的目标点匹配到该目标点在另一张图片2的二维坐标值b及其对应的相机点b;

s83:连接目标点在图片1的二维坐标a与相机点a得到一条射线la,同时连接目标点在图片2的二维坐标b与相机点b得到一条射线lb;

s84:la与lb相交于点c,并得到c点的三维坐标值;

s85:重复上述步骤s1-步骤s4得到另外一个目标点的三维坐标值d;

s86:将c、d两点相连,测出其在三维空间中的距离。

基于步骤s8的结构化模型,提取出门、窗、房间结构,并通过稠密重建整理门、窗的尺寸和距离信息,将门、窗、房间结构的尺寸信息跟距离信息与步骤s7所形成的剖面图结合形成俯视图。

上述特征点为图片上的像素点,包含该点的位置信息,尺度信息和方向的信息。

本发明有益效果在于,对球幕相机所拍摄的照片或视频流的整个空间进行稠密重建所需要的工作量巨大,目前的计算机性能无法完成如此大量的计算。本发明避免了这个问题,仅对切面进行稠密重建,从而减少计算量,缩短计算时间,集中资源建设用户关心的数据。尤其是在建筑方面,提取出门窗等建筑结构。扫描后可以直接生成任意角度的剖面图,缩短了设计图纸的时间。

附图说明

图1为本发明的实施示意图;

图2为本发明三维大场景示意图;

图3为本发明步骤s6切点云示意图;

图4为本发明步骤s8所生成的竖切剖面图;

图5为本发明步骤s8所生成的横切剖面图;

图6为本发明的测距示意图。

具体实施方式

以下将结合实施例对本发明作进一步的描述,需要说明的是,以下实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。

在用球幕相机进行三维建模后,得到三维大场景,本发明就是在三维大场景转成二维的剖面图,本发明使针对结构化物体更加清晰、真实,关键针对结构化物体的剖面图。

参见图1-5,一种将球幕相机得到的三维大场景转成剖面图的方法,包括以下步骤:

s1持球幕相机对场景进行拍摄得到一组照片或者视频流;

s2对照片提取特征点;

s3匹配特征点;

s4根据特征点与相机位置计算出特征点的三维空间位置;

s5生成稀疏点云;

s6根据用户需要,自定义切点云;所述切点云是通过对场景的三维模型进行截面,而后由截面上形成特征点组成;

s7在切点云颜色过渡的区域提取更多特征点,进行稠密重建;所述切点云颜色跃进以外的区域则不进行稠密重建;

s8生成剖面图。

在步骤s2中,视频流的关键帧也为照片,关键帧为任意一帧。从视频流中获取照片的速度最低为每秒24帧,即可以覆盖视频中的大部分照片,所获取的照片可组成最低帧数的视频,关键帧为视频流每秒获取照片中的任意一帧,可适用任何一个视频,不需要专业人员来拍摄视频。步骤s2特征点的出现区域为颜色跃迁的过渡地带。特征点相互匹配的条件是特征点的运算符相同或相近。

所述步骤s1-s5的具体实现过程如下,球幕相机进行实时定位,得到至少一组照片或者视频流;基于球幕相机所得出的至少一组照片或者视频流的特征点进行识别与匹配,生成稀疏点云;基于球幕相机三维数字化建模的闭环进行自动检测;

上述过程中,在所述一组照片或者视频流中,对单张照片用sift描述符进行特征点,即照片上的像素点,提取同时分析每一个所述特征点的邻域,根据邻域控制所述特征点。

所述闭环检测为:用当前算出所述球幕相机位置与过去所述球幕相机位置进行比较,检测有无距离相近;若检测到两者距离在一定阈值范围内,就认为所述球幕相机又回到原来走过的地方,此时启动闭环检测。本发明为基于空间信息而非时间序列的闭环检测。

步骤s7中稠密重建,采用的是三维多视角立体视觉算法(pmvs),该算法的相关步骤具体如下:

基于面片的三维多视角立体视觉算法(pmvs)重建出稠密的点云,面片p是一个近似的正切与重建物体表面的一个小矩形,它的一边平行于球幕相机的x轴,面片具有的几何特征如下:(1)中心点:c(p);(2)单位法向:n(p),该向量指向相机的光心;面片p对应一个参考图像r(p),在r(p)中p是可见的。针对p有扩展矩形,p在r(p)中的投影是μ×μ大小的,μ=5or7。

基于面片的多视角三维立体视觉算法的目的就是保证在每个图像块ci(x,y))上至少有一个面片的的投影。主要分为以下三步:

s71.1:初始化特征匹配(initialfeaturematching);

s71.2:面片生成(patchexpansion);

s71.3:面片筛选(patchfiltering);

初始化特征匹配的目的就是生成一系列稀疏的面片,面片的生成和筛选都要执行n次使得面片足够稠密,同时去除不好的面片。

在步骤s71.1中,首先用sift来提取图像的角点特征,即为每幅图像的特征点。对于图像ii,以及其对应的光心o(ii),该图像中的特征点f,通过允许有两个像素误差的极线约束找到它在其它图像中的同种类型的特征点f′,构成匹配点对(f,f′)。然后用这些匹配点对使用三角化的方法生成一系列三维空间点,然后将这些点按照距离o(ii)从小到大顺序进行排列,然后依次尝试生成面片,直到成功。

尝试生成面片的方法如下所示:首先初始化候选面片的c(p),n(p)和r(p),如下所示:

c(p)←triangulationfromfandf′}

r(p)←ii.

由于生成的面片可能有很多错误的情况,因此可认为在图像ii中可见的面片是面片的法向量与面片中心到相机光心的连线夹角小于一定角度αα的图像,即满足:

同样v*(p)的获得与前面所讲的方法相同。这样面片的信息都已经初始化过了,然后根据前面所讲的对c(p)和n(p)进行优化,并将优化过后的c(p)和n(p)带入v*(p)=i|i∈v(p),h(p,i,r(p)≤α)

中对v(p)和v*(p)进行更新。如果|v*(p)|≥r,集认为面片p的可视图像至少为r幅,即接受面片p,重建成功。并将面片p存储到对应的可视图像的图像块中(即更新qi(x,y)和q*i(x,y))。

步骤s71.2面片生成的目的就是保证每个图像块至少对应一个面片。通过上面生成的面片,重复的生成新的面片,具体来说就是给定一个面片p,首先获得一个满足一定条件的邻域图像块集合c(p),然后进行面片生成的过程。

下面是面片p的两个相关概念:

(1)图像块邻域c(p):c(p)={ci(x′,y′)|p∈qi(x,y),|x-x′|+|y-y′|=1}.(2)面片p和p′的临近关系:

|(c(p)-c(p′))·n(p)|+|(c(p)-c(p′))·n(p′)|<2ρ1

即当面片p和p′满足上式时,即判定两者为临近关系,上式中的ρ1由r(p)在c(p)和c(p′)中的深度决定。

当存在一个面片p′其所属的图像块ci(x′,y′)满足ci(x′,y′)∈c(p),同时p和p′属于近邻关系时,此时将ci(x′,y′)从c(p)中删除,不对它进行面片生成。同时,即使这个条件没有满足,只要qi(x′,y′)不为空,也不需要再此图像块上执行生成操作。

对于c(p)中其余的图像块,将会执行面片生成的操作流程以生成新的面片p′。首先用p的相应变量初始化p′的n(p′)、r(p′)和v(p′),对于c(p’)的初始值为穿过ci(x,y)的可视光线与面片p所在平面的交点。使用v*(p)=i|i∈v(p),h(p,i,r(p)≤α)由v(p)得到v*(p′),再由上面提到的方法对c(p′)和n(p′)进行优化。在优化的过程中,将c(p′)约束在一条直线上,使得p′在图像ii上的位置不会改变,始终对应的是ci(x,y)。优化完成后,给v(p′)加上一组图像,这些图像块些根据深度测试判断为p′对其应该是可见的,并根据此更新v*(p′)。

最终如果|v*(p′)|≥r|,则判定p′是可接受的,即生成成功,同时更新qi(x,y)和q*i(x,y)。

步骤s71.3中的面片过滤,在面片的重建过程中,可能会生成一些误差较大的面片,因此需要过滤来确保面片的准确性。第一个过滤器是通过可视一致性进行过滤,另u(p)表示与当前可视信息不连续的面片集合,所谓的不连续就是p和p′两个面片不属于近邻关系,但是却存在于同一个qi(x,y)中。对于u(p)中的面片p,如果满足下列条件,则将其过滤掉。

|v*(p)|(1-g*(p))<∑pi∈u(p)1-g*(p)

直观上来讲,如果p是一个异常值,那么1-g*(p)和|v*(p)|都会比较小,这样p一般都会被过滤掉。第二个过滤器同样也是考虑可视一致性,不过会更加严格,对于每个面片p,计算它通过深度测试得到的可视图像的总数,如果数目小于r,那么则认为p是异常值,从而过滤掉。第三个过滤器,对于每个面片p,在v(p)中,收集这样的一组面片,它们的映射到面片p自己所在的图像块以及所有相邻的图像块,如果p的八邻域内的面片数量占收集所得面片数量的比例小于0.25,则任务p是异常值,将其过滤掉。

在步骤s7中,切点云颜色跃进以外的区域则不进行稠密重建,采用稀疏重建,得到结构化模型。即在基于球幕相机三维数字化建模的闭环进行自动检测后,对切点云颜色跃进以外的区域进行稀疏重建,得到剖面图以外的场景的三维模型。具体步骤可细分为:

s72.1初步计算出所述球幕相机位置得到部分有噪音点稀疏点云,用距离和重投影的方式进行滤波滤掉噪音点;

s72.2对稀疏点云做标记即整体点云中,并进行对应的标记;

s72.3以每个稀疏点云为起点,以对应的球幕相机作一条虚拟直线,多个所述虚拟直线经过的空间交织在一起,形成一个可视空间;

s72.4将被射线包围的空间抠出来;

s72.5基于图论最短路径的方式做闭合空间。

需要说明的是,所述稀疏点云为每个所述球幕相机过滤之后所获得的。其中步骤s5.3也可理解为以每个稀疏点云为起点,以对应的球幕相机作一条虚拟直线,多个所述虚拟直线经过的空间交织在一起,形成一个可视空间。

需要进一步说明的是,过滤指的是:在确认了二维图片中某一点对应的三维坐标位置后,将这个三维坐标点重新投影到原来的球幕照片上,再次确认是否仍是那个点。其原因是,二维图片的点与其在三维世界的点的位置是一一对应关系,所以在确认了二维图片中某一点的三维坐标点后,可以将这个三维坐标点重新投射回去验证二维坐标点是否仍在原来的位置,以此来决定该像素点是否为噪点,是否需要过滤。需要说明的是,在照片或视频流中确定一张来自于某个所述球幕相机的最优图片。所述最优图片为某一所述球幕相机能够得到目标的像素最多,则所述球幕相机为最优。

需要进一步说明的是,利用公式计算出对应的相机及其拍到的图形颜色:

v1=normalize(cameramatrixi*v0)

式中:v0为任何一个需要采样的空间点坐标(x,y,z,1),对于一个模型需要光栅化所有点;v1为v0变换到相机空间的新位置坐标,通过向量归一化变换到单位球面上;tx和ty为v0所对应的纹理坐标(x,y),选用坐标系为opengl纹理坐标系;aspecti:采样用的第i个全景图片的长宽比;cameramatrixi:采样用的第i个全景图片的变换矩阵,将相机位置变换到原点,并重置相机面朝方向。

如图6所示,在步骤s8生成剖面图后,可对剖面图进行测距,测距方法包括以下步骤:

s81:在图片1中找到目标点,得到其二维坐标值a和该点对应的相机点a;

s82:同时通过图片1中的目标点匹配到该目标点在另一张图片2上的二维坐标值b及其对应的相机点b;上述每一个特征点的特征都可以被数值描述,这些特征不仅包含自身的位置、方向和颜色信息,还包括该特征点附近的点的信息;所有这些信息在计算机中都由一个数值表示;上述匹配,目的是找到两张照片(在不同角度)中的相同的某一特征点,匹配的方法是比较这个数值,两个数值接近或者一致,就认定这是同一个点,也就是匹配成功;

s83:连接目标点在图片1上的二维坐标a与相机点a得到一条射线la,同时连接目标点在图片2上的二维坐标b与相机点b得到一条射线lb;

s84:la与lb相交于点c,并得到c点的三维坐标值;

s85:重复上述步骤s1-步骤s4得到另外一个目标点的三维坐标值d;

s86:将c、d两点相连,测出其在三维空间中的距离。

图6中的c点和d点即为生成的剖面图中的点,是三维空间中的点,c、d两点的距离,即为其在三维空间中的距离,c、d两点可由用户自定义。

基于步骤s8的结构化模型,提取出门、窗、房间结构,并通过稠密重建整理门、窗的尺寸跟距离信息,将门、窗、房间结构的尺寸信息跟距离信息与步骤s7所形成的剖面图结合形成俯视图,再标示出特定图像信息。

剖面图的形成过程中,针对自定义的面,先从结构化模型中拉出剖面的数据,将剖面上的特征点进行精细化的结构重建,即二次运算稠密重建,生成剖面结果。

实施例

通过附图进一步对本发明的三维建模进行描述,本发明主要的实施方法为:

一种将球幕相机得到的三维大场景转成剖面图的方法,包括以下步骤:

s1持球幕相机对场景进行拍摄得到一组照片或者视频流;

s2对照片提取特征点;

s3匹配特征点;

s4根据特征点与相机位置计算出特征点的三维空间位置;

s5生成稀疏点云,也就是对拍摄所得的照片或者视频流进行稀疏重建;

s6根据用户需要,自定义切点云;所述切点云是通过对场景的三维模型进行截面,而后由截面上形成若干特征点组成;

s7在切点云颜色过渡的区域提取更多特征点,进行稠密重建;所述切点云颜色跃进以外的区域则不进行稠密重建;

s8进行结构化建模,生成剖面图。

基于上述,需要指出的是,将球幕相机得到的三维大场景转成剖面图的方法是根据客户需求进行切面的选择。

进一步的,如图1所示,步骤s4所形成的特征点是图像形成过程中自动生成的,特征点生成的主要目的是为了进行匹配;需要说明的是,在实际操作中可对拍摄某一场景的所有照片的特征点进行匹配。图1中为自动选取特征点的示意,图中的灰色麻点为特征点,从中可以看出特征点一般位于有颜色跃迁的地带。

图2为本发明三维大场景示意图,图3为本发明步骤s6切点云示意图,图3中右侧的深色点云即可生成图4和图5的剖面图,图4为本发明步骤s8所生成的竖切剖面图;图5为本发明步骤s8所生成的横切剖面图。

对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。

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