本发明涉及图像处理技术领域,具体而言,涉及一种虚拟屏幕投影实现方法、装置及电子设备。
背景技术:
随着立体显示技术和虚拟现实(virtualreality,vr)技术的不断发展,人们对于立体显示的效果的要求也越来越高。为了实现虚拟场景的立体显示,一般可结合计算机图形学系统将虚拟场景转换为虚拟立体场景,从而将虚拟立体场景呈现在真实场景中。但在现有技术中,常采用基于二维坐标系的线性转换技术将虚拟场景转换为虚拟立体场景,由于vr视频图像的三维立体性质,这种线性转换方式导致虚拟屏幕叠加至vr视频图像后其显示效果不佳。
技术实现要素:
有鉴于此,本发明的目的在于,提供一种虚拟屏幕投影实现方法、装置及电子设备以解决上述问题。
本发明较佳实施例提供一种虚拟屏幕投影实现方法,所述方法包括:
获得vr摄像机处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像;
得到各所述标定vr视频图像对应的vr球面模型,并在各所述vr球面模型上标定虚拟屏幕的投影位置;
根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息;
对所述位置信息进行转换,并根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数;
获得所述vr摄像机当前拍摄的vr视频图像对应的vr球面模型,根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中。
进一步地,所述在各所述vr球面模型上标定虚拟屏幕的投影位置的步骤,包括:
针对各所述标定vr视频图像,得到所述标定vr视频图像的经纬图;
根据所述经纬图的宽度值、长度值以及经纬图与vr球面模型的映射关系,得到所述经纬图中的各点在所述vr球面模型上的映射点;
根据所述映射点得到虚拟屏幕的各个角点在vr球面模型上的投影点,并根据得到的投影点在所述vr球面上标定出所述虚拟屏幕的投影位置。
进一步地,不同的vr球面模型对应不同的相机坐标系,所述根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息的步骤,包括:
获得各所述vr球面模型对应的相机坐标系;
根据各所述投影位置在对应的相机坐标系中的投影点以及各所述相机坐标系之间的位置关系得到各所述相机坐标系的中心点分别与所述虚拟屏幕的中心点之间的距离;
根据得到的多个距离计算所述虚拟屏幕的中心点的坐标值,以得到所述虚拟屏幕的位置信息。
进一步地,所述对所述位置信息进行转换的步骤,包括:
计算选定的参考矩形平面与所述虚拟屏幕之间的位移变换矩阵;
根据所述虚拟屏幕的法向量计算得到所述参考矩形平面与所述虚拟屏幕之间的欧拉旋转角,根据所述欧拉旋转角得到旋转变换矩阵:
根据所述位移变换矩阵、所述旋转变换矩阵以及所述参考矩形平面上的各点的坐标值对所述虚拟屏幕的位置信息进行转换。
进一步地,所述根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数的步骤,包括:
根据转换结果以及真实三维空间对应的世界坐标系到相机坐标系的变换矩阵得到所述虚拟屏幕在真实三维空间中的初始参数。
进一步地,所述根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中的步骤,包括:
计算所述标定vr视频图像对应的参考相机坐标系与当前vr球面模型对应的当前相机坐标系之间的位移向量和旋转角变化量;
根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及所述位移向量和旋转角变化量计算得到所述虚拟屏幕在当前相机坐标系中的坐标值;
根据计算得到的坐标值得到所述虚拟屏幕在当前vr球面模型上的投影坐标,并根据当前vr球面模型与当前vr视频图像的经纬图之间的映射关系得到所述虚拟屏幕在当前经纬图上的映射位置;
根据所述映射位置将所述虚拟屏幕叠加至当前vr视频图像中。
进一步地,所述拍摄状态包括拍摄位置和/或拍摄旋转角。
本发明另一较佳实施例提供一种虚拟屏幕投影实现装置,所述装置包括:
vr视频图像获取模块,用于获得vr摄像机处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像;
标定模块,用于得到各所述标定vr视频图像对应的vr球面模型,并在各所述vr球面模型上标定虚拟屏幕的投影位置;
位置信息计算模块,用于根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息;
初始参数计算模块,用于对所述位置信息进行转换,并根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数;
投影模块,用于获得所述vr摄像机当前拍摄的vr视频图像对应的vr球面模型,根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中。
本发明另一较佳实施例提供一种电子设备,包括:
存储器;
处理器;及
虚拟屏幕投影实现装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块。
本发明另一较佳实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,实现上述的虚拟屏幕投影实现方法。
本发明实施例提供一种虚拟屏幕投影实现方法、装置及电子设备,通过在vr摄像机处于不同的拍摄位置以及拍摄角度下获得的多个vr球面模型上对虚拟屏幕进行标定以获得虚拟屏幕的位置信息。并通过对位置信息进行转换得到虚拟屏幕在真实三维空间中的初始参数,从而将虚拟屏幕投影至当前获得的vr视频图像中,实现了虚拟屏幕的实时投射,避免了现有技术中采用线性投影造成的投影效果欠佳的缺点。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的虚拟屏幕投影实现方法的应用场景示意图。
图2为本发明实施例提供的电子设备的结构框图。
图3为本发明实施例提供的虚拟屏幕投影实现方法的流程图。
图4为本发明实施例提供的相机坐标系与世界坐标系之间的关系示意图。
图5为图3中步骤s103的子步骤的流程图。
图6为本发明实施例提供的虚拟屏幕在vr球面模型上的投影示意图。
图7为图3中步骤s105的子步骤的流程图。
图8为本发明实施例提供的虚拟屏幕在两个相机坐标系下的投影示意图。
图9为本发明实施例提供的相机坐标系的约束三角形示意图。
图10为图3中步骤s107的子步骤的流程图。
图11为本发明实施例提供的虚拟屏幕与参考矩形平面之间的关系示意图。
图12为图3中步骤s109的子步骤的流程图。
图13为本发明实施例提供的虚拟屏幕投影实现装置功能模块框图。
图标:100-电子设备;110-虚拟屏幕投影实现装置;111-vr视频图像获取模块;112-标定模块;113-位置信息计算模块;114-初始参数计算模块;115-投影模块;120-处理器;130-存储器;200-vr摄像机;300-参数采集器。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
请参阅图1,为本发明实施例提供的一种虚拟屏幕投影实现方法的应用场景示意图。该场景包括电子设备100、vr摄像机200以及参数采集器300。所述vr摄像机200和所述参数采集器300分别与所述电子设备100连接。本实施例中,所述参数采集器300可以为陀螺仪,可用于采集所述vr摄像机200的实时运动参数,该运动参数包括但不限于真实三维空间中以某个位置为原点的三维坐标系、vr摄像机200运动时的旋转角度等。所述vr摄像机200可将实时采集到的vr视频图像发送至所述电子设备100,所述电子设备100为具有图像处理功能的智能终端,可以是但不限于,计算机、平板电脑等。
请参阅图2,为本发明实施例提供的一种电子设备100的示意性结构框图。在本实施例中,所述电子设备100包括虚拟屏幕投影实现装置110、处理器120及存储器130。其中,所述存储器130与所述处理器120之间直接或间接的电性连接,以实现数据的传输或交互。所述虚拟屏幕投影实现装置110包括至少一个可以软件或固件的形式存储于所述存储器130中或固化在所述电子设备100的操作系统中的软件功能模块。所述处理器120用于执行所述存储器130中存储的可执行模块,例如所述虚拟屏幕投影实现装置110包括的软件功能模块或计算机程序。
请参阅图3,是本发明实施例提供的一种应用于上述电子设备100的虚拟屏幕投影实现方法的流程图。所应说明的是,本发明提供的方法不以图3及以下所述的具体顺序为限制。下面将对图3中示出的各步骤进行详细说明。
步骤s101,获得vr摄像机200处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像。
步骤s103,得到各所述标定vr视频图像对应的vr球面模型,并在各所述vr球面模型上标定虚拟屏幕的投影位置。
具体实施时,需在运动的vr摄像机200上搭建上述的参数采集器300,如陀螺仪,以获取vr摄像机200的运动参数,例如在真实三维空间中以vr摄像机200为原点的三维坐标、vr摄像机200运动时的旋转角度等。其中,vr摄像机200在进行旋转时其旋转顺序一般为水平旋转、俯仰旋转以及自旋。
可获得vr摄像机200处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像。其中,所述不同拍摄状态即为vr摄像机200处于不同拍摄地方和/或不同拍摄角度。
vr摄像机200的运动参数以真实三维空间为参照系,而vr球面模型一般以vr摄像机200为参照系,因此在构建坐标系时需先对坐标系进行转换。其中,以真实三维空间为参照的坐标系为世界坐标系xyzo,y轴垂直向上。以vr摄像机200为参照的坐标系为相机坐标系xyzo,其中z轴为vr摄像机200的拍摄方向,y轴为拍摄到的图像纵向像素的方向,如图4所示。假设vr摄像机200所在位置为世界坐标系的原点,则相机坐标系可由世界坐标系以绕y轴旋转yaw角、绕x轴旋转pitch角、绕z轴旋转roll角的顺序进行欧拉旋转变换得到。其中,yaw、pitch、roll即为获取的vr摄像机200的旋转参数,由此可得从世界坐标系到相机坐标系的变换矩阵mypr。相机坐标系和世界坐标系的变换关系如下式:
其中,c为世界坐标系和相机坐标系之间的单位变换常数,x、y、z分别为相机坐标系的坐标轴,x、y、z分别为世界坐标系的坐标轴。
请参阅图5,在本实施例中,步骤s103可以包括步骤s1031、步骤s1033以及步骤s1035三个子步骤。
步骤s1031,针对各所述标定vr视频图像,得到所述标定vr视频图像的经纬图。
步骤s1033,根据所述经纬图的宽度值、长度值以及经纬图与vr球面模型的映射关系,得到所述经纬图中的各点在所述vr球面模型上的映射点。
步骤s1035,根据所述映射点得到虚拟屏幕的各个角点在vr球面模型上的投影点,并根据得到的投影点在所述vr球面模型上标定出所述虚拟屏幕的投影位置。
vr视频图像一般以经纬度的形式进行保存,针对vr摄像机200处于不同拍摄状态时拍摄到的各标定vr视频图像,获得各标定vr视频图像的经纬图。假设经纬图的宽度为w,高度为h,针对经纬图上的点q(m,n),根据如下的经纬图与vr球面模型之间的映射关系,得到经纬图上的该点在vr球面模型上的映射点q'(x',y',z')。
其中
本实施例中,虚拟屏幕也可以投影至vr球面模型上,根据如上的映射原理,可得到虚拟屏幕的各个角点在vr球面模型上的投影点。如图6中所示,abcdp分别表示虚拟屏幕的角点和中心点,a'b'c'd'p'表示虚拟屏幕的角点和中心点在vr球面模型上的投影。可得到,虚拟屏幕上任意点q(x,y,z)与其投影q'(x',y',z')的关系如下:
如此,可在经纬图上标定期望的虚拟屏幕的角点位置,并根据经纬图与vr球面模型的映射关系,得到虚拟屏幕的角点在vr球面模型上的投影点从而得到虚拟屏幕在相机坐标系下的投影位置。
步骤s105,根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息。
由上述可知,在vr球面模型上的a'b'c'd'p'可对应多个虚拟屏幕的投影,由此可见,同一个虚拟屏幕也可投影至多个不同的vr球面模型上。因此可通过标定虚拟屏幕在2个或更多相机坐标系中vr球面模型的投影来计算虚拟屏幕的位置信息。
请参阅图7,在本实施例中,步骤105可以包括步骤s1051、步骤s1053以及步骤s1055三个子步骤。
步骤s1051,获得各所述vr球面模型对应的相机坐标系。
步骤s1053,根据各所述投影位置在对应的相机坐标系中的投影点以及各所述相机坐标系之间的位置关系得到各所述相机坐标系的中心点分别与所述虚拟屏幕的中心点之间的距离。
步骤s1055,根据得到的多个距离计算所述虚拟屏幕的中心点的坐标值,以得到所述虚拟屏幕的位置信息。
不同的vr球面模型对应不同的相机坐标系,在本实施例中,利用虚拟屏幕在两个不同的相机坐标系下的投影来计算虚拟屏幕的位置信息,即vr摄像机200处于两个不同的拍摄状态下所拍摄到的vr视频图像对应的相机坐标系。需要说明的是,也可通过两个以上的相机坐标系对虚拟屏幕的位置信息进行计算,其计算原理均相似,本实施例中以两个相机坐标系为例进行说明。请参阅图8,假设有两个不同的相机坐标系xyzo1和xyzo2,虚拟屏幕标记为abcd。以虚拟屏幕的中心点p点为例进行说明,在相机坐标系xyzo1中的vr球面模型上,p点的投影点为p'1,在相机坐标系xyzo2中的vr球面模型上p点的投影点为p'2。记相机坐标系从xyzo1变换到xyzo2的变换矩阵为mypr12、位移向量为
本实施例中,在相机坐标系xyzo1中向量
其中,图9中α、β可根据如下的向量夹角公式求得:
当
从而可得到:
同理可知当
步骤s107,对所述位置信息进行转换,并根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数。
在本实施例中,为了方便在世界坐标系与相机坐标系以及不同相机坐标系之间的转换,可对虚拟屏幕的位置信息进行转换,用另一种形式来表示虚拟屏幕的位置。
请参阅图10,在本实施例中,可通过以下步骤实现对虚拟屏幕的位置信息的转换:
步骤s1071,计算选定的参考矩形平面与所述虚拟屏幕之间的位移变换矩阵。
步骤s1073,根据所述虚拟屏幕的法向量计算得到所述参考矩形平面与所述虚拟屏幕之间的欧拉旋转角,根据所述欧拉旋转角得到旋转变换矩阵。
步骤s1075,根据所述位移变换矩阵、所述旋转变换矩阵以及所述参考矩形平面上的各点的坐标值对所述虚拟屏幕的位置信息进行转换。
在本实施例中,可选定一参考矩形平面abcd,如图11所示,将虚拟屏幕abcd看成由参考矩形平面abcd通过位移以及旋转变换而得。以该参考矩形平面abcd至虚拟屏幕abcd的变换矩阵mtrans、mmov、mrotate来描述虚拟屏幕abcd的位置。
其中,位移变换矩阵mmov可以由参考矩形平面的中心点o到虚拟屏幕的中心点p的位移变化量计算得到:
旋转变换矩阵mrotate可通过求取参考矩形平面到虚拟屏幕的欧拉旋转角yaw、pitch、roll而得到。本实施例中,参考矩形平面至虚拟屏幕的旋转变换的顺序依次为绕y、x、z轴旋转,即yaw→pitch→roll。其中yaw、pitch可由虚拟屏幕的平面法向量
其中,xv、yv、zv分别为虚拟屏幕的平面法向量
从而可以得到:
在本实施例中,假设只有yaw、pitch发生旋转变化时的变换矩阵为mr-mid,则自旋角roll为向量
则可得到zab'→0,并且:
在本实施例中,将yaw、pitch、roll发生旋转变化时的旋转变换矩阵记为mrotate。参考矩形平面abcd至虚拟屏幕abcd的变换可表示为如下关系:
其中,(u,v)为参考矩形平面上的点的坐标,(x,y,z)虚拟屏幕上的对应于点(u,v)的点的坐标。
通过以上步骤,可将虚拟屏幕的位置信息表示为参考矩形平面到虚拟屏幕的转换信息。通过以上转换之后,所述根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数的步骤可以通过以下过程实现:
根据转换结果以及真实三维空间对应的世界坐标系到相机坐标系的变换矩阵得到所述虚拟屏幕在真实三维空间中的初始参数。
由上述可知,可将虚拟屏幕投影至两个不同的相机坐标系下的vr球面模型以标定虚拟屏幕的位置信息。假设上述中的相机坐标系xyzo1对应的世界坐标系为o1[x1y1z1]t。该世界坐标系到相机坐标系xyzo1的欧拉旋转变换矩阵为mypr1,标定得到虚拟屏幕的四个角点在相机坐标系xyzo1中的vr球面模型上的投影分别为a'1,b'1,c'1,d'1。而将上述中的相机坐标系xyzo2对应的世界坐标系记为o2[x2y2z2]t,旋转角(yaw2、pitch2、roll2)组成了该世界坐标系至相机坐标系xyzo2的欧拉旋转变换矩阵为mypr2,标定得到虚拟屏幕的四个角点在相机坐标系xyzo2中的vr球面模型上的坐标分别为a'2,b'2,c'2,d'2。可得到如下关系:
从而可得到虚拟屏幕在相机坐标系xyzo1中的具体的角点以及中心点坐标a1,b1,c1,d1,p1。再根据以上的转换原理对其进行转换后得到对应于相机坐标系xyzo1下的位移矩阵mmov1和旋转变换矩阵mrotate1。从而可得到虚拟屏幕在对应于相机坐标系xyzo1的世界坐标系下的位置信息,根据以下的表达形式即可得到虚拟屏幕在真实三维空间中的初始参数:
从而可得:
步骤s109,获得所述vr摄像机200当前拍摄的vr视频图像对应的vr球面模型,根据所述初始参数、所述vr摄像机200当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中。
请参阅图12,在本实施例中,步骤s109可以包括步骤s1091、步骤s1093、步骤s1095以及步骤s1097四个子步骤。
步骤s1091,计算所述标定vr视频图像对应的参考相机坐标系与当前vr球面模型对应的当前相机坐标系之间的位移向量和旋转角变化量。
步骤s1093,根据所述初始参数、所述vr摄像机200当前在真实三维空间中的运动参数以及所述位移向量和旋转角变化量计算得到所述虚拟屏幕在当前相机坐标系中的坐标值。
步骤s1095,根据计算得到的坐标值得到所述虚拟屏幕在当前vr球面模型上的投影坐标,并根据当前vr球面模型与当前vr视频图像的经纬图之间的映射关系得到所述虚拟屏幕在当前经纬图上的映射位置。
步骤s1097,根据所述映射位置将所述虚拟屏幕叠加至当前vr视频图像中。
在本实施例中,为了能够将虚拟屏幕实时投射至当前的vr视频图像中,可实时获得vr摄像机200当前拍摄的vr视频图像,以及该vr视频图像对应的vr球面模型。并利用参数采集器300获得vr摄像机200当前的运动参数(拍摄位置、拍摄旋转角)。本实施例中,将vr摄像机200当前所处的真实三维空间的世界坐标系记为on[xnynzn]t,该世界坐标系到当前vr摄像机200的相机坐标系的旋转角记为(yawn、pitchn、rolln),则对应的旋转变换矩阵为myprn。
参考在进行虚拟屏幕标定时的相机坐标系xyzo1,可得到当前相机坐标系xyzon对应的世界坐标系on[xnynzn]t与相机坐标系xyzo1对应的世界坐标系o1[x1y1z1]t之间的关系:
本实施例中令:
mrotaten_w=mrotate1_w
可得到虚拟屏幕上的对应于参考矩形平面上的点q(u,v)的点在当前相机坐标系下的坐标q(x,y,z)之间的关系如下:
根据计算得到的虚拟屏幕在当前相机坐标系下的坐标值得到所述虚拟屏幕在当前vr球面模型上的投影坐标。并根据上述的经纬图与vr球面模型之间的映射关系可得到当前vr球面模型与当前vr视频图像的经纬图之间的映射关系。根据该映射关系以及虚拟屏幕在当前vr球面模型上的投影坐标可得到所述虚拟屏幕在当前经纬图上的映射位置。根据所述映射位置将所述虚拟屏幕叠加至当前vr视频图像中,则可实现实时虚拟屏幕的投影。
请参阅图13,为本发明另一较佳实施例提供的应用于上述的电子设备100的虚拟屏幕投影实现装置110的功能模块框图。所述虚拟屏幕投影实现装置110包括vr视频图像获取模块111、标定模块112、位置信息计算模块113、初始参数计算模块114以及投影模块115。
所述vr视频图像获取模块111用于获得vr摄像机200处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像。所述vr视频图像获取模块111可用于执行图3中所示的步骤s101,具体的操作方法可参考步骤s101的详细描述。
所述标定模块112用于得到各所述标定vr视频图像对应的vr球面模型,并在各所述vr球面模型上标定虚拟屏幕的投影位置。所述标定模块112可用于执行图3中所示的步骤s103,具体的操作方法可参考步骤s103的详细描述。
所述位置信息计算模块113用于根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息。所述位置信息计算模块113可用于执行图3中所示的步骤s105,具体的操作方法可参考步骤s105的详细描述。
所述初始参数计算模块114用于对所述位置信息进行转换,并根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数。所述初始参数计算模块114可用于执行图3中所示的步骤s107,具体的操作方法可参考步骤s107的详细描述。
所述投影模块115用于获得所述vr摄像机200当前拍摄的vr视频图像对应的vr球面模型,根据所述初始参数、所述vr摄像机200当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中。所述投影模块115可用于执行图3中所示的步骤s109,具体的操作方法可参考步骤s109的详细描述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本发明各个实施场景所述的方法。
综上所述,本发明实施例提供的虚拟屏幕投影实现方法、装置及电子设备100,通过在vr摄像机200处于不同的拍摄位置以及拍摄角度下获得的多个vr球面模型上对虚拟屏幕进行标定以获得虚拟屏幕的位置信息。并通过对位置信息进行转换得到虚拟屏幕在真实三维空间中的初始参数,从而将虚拟屏幕投影至当前获得的vr视频图像中,实现了虚拟屏幕的实时投射,避免了现有技术中采用线性投影造成的投影效果欠佳的缺点。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
1.一种虚拟屏幕投影实现方法,其特征在于,所述方法包括:
获得vr摄像机处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像;
得到各所述标定vr视频图像对应的vr球面模型,并在各所述vr球面模型上标定虚拟屏幕的投影位置;
根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息;
对所述位置信息进行转换,并根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数;
获得所述vr摄像机当前拍摄的vr视频图像对应的vr球面模型,根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中。
2.根据权利要求1所述的虚拟屏幕投影实现方法,其特征在于,所述在各所述vr球面模型上标定虚拟屏幕的投影位置的步骤,包括:
针对各所述标定vr视频图像,得到所述标定vr视频图像的经纬图;
根据所述经纬图的宽度值、长度值以及经纬图与vr球面模型的映射关系,得到所述经纬图中的各点在所述vr球面模型上的映射点;
根据所述映射点得到虚拟屏幕的各个角点在vr球面模型上的投影点,并根据得到的投影点在所述vr球面上标定出所述虚拟屏幕的投影位置。
3.根据权利要求1所述的虚拟屏幕投影实现方法,其特征在于,不同的vr球面模型对应不同的相机坐标系,所述根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息的步骤,包括:
获得各所述vr球面模型对应的相机坐标系;
根据各所述投影位置在对应的相机坐标系中的投影点以及各所述相机坐标系之间的位置关系得到各所述相机坐标系的中心点分别与所述虚拟屏幕的中心点之间的距离;
根据得到的多个距离计算所述虚拟屏幕的中心点的坐标值,以得到所述虚拟屏幕的位置信息。
4.根据权利要求1所述的虚拟屏幕投影实现方法,其特征在于,所述对所述位置信息进行转换的步骤,包括:
计算选定的参考矩形平面与所述虚拟屏幕之间的位移变换矩阵;
根据所述虚拟屏幕的法向量计算得到所述参考矩形平面与所述虚拟屏幕之间的欧拉旋转角,根据所述欧拉旋转角得到旋转变换矩阵:
根据所述位移变换矩阵、所述旋转变换矩阵以及所述参考矩形平面上的各点的坐标值对所述虚拟屏幕的位置信息进行转换。
5.根据权利要求4所述的虚拟屏幕投影实现方法,其特征在于,所述根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数的步骤,包括:
根据转换结果以及真实三维空间对应的世界坐标系到相机坐标系的变换矩阵得到所述虚拟屏幕在真实三维空间中的初始参数。
6.根据权利要求1所述的虚拟屏幕投影实现方法,其特征在于,所述根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中的步骤,包括:
计算所述标定vr视频图像对应的参考相机坐标系与当前vr球面模型对应的当前相机坐标系之间的位移向量和旋转角变化量;
根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及所述位移向量和旋转角变化量计算得到所述虚拟屏幕在当前相机坐标系中的坐标值;
根据计算得到的坐标值得到所述虚拟屏幕在当前vr球面模型上的投影坐标,并根据当前vr球面模型与当前vr视频图像的经纬图之间的映射关系得到所述虚拟屏幕在当前经纬图上的映射位置;
根据所述映射位置将所述虚拟屏幕叠加至当前vr视频图像中。
7.根据权利要求1所述的虚拟屏幕投影实现方法,其特征在于,所述拍摄状态包括拍摄位置和/或拍摄旋转角。
8.一种虚拟屏幕投影实现装置,其特征在于,所述装置包括:
vr视频图像获取模块,用于获得vr摄像机处于不同拍摄状态时所拍摄到的多个不同的标定vr视频图像;
标定模块,用于得到各所述标定vr视频图像对应的vr球面模型,并在各所述vr球面模型上标定虚拟屏幕的投影位置;
位置信息计算模块,用于根据标定的多个投影位置以及各所述vr球面模型之间的关系计算得到所述虚拟屏幕的位置信息;
初始参数计算模块,用于对所述位置信息进行转换,并根据转换结果得到所述虚拟屏幕在真实三维空间中的初始参数;
投影模块,用于获得所述vr摄像机当前拍摄的vr视频图像对应的vr球面模型,根据所述初始参数、所述vr摄像机当前在真实三维空间中的运动参数以及当前的vr球面模型将所述虚拟屏幕投影至当前vr视频图像中。
9.一种电子设备,其特征在于,包括:
存储器;
处理器;及
虚拟屏幕投影实现装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,实现权利要求1-7任意一项所述的虚拟屏幕投影实现方法。
技术总结