本申请属于全景视频处理领域,尤其涉及一种自动调整视角的全景视频渲染方法、存储介质及计算机设备。
背景技术:
现有技术对全景视频进行渲染时,通常是以固定全景相机的绝对视角或者平滑旋转全景相机的视角来作为虚拟相机的视角。然而,固定全景相机的绝对视角作为虚拟相机的视角时,这个固定的视角可能并不是用户一直感兴趣的视角;平滑旋转全景相机的视角来作为虚拟相机的视角时,可能大多数视角都不是用户感兴趣的视角。实际情况下用户一般会更关注全景相机拍摄的前方。而现有技术对全景视频进行渲染的方法无法满足用户的需求。
技术实现要素:
本申请的目的在于提供一种自动调整视角的全景视频渲染方法、装置、计算机可读存储介质、计算机设备及全景相机,旨在解决现有技术对全景视频进行渲染的方法无法满足用户更关注全景相机拍摄的前方的需求的问题。
本申请提供了一种自动调整视角的全景视频渲染方法,所述方法包括:
获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像;
分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;
分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;
根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;
将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
进一步地,所述分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列包括:
分别对全景视频的前一视频帧对应的多路鱼眼图像采用好的特征点跟踪goodfeaturetotrack特征点检测方式提取角点,形成待跟踪的角点序列;
或者,
分别对全景视频的前一视频帧对应的多路鱼眼图像采用harris角点检测方式提取角点,形成待跟踪的角点序列。
进一步地,所述分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列之后,所述方法还包括:
分别将每路鱼眼图像分成i*j个子块,其中,i和j是大于或者等于2的整数,i和j相等或不相等;
分别检测每个子块中待跟踪的角点数;
判断每个子块中待跟踪的角点数是否小于预设最小特征点数,如果是,则对小于预设最小特征点数的子块采用fast特征点检测算法检测特征点,将新的特征点添加到待跟踪的角点序列。
进一步地,所述对小于预设最小特征点数的子块采用fast特征点检测算法检测特征点,将新的特征点添加到待跟踪的角点序列包括:
当子块中待跟踪的角点数c小于预设最小特征点数n时,采用fast特征点检测算法检测所述子块的新的特征点,将满足条件的新的特征点添加到所述待跟踪的角点序列,其中c和n是正整数;所述满足条件为:统计所有与已有角点之间的距离大于预设的最小距离m的新的特征点,并进行排序,获取相应最大的前n-c个新的特征点作为满足条件的新的特征点。
进一步地,所述分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对包括:
获取前一视频帧对应的鱼眼图像的待跟踪的角点序列中任一角点mt-1;
跟踪角点mt-1在当前视频帧对应的鱼眼图像中对应匹配的角点mt,将角点mt-1和匹配的角点mt作为匹配点对;其中,角点mt-1和匹配的角点mt为鱼眼图像中的二维坐标。
进一步地,所述分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对之后,所述方法还包括:
分别将角点mt-1和匹配的角点mt采用鱼眼映射模型投影到球面模型,分别获得全景相机坐标系下的三维坐标
根据所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量分别将全景相机坐标系下的三维坐标
检测当前视频帧和前一视频帧对应的鱼眼图像中每个待跟踪的匹配点对在世界坐标系之间的视差;
删除视差大于预设最大值dmax的匹配点对和视差小于预设最小值dmin的匹配点对,将视差在预设最大值dmax和预设最小值dmin之间的匹配点对作为最终的匹配点对。
进一步地,所述检测当前视频帧和前一视频帧对应的鱼眼图像中每个待跟踪的匹配点对在世界坐标系之间的视差包括:
在世界坐标系中,设角点mt-1在世界坐标系下归一化的三维坐标
进一步地,所述根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量包括:
初始化全景相机运动的初始位移量t0为(0,0,1),t0是t=1时的位移量;
计算t-2时刻视频帧相对t-1时刻视频帧的第一位移量tt-1,并用第一位移量tt-1作为当前视频帧相对前一视频帧的第二位移量tt;
根据所述匹配点对,优化第二位移量tt,得到优化后的位移量
进一步地,所述根据所述匹配点对,优化第二位移量tt,得到优化后的位移量
采用目标函数
,其中,
,a=0.01,s=fi(tt);
对于fi(tt)迭代过程具体为:
首先对所有匹配点对采用最小二乘法求解深度,
然后计算残差
进一步地,所述全景视频是经防抖处理后的全景视频。
进一步地,所述将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染包括:
根据当前t时刻全景相机相对于世界坐标系的旋转量
将优化后的位移量
利用当前t时刻全景相机相对于世界坐标系的旋转量
进一步地,所述将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染之前还包括:
采用扩展卡尔曼滤波器或fir对优化后的位移量进行滤波得到平滑运动向量;
所述将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染包括:
将平滑运动向量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
本申请提供了一种自动调整视角的全景视频渲染装置,所述装置包括:
获取模块,用于获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像;
提取模块,用于分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;
匹配点对获取模块,用于分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;
优化模块,用于根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;
渲染模块,用于将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如所述的自动调整视角的全景视频渲染方法的步骤。
本申请提供了一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如所述的自动调整视角的全景视频渲染方法的步骤。
本申请提供了一种全景相机,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如所述的自动调整视角的全景视频渲染方法的步骤。
在本申请中,由于分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。因此可以自动计算全景相机的运动方向,并跟随全景相机的运动方向自动调整全景视频的视角,保持全景相机视频镜头始终在全景相机前进的方向上,可以实现更贴近人观看模式的全景相机转场模式,实现全景视频的镜头场景自动视角渲染效果。
附图说明
图1是本申请一实施例提供的自动调整视角的全景视频渲染方法的应用场景示意图。
图2是本申请一实施例提供的自动调整视角的全景视频渲染方法的流程图。
图3是本申请一实施例提供的自动调整视角的全景视频渲染装置示意图。
图4是本申请一实施例提供的计算机设备的具体结构框图。
图5是本申请一实施例提供的全景相机的具体结构框图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,本申请一实施例提供的自动调整视角的全景视频渲染方法的应用场景包括相连接的计算机设备100和全景相机200。计算机设备100和全景相机200中可运行至少一个的应用程序。计算机设备100可以是台式计算机、移动终端等,移动终端包括手机、平板电脑、笔记本电脑、个人数字助理等。计算机设备100或者是全景相机200执行本申请一实施例提供的自动调整视角的全景视频渲染方法对全景视频的当前视频帧进行转场渲染。
请参阅图2,是本申请一实施例提供的自动调整视角的全景视频渲染方法的流程图,本实施例主要以该自动调整视角的全景视频渲染方法应用于计算机设备或全景相机为例来举例说明,本申请一实施例提供的自动调整视角的全景视频渲染方法包括以下步骤:
s101、获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像。
在本申请一实施例中,全景相机是安装有多个鱼眼镜头的全景相机,鱼眼镜头的数量不限。
获取全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像具体为:
获取与全景视频的当前视频帧和前一视频帧对应的,由全景相机的每个鱼眼镜头拍摄的图像,例如当全景相机安装有双鱼眼镜头时,所述多路鱼眼图像为2路鱼眼图像,当全景相机安装有四个鱼眼镜头时,所述多路鱼眼图像为4路鱼眼图像。
获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量具体可以为:
获取拍摄当前视频帧时全景相机的陀螺仪数值,计算出当前t时刻全景相机相对于世界坐标系的旋转量
全景相机相对于世界坐标系的旋转量也可以采用现有技术的其他方式获取。
s102、分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列。
在本申请一实施例中,s102具体可以为:
分别对全景视频的前一视频帧对应的多路鱼眼图像采用goodfeaturetotrack(好的特征点跟踪)特征点检测方式提取角点,形成待跟踪的角点序列;
或者,
分别对全景视频的前一视频帧对应的多路鱼眼图像采用harris角点检测方式提取角点,形成待跟踪的角点序列。
在本申请一实施例中,所述分别对全景视频的前一视频帧对应的多路鱼眼图像采用goodfeaturetotrack(好的特征点跟踪)特征点检测方式提取角点,形成待跟踪的角点序列之后,所述方法还可以包括:
分别将每路鱼眼图像分成i*j个子块,其中,i和j是大于或者等于2的整数,i和j相等或不相等;每个子块可以均是具有角点的子块;
分别检测每个子块中待跟踪的角点数;
判断每个子块中待跟踪的角点数是否小于预设最小特征点数,如果是,则对小于预设最小特征点数的子块采用fast特征点检测算法检测特征点,将新的特征点添加到待跟踪的角点序列。
所述对小于预设最小特征点数的子块采用fast特征点检测算法检测特征点,将新的特征点添加到待跟踪的角点序列具体可以为:
当子块中待跟踪的角点数c小于预设最小特征点数n时,采用fast特征点检测算法检测所述子块的新的特征点,将满足条件的新的特征点添加到所述待跟踪的角点序列,其中c和n是正整数。所述满足条件为:统计所有与已有角点之间的距离大于预设的最小距离m的新的特征点,并进行排序,获取相应最大的前n-c个新的特征点作为满足条件的新的特征点。
s103、分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对。
在本申请一实施例中,s103具体可以包括:
获取前一视频帧,即第t-1视频帧,对应的鱼眼图像的待跟踪的角点序列中任一角点mt-1;
跟踪角点mt-1在当前视频帧,即第t视频帧,对应的鱼眼图像中对应的匹配的角点mt,将角点mt-1和匹配的角点mt作为匹配点对;其中,角点mt-1和匹配的角点mt为鱼眼图像中的二维坐标。
在本申请一实施例中,s103之后,所述方法还可以包括:
s1031、分别将角点mt-1和匹配的角点mt采用鱼眼映射模型投影到球面模型,分别获得全景相机坐标系下的三维坐标
s1032、根据所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量分别将全景相机坐标系下的三维坐标
s1033、检测当前视频帧和前一视频帧对应的鱼眼图像中每个待跟踪的匹配点对在世界坐标系之间的视差;
具体为,在世界坐标系中,设角点mt-1在世界坐标系下归一化的三维坐标
s1034、删除视差大于预设最大值dmax的匹配点对(即可能的错误匹配点)和视差小于预设最小值dmin的匹配点对(即无穷远点和鱼眼边缘上的定点),将视差在预设最大值dmax和预设最小值dmin之间匹配点对作为最终的匹配点对。
其中,获得全景相机坐标系下的三维坐标
s104、根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量。
在本申请一实施例中,s104具体可以包括:
s1041、初始化全景相机运动的初始位移量t0为(0,0,1),t0是t=1时的位移量;
s1042、计算t-2时刻视频帧相对t-1时刻视频帧的第一位移量tt-1,并用第一位移量tt-1作为当前视频帧相对前一视频帧的第二位移量tt;
s1043、根据所述匹配点对,优化第二位移量tt,得到优化后的位移量
s1043具体可以为:
采用目标函数
对于fi(tt)迭代过程具体为:
首先对所有匹配点对采用最小二乘法求解深度,
然后计算残差
s105、将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
所述全景视频可以是经防抖处理后的全景视频。
在本申请一实施例中,s105具体可以包括:
s1051、根据当前t时刻全景相机相对于世界坐标系的旋转量
s1052、将优化后的位移量
所述当前虚拟相机的旋转矩阵rv=[e0;e1;e2],其中
s1053、利用当前t时刻全景相机相对于世界坐标系的旋转量
具体为:
采用公式:
利用
在本申请一实施例中,s105之前还可以包括以下步骤:
采用扩展卡尔曼滤波器、fir等对优化后的位移量进行滤波得到平滑运动向量;
具体为:根据所述全景相机当前视频帧相对前一视频帧的位移量和优化后的位移量进行加权,得到当前时刻全景相机前进方向的平滑运动向量。
则s105具体为:根据所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和平滑运动向量对全景视频的当前视频帧进行转场渲染。
请参阅图3,本申请一实施例提供的自动调整视角的全景视频渲染装置可以是运行于计算机设备或全景相机中的一个计算机程序或一段程序代码,例如该自动调整视角的全景视频渲染装置为一个应用软件;该自动调整视角的全景视频渲染装置可以用于执行本申请实施例提供的自动调整视角的全景视频渲染方法中的相应步骤。本申请一实施例提供的自动调整视角的全景视频渲染装置包括:
获取模块11,用于获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像;
提取模块12,用于分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;
匹配点对获取模块13,用于分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;
优化模块14,用于根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;
渲染模块15,用于将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
本申请一实施例提供的自动调整视角的全景视频渲染装置与本申请一实施例提供的自动调整视角的全景视频渲染方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。
本申请一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请一实施例提供的自动调整视角的全景视频渲染方法的步骤。
图4示出了本申请一实施例提供的计算机设备的具体结构框图,该计算机设备可以是图1中所示的计算机设备,一种计算机设备100包括:一个或多个处理器101、存储器102、以及一个或多个计算机程序,其中所述处理器101和所述存储器102通过总线连接,所述一个或多个计算机程序被存储在所述存储器102中,并且被配置成由所述一个或多个处理器101执行,所述处理器101执行所述计算机程序时实现如本申请一实施例提供的自动调整视角的全景视频渲染方法的步骤。
计算机设备可以是台式计算机、移动终端等,移动终端包括手机、平板电脑、笔记本电脑、个人数字助理等。
图5示出了本申请一实施例提供的全景相机的具体结构框图,该全景相机可以是图1中所示的全景相机,一种全景相机200包括:一个或多个处理器201、存储器202、以及一个或多个计算机程序,其中所述处理器201和所述存储器202通过总线连接,所述一个或多个计算机程序被存储在所述存储器202中,并且被配置成由所述一个或多个处理器201执行,所述处理器201执行所述计算机程序时实现如本申请一实施例提供的自动调整视角的全景视频渲染方法的步骤。
在本申请中,由于分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。因此可以自动计算全景相机的运动方向,并跟随全景相机的运动方向自动调整全景视频的视角,保持全景相机视频镜头始终在全景相机前进的方向上,可以实现更贴近人观看模式的全景相机转场模式,实现全景视频的镜头场景自动视角渲染效果。
又由于采用扩展卡尔曼滤波器、fir等对优化后的位移量进行滤波得到平滑运动向量;根据所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和平滑运动向量对全景视频的当前视频帧进行转场渲染,因此可以得到稳定的视角过渡路径。
应该理解的是,本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
1.一种自动调整视角的全景视频渲染方法,其特征在于,所述方法包括:
获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像;
分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;
分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;
根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;
将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
2.如权利要求1所述的方法,其特征在于,所述获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量包括:
获取拍摄当前视频帧时全景相机的陀螺仪数值,计算出当前t时刻全景相机相对于世界坐标系的旋转量
3.如权利要求1所述的方法,其特征在于,所述分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列包括:
分别对全景视频的前一视频帧对应的多路鱼眼图像采用好的特征点跟踪goodfeaturetotrack特征点检测方式提取角点,形成待跟踪的角点序列;
或者,
分别对全景视频的前一视频帧对应的多路鱼眼图像采用harris角点检测方式提取角点,形成待跟踪的角点序列。
4.如权利要求1所述的方法,其特征在于,所述分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列之后,所述方法还包括:
分别将每路鱼眼图像分成i*j个子块,其中,i和j是大于或者等于2的整数,i和j相等或不相等;
分别检测每个子块中待跟踪的角点数;
判断每个子块中待跟踪的角点数是否小于预设最小特征点数,如果是,则对小于预设最小特征点数的子块采用fast特征点检测算法检测特征点,将新的特征点添加到待跟踪的角点序列。
5.如权利要求4所述的方法,其特征在于,所述对小于预设最小特征点数的子块采用fast特征点检测算法检测特征点,将新的特征点添加到待跟踪的角点序列包括:
当子块中待跟踪的角点数c小于预设最小特征点数n时,采用fast特征点检测算法检测所述子块的新的特征点,将满足条件的新的特征点添加到所述待跟踪的角点序列,其中c和n是正整数;所述满足条件为:统计所有与已有角点之间的距离大于预设的最小距离m的新的特征点,并进行排序,获取相应最大的前n-c个新的特征点作为满足条件的新的特征点。
6.如权利要求1、4或5所述的方法,其特征在于,所述分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对包括:
获取前一视频帧对应的鱼眼图像的待跟踪的角点序列中任一角点mt-1;
跟踪角点mt-1在当前视频帧对应的鱼眼图像中对应匹配的角点mt,将角点mt-1和匹配的角点mt作为匹配点对;其中,角点mt-1和匹配的角点mt为鱼眼图像中的二维坐标。
7.如权利要求6所述的方法,其特征在于,所述分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对之后,所述方法还包括:
分别将角点mt-1和匹配的角点mt采用鱼眼映射模型投影到球面模型,分别获得全景相机坐标系下的三维坐标pct-1和pct;
根据所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量分别将全景相机坐标系下的三维坐标pct-1和pct旋转到世界坐标系下,获得世界坐标系下归一化的三维坐标
检测当前视频帧和前一视频帧对应的鱼眼图像中每个待跟踪的匹配点对在世界坐标系之间的视差;
删除视差大于预设最大值dmax的匹配点对和视差小于预设最小值dmin的匹配点对,将视差在预设最大值dmax和预设最小值dmin之间的匹配点对作为最终的匹配点对。
8.如权利要求7所述的方法,其特征在于,所述检测当前视频帧和前一视频帧对应的鱼眼图像中每个待跟踪的匹配点对在世界坐标系之间的视差包括:
在世界坐标系中,设角点mt-1在世界坐标系下归一化的三维坐标
9.如权利要求1、6或7所述的方法,其特征在于,所述根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量包括:
初始化全景相机运动的初始位移量t0为(0,0,1),t0是t=1时的位移量;
计算t-2时刻视频帧相对t-1时刻视频帧的第一位移量tt-1,并用第一位移量tt-1作为当前视频帧相对前一视频帧的第二位移量tt;
根据所述匹配点对,优化第二位移量tt,得到优化后的位移量
10.如权利要求9所述的方法,其特征在于,所述根据所述匹配点对,优化第二位移量tt,得到优化后的位移量
采用目标函数
fi(tt)=||norm(dt,i·pwt,i-tt)-pwt-1,i|| ||norm(dt-1,i·pwt-1,i tt)-pwt,i||,
其中,
a=0.01,s=fi(tt);
对于fi(tt)迭代过程具体为:
首先对所有匹配点对采用最小二乘法求解深度,
然后计算残差
11.如权利要求1所述的方法,其特征在于,所述全景视频是经防抖处理后的全景视频。
12.如权利要求2所述的方法,其特征在于,所述将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染包括:
根据当前t时刻全景相机相对于世界坐标系的旋转量
将优化后的位移量
利用当前t时刻全景相机相对于世界坐标系的旋转量
13.如权利要求1所述的方法,其特征在于,所述将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染之前还包括:
采用扩展卡尔曼滤波器或fir对优化后的位移量进行滤波得到平滑运动向量;
所述将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染包括:
将平滑运动向量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
14.一种自动调整视角的全景视频渲染装置,其特征在于,所述装置包括:
获取模块,用于获取拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和全景视频的当前视频帧和前一视频帧对应的多路鱼眼图像;
提取模块,用于分别提取全景视频的前一视频帧对应的多路鱼眼图像的角点,获取待跟踪的角点序列;
匹配点对获取模块,用于分别对所述待跟踪的角点序列进行跟踪,获取当前视频帧和前一视频帧对应的鱼眼图像中待跟踪的匹配点对;
优化模块,用于根据所述匹配点对,对全景相机当前视频帧相对前一视频帧的位移量进行优化,得到优化后的位移量;
渲染模块,用于将优化后的位移量作为虚拟相机的前进方向,计算当前虚拟相机的旋转矩阵,利用所述拍摄当前视频帧时全景相机相对于世界坐标系的旋转量和所述当前虚拟相机的旋转矩阵对全景视频的当前视频帧进行转场渲染。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述的自动调整视角的全景视频渲染方法的步骤。
16.一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至13任一项所述的自动调整视角的全景视频渲染方法的步骤。
17.一种全景相机,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至13任一项所述的自动调整视角的全景视频渲染方法的步骤。
技术总结