增强现实图像的实现方法、装置、终端设备和存储介质转让专利

申请号 : CN201780055279.5

文献号 : CN110249626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王志斌覃华峥汪倩怡

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开了增强现实图像的实现方案。其中,增强现实图像的实现方法包括:获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向;确定当摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域;确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点的三维坐标;对于所确定的每个二维图形,基于该二维图形的转动基准点而调节姿态,以使得该二维图形与姿态方向呈预定夹角,并获取姿态被调节后的二维图形的位置参考点的三维坐标;通过透视投影变换,将该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标,并根据二维坐标将该二维图形渲染在该帧图像上。

权利要求 :

1.一种增强现实图像的实现方法,其特征在于,包括:

获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向;

确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域,所述拍摄方式为以所述三维直角坐标系中一点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式;

确定处于所述取景区域内的至少一个二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标,其中,所述位置参考点处于所述二维图形所在的平面上,所确定的每个二维图形包括关于一个三维对象的图形序列,该图形序列中每个图形均为所述三维对象的一个二维影像;及对于所确定的每个二维图形,

基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标,及通过透视投影变换,将被调节后的该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标,并将该帧图像设置在所述平面投影区域中;从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形;基于所述二维坐标,将所选定的图形渲染在该帧图像上。

2.如权利要求1所述的方法,其中,所述确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域的步骤包括:确定视锥体,所述视锥体对应以所述三维直角坐标系的原点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式,以确定当所述摄像头以所述拍摄方式拍摄时在所述视锥体中的取景区域。

3.如权利要求1所述的方法,其中,所述图形序列与一个循环计时器关联,该图形序列中每个图形与所述循环计时器的一个时间区间关联;

所述从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形的步骤包括:根据所述循环计时器当前时间值所处的时间区间,从所述图形序列中选定与该时间区间关联的图形,以作为该帧图像所对应的图形。

4.如权利要求1所述的方法,其中,所述图形序列中每个图形的二维影像为所述三维对象在基于预定转轴自转至相应自转角度时的影像,所述从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形的步骤包括:确定所述二维图形的自转角度,从所述图形序列中选定自转角度与所确定的自转角度一致的图形,以作为该帧图像所对应的图形。

5.如权利要求1所述的方法,其中,所述三维直角坐标系包括x轴,y轴和z轴,y轴被设置为竖直方向,所述预定夹角为90度,所述基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标的操作包括:以通过所述转动基准点并平行于所述y轴的第一直线为旋转中心轴,旋转该二维图形至相应旋转位置,以便第一相交线平行于第二相交线,其中,所述第一相交线为该二维图形所在平面与水平面的相交线,所述第二相交线为所述姿态方向的垂直平面和水平面的相交线;

以通过所述转动基准点并平行于所述第二相交线的第二直线为旋转中心轴,旋转处于所述旋转位置的所述二维图形至平行于所述姿态方向的垂直平面。

6.如权利要求1所述的方法,其中,所述获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向的步骤包括:从陀螺仪获取拍摄该帧图像时摄像头的姿态信息,以确定所述姿态方向。

7.如权利要求1所述的方法,其中,所述获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向的步骤包括:获取本地存储的一帧图像和该帧图像的姿态信息,以确定所述姿态方向。

8.如权利要求1所述的方法,其中,所述获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向的步骤包括:通过网络获取一帧图像和该帧图像的姿态信息,以确定所述姿态方向。

9.如权利要求1所述的方法,其中,所述确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标的步骤包括:按照预定策略在所述三维直角坐标系中布置至少一个二维图形,其中,每个二维图形按照各自预定轨迹在该三维直角坐标系的空间中运动;

确定当前处于所述取景区域内的二维图形;

获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标。

10.一种增强现实图像的实现方法,其特征在于,适于在终端设备中的图像处理应用客户端中执行,所述终端设备包括处理器和存储器,所述存储器存储有所述处理器可执行的指令,所述处理器通过执行所述指令来实现该方法,该方法包括:获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向;

确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域,所述拍摄方式为以所述三维直角坐标系中一点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式;

确定处于所述取景区域内的至少一个二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标,其中,所述位置参考点处于所述二维图形所在的平面上,所确定的每个二维图形包括关于一个三维对象的图形序列,该图形序列中每个图形均为所述三维对象的一个二维影像;及对于所确定的每个二维图形,

基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标,及通过透视投影变换,将被调节后的该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标,并将该帧图像设置在所述平面投影区域中;从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形;基于所述二维坐标,将所选定的图形渲染在该帧图像上。

11.如权利要求10所述的方法,其中,所述确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域的步骤包括:确定视锥体,所述视锥体对应以所述三维直角坐标系的原点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式,以确定当所述摄像头以所述拍摄方式拍摄时在所述视锥体中的取景区域。

12.如权利要求10所述的方法,其中,所述图形序列与一个循环计时器关联,该图形序列中每个图形与所述循环计时器的一个时间区间关联;

所述从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形的步骤包括:根据所述循环计时器当前时间值所处的时间区间,从所述图形序列中选定与该时间区间关联的图形,以作为该帧图像所对应的图形。

13.如权利要求10所述的方法,其中,所述图形序列中每个图形的二维影像为所述三维对象在基于预定转轴自转至相应自转角度时的影像,所述从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形的步骤包括:确定所述二维图形的自转角度,从所述图形序列中选定自转角度与所确定的自转角度一致的图形,以作为该帧图像所对应的图形。

14.如权利要求10所述的方法,其中,所述三维直角坐标系包括x轴,y轴和z轴,y轴被设置为竖直方向,所述预定夹角为90度,所述基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标的操作包括:以通过所述转动基准点并平行于所述y轴的第一直线为旋转中心轴,旋转该二维图形至相应旋转位置,以便第一相交线平行于第二相交线,其中,所述第一相交线为该二维图形所在平面与水平面的相交线,所述第二相交线为所述姿态方向的垂直平面和水平面的相交线;

以通过所述转动基准点并平行于所述第二相交线的第二直线为旋转中心轴,旋转处于所述旋转位置的所述二维图形至平行于所述姿态方向的垂直平面。

15.如权利要求10所述的方法,其中,所述获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向的步骤包括:从陀螺仪获取拍摄该帧图像时摄像头的姿态信息,以确定所述姿态方向。

16.如权利要求10所述的方法,其中,所述获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向的步骤包括:获取本地存储的一帧图像和该帧图像的姿态信息,以确定所述姿态方向。

17.如权利要求10所述的方法,其中,所述获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向的步骤包括:通过网络获取一帧图像和该帧图像的姿态信息,以确定所述姿态方向。

18.如权利要求10所述的方法,其中,所述确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标的步骤包括:按照预定策略在所述三维直角坐标系中布置至少一个二维图形,其中,每个二维图形按照各自预定轨迹在该三维直角坐标系的空间中运动;

确定当前处于所述取景区域内的二维图形;

获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标。

19.一种增强现实图像的实现装置,其特征在于,包括:

获取单元,获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向;

建模单元,适于确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域,所述拍摄方式为以所述三维直角坐标系中一点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式;

分析单元,适于确定处于所述取景区域内的至少一个二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标,其中,所述位置参考点处于所述二维图形所在的平面上,所确定的每个二维图形包括关于一个三维对象的图形序列,该图形序列中每个图形均为所述三维对象的一个二维影像;

调节单元,适于:

对于所确定的每个二维图形,基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标,通过透视投影变换,将被调节后的该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标;以及渲染单元,适于在该平面投影区域中,将该帧图像设置在所述平面投影区域中;从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形;基于所述二维坐标,将所选定的图形渲染在该帧图像上。

20.如权利要求19所述的装置,其中,所述建模单元适于根据下述方式确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域:确定视锥体,所述视锥体对应以所述三维直角坐标系的原点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式,以确定当所述摄像头以所述拍摄方式拍摄时在所述视锥体中的取景区域。

21.如权利要求19所述的装置,其中,所述图形序列与一个循环计时器关联,该图形序列中每个图形与循环计时器的一个时间区间关联;

所述渲染单元适于根据下述方式从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形:根据所述循环计时器当前时间值所处的时间区间,从所述图形序列中选定与该时间区间关联的图形,以作为该帧图像所对应的图形。

22.如权利要求19所述的装置,其中,所述图形序列中每个图形的二维影像为所述三维对象在基于预定转轴自转至相应自转角度时的影像;

所述渲染单元适于根据下述方式从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形:确定所述二维图形的自转角度,从所述图形序列中选定自转角度与所确定的自转角度一致的图形,以作为该帧图像所对应的图形。

23.如权利要求19所述的装置,其中,所述三维直角坐标系包括x轴,y轴和z轴,y轴被设置为竖直方向,所述预定夹角为90度,所述调节单元适于根据下述方式基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标:以通过所述转动基准点并平行于所述y轴的第一直线为旋转中心轴,旋转该二维图形至相应旋转位置,以便第一相交线平行于第二相交线,其中,所述第一相交线为该二维图形所在平面与水平面的相交线,所述第二相交线为所述姿态方向的垂直平面和水平面的相交线;

以通过所述转动基准点并平行于所述第二相交线的第二直线为旋转中心轴,旋转处于所述旋转位置的所述二维图形至平行于所述姿态方向的垂直平面。

24.如权利要求19所述的装置,其中,所述获取单元适于根据下述方式获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向:从陀螺仪获取拍摄该帧图像时摄像头的姿态信息,以确定所述姿态方向。

25.如权利要求19所述的装置,其中,所述获取单元适于根据下述方式获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向:获取本地存储的一帧图像和该帧图像的姿态信息,以确定所述姿态方向。

26.如权利要求19所述的装置,其中,所述获取单元适于根据下述方式获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向:通过网络获取一帧图像和该帧图像的姿态信息,以确定所述姿态方向。

27.如权利要求19所述的装置,其中,所述分析单元适于根据下述方式确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标:按照预定策略在所述三维直角坐标系中布置至少一个二维图形,其中,每个二维图形按照各自预定轨迹在该三维直角坐标系的空间中运动;

确定当前处于所述取景区域内的二维图形;

获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标。

28.一种终端设备,其特征在于,包括:

一个或多个处理器;

存储器;以及

一个或多个程序,存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1-18中任一项所述方法的指令。

29.一种非易失性存储介质,其特征在于,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-18中任一项所述的方法。

说明书 :

增强现实图像的实现方法、装置、终端设备和存储介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及增强现实图像的实现方法、装置、终端设备和存储介质。

背景技术

[0002] 随着智能用户设备的发展,增强现实(Augmented Reality,缩写为AR)技术越来越多地应用到通常的用户设备中,如移动电话、平板电脑、掌上游戏机等。例如,用户设备可以拍摄真实场景与虚拟三维元素相融合的画面。
[0003] 然而,现有的增强现实的方案中通常需要对虚拟元素进行三维建模。

发明内容

[0004] 根据本申请一个方面,提供一种增强现实图像的实现方法,包括下述步骤。获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向。确定当摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域。所述拍摄方式为以所述三维直角坐标系中一点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式。确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标。对于所确定的每个二维图形,基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标,其中,位置参考点处于所述二维图形所在的平面上。通过透视投影变换,将该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标,并在该平面投影区域中根据所述二维坐标将该二维图形渲染在该帧图像上。
[0005] 根据本申请一个方面,提供一种增强现实图像的实现方法,适于在终端设备中的图像处理应用客户端中执行,所述终端设备包括处理器和存储器,所述存储器存储有所述处理器可执行的指令,所述处理器通过执行所述指令来实现该方法,该方法包括:获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向;确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域,所述拍摄方式为以所述三维直角坐标系中一点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式;确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在所述三维直角坐标系中三维坐标,其中,所述位置参考点处于所述二维图形所在的平面上;对于所确定的每个二维图形,基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标,通过透视投影变换,将该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标,并在该平面投影区域中根据所述二维坐标将该二维图形渲染在该帧图像上。
[0006] 根据本申请又一个方面,提供一种增强现实图像的实现装置,包括获取单元、建模单元、分析单元、调节单元和渲染单元。其中,获取单元适于获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向。建模单元,适于确定当所述摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域,所述拍摄方式为以所述三维直角坐标系中一点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式。分析单元,适于确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在三维直角坐标系中三维坐标。对于所确定的每个二维图形,调节单元适于以该二维图形的转动基准点为基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标。另外,调节单元还可以通过透视投影变换,将该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标。渲染单元,适于在该平面投影区域中,根据所述二维坐标将该二维图形渲染在该帧图像上。
[0007] 根据本申请又一个方面,提供一种终端设备,包括:一个或多个处理器、存储器以及一个或多个程序。程序存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于根据本申请的增强现实图像的实现方法的指令。
[0008] 根据本申请又一个方面,提供一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述本申请的增强现实图像的实现方法。

附图说明

[0009] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图,其中:
[0010] 图1A示出了一个应用场景的示意图;
[0011] 图1B示出了移动终端103拍摄画面101的示意图;
[0012] 图1C示出了在图1B中添加一个虚拟元素的示意图;
[0013] 图1D示出了图1C在虚拟元素姿态和位置变化后的示意图;
[0014] 图1E示出了图1D在虚拟元素姿态和位置变化后的示意图;
[0015] 图1F示出了根据本申请一些实施例的增强现实图像的实现方法100的流程图;
[0016] 图2示出了一个实施例的取景区域的示意图;
[0017] 图3A示出了第一次旋转之前二维图形的空间位置示意图;
[0018] 图3B示出了第一次旋转后二维图形的空间位置示意图;
[0019] 图3C示出了第二次旋转后二维图形的空间位置示意图;
[0020] 图4示出了一个三维对象的图形序列示意图;
[0021] 图5示出了根据本申请一些实施例的增强现实图像的实现装置500的示意图;以及[0022] 图6示出了根据本申请一些实施例的终端设备的结构图。

具体实施方式

[0023] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024] 增强现实(Augmented Reality,缩写为AR),是在真实场景的画面中融合虚拟元素(或称为虚拟对象)的技术。在一个应用场景中,终端设备通过摄像头可以拍摄真实场景的画面。终端设备还可以生成或者从网络获取虚拟元素的三维模型。在此基础上,终端设备可以将虚拟元素与所拍摄真实场景的画面进行融合,并且在屏幕中显示融合的画面。这里,终端设备可以是移动电话、掌上电脑(PDA)、笔记本计算机或平板电脑等。除了终端设备之外,增强现实技术还可以应用在例如头盔式或眼镜式等智能设备中。
[0025] 本申请的增强现实图像的实现方案可以应用于例如终端设备、头盔式或眼镜式智能设备等场景,但不限与此。本申请的增强现实图像的实现方案可以利用虚拟元素的二维图像实现将立体效果的虚拟元素融合到真实场景中,而不需要对虚拟元素三维建模。这样,本申请的方案可以省略对虚拟元素进行三维建模的过程。
[0026] 图1A示出了一个应用场景的示意图。如图1A所示,用户102在使用移动终端(未示出)对画面101进行拍摄。画面101包括一棵树。图1B示出了移动终端103拍摄画面101的示意图。这里,图1B为真实的拍摄画面,示出了一棵树的部分区域。图1C是在图1B的基础上添加一个虚拟元素104(即图中的纸飞机)的二维图形。图1D示出了图1C中虚拟元素104姿态和位置变化后的示意图。图1E示出了图1D中虚拟元素104姿态和位置变化后的示意图。本申请的增强现实图像的实现方法可以在现实图像中显示不同姿态各自对应的二维图形,从而避免对不同姿态的虚拟元素进行三维建模。
[0027] 图1F示出了根据本申请一些实施例的增强现实图像的实现方法100的流程图。这里,方法100例如可以在一个图像应用中执行。该图像应用例如可以驻留在终端设备中,但不限于此。该图像应用可以是AR APP客户端软件等各种图像处理APP客户端(比如各种美图/P图软件)。
[0028] 方法100始于步骤S101。在步骤S101中,获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向。
[0029] 在一个实施例中,步骤S101可以从摄像头实时获取一帧图像。终端设备中陀螺仪可以实时采集终端设备的姿态信息。这里,姿态是指物体(例如虚拟元素)在三维空间中的姿势和形态,比如朝向、方位等。姿态信息用于描述终端设备在三维空间中的朝向和方位等,可以包括朝向参数(比如角度)、方位参数(比如位置和角度)等。终端设备的朝向例如可以用摄像头的朝向或者屏幕朝向来表示,但不限于此。步骤S101可以从陀螺仪获取摄像头在拍摄该帧图像时的姿态信息,陀螺仪又叫角速度传感器,可以进行运动姿态测量,其可测量到的物理参数可包括偏转、倾斜时的转动角速度,根据这些物理参数可以确定终端设备的姿态信息并输出。步骤S101中,根据该姿态信息可以确定摄像头的姿态方向。这里,姿态方向为摄像头的镜头朝向。在本实施例中,姿态信息的来源并不限于陀螺仪,也可以是终端设备中其他可获取姿态信息的硬件设备,或者是计算摄像头姿态的软件应用。
[0030] 在又一个实施例中,终端设备中存储有至少一帧图像和每帧图像对应的姿态信息。这样,步骤S101可以从本地(例如为相册等)获取一帧图像和该帧图像对应的姿态信息。根据该姿态信息,步骤S101可以确定拍摄该帧图像的摄像头在拍摄时的姿态方向。
[0031] 在又一个实施例中,步骤S101通过网络获取一帧图像和该帧图像的姿态信息。根据该姿态信息,确定该帧图像对应的姿态方向。例如,步骤S101例如可以从图像服务器或其他终端设备获取图像帧和相应的姿态信息。
[0032] 综上,步骤S101可以采用上述中任一种示例方式获取图像和姿态方向,但不限于此。对于步骤S101中所获取的一帧图像和姿态方向。方法100可以执行步骤S102,确定取景区域。具体而言,步骤S102确定当摄像头以一种拍摄方式拍摄时在三维直角坐标系中的取景区域。这里,拍摄方式为以三维直角坐标系中一点为拍摄位置并且拍摄方向与姿态方向一致的拍摄方式。步骤S102中摄像头可以被理解为一个虚拟摄像头。该虚拟摄像头的参数与步骤S101所获取的一帧图像对应的摄像头(即拍摄这帧图像的真实摄像头)一致。摄像头的参数例如是焦距等。
[0033] 在一个实施例中,步骤S102首先确定一个视锥体。视锥体对应于以三维直角坐标系的原点为拍摄位置并且拍摄方向与姿态方向一致的拍摄方式。在该视锥体中,由近平面和远平面截取的棱台就是摄像头以这种拍摄方式拍摄时的取景区域。近平面和远平面均垂直于姿态方向。换言之,处于该取景区域内的物体才可以被拍摄到基于这种拍摄方式的图像中。在本实施例中,虚拟摄像头可以被认为处于三维直角坐标系的原点处。这里,虚拟摄像头的参数可以决定近平面和远平面在视锥体中位置。换言之,虚拟摄像头的参数可以决定近平面和远平面分别与虚拟摄像头的距离。因此,在步骤S101获取的图像是本地终端设备的摄像头所拍时,虚拟摄像头与终端设备的摄像头参数一致。需要说明的是,当摄像头被配置为焦距可调节时,近平面与远平面取决于拍摄图像时摄像头的参数。另一种情况是,如果在步骤S101中获取的图像帧并非由本地摄像头(即执行方法100的终端设备的摄像头)所拍摄,那么虚拟摄像头用于模拟拍摄该图像帧的摄像头。
[0034] 综上,步骤S102可以确定一个虚拟摄像头的取景区域。从另一个角度而言,步骤S102实际上建立了关于虚拟摄像头的透视投影矩阵。需要说明的是,透视投影属于中心投影。透视投影图简称为透视图或透视,是从某个投射中心将对象投射到单一投影面上所得到的图形。透视投影矩阵为关于上文中视锥体和取景区域的数学模型。透视投影矩阵可采用多种方式建立,这里不再赘述。图2示出了一个实施例的取景区域的示意图。图2所示,坐标系(x,y,z)为步骤S101中三维坐标系。向量OP0表示步骤S101中所确定的姿态方向(即虚拟摄像头的拍摄方向)。V为视锥体,N表示近平面,F表示远平面,棱台型区域Z为取景区域。
[0035] 在步骤S102中确定取景区域后,方法100可以执行步骤S103,确定处于所述取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在三维直角坐标系中三维坐标。这里,二维图形用于记录一个三维对象的二维影像。一般而言,二维影像可以占满该二维图形,也可以只占该二维图形的一部分区域。位置参考点处于二维图形所在的平面上。在一个实施例中,二维图形为矩形区域。位置参考点例如为矩形区域中4个顶点,或者为矩形区域每条边的中心点,但不限于此。在又一个实施例中,二维图形为梯形。位置参考点例如为梯形区域的4个顶点。在又一个实施例中,二维图形为不规则图形。这里,位置参考点可以是处于该不规则图像所处平面内,并且不处于一条直线上的3个点。总之,位置参考点可以用于代表二维图形在空间中所处的平面和在平面中位置,这里不再赘述。
[0036] 在一个实施例中,方法100的应用场景是:图像应用实时采集图像帧(例如,终端设备中图像应用打开摄像头并对准要拍摄的环境)。在获取第一帧图像时(即,图像应用第一次执行方法100),步骤S103可以首先按照预定策略在三维直角坐标系中布置至少一个二维图形。其中,每个二维图形按照各自预定轨迹在该三维直角坐标系的空间中运动。在此基础上,步骤S103可以确定当前处于所述取景区域内的二维图形。另外,步骤S103可以获取所确定的每个二维图形的位置参考点在三维直角坐标系中的三维坐标。需要说明的是,二维图形用于承载一个三维对象的二维影像。换言之,二维图形是二维影像的容器。二维图形例如可以是各种形状的二维区域,比如一个矩形区域,但不限于此。为了简化描述,下文中以矩形区域为例对二维图形进行说明。该矩形区域中二维影像例如可以是落叶、雪花、五角星等虚拟元素的图像,但不限于此。这些虚拟元素例如为由一个三维粒子系统所生成。换言之,三维粒子系统按照预定策略控制虚拟元素的初始位置、运动轨迹、运动速度和运动姿态等。这里,三维粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象是用其它传统的渲染技术难以实现的真实感的运动规律。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者像发光轨迹这样的抽象视觉效果等等。本实施例中每个虚拟元素为一个粒子。粒子在三维空间中的位置与运动是由发射器控制的。发射器主要由一组粒子行为参数以及在三维空间中的位置所表示。粒子行为参数可以包括粒子生成速度(即单位时间粒子生成的数目)、粒子初始速度向量(例如什么时候向什么方向运动)、粒子寿命(经过多长时间粒子湮灭)、粒子颜色、在粒子生命周期中的变化以及其它参数等等。图像应用在针对后续的图像帧执行步骤S103时,可以从三维粒子系统获取当前(即该帧图像的拍摄时间点)处于取景范围内二维图形的三维坐标,而不再需要按照预定策略重新布置三维直角坐标系中二维图形。
[0037] 对于步骤S103中所确定的每个二维图形,方法100可以执行步骤S104和步骤S105。
[0038] 在步骤S104中,基于该二维图形的转动基准点而调节姿态,以使得该二维图形与姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标。这里,转动基准点是指:在二维图形未进行平移运动而调节姿态方向(即,二维图形的朝向)时,该二维图形上保持空间位置不变的一个点。例如,二维图形为矩形,转动基准点为矩形的中心点(即对角线的交点)。又例如,二维图形为不规则图形。转动基准点可以是该不规则图形上一个大致处于中心区域的点,本申请对此不做限制。
[0039] 上述实例中,二维图形的位置参考点和转动基准点与二维图形之间的相对位置关系是预先配置好的,当确定了取景区域中的二维图形之后,即可根据预先配置的相对位置关系确定出位置参考点和转动基准点的位置,进而可以基于位置参考点和转动基准点实现上述步骤。
[0040] 在一个实施例中,y轴被设置为竖直方向。预定夹角例如为90度,但不限于此。这里,步骤S104可以包括2次转动操作。
[0041] 第一次转动操作的具体过程如下:以通过二维图形转动基准点并平行于y轴的第一直线为旋转中心轴,旋转该二维图形至相应旋转位置,以便第一相交线平行于第二相交线。其中,第一相交线为该二维图形所在平面与水平面的相交线,第二相交线为姿态方向的垂直平面和水平面的相交线。图3A示出了第一次旋转之前二维图形的空间位置示意图。其中,S1表示二维图形,S2表示姿态方向OP0的一个垂直平面,L1表示第一相交线,L2表示第二相交线。图3B示出了第一次旋转后二维图形的空间位置示意图。
[0042] 第二次转动操作的具体过程如下:以通过二维图形转动基准点并平行于第二相交线的第二直线为旋转中心轴,旋转处于所述旋转位置的二维图形至平行于姿态方向的垂直平面。图3C示出了第二次旋转后二维图形的空间位置示意图。
[0043] 需要说明的是,上述实施例仅仅为示例性说明,本申请中步骤S104的实施方式还可以是其他公知算法,这里不再赘述。总之,步骤S104可以使得二维图形与姿态方向呈预定夹角。
[0044] 在步骤S105中,通过透视投影变换,将该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标,并在该平面投影区域中根据所述二维坐标将该二维图形渲染在该帧图像上。这里,透视投影变换是基于上文中透视投影矩阵而进行的坐标变换。平面投影区域处于虚拟摄像头的远平面中。
[0045] 综上,根据本申请的方法100可以通过调节虚拟元素的二维图形的姿态,可以使得二维图形与虚拟摄像头的镜头朝向成预定夹角。这样,本申请的方法100在将二维图形渲染到现实图像上时,可以使得渲染结果不会出现二维图形的“纸片状”效果,从而可以使得渲染结果具有将三维的虚拟元素融合到现实图像的效果,而不需要对虚拟元素进行三维建模。
[0046] 在一些实施例中,每个二维图形包括关于一个三维对象的图形序列,该图形序列中每个图形均为该三维对象的一个二维影像。步骤S105可以将步骤S101获取的图像帧设置在平面投影区域中。另外,步骤S105从二维图形所包括的图形序列中,选定该帧图像所对应的图形。基于二维图形在平面投影区域上的二维坐标,步骤S105可以将所选定的图形渲染在该帧图像上。
[0047] 在一个实施例中,图形序列与一个循环计时器(未示出)关联。该图形序列中每个图形与循环计时器的一个时间区间关联。下面结合图4对图形序列进行说明。图4示出了一个三维对象的图形序列。图4中图形序列为五角星在各个自转角度的二维影像。以图4中图形A1、A2、A3和A4为例,图形A1对应时间区间为[0ms,30ms],图形A2对应时间区间为(30ms,60ms],图形A3对应时间区间为(60ms,90ms],图形A4对应时间区间为(90ms,120ms]。相应地,步骤S105中选定图形的方式为,根据循环计时器当前时间值所处的时间区间,从图形序列中选定与该时间区间关联的图形,以作为该帧图像所对应的图形。例如,当前计时器的时间值为100ms。100ms处于图形A4对应的时间区间。因此,步骤S105中将图形A4渲染在图像上。
[0048] 在又一个实施例中,图形序列中每个图形的二维影像为三维对象在基于预定转轴自转至相应自转角度时的影像。换言之,假设三维对象在摄像头的镜头前自转,图形序列可以包括该三维对象在多个自转角度所拍摄的影像。相应地,步骤S105中,可以先确定二维图形的自转角度,然后从图形序列中选定自转角度与所确定的自转角度一致的图形,以作为该帧图像所对应的图形。
[0049] 综上,通过对图形序列中选择图形,本申请的增强现实图像的方法可以在连续渲染的多帧图像中,观察到虚拟元素自转的动画效果,从而进一步加强了所渲染图像中虚拟元素的立体感。
[0050] 图5示出了根据本申请一些实施例的增强现实图像的装置500的示意图。装置500例如驻留在一个图像应用中。该图像应用驻留在终端设备中。
[0051] 如图5所示,装置500包括获取单元501、建模单元502、分析单元503、调节单元504和渲染单元505。
[0052] 获取单元501适于获取一帧图像以及在拍摄该帧图像时摄像头的姿态方向。
[0053] 在一个实施例中,获取单元501适于从陀螺仪获取拍摄该帧图像时摄像头的姿态信息,以确定姿态方向。
[0054] 在又一个实施例中,获取单元501可以获取本地存储的一帧图像和该帧图像的姿态信息,以确定姿态方向。
[0055] 在又一个实施例中,获取单元501可以通过网络获取一帧图像和该帧图像的姿态信息,以确定所述姿态方向。
[0056] 建模单元502适于确定当摄像头以一种拍摄方式拍摄时在一个三维直角坐标系中的取景区域。拍摄方式为以三维直角坐标系中一点为拍摄位置并且拍摄方向与姿态方向一致的拍摄方式。在一个实施例中,建模单元502可以确定视锥体。视锥体对应以所述三维直角坐标系的原点为拍摄位置并且拍摄方向与所述姿态方向一致的拍摄方式。在此基础上,建模单元502可以确定当摄像头以所述拍摄方式拍摄时在视锥体中的取景区域。
[0057] 分析单元503适于确定处于取景区域内的二维图形,并获取所确定的每个二维图形的位置参考点在三维直角坐标系中三维坐标。
[0058] 在一个实施例中,分析单元503可以按照预定策略在所述三维直角坐标系中布置至少一个二维图形。其中,每个二维图形按照各自预定轨迹在该三维直角坐标系的空间中运动。在此基础上,分析单元503可以确定当前处于取景区域内的二维图形。另外,分析单元503还可以获取所确定的每个二维图形的位置参考点在三维直角坐标系中三维坐标。
[0059] 对于所确定的每个二维图形,调节单元504适于基于该二维图形的转动基准点而调节姿态,以使得该二维图形与所述姿态方向呈预定夹角,并获取姿态被调节后的该二维图形的位置参考点的三维坐标。另外,调节单元504通过透视投影变换,将该二维图形的位置参考点的三维坐标投影为相应的平面投影区域上的二维坐标。在一个实施例中,三维直角坐标系包括x轴,y轴和z轴。Y轴处于竖直方向。预定夹角为90度,调节单元504可以通过两次操作使得二维图形至平行于姿态方向的垂直平面。第一次操作:以通过转动基准点并平行于y轴的第一直线为旋转中心轴,旋转该二维图形至相应旋转位置,以便第一相交线平行于第二相交线。其中,第一相交线为该二维图形所在平面与水平面的相交线,第二相交线为姿态方向的垂直平面和水平面的相交线。第二次操作:以通过转动基准点并平行于第二相交线的第二直线为旋转中心轴,旋转处于第一次操作后旋转位置的二维图形至平行于姿态方向的垂直平面。
[0060] 渲染单元505适于在该平面投影区域中,根据二维坐标将该二维图形渲染在该帧图像上。在一些实施例中,所确定的每个二维图形包括关于一个三维对象的图形序列。该图形序列中每个图形均为该三维对象的一个二维影像。渲染单元505可以将该帧图像设置在平面投影区域中。另外,渲染单元505还可以从所述二维图形所包括的图形序列中,选定该帧图像所对应的图形。最后,渲染单元505基于二维坐标,将所选定的图形渲染在该帧图像上。
[0061] 在一个实施例中,图形序列与一个循环计时器(未示出)关联。该图形序列中每个图形与循环计时器的一个时间区间关联。在本实施例中,渲染单元505可以根据循环计时器当前时间值所处的时间区间,从图形序列中选定与该时间区间关联的图形,以作为该帧图像所对应的图形。
[0062] 在又一个实施例中,图形序列中每个图形的二维影像为三维对象基于预定转轴自转至相应自转角度的影像。在本实施例中,渲染单元505可以先确定所述二维图形的自转角度,然后从图形序列中选定自转角度与所确定的自转角度一致的图形,以作为该帧图像所对应的图形。装置500更具体的实施方式与方法200一致,这里不再赘述。
[0063] 图6示出了根据本申请一些实施例的终端设备的结构图。如图6所示,该终端设备包括一个或者多个处理器(CPU)602、通信模块604、存储器606、用户接口610、摄像头620、陀螺仪622,以及用于互联这些组件的通信总线608。
[0064] 处理器602可通过通信模块604接收和发送数据以实现网络通信和/或本地通信。
[0065] 用户接口610包括一个或多个输出设备612,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口610也包括一个或多个输入设备614。用户接口610例如可以接收遥控器的指令,但不限于此。
[0066] 存储器606可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
[0067] 存储器606存储处理器602可执行的指令集,包括:
[0068] 操作系统616,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
[0069] 应用618,包括用于实现上述方法的各种程序,这种程序能够实现上述各实例中的处理流程,比如可以包括图5的增强现实图像的装置500。
[0070] 另外,本申请的每一个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
[0071] 因此本申请还公开了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述方法的任何一种实例。
[0072] 另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
[0073] 以上所述仅为本申请的较佳实例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。