一种虚拟立体场景实现的方法、装置和系统与流程

文档序号:12472226阅读:222来源:国知局
一种虚拟立体场景实现的方法、装置和系统与流程
本发明涉及图像处理
技术领域
,特别是涉及一种基于映射的虚拟立体场景实现的方法、装置和系统。
背景技术
:虚拟现实技术VR(VirtualReality)是结合计算机图形学系统以及各种控制接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。对于用户而言,视觉感知是提供真实感和沉浸感的基础,因此,目前大部分VR应用以及大部分立体应用均致力于虚拟场景的立体显示部分的开发上。所谓虚拟场景,一般是利用计算机通过OpenGL(OpenGraphicsLibrary,开放图形库)等图形引擎构建,其通过显示器呈现在真实场景中,即虚拟场景通过显示器显示出来。虚拟场景也可能是通过实物拍摄图像所构建。而所谓真实场景,是指人真实的观察空间,人在真实场景下的固定位置通过人眼接收显示器所显示的虚拟场景。针对于图形引擎构建的虚拟场景,为了实现虚拟场景的立体显示,可以结合计算机图形学系统将虚拟场景转换为虚拟立体场景,从而将虚拟立体场景呈现在真实场景中。但是,现有技术中,通常利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,这种线性转换的方式,可能导致虚拟立体场景不能与真实观察空间即真实场景较好的适配,从而无法达到较佳的立体效果。而针对于利用实物拍摄构建的虚拟场景,通常采用双摄像机拍摄场景立体图像进而根据立体图像还原三维环境的技术手段,然而,由于双摄像机相机架设的主观性和随机性,造成了后期三维环境还原时,虚拟立体场景不能与真实场景较好的适配,立体效果不佳,而为了达到好的效果需要花费较多的时间去尝试和摸索,不利于工业大批量、高效率的产出。因此,如何提供一种快速将虚拟场景转换为虚拟立体场景呈现在真实场景中,使虚拟立体场景能与真实观察空间较好的适配即呈现较好的立体效果,成为如今迫切需要解决的问题。技术实现要素:本发明要解决的技术问题是如何提供一种快速将虚拟场景转换为虚拟立体场景呈现在真实场景中,使虚拟立体场景能与真实观察空间较好的适配即呈现较好的立体效果。一方面,本发明实施例提供了一种虚拟立体场景实现的方法,包括:获取人眼视间距E_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R和真实屏幕最大显示凹距离F_R,根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R;获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V;根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,从而根据dN_R、dF_R、N_V和F_V获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值;根据所述虚拟场景的视间距E_V和所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,构建并显示虚拟立体场景,从而完成虚拟场景到真实场景的映射。可选的,所述根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R,具体为:依据相似图形对应边成比例关系,得到公式和并利用参数N_R、F_R、E_R和Z_R计算得到视差dN_R和dF_R。可选的,所述根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值,具体包括:根据真实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V;依据虚拟单摄像机到虚拟零视差平面的视角θ和距离Z_V,计算得到虚拟场景中屏幕的宽度W_con;根据虚拟场景中屏幕的宽度W_con和真实场景中屏幕的宽度W_R,计算得到缩放比根据所述缩放比和虚拟场景下视间距等式,求解得到虚拟场景下视间距E_V;根据上述求解得到的E_V和Z_V计算得到左右虚拟摄像机的非对称透视投影参数值。可选的,所述根据真实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V包括:根据真实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的如下关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V:Z_V=R+11N_V+RF_V]]>其中,R为所述视差dN_R和所述视差dF_R比值,可选的,所述虚拟场景下视间距等式包括:或者可选的,所述左右虚拟摄像机的非对称透视投影参数值,具体包括:左摄像机非对称透视投影参数为:lleft=-W_V2+E_V2*N_V/Z_Vrleft=-W_V2+E_V2*N_V/Z_Vtleft=H_V2bleft=-H_V2nleft=N_Vfleft=F_V]]>右摄像机非对称透视投影参数为:lright=-W_V2-E_V2*N_V/Z_Vrright=W_V2-E_V2*N_V/Z_Vtright=H_V2bright=-H_V2nright=N_Vfright=F_V]]>其中,lleft、rleft、tleft和bleft分别对应左摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nleft、fleft对应左摄像机非对称透视投影中左摄像机到近裁剪平面和远裁剪平面的距离;其中,lright、rright、tright和bright分别对应右摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nright、fright对应右摄像机非对称透视投影中右摄像机到近裁剪平面和远裁剪平面的距离;其中,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度。可选的,所述根据所述虚拟场景的视间距E_V及所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,从而构建并显示虚拟立体场景,具体包括:将左虚拟摄像机拍摄的三维场景坐标与左透视投影矩阵M1相乘,完成左虚拟摄像机的场景内容的透视投影变换;其中,所述左透视投影矩阵M1具体为:M1=2nleftrleft-lleft0rleft+lleftrleft-lleft002nlefttleft-blefttleft+blefttleft-bleft000-fleft+nleftfleft-nleft2fleft*nleftfleft-nleft00-10]]>将右虚拟单摄像机拍摄的三维场景坐标分别与右透视投影矩阵M2相乘,完成右虚拟摄像机的场景内容的透视投影变换;其中,所述右透视投影矩阵M2具体为:M2=2nrightrright-lright0rright+lrightrright-lright002nrighttright-brighttright+brighttright-bright000-fright+nrightfright-nright2fright*nrightfright-nright00-10.]]>可选的,所述获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V包括:获取虚拟场景下虚拟单摄像机到最近物体的距离N_O和虚拟场景下单摄像机到最远物体的距离F_O,从而将所述N_V和F_V具体赋值为N_O和F_O。可选的,所述立体场景实现的方法具体运用在影院场合,并且所述影院拥有左右两台放映设备时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供给影院的左放映设备;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给影院的右放映设备。可选的,所述立体场景实现的方法具体运用在虚拟现实头盔中时,并且所述虚拟现实头盔拥有左右显示屏时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供虚拟现实头盔的左显示屏;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给虚拟现实头盔的右显示屏。可选的,所述立体场景实现的方法具体运用在增强现实眼镜中时,并且所述虚拟现实眼镜拥有左右显示镜片时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供增强现实眼镜的左显镜片;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给增强现实眼镜的右显示镜片。另一方向,本发明实施例还提供了一种基于映射的虚拟立体场景实现的装置,所述装置包括:获取单元,用于获取人眼视间距E_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R和真实屏幕最大显示凹距离F_R,以及获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V;处理单元,用于根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R;根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,从而根据dN_R、dF_R、N_V和F_V获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值;投影变换单元,用于根据所述虚拟场景的视间距E_V和所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,构建并显示虚拟立体场景,从而完成虚拟场景到真实场景的映射。可选的,所述处理单元包括:视差计算模块,用于依据相似图形对应边成比例关系,得到公式和并利用参数N_R、F_R、E_R和Z_R计算得到视差dN_R和dF_R;非对称透视投影参数计算模块,用于根据真实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V;依据虚拟单摄像机到虚拟零视差平面的视角θ和距离Z_V,计算得到虚拟场景中屏幕的宽度W_con;根据虚拟场景中屏幕的宽度W_con和真实场景中屏幕的宽度W_R,计算得到缩放比根据所述缩放比和虚拟场景下视间距等式,求解得到虚拟场景下视间距E_V;根据上述求解得到的E_V和Z_V计算得到左右虚拟摄像机的非对称透视投影参数值。可选的,所述非对称透视投影参数计算模块用于:根据真实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的如下关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V:Z_V=R+11N_V+RF_V]]>其中,R为所述视差dN_R和所述视差dF_R比值,可选的,所述虚拟场景下视间距等式包括:或者可选的,所述左右虚拟摄像机的非对称透视投影参数值,具体包括:左摄像机非对称透视投影参数为:lleft=-W_V2+E_V2*N_V/Z_Vrleft=-W_V2+E_V2*N_V/Z_Vtleft=H_V2bleft=-H_V2nleft=N_Vfleft=F_V]]>右摄像机非对称透视投影参数为:lright=-W_V2-E_V2*N_V/Z_Vrright=W_V2-E_V2*N_V/Z_Vtright=H_V2bright=-H_V2nright=N_Vfright=F_V]]>其中,lleft、rleft、tleft和bleft分别对应左摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nleft、fleft对应左摄像机非对称透视投影中左摄像机到近裁剪平面和远裁剪平面的距离;其中,lright、rright、tright和bright分别对应右摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nright、fright对应右摄像机非对称透视投影中右摄像机到近裁剪平面和远裁剪平面的距离;其中,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度。可选的,所述投影变换单元,具体用于:将左虚拟摄像机拍摄的三维场景坐标与左透视投影矩阵M1相乘,完成左虚拟摄像机的场景内容的透视投影变换;其中,所述左透视投影矩阵M1具体为:M1=2nleftrleft-lleft0rleft+lleftrleft-lleft002nlefttleft-blefttleft+blefttleft-bleft000-fleft+nleftfleft-nleft2fleft*nleftfleft-nleft00-10]]>将右虚拟摄像机拍摄的三维场景坐标与右透视投影矩阵M2相乘,完成右虚拟摄像机的场景内容的透视投影变换;其中,所述右透视投影矩阵M2具体为:M2=2nrightrright-lright0rright+lrightrright-lright002nrighttright-brighttright+brighttright-bright000-fright+nrightfright-nright2fright*nrightfright-nright00-10.]]>可选的,所述获取单元用于:获取虚拟场景下虚拟单摄像机到最近物体的距离N_O和虚拟场景下虚拟单摄像机到最远物体的距离F_O,从而将所述N_V和F_V具体赋值为N_O和F_O。另一方面,本发明实施例提供了一种智能终端,所述终端包括:显示器、存储器、参数输入装置和处理器,其中,所述显示器、存储器、参数输入装置与所述处理器相连,具体的:所述参数输入装置,用于输入人眼视间距E_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R和真实屏幕最大显示凹距离F_R,以及获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V,并存储在所述存储器中;所述处理器,用于根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R;根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,从而根据dN_R、dF_R、N_V和F_V获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值,根据所述虚拟场景的视间距E_V和所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,构建虚拟立体场景,进而通过所述显示器将所述虚拟立体场景呈现出来,从而完成虚拟场景到真实场景的映射。另一方面,本发明实施例还提供了一种基于映射的虚拟立体场景实现的系统,所述系统包括:单摄像机、参数采集器和智能终端,所述单摄像机和参数采集器连接智能终端;所述参数采集器,用于采集虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V;所述单摄像机,用于记录所要拍摄的场景内容;所述智能终端,用于获取场景变换的相关参数,所述相关参数包括所述参数采集器采集的参数,并根据所述相关参数将单摄像机的场景内容转换为虚拟场景中左右虚拟摄像机的场景内容,从而构建呈现在真实场景中的虚拟立体场景;所述智能终端根据真实场景中真实屏幕最大显示凸距离N_R下的视差dN_R和真实屏幕最大显示凹距离F_R下的视差dF_R的比值与虚拟场景中虚拟单摄像机到虚拟近裁剪平面距离N_V下的视差dN_V和虚拟场景中虚拟单摄像机到虚拟远裁剪平面距离F_V下的视差dF_V比值相同,根据所述相关参数将单摄像机的场景内容转换为虚拟场景中左右虚拟摄像机的场景内容。与现有技术相比,本发明的有益效果在于:本发明提供了一种基于映射的虚拟立体场景实现的方法、装置和系统,根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值,从而根据所获得的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景,即将虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间的虚拟场景映射到真实场景中真实屏幕最大显示凸距离和真实屏幕最大显示凹距离之间,这样,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验。而且,该方法拥有简便性和易开发性。只需提供需要构建的立体场景对应的虚拟场景和相关参数,结合相应的立体硬件设备就可以快速、直接的将该虚拟场景映射到真实场景中,从而在真实场景中呈现虚拟立体场景,并且立体效果是可以按照用户和开发者的参数设置而变化的。基于共同发明构思的装置和终端,为开发能够运行该方法的装置和终端提供了支撑和保证。【附图说明】图1是本发明实施例提供的一种基于映射的虚拟立体场景实现的方法流程示意图;图2是本发明实施例提供的一种真实场景的显示光路原理示意图;图3是本发明实施例提供的一种虚拟场景的显示光路原理示意图;图4是本发明实施例提供的一种左右虚拟摄像机非对称投影示意图;图5是本发明实施例提供的一种基于映射的虚拟立体场景实现的装置示意图;图6是本发明实施例提供的一种智能终端示意图;图7是本发明实施例提供的一种基于映射的虚拟立体场景实现的系统架构示意图。【具体实施方式】为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。从原理上讲,构建分别被人左眼和右眼接收的具有视差的不同图像,由于左右眼接收到的视觉图像不同,人眼在观看左右两幅具有视差的图像的时候,会在大脑皮层进行对图像进行合成,最终形成具有深度的信息,即使观看者产生立体感。通常情况下,虚拟场景的立体显示,是将虚拟状态下的三维模型,通过计算机图形学的变换处理,形成立体图像,通过真实的显示器显示出来,最后人眼观看立体图像后进行合成,在大脑中形成具有深度的三维信息。本发明实施例中,将从虚拟状态下的三维模型,通过一系列过程到真实状态下的具有深度的三维信息的过程称为虚拟到真实的映射过程。在本发明各实施例中,涉及真实场景和虚拟场景的描述,下面将对于其定义给予初步的界定:真实场景:是指观察者真实的观察空间(即人眼看到的空间),观察者可以通过认知和经验等获取真实场景下物体的深度和大小等信息。该场景(空间)是以长度单位为度量(例如:观察者距离平面的距离为0.5m等)。当观察者观察的真实场景为显示器时,即构成“观察者-显示空间”。虚拟场景:是指利用计算机,通过OpenGL等图形引擎构建的“摄像机-场景空间”;所绘制的信息以像素为单位,通过渲染管线并以显示器的方式呈现出来。虚拟场景通过显示器显示,而人在真实场景下的固定位置通过人眼接受立体显示器所显示的内容。虚拟场景下是以像素为单位,且通过真实场景的显示器显示;而真实场景下是以长度单位(例如:米)为度量的。本发明实施例提供的基于映射的虚拟立体场景的实现方法和装置,可应用于裸眼立体显示中,也可应用在虚拟现实VR(VirtualReality)显示中。实施例1:本发明实施例1提供了一种虚拟立体场景实现的方法,结合图1至图3所示,包括:在步骤201中,获取人眼视间距E_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R和真实屏幕最大显示凹距离F_R,根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R。参见图2,真实场景中左眼L与右眼R之间的人眼视间距E_R、真实屏幕的宽度N_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R、真实屏幕最大显示凹距离F_R、真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R均在图中进行了标示。其中,N_R、F_R、E_R和Z_R通常均是预先设定好的,例如,人眼视间距E_R通常为65毫米,若真实场景为笔记本电脑,人使用笔记本电脑时距离笔记本显示屏的距离一般为50厘米,即ZR=50cm。真实屏幕即可认为是真实场景的零视差平面。最大显示凸距离N_R和最大显示凹距离F_R用于表征真实场景的立体显示器的立体显示能力,即立体显示器所能够呈现的立体场景的深度范围,也即,立体显示器所能够呈现的立体场景的深度范围介于该最大凸出距离和最大凹进距离所限定的区间内,立体场景的最凸出部分不会超过该最大凸出距离,而最凹进部分不会超过该最大凹进距离。在步骤202中,获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V。该N_V和F_V可以是预先设置好的。步骤201和步骤202顺序不限,可并行也可先后执行。在步骤203中,根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,从而根据dN_R、dF_R、N_V和F_V获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值。在步骤204中,根据所述虚拟场景的视间距E_V和所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,构建并显示虚拟立体场景,从而完成虚拟场景到真实场景的映射。可以理解的是,本步骤中,利用视间距E_V和非对称投影参数对虚拟场景进行变换从而构建虚拟立体场景为本领域的公知常识,这里不做进一步详细说明。参见图3,虚拟场景的虚拟单摄像机、对应左眼输出图像的左虚拟摄像机L’、与对应右眼输出图像的右虚拟摄像机R’、L’和R’之间的视间距E_V、虚拟单摄像机到虚拟屏幕VirtualDisplay的Z_V、虚拟单摄像机到虚拟近裁剪平面的距离N_V、虚拟单摄像机到虚拟远裁剪平面的距离F_V、以及虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V均在图中进行了标示。这里需要说明的是,参见图3可知,本发明实施例中,虚拟单摄像机到虚拟屏幕或远近裁剪平面的距离等同于左或右虚拟摄像机到虚拟屏幕或远近裁剪平面的距离,由于上述等同性,因此上述距离可统称为虚拟摄像机到虚拟屏幕或远近裁剪平面的距离。同理,参见图2可知,左眼到真实屏幕的距离等同于右眼到真实屏幕的距离,可统称为人眼到真实屏幕的距离。还需要强调说明的是,本发明实施例中所言的虚拟单摄像机、左右虚拟摄像机、零视差平面、近裁剪平面、远裁剪平面等术语均为计算机图形学中公知的术语,这里不进行详细说明。本实施例提供这种基于映射的虚拟立体场景实现的方法,提供了一种标准化的将虚拟场景转换为虚拟立体场景呈现在真实场景中的方式,根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值,从而根据所获得的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景,即将N_V和F_V之间的虚拟场景映射到真实场景中真实屏幕的最大显示凸距离和最大显示凹距离之间,这样,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验。而且该方法拥有简便性和易开发性。只需提供需要构建的立体场景对应的虚拟场景和相关参数,结合相应的立体硬件设备就可以快速、直接的将该虚拟场景映射到真实场景中,并且立体效果是可以按照用户和开发者的参数设置而变化的。在具体实现中,所述立体硬件设备包括3D投影仪、3D液晶电视、虚拟现实头盔、增强现实眼镜等等。结合本实施例,步骤202存在一种具体的实现方式,具体为:依据相似图形对应边成比例关系,得到公式和并利用参数N_R、F_R、E_R和Z_R计算得到视差dN_R和dF_R。如图2所示,三角形CDP和三角形RLP相似,因此有比例关系:带入相应参数值得到转换得到上述等式同样原理,三角形ABQ和三角形LRQ相似,因此有带入相应参数值得到转换得到等式结合本发明实施例,步骤203存在一种可选的实现方案,如图3所示,具体包括以下子步骤:在步骤2031中,根据现实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V:Z_V=R+11N_V+RF_V]]>其中,R为所述视差dN_R和所述视差dF_R比值,参见图3,与真实场景类似,同样依据相似图形对应边成比例关系,可以得到虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V等式:dN_V=E_V*(Z_V-N_V)N_V]]>dF_V=E_V*(F_V-N_V)F_V]]>虚拟场景和真实场景中的视差单位和数值并不相同,为了得到较好的立体效果,可以使它们具有相同的比值R:dN_RdF_R=R=dN_VdN_V=(Z_V-N_V)*F_V(F_V-Z_V)*N_V]]>根据上述比例关系,即可得到:Z_V=R+11N_V+RF_V]]>在步骤2032中,依据虚拟单摄像机到虚拟零视差平面的视角θ和距离Z_V,计算得到虚拟场景中虚拟屏幕的宽度W_con。参见图3(未示出视角θ),根据三角函数关系,可以得到虚拟场景中虚拟屏幕的宽度W_Con:W_Con=2*Z_V*tan(θ2)]]>在步骤2033中,根据虚拟场景中屏幕的宽度W_con和真实场景中屏幕的宽度W_R,计算得到缩放比在步骤2034中,根据所述缩放比和虚拟场景下视间距等式,求解得到虚拟场景下视间距E_V。根据前述虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V等式:dN_V=E_V*(Z_V-N_V)N_V]]>dF_V=E_V*(F_V-Z_V)F_V]]>可知,或者而因此:或者在步骤2035中,根据上述求解得到E_V和Z_V计算得到左右两虚拟摄像机的非对称透视投影参数值。结合本发明实施例,并参考如图4所示的投影参数值相关物理结构示意图,所述左右虚拟摄像机的非对称透视投影参数值,具体包括:左摄像机非对称透视投影参数为:lleft=-W_V2+E_V2*N_V/Z_Vrleft=-W_V2+E_V2*N_V/Z_Vtleft=H_V2bleft=-H_V2nleft=N_Vfleft=F_V]]>右摄像机非对称透视投影参数为:lright=-W_V2-E_V2*N_V/Z_Vrright=W_V2-E_V2*N_V/Z_Vtright=H_V2bright=-H_V2nright=N_Vfright=F_V]]>其中,lleft、rleft、tleft和bleft分别对应左摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标。如图4所示,其坐标的原点即图中O点所示。nleft、fleft对应左摄像机非对称透视投影中左摄像机到近裁剪平面和远裁剪平面的距离;其中,lright、rright、tright和bright分别对应右摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nright、fright对应右摄像机非对称透视投影中右摄像机到近裁剪平面和远裁剪平面的距离;其中,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度。结合本发明实施例,步骤204存在一种可选的实现方案,具体阐述如下:将左虚拟摄像机拍摄的三维场景坐标与左透视投影矩阵M1相乘,完成左虚拟摄像机的场景内容的透视投影变换;其中,所述左透视投影矩阵M1具体为:M1=2nleftrleft-lleft0rleft+lleftrleft-lleft002nlefttleft-blefttleft+blefttleft-bleft000-fleft+nleftfleft-nleft2fleft*nleftfleft-nleft00-10]]>将右虚拟摄像机拍摄的三维场景坐标与右透视投影矩阵M2相乘,完成右虚拟摄像机的场景内容的透视投影变换;其中,所述右透视投影矩阵M2具体为:M2=2nrightrright-lright0rright+lrightrright-lright002nrighttright-brighttright+brighttright-bright000-fright+nrightfright-nright2fright*nrightfright-nright00-10]]>其中,透视投影矩阵为现有技术,其矩阵中公式推导可以在教科书和互联网上查到,在此不做其推导的阐述。本发明实施例所言的虚拟场景到虚拟立体场景可以认为是从3D(三维)场景到S3D(立体三维)场景。举例而言,本发明实施例的方法可具体运用在影院场合,并且所述影院拥有左右两台放映设备时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供给影院的左放映设备;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给影院的右放映设备。举例而言,本发明实施例的方法可具体运用在虚拟现实头盔中时,并且所述虚拟现实头盔拥有左右显示屏时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供虚拟现实头盔的左显示屏;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给虚拟现实头盔的右显示屏。举例而言,本发明实施例的方法可具体运用在增强现实眼镜中时,并且所述虚拟现实眼镜拥有左右显示镜片时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供增强现实眼镜的左显镜片;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给增强现实眼镜的右显示镜片。实施例2:通过包含具体参数的实例,来说明虚拟立体场景如何实现:预先设定:真实场景中真实屏幕最大显示凸距离N_R和最大显示凹距离F_R分别为40mm和50mm;真实屏幕宽度W_R是435mm;真实场景下的视间距E_R为65mm;真实场景下人眼到真实屏幕之间的距离Z_R是500mm;虚拟场景下虚拟摄像机到近裁剪平面的距离N_V和虚拟摄像机到远裁剪平面F_V分别为1.0px(像素)和50.0px;虚拟场景的视场角θ为90°。计算真实场景的视差:dN_R=N_R*E_RZ_R-N_R=40*65500-40≈5.65mm]]>dF_R=F_R*E_RZ_R+F_R=50*65500+50≈5.91mm]]>计算出虚拟场景和真实场景的视差的比例关系R:R=dN_RdF_R=5.655.91≈0.96]]>计算出虚拟场景下的Z_V:Z_V=R+11N_V+RF_V=0.96+1.011.0+0.9650.0≈1.92]]>计算虚拟屏幕的宽度W_con:W_con=2.0*Z_V*tan(θ2)≈3.84]]>计算虚拟屏幕和真实屏幕之间的缩放比例计算虚拟场景下的视间距E_V:接下来,利用计算出的Z_V和E_V即可完成虚拟单摄像机的偏转(生成左右虚拟摄像机)和视景体的变换(非对称透视投影),最终构建虚拟立体场景,得到需要的立体效果。实施例3:作为一种改进,根据实施例1所述的虚拟立体场景实现的方法,虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V具体赋值为N_O和F_O;其中,N_O是虚拟场景下摄像机到物体最近位置的距离;F_O是虚拟场景下摄像机到物体最远位置的距离。也就是说,在步骤202中,获取的是N_O和F_O,利用N_O和F_O分别代替N_V和F_V进行后续计算。针对完成的一套虚拟场景,通常来讲N_V和F_V是固定的,但是在虚拟场景下从摄像机到近裁剪平面的距离都会大于或等于摄像机到最近的物体位置的距离,从摄像机到远裁剪平面的距离都会大于或等于摄像机到最远的物体位置的距离,即该套场景中的每一场景的N_V和F_V是相同的,但是场景不同、场景中的物体不同、那么不同场景的N_O和F_O是不同的,这样可能就会造成场景下的物体无法达到预期的立体效果。因此,作为一种改进,可利用N_O和F_O进行计算,即可以针对一套场景中的每个场景分别利用每个场景的N_O和F_O的计算,使得每个场景的虚拟场景到真实场景的映射,将N_O和F_O之间的虚拟场景映射到N_R和F_R之间,有效保证每个场景与真实观看环境的适配,达到预期的立体效果。本发明对如何获取N_O和F_O不做限定,本领域技术人员可以合理选择获取方式。举例而言,每一个利用图形引擎(例如D3D或者openGL)构建的虚拟场景,在构建虚拟场景视图的时候会创建深度缓存区来存储深度数据,因此,可以从每个虚拟场景的深度缓存区中读取虚拟场景的深度数据,根据深度数据获取N_O和F_O。具体的,可以遍历虚拟场景的每个像素点的深度数据,即可找到虚拟场景的最大深度和最小深度,根据最大深度得到F_O,根据最小深度得到N_O,从而得到了N_O和F_O。当然,N_O和F_O也可采用其他方式获取,只要能有效获取到N_O和F_O的方式均可应用到本发明实施例中,在此不一一说明。接下来,通过包含具体参数的实例,来如何实现:预先设定:真实场景中真实屏幕最大显示凸距离N_R和最大显示凹距离F_R分别为40mm和50mm;真实屏幕宽度W_R是435mm;真实场景下的视间距E_R为65mm;真实场景下人眼到真实屏幕之间的距离Z_R是500mm;虚拟场景下虚拟摄像机到近裁剪平面的距离N_V和虚拟摄像机到远裁剪平面F_V分别为1.0px(像素)和50.0px;虚拟场景的视场角θ为90°。虚拟场景下摄像机到最近物体的距离N_O和摄像机到最远物体距离F_O分别为5.0px和20.0px。接下来,根据虚拟场景中的物体的最近和最远距离推导计算过程:该过程与实施例1中“裁剪面映射的推导过程”基本相同,只需利用最近(N_O)和最远(F_O)距离代替裁剪面做映射即可。推导过程如下:计算真实屏幕视差:dN_R=N_R*E_RZ_R-N_R=40*65500-40≈5.65mm]]>dF_R=F_R*E_RZ_R+F_R=50*65500+50≈5.91mm]]>计算出虚拟屏幕和真实屏幕视差的比例关系R:R=dN_RdF_R=5.655.91≈0.96]]>计算出虚拟场景下的Z_V:Z_V=R+11N_O+RF_O=0.96+1.015.0+0.9620.0≈7.9]]>则,W_V是虚拟屏幕的宽度:W_V=2.0*Z_V*tan(θ2)=1.58]]>虚拟屏幕和真实屏幕之间的缩放比例虚拟场景下的视间距E_V:利用计算出的E_V和Z_V即可完成摄像机的偏移和视景体的变换,最终构建虚拟立体场景,得到需要的立体效果。相比较实施例1,在本发明实施例中将N_V和F_V替换(赋值)成N_O和F_O后,能够将N_O和F_O之间的场景映射到真实场景最凸出和最凹进之间,从而能够更好的立体视觉效果。实质上,N_V和F_V是N_O和F_O的特殊情况,N_O和F_O在N_V和F_V之间。实施例4:本发明实施例提供了一种基于映射的虚拟立体场景实现的装置,适用于运行实施例1所述的方法,如图6所示,所述装置包括:获取单元61,用于获取人眼视间距E_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R和真实屏幕最大显示凹距离F_R,以及获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V;处理单元62,用于根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R;根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,从而根据dN_R、dF_R、N_V和F_V获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值;投影变换单元63,用于根据所述虚拟场景的视间距E_V和所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,构建并显示虚拟立体场景,从而完成虚拟场景到真实场景的映射。可选的,所述处理单元62可包括(未图示):视差计算模块,用于依据相似图形对应边成比例关系,得到公式和并利用参数N_R、F_R、E_R和Z_R计算得到视差dN_R和dF_R;非对称透视投影参数计算模块,用于根据真实场景中所述视差dN_R和所述视差dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同获得的关系式,求解得到虚拟场景下左右虚拟摄像机到虚拟零视差平面的距离Z_V;依据虚拟单摄像机到虚拟零视差平面的视角θ和距离Z_V,计算得到虚拟场景中屏幕的宽度W_con;根据虚拟场景中屏幕的宽度W_con和真实场景中屏幕的宽度W_R,计算得到缩放比根据所述缩放比和虚拟场景下视间距等式,求解得到虚拟场景下视间距E_V;根据上述求解得到的E_V和Z_V计算得到左右虚拟摄像机的非对称透视投影参数值。具体的,所述左右虚拟摄像机的非对称透视投影参数值,具体包括:左摄像机非对称透视投影参数为:lleft=-W_V2+E_V2*N_V/Z_Vrleft=-W_V2+E_V2*N_V/Z_Vtleft=H_V2bleft=-H_V2nleft=N_Vfleft=F_V]]>右摄像机非对称透视投影参数为:lright=-W_V2-E_V2*N_V/Z_Vrright=W_V2-E_V2*N_V/Z_Vtright=H_V2bright=-H_V2nright=N_Vfright=F_V]]>其中,lleft、rleft、tleft和lleft分别对应左摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nleft、fleft对应左摄像机非对称透视投影中左摄像机到近裁剪平面和远裁剪平面的距离;其中,lright、rright、tright和bright分别对应右摄像机非对称透视投影在近裁剪平面上的裁剪窗口的上、下、左、右边界坐标;nright、fright对应右摄像机非对称透视投影中右摄像机到近裁剪平面和远裁剪平面的距离;其中,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度。可选的,所述投影变换单元63,具体用于:将左虚拟单摄像机拍摄的三维场景坐标与左透视投影矩阵M1相乘,完成左虚拟摄像机的场景内容的透视投影变换;其中,所述左透视投影矩阵M1具体为:M1=2nleftrleft-lleft0rleft+lleftrleft-lleft002nlefttleft-blefttleft+blefttleft-bleft000-fleft+nleftfleft-nleft2fleft*nleftfleft-nleft00-10]]>将右虚拟单摄像机拍摄的三维场景坐标与右透视投影矩阵M2相乘,完成右虚拟摄像机的场景内容的透视投影变换;其中,所述右透视投影矩阵M2具体为:M2=2nrightrright-lright0rright+lrightrright-lright002nrighttright-brighttright+brighttright-bright000-fright+nrightfright-nright2fright*nrightfright-nright00-10.]]>在本发明实施例中,存在一种优选的实现方案,其中,所述虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V具体赋值为N_O和F_O;其中,N_O是虚拟场景下摄像机到物体最近位置的距离;F_O是虚拟场景下摄像机到物体最远位置的距离,即所述获取单元61可用于:获取虚拟场景下虚拟单摄像机到最近物体的距离N_O和虚拟场景下虚拟单摄像机到最远物体的距离F_O,从而将所述N_V和F_V具体赋值为N_O和F_O。值得说明的是,上述装置和装置内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的实施例1基于同一构思,具体内容可参见本发明实施例1中的叙述,此处不再赘述。本发明实施例提供的基于映射的虚拟立体场景实现的装置,该装置只需提供需要构建的虚拟立体场景和相关参数就可以快速、直接的将该虚拟立体场景映射到真实场景中,并且立体效果是可以按照用户和开发者的设置而变化的。实施例5:本发明实施例提供了一种智能终端,适用于运行实施例1所述的方法,如图6所示,所述终端包括:显示器70、存储器71、参数输入装置72、处理器73,其中,所述显示器70、存储器71、参数输入装置72与所述处理器73相连,具体的:所述参数输入装置72,用于输入人眼视间距E_R、真实屏幕最大显示凸距离N_R、人眼到真实屏幕的距离Z_R和真实屏幕最大显示凹距离F_R,以及获取虚拟场景下虚拟单摄像机分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V,并存储在所述存储器71中;所述处理器73,用于根据所述N_R、F_R、E_R和Z_R,获得真实场景中在N_R距离下的视差dN_R和F_R距离下的视差dF_R;根据真实场景中所述视差dN_R和dF_R比值与虚拟场景中N_V距离下的视差dN_V和F_V距离下的视差dF_V比值相同,从而根据dN_R、dF_R、N_V和F_V获得虚拟场景的视间距E_V和左右虚拟摄像机的非对称透视投影参数值,根据所述虚拟场景的视间距E_V和所述虚拟单摄像机得到左右虚拟摄像机,并根据所述左右虚拟摄像机及所述非对称透视投影参数,完成虚拟单摄像机的场景内容的透视投影变换,构建虚拟立体场景,进而通过显示器70将所述虚拟立体场景呈现出来,从而完成虚拟场景到真实场景的映射。值得说明的是,上述终端和终端内的存储器、参数输入装置与所述处理器之间的信息交互、执行过程等内容,由于与本发明的实施例1基于同一构思,具体内容可参见本发明实施例1中的叙述,此处不再赘述。本发明实施例提供了的这种智能终端,该智能终端只需提供需要需要构建的立体场景对应的虚拟场景和相关参数,就可以快速、直接的将该虚拟场景映射到真实场景中,并且立体效果是可以按照用户和开发者的设置而变化的。该智能终端例如为手机、电脑、播放器、游戏机等各种影音电子设备,本发明对此不做限定。实施例6:本发明实施例还提供了一种基于映射的虚拟立体场景实现的系统,适用于运行实施例1所述的方法,如图7所示,所述系统包括:单摄像机81、参数采集器82和智能终端83,所述单摄像机81和参数采集器82连接智能终端83;所述参数采集器82,用于采集虚拟场景下虚拟单摄像机81分别到虚拟近裁剪平面和虚拟远裁剪平面的距离N_V和F_V。通常情况下,所述参数采集器82可以是红外扫描仪或者雷达测距仪等等,也可以是人工输入设备,通过接收人工输入的参数值进行参数采集。所述单摄像机81,用于记录所要拍摄的场景内容。所述智能终端83,用于获取场景变换的相关参数,所述相关参数包括所述参数采集器采集的N_V和F_V,并根据所述相关参数将单摄像机81的场景内容转换为虚拟场景中左右虚拟摄像机的场景内容;所述智能终端83还适用于执行实施例1中所阐述的方法相关步骤,在此不一一赘述。本实施例中,将单摄像机81以及其所采集的场景称之为虚拟场景,将前述实施例中的实现方法应用到了利用实物拍摄构建立体场景中,只需单摄像机采集一张场景,即可将该场景转换为虚拟立体场景。本发明实施例提供了一种基于映射的虚拟立体场景实现的系统,该系统只需提供需要构建立体场景的三维场景和相关参数,就可以快速、直接的将该虚拟立体场景映射到真实场景中,并且立体效果是可以按照用户和开发者的设置而变化的。实施例7:基于实施例1所阐述的方法,接下来结合具体的应用场景阐述其中各种参数的获取方法,以及如何将透视投影变换结果呈现给用户。所述立体场景实现的方法具体运用在影院场合,并且所述影院拥有左右两台放映设备时,则:N_R,F_R是影院屏幕在真实场景中凸出和凹进的最大距离,即最大显示凸距离和最大显示凹距离;W_R是影院屏幕宽度;E_R是人眼的视间距(瞳距);Z_R是真实场景下人眼到影院屏幕之间的距离。可选的,这里选择真实场景下人眼到影院屏幕之间的距离Z_R为影院中间位置到影院屏幕的位置。将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供给影院的左放映设备;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给影院的右放映设备。可选的,左右放映设备可以采用偏振处理,并配合相应的偏振光透视眼镜,保证完成透视投影变换后所获得的左虚拟摄像机的场景内容被用户左眼接收,而完成透视投影变换后所获得的右虚拟摄像机的场景内容被用户右眼接收。实施例8:基于实施例1所阐述的方法,接下来结合具体的应用场景阐述其中各种参数的获取方法,以及如何将透视投影变换结果呈现给用户。有别与实施例3所述影院的场景,本实施例中所述立体场景实现的方法具体运用在虚拟现实头盔中时,并且所述虚拟现实头盔拥有左右显示屏时,则:N_R,F_R是在立体显示屏幕的凸出和凹进的最大距离,即最大显示凸距离和最大显示凹距离;W_R是立体显示屏幕的宽度;E_R是人眼的视间距(瞳距);Z_R是真实场景下人眼到立体显示屏幕的距离。将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供虚拟现实头盔的左显示屏;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给虚拟现实头盔的右显示屏。可选的,所述虚拟现实头盔中只包含一个显示屏幕,则可以采用高频切换左虚拟摄像机的场景内容和右虚拟摄像机的场景内容的方式,实现用户人眼前虚拟立体场景重现的效果。其中,采用高频可以是120-240Hz,其视觉效果是切换频率越高,人眼舒适度越好。实施例9:基于实施例1所阐述的方法,接下来结合具体的应用场景阐述其中各种参数的获取方法,以及如何将透视投影变换结果呈现给用户。有别与实施例3所述影院的场景,在本实施例中所述立体场景实现的方法具体运用在增强现实眼镜中时,并且所述虚拟现实眼镜拥有左右显示镜片时,则:将完成透视投影变换后所获得的左虚拟摄像机的场景内容提供虚拟现实头盔的左显镜片;并将完成透视投影变换后所获得的右虚拟摄像机的场景内容提供给虚拟现实头盔的右显示镜片。N_R,F_R是增强现实眼镜的屏幕镜片的凸出和凹进的最大距离,即最大显示凸距离和最大显示凹距离;W_R是增强现实的屏幕镜片的宽度;E_R是人眼的视间距(瞳距);Z_R是真实场景下人眼到增强现实眼镜的屏幕镜片的距离。本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1