一种3D小行星动态图的生成方法、装置及便携式终端与流程

文档序号:17695003发布日期:2019-05-17 21:25阅读:250来源:国知局
一种3D小行星动态图的生成方法、装置及便携式终端与流程

本发明属于图像领域,尤其涉及一种3d小行星动态图的生成方法、装置及便携式终端。



背景技术:

目前,已经有一些方法可以实现将一张图像生成具有3d效果的视图,例如采用微透镜技术来生成3d视图。微透镜的透镜为放大镜阵列,该放大镜阵列被设计成当从稍微不同的角度观察时,放大不同的图像。为了生成3d视图,首先需要生成多视点图像,例如12视点或更多视点图像,接着将多视点图像混合成混合图像。混合多视点图像是一个从多视点图像中提取合适的像素合并成一个新图像的过程,新图像包含原始图像的多视点信息。微透镜的透镜用来在不同的视角显示这些多视点的视角,最后,透过微透镜板观看,观看者的左眼和右眼可以看到不同的图像,从而产生3d的效果,该方法的缺陷是需要借助微透镜板而不能裸眼观看。

另一种常用的方法是手动将2d图像转换成多视点图像,操作者通常需要创建蒙皮从目标图像中提取对象,然后根据自己的判断给这些蒙皮确定深度信息。深度信息与原始2d图像具有同样尺寸的灰度图像,灰度图像用灰色表示图像的每个部分的深度。手动创建的深度信息用来引导计算机移动原始2d图像的像素以形成新的视点图,深度图可以产生强烈3d显示效果,但采用已有的这种方法生成3d视图需要耗时数小时甚至数天的时间。

综上所述,现有的从一张图像生成3d视图的方法及系统具有需要借助工具或处理时间长等缺点,用户体验度不高。



技术实现要素:

本发明提出一种3d小行星动态图的生成方法、装置及便携式终端,旨在通过自动生成虚拟视点下的小行星视图并合成渲染,实现将一幅全景图像生成有3d效果的小行星动态图,该方法效率高、图像质量效果好,用户体验度较高。

第一方面,本发明提供了一种3d小行星动态图的生成方法,所述方法包括:

获取全景图像;

对全景图像识别并分割成天空区域、人体区域和地面区域;

针对天空区域、人体区域和地面区域计算全景深度图;

将全景图像和全景深度图分别变换生成小行星图像和小行星深度图;

生成虚拟视点下的小行星视图;

渲染生成3d小行星动态图。

第二方面,本发明提供了一种3d小行星动态图的生成装置,所述装置包括:

获取模块,用于获取全景图像;

分割模块,用于对全景图像识别并分割成天空区域、人体区域和地面区域;

计算模块,用于根据所述天空区域、人体区域和地面区域计算全景深度图;

变换模块,用于将全景图像和全景深度图分别变换生成小行星图像和小行星深度图;

生成模块:用于生成虚拟视点下的小行星视图;

渲染模块:用于渲染生成3d小行星动态图。

第三方面,本发明提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现如上述的一种3d小行星动态图的生成方法的步骤。

第四方面,本发明提供了一种便携式终端,包括:

一个或多个处理器;

存储器;以及

一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如上述的一种3d小行星动态图的生成方法的步骤。

本发明技术方案通过计算图像深度图,自动生成虚拟视点下的小行星视图并合成渲染,实现了将一幅全景图像生成有3d效果的小行星动态图,不仅增强了视觉效果,还具有处理速度快等优点。

附图说明

图1是本发明实施例一提供的一种3d小行星动态图的生成方法流程图。

图2是本发明实施例一提供的一个全景深度图示例。

图3是本发明实施例一提供的小行星图像映射到全景图像的方法的流程图。

图4是本发明实施例一提供的一种生成虚拟视点下的小行星视图方法的流程图。

图5是本发明实施例二提供的一种3d小行星动态图的生成模块示意图。

图6是本发明实施例三提供的便携式终端的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

请参阅图1,本发明实施例一提供的一种3d小行星动态图的生成方法包括以下步骤:

s101.获取全景图像;

获取一幅全景图,所述全景图可以为由至少两个鱼眼镜头拍摄的多幅鱼眼图像经过光流拼接算法生成的一幅全景图像;全景图像的内容可以包括拍摄者举着全景相机拍摄的图片。

s102.对全景图像识别并分割成天空区域、人体区域和地面区域;

对全景图像内容识别出天空和人体并进行语义分割,主要分割出以下3个区域:天空区域、人体区域和地面区域;

其中识别与分割天空部分可以采用经典的天空检测算法,天空检测算法不限于论文《skyregiondetectioninasingleimageforautonomousgroundrobotnavigation》和中国专利cn109003237a中公开的方法,识别与分割人体部分可以采用经典的图像目标检测算法,目标检测算法不限于《cascader-cnn:delvingintohighqualityobjectdetection》方法等;分割出天空区域和人体区域后,剩下的部分全部划分为地面区域,即地面区域可以包含高楼、房屋和树木等。

s103.针对天空区域、人体区域和地面区域计算全景深度图;

不同物体间的相对深度可以反映物体间的三维位置关系,物体的深度表示实际场景中物体与摄像机之间的距离,因此距离摄像机越远的物体,深度值越大,距摄像机越近的物体,深度值越小;

根据所述天空区域、人体区域和地面区域计算全景深度图,方法如下:

人体区域中像素(x1,y1)的深度值bodydepth可由公式(1)计算得出:

公式(1)中,y1为像素(x1,y1)在全景图像中的行坐标,x∈[minrowidx,maxrowidx],minrowidx为人体区域中像素行坐标的最小值,maxrowidx为人体区域中像素横坐标的最大值,minbodydepth为设定的人体区域像素深度值的最小值,maxbodydepth为设定的人体区域像素深度值的最大值,bodydepth∈[minbodydepth,maxbodydepth];

天空区域中所有像素的深度值设为固定值skydepth,skydepth∈(maxbodydepth,255];

地面区域中像素(x2,y2)分为固定深度值区域和渐变深度值区域;

固定深度区域的行坐标的范围为[2maxrowidx-imgh,imgh],其中imgh为图像的高度,即行坐标的最大值,令固定深度区域的像素的深度值为固定值maxbodydepth;

地面区域中除固定深度区域外为渐变深度值区域,渐变深度值区域中像素(x2,y2)的深度值可由公式(2)计算:

公式(2)中,y2为像素(x2,y2)在全景图像中的行坐标,y2<2maxrowidx-imgh,edgedepth为设定的固定值,edgedepth∈[maxbodydepth,skydepth)。

分别计算出人体区域深度值、天空区域深度值和地面区域深度值后,即可得全景深度图;全景深度图示例请参阅图2。

s104.将全景图像和全景深度图分别变换生成小行星图像和小行星深度图;

请参阅图3,小行星图像映射到全景图像的方法如下:

s1041:将小行星图像像素点从图像坐标系转换到物理坐标系;

以单位球的南极点为三维坐标原点,x轴向右,y轴垂直向内,z轴向上,符合右手坐标系;设定观察者视点位置位于单位球的北极点与球心的连线上,坐标值为(0,0,d),设定投影的小行星平面与单位球相切于坐标原点(0,0,0),设定输出小行星图像尺寸(w,h),小行星视图中一个像素点(u,v)转换到物理坐标系后坐标点为(u,v);u和v计算公式分别为公式(3)和公式(4):

公式(3)和公式(4)中,l=2·radius·tan(fov·0.5),为设定视场角为120°,单位球半径radius=1时,弧度制的转换公式;

s1042:计算物理坐标系中像素点在球坐标系下的方位角

的计算公式为:

公式(5)中,r为点(u,v)在球坐标系下的纬度圆半径,

s1043:计算物理坐标系中像素点在球坐标系下的天顶角θ;

利用正切定理以及正弦定理计算出点(u,v)在球坐标系下的天顶角θ,计算公式为:

θ=π-α-β(6)

公式(8)中,β=arcsin(d·sin(a));

s1044:计算球坐标系下像素点与全景图像中像素点(x,y)的转换公式;

利用经纬度展开法,将球面坐标投影到全景图像坐标(x,y),x的计算公式为:

y的计算公式为

根据上述小行星图像映射到全景图像的方法,可以采用反向映射方法获取全景图像的小行星图像,反向映射方法具体为:

由小行星图像中的坐标值反向计算出全景图像中对应的坐标值;

因计算出的坐标值为浮点型数据,故还需采用双线性插值算法计算出小行星视图(u,v)坐标的像素值;

遍历全景图像所有像素点,可计算出生成小行星视图;

将s101步骤中获取的全景图像生成小行星图像;

将s103步骤中计算出的全景深度图生成小行星深度图。

s105.生成虚拟视点下的小行星视图;

请参阅图4,生成虚拟视点下的小行星视图方法的步骤如下:

s1051:设定虚拟视点坐标:

小行星图像的真实视点在小行星图像的正上方,设定虚拟视点在以真实视点为中心,平行于小行星图像的单位圆形轨迹上,虚拟视点坐标(x,y),有x=cos(θ),y=sin(θ),θ∈[0,2·π],虚拟视点的个数为n,n>1;

s1052:计算真实视点到虚拟视点之间的平移矩阵t;

t为3*3矩阵,由公式(9)计算得出:

s1053:计算真实视点到虚拟视点之间的旋转矩阵r;

r为3*3矩阵,由公式(10)计算得出:

s1054:利用的3dwarping算法生成虚拟视点下的小行星视图;

虚拟视点下的小行星视图投影公式为公式(11)所示:

q′=k·r·k-1·q+k·t(11)

公式(11)中,其中,p是真实三维空间点,q是p投影到二维图像平面上的像素点,q=k·p,p′是虚拟三维空间点,虚拟三维空间点p′与真实三维空间点p之间的关系为p′=r·p+t;q′是p′投影到二维图像平面上的像素点,q′=k·p′,k是相机的内参矩阵,设定虚拟摄像机和真实摄像机具有相同的内参;

在利用3dwarping算法生成虚拟视点下的小行星视图中,对于由原始小行星图像中物体由于前后遮挡产生的无像素信息的空洞区域,采用临近像素点进行填充。

在所述生成虚拟视点下的小行星视图中,由于虚拟视点(x,y)的个数有n个,故能生成n幅虚拟视点下的小行星视图,n>1。

s106.渲染生成3d小行星动态图;

利用单位圆轨迹上的n个虚拟视点生成的n幅虚拟视点下的小行星视图,按生成的虚拟视点下的小行星视图顺序或设定的顺序合成渲染,生成具有3d效果的小行星动态图。

实施例二:

请参阅图5,本发明实施例二提供的一种3d小行星动态图的生成装置包括:

获取模块11,用于获取全景图像;

分割模块12,用于对全景图像识别并分割成天空区域、人体区域和地面区域;

计算模块13,用于根据所述天空区域、人体区域和地面区域计算全景深度图;

变换模块14,用于将全景图像和全景深度图分别变换生成小行星图像和小行星深度图;

生成模块15:用于生成虚拟视点下的小行星视图;

渲染模块16:用于渲染生成3d小行星动态图。

本发明实施例二提供的一种一种3d小行星动态图的生成的装置及本发明实施例一提供的一种3d小行星动态图的生成方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。

实施例三:

本发明实施例三提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现如本发明实施例一提供的一种3d小行星动态图的生成方法的步骤。

实施例四:

图6示出了本发明实施例四提供的便携式终端的具体结构框图,一种便携式终端100包括:一个或多个处理器101、存储器102、以及一个或多个计算机程序,其中所述处理器101和所述存储器102通过总线连接,所述一个或多个计算机程序被存储在所述存储器102中,并且被配置成由所述一个或多个处理器101执行,所述处理器101执行所述计算机程序时实现如本发明实施例一提供的一种3d小行星动态图的生成方法的步骤。

在本发明实施例中,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘、光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

在本发明中,通过计算图像深度图,自动生成虚拟视点下的小行星视图并合成渲染,实现了将一幅全景图像生成有3d效果的小行星动态图,不仅增强了视觉效果,还具有处理速度快等优点。

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