生成全景视频的方法及装置与流程

文档序号:12496748阅读:266来源:国知局
生成全景视频的方法及装置与流程

本发明涉及图像处理技术,尤指一种生成全景视频的方法及装置。



背景技术:

由于全景视频能够为用户提供全方位视角、浸入式视频观看体验,逐渐成为虚拟现实和视频播放的热点。现有技术中,全景拍摄设备通过两个鱼眼镜头或多个广角镜头采集外界图像,然后通过算法进行拼接,形成全景视频。在生成全景视频以后,用户可以通过虚拟现实眼镜,观看全景视频,达到身临其境的观看效果。

然而,在进行全景视频拍摄的过程中,尤其是在运动状态下,拍摄设备会发生一些晃动或抖动,这就导致拍摄出来的视频在显示时显示画面会发生相同的晃动或抖动,造成播放的画面不稳定,用户的观看体验大大降低。



技术实现要素:

为了解决上述技术问题,本发明提供了一种生成全景视频的方法及装置,能够为实现全景视频的画面稳定播放提供数据,达到稳定播放图像的目的。

为了达到本发明目的,本发明提供了一种生成全景视频的方法,包括:

采集全景图像,并生成全景视频;

在采集全景图像的同时,检测拍摄设备的惯性参数,根据所述惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据;

对所述全景视频以及全景视频的每一帧全景图像对应的位姿状态数据进行存储和/或输出。

本发明还提供了一种生成全景视频的装置,包括:

一全景视频获取模块,用于采集全景图像,并生成全景视频;

一惯性传感器模块,用于在所述全景视频获取模块采集全景图像的同时,检测拍摄设备的惯性参数;

一姿态角计算模块,用于根据惯性传感器模块检测得到的所述惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据;

一存储单元,用于对所述全景视频以及全景视频的每一帧全景图像对应的位姿状态数据进行存储和/或输出。

与现有技术相比,本发明包括采集全景图像,并生成全景视频;在采集全景图像的同时,检测拍摄设备的惯性参数,根据所述惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据;对所述全景视频以及全景视频的每一帧全景图像对应的位姿状态数据进行存储和/或输出。本发明通过计算拍摄设备在采集每一帧全景图像时的位姿状态数据,并保存和/或输出,从而能够在用户观看全景视频的时候,通过位姿状态数据,补偿图像的抖动,达到稳定图像的作用,从而提升用户在观看全景视频的观感体验。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明一实施例提供的生成全景视频的方法的流程图;

图2为本发明另一实施例提供的生成全景视频的装置的架构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

现有技术中,在拍摄全景视频的过程中,如果拍摄设备发生抖动或晃动,就会导致在拍摄得到的全景视频中,在拍摄设备晃动或抖动时所拍摄的全景图像帧的画面会存在与拍摄设备相同的晃动或抖动。在播放全景视频时,这种由拍摄晃动或抖动导致的画面不稳,就会呈现在观看者的面前,不仅降低了画面质量,而且影响了观看者的观看体验。

目前,虽然可以使用三轴云台等装置为图像增稳,但这种方式需要额外的硬件设备,且售价较高;另外由于装置体积较大,对于全景相机来说,云台会遮挡全景相机的部分画面。

本申请中,考虑到如果能够在拍摄全景视频的同时,获取到拍摄设备的位姿状态数据,就可以在播放全景视频时,对于晃动或抖动时所拍摄的全景图像使用相应的位姿状态数据,补偿拍摄设备的运动,达到稳像的目的。为了能够消除由于拍摄晃动或抖动导致的全景视频画面的晃动或抖动,本申请在采集全景图像的同时,检测拍摄设备的惯性参数,计算出每一帧全景图像对应的位姿状态数据,再将全景视频与对应的位姿状态数据进行存储和/或输出,以便在播放全景视频时,对于发生抖动或晃动时所拍摄的全景图像,根据该全景图像对应的位姿状态数据消除掉画面晃动或抖动,使播放的视频画面始终保持平稳,增加了观看者的观看体验。

如图1所示,本申请一实施例提供的生成全景视频的方法,包括:

步骤101:采集全景图像,并生成全景视频;

步骤102:在采集全景图像的同时,检测拍摄设备的惯性参数,根据惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据;

步骤103:对全景视频以及全景视频的每一帧全景图像对应的位姿状态数据进行存储和/或输出。

本申请提供的生成全景视频的方法可以应用在全景相机、运动相机等拍摄设备中,在拍摄设备拍摄得到全景视频的同时计算得到全景视频的每一帧全景图像对应的位姿状态数据。也可以是应用于专业设备,生成全景电影、全景动画等,在生成全景电影、全景动画等全景内容的同时,计算得到对应的位姿状态数据。全景视频既可以是对采集到的视频进行编码保存成视频文件以供以后播放,也可以是对采集到的视频图像实时处理并直播出去。

首先,为了得到全景视频,需要采集全景图像,并将采集的全景图像生成全景视频。在本申请的一可选实施例中,可以通过全景视频获取模块采集360度视野内的全景图像。全景视频获取模块,用于获取水平360度,垂直180度的全景视频。优选的,全景视频获取模块可以包括至少两个图像采集单元,每个图像采集单元包括一个鱼眼镜头和一个摄取由鱼眼镜头所形成图像的图像传感器,每个鱼眼镜头的视场角超过180度。两个图像采集单元背向设置,保证采集到水平和垂直各360°的全景图像。拍摄设备通过将各图像采集单元摄取的图像结合在一起获得立体角弧度为4π的图像。全景视频获取模块也可以由三个或更多个镜头组成。全景视频获取模块的输出可以是原始单个镜头模组输出的图像组合,也可以为拼接处理后的宽高比为2:1的世界地图展开形式的图像序列。

拍摄设备需要首先使用图像采集单元拍摄外界图像,得到多路视频数据,两图像采集单元拍摄的图像需保证有部分重叠区域。拍摄设备接收多路视频数据,对多路视频数据进行拼接融合处理,得到全景视频。

其次,在采集全景图像的同时,检测拍摄设备的惯性参数。在本申请的一可选实施例中,可以通过惯性传感器模块采集惯性参数。惯性传感器模块由重力传感器和陀螺仪传感器组成。重力传感器输出重力加速度参数,陀螺仪传感器输出角速度参数。较优地,惯性传感器模块的采样频率设置为200Hz,重力加速度参数的输出范围为+/-8G,角速度参数的输出范围1000°/s。

在得到拍摄设备的惯性参数后,可以由姿态角计算模块根据惯性参数计算全景视频的每一帧全景图像对应的位姿状态数据。全景图像对应的位姿状态数据是表现拍摄设备在采集全景图像时所处位姿的数据,能够表征拍摄设备采集全景图像时的姿态,也就是表征拍摄设备在采集全景图像时是否发生晃动以及晃动的程度,根据全景图像的位姿状态数据可以消除采集全景图像时由于拍摄设备的晃动造成的图像晃动,使得全景视频能够画面稳定的进行显示。

在本申请的一可选实施例中,根据惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据,可以包括:

针对检测到的多组惯性参数,计算出相对应的多组位姿状态数据;

为每一帧全景图像从多组位姿状态数据中匹配出对应的位姿状态数据。

如上所述,惯性传感器模块的采样频率可以设置为200Hz,也就是说,惯性传感器模块每秒钟会检测到200组惯性参数,一组惯性参数对应的计算出一组位姿状态数据,相当于每秒钟会计算出200组位姿状态数据。全景视频的帧率通常设置为30Hz,也就是每秒钟采集30帧全景图像。由于全景视频获取模块每秒钟采集30帧全景图像,惯性传感器模块每秒钟检测到200组惯性参数,对应的计算出200组位姿状态数据,这就需要为每一帧全景图像匹配出对应的位姿状态数据。

在为每一帧全景图像匹配对应的位姿状态数据时,可以将全景图像的时间戳与每一组惯性参数的采集时间进行对比,从而匹配到采集全景图像的时刻所检测到的那组惯性参数,进而将由匹配到的惯性参数计算得到的位姿状态数据作为全景图像对应的位姿状态数据。

姿态角计算模块计算并输出拍摄设备在拍摄每一帧全景图像时的位姿状态数据。位姿状态数据的形式可以是用于表示三维空间旋转变换的任意数学表示,包括但不限于旋转矩阵、四元数、欧拉角等等。所输出的位姿状态数据包含对应全景图像帧的时刻信息。为了避免死锁问题,优先选用旋转矩阵或者四元数的输出形式。

下面以位姿状态数据采用四元数的情况,对本申请中针对每一组惯性参数,计算出相对应的多组位姿状态数据进行说明。其中,每一组惯性参数均包含角速度参数的分组。

对于每一组惯性参数,根据当前组的角速度参数和前一组四元数计算出当前组的四元数增量,当前组的四元数增量中的每个元素与当前组四元数中的元素一一对应;

计算得到当前组的四元数增量后,再将当前组的四元数增量中的每个元素与前一组四元数中的相应元素进行累计,得到当前组四元数。

例如,以四元数表示拍摄设备的位姿状态数据,设初始状态为(1,0,0,0)。惯性传感器模块输出的角速度参数表示为

下面以表示四元数增量,可以采用如下方式,根据当前组的角速度参数和前一组四元数计算出当前组的四元数增量,包括:

其中,表示前一组四元数。

在计算得到当前组的四元数增量后,可以采用以下方式将当前组的四元数增量中的每个元素与前一组四元数中的相应元素进行累计,得到当前组四元数,包括:

其中,表示前一组四元数;kt为累计权重,可以根据实际情况进行设定,如可以设置为0.5等;tg为采样间隔。具体如下:

进一步,在根据当前组的角速度参数和前一组四元数计算当前组的四元数增量前,还可以对当前组的角速度参数消除误差。本申请中的每一组惯性参数中还包含一个重力加速度参数的分组。可选的,对当前组的角速度参数消除误差,可以包括:

首先,根据前一组四元数计算当前组的加速度方向;

其次,在得到当前组的加速度方向后,再根据当前组的加速度方向和当前组的重力加速度参数,计算陀螺仪测量误差,再对陀螺仪测量误差进行累计,得到陀螺仪累计误差;

最后,再根据陀螺仪测量误差和陀螺仪累计误差,对当前组的角速度参数消除误差。

例如,以下采用表示加速度方向,可以采用如下方法根据前一组四元数计算当前组的加速度方向,包括:

可选的,可以采用表示陀螺仪测量误差,采用表示陀螺仪累计误差,采用表示重力加速度参数,根据当前组的加速度方向和当前组的重力加速度参数,计算陀螺仪测量误差,可以包括:

可选的,上述对陀螺仪测量误差进行累计,得到陀螺仪累计误差,可以包括:

其中,表示当前的累计误差,表示累计后的累计误差。具体包括:

在计算得到陀螺仪测量误差和陀螺仪累计误差后,可以采用如下方法消除陀螺仪的误差,包括:

其中,表示惯性传感器模块检测输出的角速度参数,Kp为比例权重,Ki为积分权重,Kp和Ki可以根据实际情况选择设置。具体包括:

在对陀螺仪消除误差后,采用消除误差后的角速度参数和前一组四元数计算当前组的四元数增量,进而再计算当前组四元数,从而可以得到更加准确的四元数,增强对全景图像画面的去抖效果。

可选的,在得到当前组四元数后,还可以将四元数转换为其他表示三维空间旋转变换的任意数学表示,如旋转矩阵、欧拉角等。例如,可以通过如下方式将四元数转换为旋转矩阵,包括:

最后,在得到全景视频的每一帧全景图像对应的位姿状态数据后,可以对全景视频以及全景视频的每一帧全景图像对应的位姿状态数据进行存储和/或输出,以便后续根据位姿状态数据对抖动或晃动时拍摄的全景图像消除画面晃动。

本申请中可以通过存储模块对全景视频获取模块输出的全景图像和姿态角计算模块输出的位姿状态数据进行存储和/或输出,如存储到拍摄设备的内存或存储卡中。存储时可以是将位姿状态数据作为字幕保存到视频,也可以保存为单独的文件。

位姿状态数据可以按照采集时刻或帧号等进行索引。位姿状态数据可以与全景视频一同保存或通过网络单独传输。位姿状态数据的采集时刻等同于对应的全景图像的拍摄时刻,也就是全景图像的时间戳,通过时间戳能够建立起位姿状态数据与全景图像的对应关系。帧号是全景图像的唯一标识,通过帧号能够识别出全景视频中的每一帧全景图像,将帧号作为索引,同样能够建立起全景图像与位姿状态数据的对应关系。

位姿状态数据的保存或传输方式并不限定为将位姿状态数据作为单独的数据实体进行保存或传输,例如保存成独立的磁盘文件,而是也包括以附加数据的形式直接添加在全景视频数据本身的方式。例如,可以将位姿状态数据转换为文本,在视频文件的字幕通道中对应于该位姿状态数据的采集时刻处添加上述文本作为字幕信息。任何可以将位姿状态数据与采集时刻的对应关系记录并保存或传输的方法都可以视为保存和传输位姿状态数据的方法,本申请不对具体方式作限定。

本申请中在采集全景图像的同时,计算得到每一帧全景图像对应的位姿状态数据,以便能够在展示全景视频时,能够根据位姿状态数据消除拍摄晃动造成的图像转动。本申请的方法中提供的位姿状态数据为进行后续的画面晃动消除提供了支持。实际中,在展示全景视频时,在获取全景视频以及对应的位姿状态数据后,可以将全景图像贴到预定的三维几何形体的表面得到全景展示体,再根据全景图像的姿态角对全景展示体进行旋转。由于全景图像对应的位姿状态数据能够表征拍摄设备拍摄全景图像时的姿态,也就是表征拍摄设备在拍摄全景图像时是否发生晃动以及晃动的程度,根据全景图像的位姿状态数据对全景展示体进行旋转可以消除拍摄全景图像时由于拍摄设备的晃动造成的图像晃动,使得全景视频能够画面稳定的进行显示。

本申请的生成全景视频的方法中,对计算得到的位姿状态数据是进行存储、输出还是存储并输出,需要根据不同需要来确定。例如,如果是在手机等显示设备上在展示全景视频并根据位姿状态数据消除画面抖动,需要将位姿状态数据输出给显示设备,可选的,本地也可以同时存储位姿状态数据。如果是在全景相机等拍摄设备上消除画面抖动,如对于具有显示功能的拍摄设备,则是需要在本地存储位姿状态数据,同时也可以附加的将位姿状态数据输出给其他的显示设备。

本申请在拍摄视频的同时,将拍摄设备的位姿状态保存下来,即保存了拍摄设备的抖动信息。这样,在播放全景视频时,能够减少画面显示的抖动,增加用户在观看全景视频时画面的稳定性。

如图2所示,本申请还提供了一种生成全景视频的装置,包括:

一全景视频获取模块,用于采集全景图像,并生成全景视频;

一惯性传感器模块,用于在全景视频获取模块采集全景图像的同时,检测拍摄设备的惯性参数;

一姿态角计算模块,用于根据惯性传感器模块检测得到的惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据;

一存储单元,用于对全景视频以及全景视频的每一帧全景图像对应的位姿状态数据进行存储和/或输出。

进一步的,姿态角计算模块根据惯性传感器模块检测得到的惯性参数,计算在采集每一帧全景图像时拍摄设备的位姿状态数据,包括:

针对检测到的多组惯性参数,计算出相对应的多组位姿状态数据;

为每一帧全景图像从多组位姿状态数据中匹配出对应的位姿状态数据。

进一步的,位姿状态数据采用四元数;惯性参数包含角速度参数;

姿态角计算模块针对检测到的多组惯性参数,计算出相对应的多组位姿状态数据,包括:

根据当前组的角速度参数和前一组四元数计算当前组的四元数增量,当前组的四元数增量中的每个元素与当前组四元数中的元素一一对应;

将当前组的四元数增量中的每个元素与前一组四元数中的相应元素进行累计,得到当前组四元数。

进一步的,惯性参数还包含重力加速度参数;

姿态角计算模块在计算当前组的四元数增量前,还包括:

根据前一组四元数计算当前组的加速度方向;

根据计算得到的当前组的加速度方向和当前组的重力加速度参数,计算陀螺仪测量误差,再对陀螺仪测量误差进行累计,得到陀螺仪累计误差;

根据陀螺仪测量误差和陀螺仪累计误差,对当前组的角速度参数消除误差。

进一步的,采用表示四元数,采用表示角速度参数,采用表示四元数增量;

姿态角计算模块根据当前组的角速度参数和前一组四元数计算当前组的四元数增量,包括:

其中,表示前一组四元数。

进一步的,姿态角计算模块将当前组的四元数增量中的每个元素与前一组四元数中的相应元素进行累计,得到当前组四元数,包括:

其中,kt为累计权重,tg为采样间隔。

进一步的,采用表示加速度方向;

姿态角计算模块根据前一组四元数计算当前组的加速度方向,包括:

进一步的,采用表示陀螺仪测量误差,采用表示重力加速度参数;

姿态角计算模块根据计算得到的当前组的加速度方向和当前组的重力加速度参数,计算陀螺仪测量误差,包括:

进一步的,采用表示陀螺仪累计误差;

姿态角计算模块对陀螺仪测量误差进行累计,得到陀螺仪累计误差,包括:

其中,表示当前的累计误差,表示进行累计后的累计误差。

进一步的,姿态角计算模块根据陀螺仪测量误差和陀螺仪累计误差,对当前组的角速度参数消除误差,包括:

其中,表示检测到的角速度参数,Kp为比例权重,Ki为积分权重。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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