一种球形全景视频的拼接方法及系统与流程

文档序号:12890267阅读:660来源:国知局
一种球形全景视频的拼接方法及系统与流程

本发明涉及图像处理技术领域,特别涉及一种球形全景视频的拼接方法及系统。



背景技术:

全景视频是一种新型的视频。传统视频只能看到空间中某个方向和范围的信息,与此相比,全景视频记录了空间360度全方位信息,并且可以与用户进行一定的交互,例如改变观察方向和切换场景等。它是由多个不同方向拍摄的普通视频拼合而成的。视频拼接在军事、医学、计算机视觉、视频会议、安防等领域中都有重要应用。全景视频由全景图发展而来。全景图的拼接已研究得比较多。

按技术方法的不同,最常用的方法可分为三类:基于频域的方法、基于特征的方法和基于灰度梯度的方法。其中,基于频域的方法以分数傅里叶变换的改进方法为代表,该类方法能很好地解决平移、旋转和均匀缩放的配准问题,但却无法很好地解决透视投影变换的配准。基于特征的方法以尺度不变特征变换算法(sift)代表,该方法能很好的解决包括透视变换的各种变换的配准问题,但该方法时间复杂度非常高,而且对于纹理图像的配准结果也不够理想。基于灰度梯度的方法是通过图像灰度差最小化来求解投影变换参数,使用lm优化技术求取透视投影参数,但这些方法易受光照变化的影响。

按构造方式不同,全景图可分为柱型、方型和球型三种(全景视频亦然)。其中柱型全景研究得较多,各种全景相关技术也由其率先推进。但柱型全景有个固有的缺点,不能完整的包含空间信息,顶部和底部的空间信息是没有的。球型全景空间信息完全,但比柱型全景困难,研究报道则少很多。一方面,其拍摄方案比较麻烦,需拍摄十几甚至几十照片;另一方面,如此多的照片误差会累积得太多,以至于自动拼接最后无法进行,因此它是一种半自动的方法,经常需要手动调整。因此,如何提供拍摄数量少、全自动、拼接图像质量高的球形全景视频拼接方法,以使全景视频的拍摄变得简易,并且拍摄质量也得到提高,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种球形全景视频的拼接方法及系统,可使全景视频的拼接变得简易和高效,并且图像质量可以得到提高。

为解决上述技术问题,本发明提供一种球形全景视频的拼接方法,所述方法包括:

获取鱼眼镜头拍摄的视频对;其中,所述视频对包括具有n帧第一图像的第一视频和具有n帧第二图像的第二视频;且n帧第一图像与n帧第二图像具有一一对应关系;

分别将具有所述一一对应关系的第一图像与第二图像作为图像对执行拼接操作,形成拼接视频;其中,所述拼接操作的过程包括:

确定所述图像对中第一图像对应的角点;

在所述图像对中第二图像中与各所述角点对应的经验区域进行搜索,并利用hsv算法对搜索结果进行检验确定各所述角点对应的匹配点;

根据选定的角点以及对应的匹配点计算所述图像对的转换矩阵;

利用所述转换矩阵确定所述图像对中未重叠区域中各像素的颜色值,并按照权值系数进行重叠区域的像素融合确定重叠区域中各像素的颜色值;

将全部所述颜色值填充到所述拼接视频中的对应位置。

可选的,确定所述图像对中第一图像对应的角点,包括:

判断所述图像对中的第一图像是否为所述第一视频的第一帧图像;

若是第一帧图像,则对所述第一帧图像进行角点检测,确定所述第一帧图像对应的角点;

若不是第一帧图像,则判断所述图像对是否为间隔预定帧数量的图像对;

若不是间隔预定帧数量的图像对,则将前一帧图像对中的第一图像的角点作为所述图像对中的第一图像对应的角点;

若是间隔预定帧数量的图像对,则对所述图像对中的第一图像的选定重叠区进行角点检测得到阴影角点,并判断所述阴影角点的数量与经纬图像重叠区中的角点之差是否大于阈值;若是,则对所述图像对中的第一图像进行角点检测,确定所述图像对中的第一图像对应的角点。

可选的,所述角点检测的过程,包括:

利用公式进行角点检测,得到预选角点m;

利用公式r=det(m)-k(trace(m))2计算所述预选角点m的响应函数值r;

将所述响应函数值r按照从高到底的顺序进行排列,并选取前预定数量的响应函数值r对应的预选角点m作为角点检测选定的角点;

其中,i为第一视频,ix、iy为通过水平和竖直方向差分算子对图像滤波得到的梯度图像,w(x,y)取二维高斯函数,det为求矩阵行列式,trace为矩阵的迹,k为一个常数。

可选的,在所述图像对中第二图像中与各所述角点对应的经验区域进行搜索,包括:

确定所述角点检测选定的角点在所述图像对中第二图像中对应的理论位置,并以各所述理论位置为中心向外扩展预定范围作为经验区域搜索对应的匹配点。

可选的,利用hsv算法对搜索结果进行检验确定各所述角点对应的匹配点,包括:

分别利用公式计算所述经验区域中每一个像素点与所述经验区域对应的角点的加权颜色差总和ex,y;

选取最小的加权颜色差总和ex,y对应的像素点作为角点的匹配点;

其中,ex,y为第二图像在(x,y)对于第一图像中角点的颜色差总和,h′s+u,t+v和s′s+u,t+v为第一图像中在(s+u,t+v)处的色调和饱和度,h″x+u,y+v和s″x+u,y+v为第二图像中在(s+u,t+v)处的色调和饱和度,kh和ks为两个系数,w(u,v)为窗口像素位置的权重函数,u,v分别为窗口内像素的位置,l为正方形窗口的尺寸。

可选的,根据选定的角点以及对应的匹配点计算所述图像对的转换矩阵,包括:

从所述角点检测选定的角点中按照距离阈值选择5个角点作为选定的角点;

利用公式计算选定的角点以及对应的匹配点计算所述图像对的转换矩阵;

其中,a11、a12…a43共为15个未知数,φl、θl、φr、θr分别是第一图像和第二图像的拍摄坐标系转换成球坐标系后的经纬度。

可选的,所述距离阈值rt具体为:rt=ktr0;其中,r0为转向半径,kt为一个系数。

可选的,利用所述转换矩阵确定所述图像对中未重叠区域中各像素的颜色值,并按照权值系数进行重叠区域的像素融合确定重叠区域中各像素的颜色值,包括:

遍历所述转换矩阵中经度和纬度,确定第一图像中各位置的颜色值c1和第二图像中各位置的颜色值c2;

利用颜色值确定公式确定所述图像对拼接后的图像中各位置的颜色值;

其中,c为所述图像对拼接后的图像中各位置的颜色值,k1、k2是权值系数。

本发明还提供一种球形全景视频的拼接系统,所述系统包括:

视频获取模块,用于获取鱼眼镜头拍摄的视频对;其中,所述视频对包括具有n帧第一图像的第一视频和具有n帧第二图像的第二视频;且n帧第一图像与n帧第二图像具有一一对应关系;

拼接模块,用于分别将具有所述一一对应关系的第一图像与第二图像作为图像对执行拼接操作,形成拼接视频;

拼接操作模块,用于确定所述图像对中第一图像对应的角点;在所述图像对中第二图像中与各所述角点对应的经验区域进行搜索,并利用hsv算法对搜索结果进行检验确定各所述角点对应的匹配点;根据选定的角点以及对应的匹配点计算所述图像对的转换矩阵;利用所述转换矩阵确定所述图像对中未重叠区域中各像素的颜色值,并按照权值系数进行重叠区域的像素融合确定重叠区域中各像素的颜色值;将全部所述颜色值填充到所述拼接视频中的对应位置。

本发明所提供的一种球形全景视频的拼接方法,包括:获取鱼眼镜头拍摄的视频对;分别将具有所述一一对应关系的第一图像与第二图像作为图像对执行拼接操作,形成拼接视频;其中,所述拼接操作的过程包括:确定所述图像对中第一图像对应的角点;在所述图像对中第二图像中与各所述角点对应的经验区域进行搜索,并利用hsv算法对搜索结果进行检验确定各所述角点对应的匹配点;根据选定的角点以及对应的匹配点计算所述图像对的转换矩阵;利用所述转换矩阵确定所述图像对中未重叠区域中各像素的颜色值,并按照权值系数进行重叠区域的像素融合确定重叠区域中各像素的颜色值;将全部所述颜色值填充到所述拼接视频中的对应位置。

可见,通过对鱼眼镜头拍摄的视频对进行合适的坐标变换实现全景视频自动拼接。其中转换矩阵的求解过程中需要进行角点检测、经验区域搜索和hsv颜色空间匹配来实现匹配点的自动检测;该方法拍摄数量少,拼接速度快,拼接过程启动后无需人工调整和干预。生成视频拼接效果好,中间接缝位置拼接准确,过渡自然。从整个视频播放看,没有图像抖动和错位。本发明还提供了一种球形全景视频的拼接系统,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的球形全景视频的拼接方法的流程图;

图2为本发明实施例所提供的鱼眼图像中经纬度及转向半径的计算原理示意图;

图3为本发明实施例所提供的球形全景视频的拍摄方向及坐标系示意图;

图4为本发明实施例所提供的直角坐标对经纬度的转换示意图;

图5为本发明实施例所提供的全景展开图像的经纬度与像素坐标的换算示意图;

图6为本发明实施例所提供的颜色融合权值的计算示意图;

图7为本发明实施例所提供的拼接重合区域示意图;

图8为本发明实施例所提供的一种具体拼接视频截图;

图9为本发明实施例所提供的一种具体的球形全景视频的拼接方法的流程示意图;

图10为本发明实施例所提供的球形全景视频的拼接系统的结构框图。

具体实施方式

本发明的核心是提供一种球形全景视频的拼接方法及系统,可使全景视频的拼接变得简易和高效,并且图像质量可以得到提高。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例所提供的球形全景视频的拼接方法的流程图;该方法可以包括:

s100、获取鱼眼镜头拍摄的视频对;其中,视频对包括具有n帧第一图像的第一视频和具有n帧第二图像的第二视频;且n帧第一图像与n帧第二图像具有一一对应关系。

具体的,本实施例对鱼眼镜头拍摄的视频对中的每一帧图像对进行拼接,进而可以完成对整个视频对的拼接。即本实施例并不对鱼眼镜头本身进行限定,只要是可以完成拍摄的视频对拼接在一起是全景视频即可。这里的第一视频和第二视频仅仅是为了区分视频对中的两个视频而已,并不对它们进行限定,即视频对中的人一个视频都可以是第一视频,对应的另一个即为第二视频。相应的第一图像和第二图像也仅仅是为了区分两个视频中的帧图像而已。本实施例并不限定n的数值,其可以是大于0的任意整数,两个视频对中的视频的帧数是相同的且具有一一对应的关系,即按照拍摄行程的视频的帧顺序对应。例如,第一视频有5帧第一图像(a1,a2,a3,a4,a5),第二视频有5帧第二图像(b1,b2,b3,b4,b5),则a1与b1为具有一一对应关系的图像对,a2与b2为具有一一对应关系的图像对。

s110、分别将具有一一对应关系的第一图像与第二图像作为图像对执行拼接操作,形成拼接视频。

具体的,对视频对中每一帧图像对都进行拼接操作后,即完成了对整个视频对的拼接工作。即对视频的每帧进行操作并进行适当的优化处理,最终生成拼接视频。本实施例中并不限定每对图像对进行拼接操作的处理形式,可以是同时对每一帧图像对进行拼接,也可以是按照帧顺序依次对各帧图像对进行拼接操作。用户可以根据实际情况进行选择。其中,每一帧图像对对应的拼接操作的过程如下:

其中,拼接操作的过程包括:

步骤1、确定图像对中第一图像对应的角点;

具体的,为了得到后续的转换矩阵,需要确定图像角点。本实施例首先确定第一图像的角点,然后通过匹配确定各角点对应的匹配点。

本实施例并不限定每一帧图像对中第一图像角点确定的方式,只要可以确定每一个第一图像的角点即可。例如每一帧图像对中的第一图像都利用角点检测的方法计算对应的角点,或者是在当前帧之前帧对应的角点都比较准确的话可以沿用之前帧的第一图像的角点作为当前帧的图像对中第一图像对应的角点。优选的,为了节省计算资源,加快拼接速度;确定图像对中第一图像对应的角点可以包括:

判断图像对中的第一图像是否为第一视频的第一帧图像;

若是第一帧图像,则对第一帧图像进行角点检测,确定第一帧图像对应的角点;

若不是第一帧图像,则判断图像对是否为间隔预定帧数量的图像对;

若不是间隔预定帧数量的图像对,则将前一帧图像对中的第一图像的角点作为图像对中的第一图像对应的角点;

若是间隔预定帧数量的图像对,则对图像对中的第一图像的选定重叠区进行角点检测得到阴影角点,并判断阴影角点的数量与经纬图像重叠区中的角点之差是否大于阈值;若是,则对图像对中的第一图像进行角点检测,确定图像对中的第一图像对应的角点;若不是,则将前一帧图像对中的第一图像的角点作为图像对中的第一图像对应的角点。

具体的,通过上述角点确定的方法可以仅对第一帧视频的图像对中的第一图像(即第一帧图像)进行角点检测。之后可以仅对间隔预定帧数量的图像对中的第一图像进行角点校正过程。例如每隔10帧执行一次角点校正。这样的处理过程可以在保证角点准确性的情况下,提高计算效率。

进一步本实施例并不限定选定重叠区的大小,即可以在全部的重叠区计算阴影角点,也可以是在重叠区中的一部分计算阴影角点。但是后者的效率更高,因为检索的区域较小。本实施例并不限定选定重叠区的选择方式。

可选的,角点检测的过程可以是:利用公式进行角点检测,得到预选角点m;利用公式r=det(m)-k(trace(m))2计算预选角点m的响应函数值r;将响应函数值r按照从高到底的顺序进行排列,并选取前预定数量的响应函数值r对应的预选角点m作为角点检测选定的角点;

其中,i为第一视频,ix、iy为通过水平和竖直方向差分算子对图像滤波得到的梯度图像,w(x,y)取二维高斯函数,det为求矩阵行列式,trace为矩阵的迹,k为一个常数(其取值可以是0.04-0.06)。当r值很大时,该处为角点;当r<0时,该处为边,当|r|很小时,该处为平坦区域。在整个图像中被判为角点的位置可能有很多,可以选择r值最大的n个(例如n=30)来进行进一步的筛选。即本实施例并不对前预定数量的数值进行限定。

每隔一定帧数(例如每10帧),对重叠区再进行角点检测。重叠区的说明参看图7。由于相机的轻微震动和景物远近变化,变换矩阵会发生变化。这时,需要重新指定匹配点并重新计算变换矩阵。可以通过检查图像重叠区的拼接情况得知。如图7所示,对于2×180°拍摄,重叠区域为阴影部分所示,其中在经纬图像中为中间的一个狭窄的矩形。图像如果拼接得不好,在此矩形中必定有很多线条的错位,在错位的地方会形成角点。进行角点检测可以把它们检测出来。因此,对于某一帧图像,可以检查鱼眼图像(如鱼眼第一图像)中阴影区域的角点数目和经纬图像阴影区域中的角点数目是否大致相等。如果大致相等,则拼接效果是不错的;如果经纬图像阴影区域中的数目远多于鱼眼图像中的,则说明拼接效果已下降,需要重新取5组匹配点重新计算变换矩阵。

不需每帧图像都进行如此检查,只需每隔一段时间(例如每10帧)检查一次即可。检查的图像区域也不需取全部的重叠区域,在鱼眼图像中,只需按转向半径外扩n(例如n=5)个像素,向内缩n个像素,取之间包括的圆环区域即可;在经纬图像中,只需沿中线(图中虚线)向左移n个像素,向右移n个像素,取之间包括的矩形区域即可。事实上,错位产生的角点都在中线处。检查检测到的鱼眼图像重叠区中的角点数和经纬图像重叠区中的角点数。如果两者数目差异大,则重新进行角点检测。

步骤2、在图像对中第二图像中与各角点对应的经验区域进行搜索,并利用hsv算法对搜索结果进行检验确定各角点对应的匹配点;

具体的,拍摄全景图时,若相机的节点能确保不变并拍摄角度准确知道,第一图像中的任何一点,在第二图像中其实是可以计算出来的。例如当拍摄方式是2×180°时,在第一图像极坐标为(r′p,θ)的点,在第二图像中匹配点位置应为(2r0-r′p,π-θ'),式中r0为转向半径。然而,由于相机节点不能严格确保不变、拍摄角度的误差等原因,匹配点的位置会有所偏移。并且由于拍全景视频过程中的震动和景物远近变化剧烈等原因,匹配点还需进行重新调整。因此在图像对中第二图像中与各角点对应的经验区域进行搜索。本实施例并不限定具体的经验区域(也可以称为经验位置)的确定形式,也不限定具体的经验区域的大小。例如可使用这样的方法:把匹配点的理论位置作为初始经验位置为中心,指定一个范围,例如l×l的矩形范围内进行搜索(l值可取0.1-0.3倍r0),找到真正匹配点位置。拼接视频新的一帧时,当发现匹配点位置已经偏移时,以原匹配位置为经验位置,以其为中心,再在l×l的矩形范围内重新搜索。以经验位置决定搜索范围的方法不需在整幅图像进行搜索,使搜索范围大大缩小,大大节约了搜索时间。即可选的,确定角点检测选定的角点在图像对中第二图像中对应的理论位置,并以各理论位置为中心向外扩展预定范围作为经验区域搜索对应的匹配点。

对第二图像基于hsv查找确定匹配点的过程可以是:对两幅图像,给定一个小窗口,第一图像的窗口的中心指定为正在检查的角点,第二图像的窗口中心对l×l的矩形范围内的全部像素遍历尝试,计算每一个位置与第一图像窗口的加权颜色差总和。

对于颜色比较和匹配,使用hsv颜色模型比rgb颜色模型更为合适。因此,需把第一图像和第二图像转化为hsv颜色表示。窗口的加权颜色差总和用下式计算:

即分别利用公式计算经验区域中每一个像素点与经验区域对应的角点的加权颜色差总和ex,y;

选取最小的加权颜色差总和ex,y对应的像素点作为角点的匹配点;

其中,ex,y为第二图像在(x,y)对于第一图像中角点的颜色差总和,h′s+u,t+v和s′s+u,t+v为第一图像中在(s+u,t+v)处的色调和饱和度,h″x+u,y+v和s″x+u,y+v为第二图像中在(s+u,t+v)处的色调和饱和度,kh和ks为两个系数,可设置色调和饱和度对计算结果的重要度。可取kh=0.8而ks=0.2,即令色调比饱和度重要4倍。w(u,v)为窗口像素位置的权重函数,可取其为二维高斯函数,u,v分别为窗口内像素的位置,l为正方形窗口的尺寸。

步骤3、根据选定的角点以及对应的匹配点计算图像对的转换矩阵;

具体的,本实施例并不限定选定的角点以及对应的匹配点的数量,但是为了提高计算效率,由于转换矩阵中有15个未知数,因此需要至少5对匹配点才能够计算。优选的,根据选定的角点以及对应的匹配点计算图像对的转换矩阵可以包括:

从角点检测选定的角点中按照距离阈值选择5个角点作为选定的角点;

利用公式计算选定的角点以及对应的匹配点计算图像对的转换矩阵;

其中,a11、a12…a43共为15个未知数,φl、θl、φr、θr分别是第一图像和第二图像的拍摄坐标系转换成球坐标系后的经纬度。

具体的,由于真正需要的点只需5个。这5对匹配点除了希望是颜色变化分明的角点之外,还希望它们之间的距离比较大,否则后面解出的矩阵会有些误差。因此需要从上面的n个角点根据距离中选出5个。利用距离阈值进行选择。距离阈值rt具体为:rt=ktr0;其中,r0为转向半径,kt为一个系数,可取0.3-0.6。遍历n个角点,检查相互间距离,直到找到5个相互距离大于rt的角点。

其中,转向半径的定义为:在第一图像的坐标系中,照相机视野角为180°时对应的半径。可以证明,当两幅图像是相机旋转180°拍摄而得时,转向半径等于两个鱼眼图像image1和image2(请参考图2)的对应匹配点到其原点的距离的平均值,即:

其中,r'p为图像1中图像中心到像素点p’的距离,x'p、y'p是像素点p’相对于图像中心的直角坐标。r"p为图像2中图像中心到像素点p”的距离,x"、y"是像素点p”相对于图像中心的直角坐标。

由于方程是求解全景图像变换中最重要的方程组。有a11、a12…a43共为15个未知数,因此只需有5对匹配点就可以把矩阵元素都计算出来。可以用列主元高斯消去法等方法来解此方程组。式中φl、θl、φr、θr分别是第一图像和第二图像的拍摄坐标系转换成球坐标系后的经纬度。要理解和计算他们,需要理解下图的坐标系和转换计算方法:

全景图的形成其实可以这样想象:一个人坐在一个巨大的玻璃球中看周围场景,人的一只眼睛正好在球心,景物射到该眼睛的光线必经玻璃球面某点并想象在该点处成像。最终全部景物都在玻璃球面成像,这个带像的玻璃球面就是该场景的全景图。鱼眼照片是一种等角度平面图像,全景图像是一种经纬度图像。要使鱼眼图像变成全景图像,可以通过坐标系变换的方法实现。

图3为两张鱼眼图像的情形。其中箭头shootl代表相机拍摄第一视频的拍摄方向,箭头shootr代表相机拍摄第二视频的拍摄方向。其中涉及到五个坐标系:(1)世界坐标系xyz,这是三维世界的坐标系,全景图像的经纬度也将从这个坐标系换算出来。(2)左边半球部分的拍摄坐标系oxlylzl。第一图像的拍摄方向shootl与其zl轴方向相反。(3)左边照片图像(image1)的图像坐标系o’x’y’。此为平面坐标系。观察图像(image1)时用此坐标系。(4)右边半球部分的拍摄坐标系oxryrzr。其拍摄方向shootr与其zr轴方向相反。(5)右边照片图像(image2)的图像坐标系o”x”y”。此为平面坐标系。观察图像(image2)时用此坐标系。除了这五个坐标系外,还有一个由全局坐标球面按经纬度展开的展开图像坐标系。除了这五个坐标系外,还有一个由全局坐标球面按经纬度展开的展开图像坐标系。

右边半球的部分虽然大部分没在第一图像中成像,但在标系oxlylzl中是可以表示出来的。坐标系oxryrzr旋转可以得到坐标系oxlylzl。右边半球上的每一点在oxryrzr中的坐标可在第二图像中读出。同一点可以乘以某个矩阵得到就可以变换到oxlylzl中,记为:

其中,(xl,yl,zl)表示坐标系oxlylzl中的坐标,(xr,yr,zr)表示坐标系oxryrzr的。

另一方面,考虑球坐标系和直角坐标系的转换,如图4。图3、图4中的球半径可以随意,不影响成像,可以假设为1。因此经纬度和直角坐标(x,y,z)存在以下关系:

和反过来的关系:

就可以改写成

步骤4、利用转换矩阵确定图像对中未重叠区域中各像素的颜色值,并按照权值系数进行重叠区域的像素融合确定重叠区域中各像素的颜色值;

具体的,全景图像是一个宽高比为2:1的图像,其中宽度方向代表经度,高度方向代表纬度。因此,要生成的全景视频一帧图像,需对经度0-360°、纬度-90°-90°进行遍历处理。因此遍历经度θ和纬度查找两个鱼眼视频对应帧图像对应位置的颜色值,然后计算融合颜色,填入生成视频的对应帧图像中。方法如下:

最终拼接好的全景图像其实是全局坐标系中的球面按经纬度展开得到的图像。由展开图像中的像素坐标可以换算出经纬度,由经纬度又可换算出全局坐标。例如参考图5,第i行第j列像素的经纬度如下计算:

然后用经纬度由公式可换算出全局坐标系oxyz中的直角坐标(x,y,z)。

对于该像素,查找其在左拍摄坐标系中的对应位置。为此需先考虑拍摄坐标系和全局坐标系的关系:考虑图3中坐标系oxlylzl到oxyz的变换。求解出的矩阵a是由坐标系oxryrzr和变换到oxlylzl坐标系的矩阵。而全局坐标系oxyz跟这两个坐标系又不同(见图2)。而oxlylzl需经以下变换可以变换成oxyz:绕yl轴旋转180°,再绕新的xl轴旋转90°。即:

上式进行变换,可得:

由上式就可算得(x,y,z)在左拍摄坐标系中的位置。同时对应右拍摄坐标系中:

-1是矩阵求逆运算。拍摄坐标系与对应照片坐标系经纬度相同,因此可再根据x'=r'cosθ',y'=r'sinθ'就可算出照片图像中的像素坐标(x’,y’)和(x”,y”),就可以查到像素颜色了。式中r0为转向半径,(x’,y’)为鱼眼第一图像的图像坐标,把(x’,y’)和换成(x”,y”)和可算得鱼眼第二图像的图像坐标(x”,y”)。各参数和关系参见图2。

鱼眼第一图像的(x’,y’)和鱼眼第二图像的(x”,y”)至少有一处是有颜色的。对于展开图像中考察的点,有时候只在第一图像中有成像,有时候只在第二图像中有成像,而有时候在两个图像中都有成像。利用颜色值确定公式确定图像对拼接后的图像中各位置的颜色值;其中,c为图像对拼接后的图像中各位置的颜色值,k1、k2是权值系数。

其中,k1+k2=1。可以这样取值:参见图6,p1和p2是匹配点对,p2e是p2沿半径方向在鱼眼边界处的交点,p2e1是p2e在鱼眼第一图像的对应点(由p2e乘以变换矩阵算得)。p1e类似p2e,是p1沿半径方向在鱼眼边界处的交点。k1、k2可以根据p1与p1e和p2e1的距离关系来计算:

步骤5、将全部颜色值填充到拼接视频中的对应位置。

至此,一个全景视频就生成了。对一个生成的全景视频案例使用普通的视频播放器播放的截图例子见图8。使用专用的全景视频播放器可取得360度vr的效果。

下面通过具体例子说明上述方案,对场景使用摄像机和鱼眼镜头拍摄好两个视野大于180度的视频素材。使用以下步骤处理并生成一个新的视频。请参考图9。

1、启动开始对两个视频的每帧进行以下操作。

2、如果是第一帧,或者由11跳转至本步,进行从3往下操作,否则直接从9往下操作。

3、对图像1(即第一图像)进行角点检测。

4、对图像2(即第二图像)基于经验范围进行搜索。

5、对图像2基于hsv查找确定匹配点。

6、从上述n对匹配点中选定5对。

7、若为第一帧,则计算转向半径。若非第一帧,则跳过此步。第一帧计算出来的转向半径为后续帧计算所用。

8、解方程组计算转换矩阵。

9、全景图像是一个宽高比为2:1的图像,其中宽度方向代表经度,高度方向代表纬度。因此,要生成的全景视频一帧图像,需对经度0-360°、纬度-90°-90°进行遍历处理。因此遍历经度θ和纬度查找两个鱼眼视频对应帧图像对应位置的颜色值,然后计算融合颜色,填入生成视频的对应帧图像中。

10、每隔一定帧数(例如每10帧),对重叠区再进行角点检测。

11、检查由10检测到的鱼眼图像重叠区中的角点数和经纬图像重叠区中的角点数。如果两者数目差异大,则返回2,否则,跳转至1,直至所有帧全部处理完成。

基于上述技术方案,本发明实施例提供的球形全景视频的拼接方法,适用于2×180°拍摄方式的球形全景视频自动拼接方法;对两个使用鱼眼镜头拍摄好的视频,先对第一视频中的图像进行角点检测,然后在第二视频的对应帧图像中对应的经验位置进行搜索比较,再由hsv检验比较的方法得出各个在视频2中的匹配点,利用5对匹配点,解方程计算出视频图像的转换矩阵。利用转换矩阵复制各对应像素的颜色值到生成视频中,并按照系数进行重叠区域的像素融合。对视频的每帧进行操作并进行适当的优化处理,最终生成拼接视频。对于全景视频的拼接,本实施例提供的方法拍摄数量少,拼接速度快,拼接过程启动后无需人工调整和干预。生成视频拼接效果好,中间接缝位置拼接准确,过渡自然。从整个视频播放看,没有图像抖动和错位。

下面对本发明实施例提供的球形全景视频的拼接系统进行介绍,下文描述的球形全景视频的拼接系统与上文描述的球形全景视频的拼接方法可相互对应参照。

请参考图10,图10为本发明实施例所提供的球形全景视频的拼接系统的结构框图,该系统可以包括:

视频获取模块100,用于获取鱼眼镜头拍摄的视频对;其中,视频对包括具有n帧第一图像的第一视频和具有n帧第二图像的第二视频;且n帧第一图像与n帧第二图像具有一一对应关系;

拼接模块200,用于分别将具有一一对应关系的第一图像与第二图像作为图像对执行拼接操作,形成拼接视频;

拼接操作模块300,用于确定图像对中第一图像对应的角点;在图像对中第二图像中与各角点对应的经验区域进行搜索,并利用hsv算法对搜索结果进行检验确定各角点对应的匹配点;根据选定的角点以及对应的匹配点计算图像对的转换矩阵;利用转换矩阵确定图像对中未重叠区域中各像素的颜色值,并按照权值系数进行重叠区域的像素融合确定重叠区域中各像素的颜色值;将全部颜色值填充到拼接视频中的对应位置。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种球形全景视频的拼接方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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