一种基于虚拟现实的立体弹幕方法及系统与流程

文档序号:15595166发布日期:2018-10-02 19:25阅读:460来源:国知局

本发明主要涉及到虚拟现实技术与计算机视觉相关技术,尤其涉及一种基于虚拟现实的立体弹幕方法及系统。



背景技术:

人对立体感的感知来源于左右眼捕捉到的不同图片,物体在左右眼中的成像竖直方向一致,水平方向存在一定的视差,人的视觉系统能够通过视差估计出物体与人体的距离(深度信息值),从而产生合适的立体感。

虚拟现实技术正是基于此,通过头戴式显示器等设备,向左右眼输送不同的图片,通过左右两张图片中不同的视差,给人产生身临其境的立体感。而计算机视觉技术帮助我们处理图像,优化视觉效果。

弹幕技术是在直播与视频平台上流行的字幕形式的评论,特点包括:1、与视频内容的高度切合性与实时性,用户可以针对某个时刻的内容实时发送吐槽。2、多变的文字特性,用户可以自定义弹幕的很多特性,包括字体,颜色,大小,运动状态(如浮现,以不同的速度移动等),使得弹幕具有丰富的表现形式和鲜明的特点。3、集中的用户互动平台,由于每个用户发送的弹幕都会同步地显示在公共屏幕上,使得用户在看视频内容的同时,也看到他人的评论,主播(视频制作者)也能集中同步的收到来自观众的大量评论。

目前,弹幕主要使用在2d直播平台(斗鱼,熊猫tv等)与视频网站(bilibili弹幕网站等)。2d弹幕的主要缺陷包括:1、密集的弹幕容易挡住视频主要内容,无法凸显出主题。2、弹幕与视频内容之间没有交互,结合不够紧密。3、表示形式单一,通常是从右向左平移,长时间观看容易引起疲劳。

发明名称为“一种基于空间声的人机交互方法和系统(cn105611481a)专利,通过语音来解决弹幕影响视频效果,但是,还是没有解决虚拟现实系统中文字或者图片弹幕影响视频效果的问题。



技术实现要素:

本发明在基于虚拟现实的视频与直播中引入了弹幕的概念,根据虚拟现实技术的特点,通过合理调整左右眼中弹幕的水平视差,使得视频的观看者可以通过虚拟现实设备感受到弹幕的立体感。

具体来讲,本发明公开了一种虚拟现实视频或直播的弹幕方法,包括如下步骤:

步骤1、通过调整虚拟现实视频或直播中弹幕在左右眼图像中的水平视差,使得用户对弹幕产生立体感;

步骤2、利用获取到的视频或直播中的深度信息值,计算立体弹幕与场景间正确的前后关系,使得全部弹幕或部分弹幕在屏幕中移动时会被视频中的物体遮挡,从而造成弹幕与立体视频内容之间的交融;

步骤3、依据视频中场景的结构与弹幕立体的特性,调整弹幕表现形式,包括但不限于在纵深场景中使用弹幕从远至近移动,或在360度全景场景中弹幕环绕式移动。

本发明还公开了一种虚拟现实视频或直播的弹幕方法,包括如下步骤:

步骤31,在虚拟现实设备中创建出独立的两个视频内容,分别给用户的左眼和右眼观看,两个视频内容中的物体之间存在对应的水平视差,使得用户在使用虚拟现实设备观看的时候,能够感觉到视频内物体的立体感;

步骤32,用户在观看视频或收看直播的时候发送弹幕,并自定义所发弹幕在立体视频中的深度信息值;在发送弹幕时同时输入弹幕的基本属性,包括图片和文字及其内容、格式、字体、大小。物体的深度信息值与其在左右图中呈现的水平视差值呈类反比关系,水平视差e的计算公式:e=(s-h)*l/h,其中,h为一个物体的深度信息值,l为虚拟场景中的双相机距离,s为虚拟场景中的屏幕离双相机所在平面的距离。

步骤33,根据用户输入的已知弹幕的深度信息值,结合虚拟现实中已经确定的参数,计算出在左右两个视频内容中弹幕应有的水平视差值;控制在左右两个视频内容中该弹幕的位置,就能使得用户产生对应深度信息值的立体感。根据屏幕长度以及图像分辨率,将水平视差的单位从虚拟场景中的量度单位换算成像素单位,即水平视差值*图像分辨率/屏幕长度。

步骤34,根据立体视频内容,通过计算机视觉立体匹配算法,得到视频中的具体物体深度信息值,再配合自定义的弹幕深度信息值,实现弹幕与视频内容之间依据各自的深度情况保持正确的物理遮挡关系,正确的物理遮挡关系指:深度信息值小且近的物体挡住深度信息值大且远的物体。实现弹幕与视频内容的融合;计算机视觉立体匹配算法包括特征点匹配或者块匹配,计算图中每个像素点在两张图中的视差,得到其在双相机模型中的深度信息值。

步骤35,立体弹幕的表现形式随着立体视频特有的对三维场景刻画而改变与适应。立体弹幕的表现形式包括:从右向左平移,或在纵深很大的场景,动态调整立体弹幕在左右眼中的视差使其逐渐变大,同时弹幕大小也相应变大,产生弹幕在空间上自远往近运动的效果;或在广阔的全景视频内容上,采用360度环绕式的立体弹幕。

本发明还公开了一种虚拟现实视频或直播的弹幕系统,包括:

虚拟现实设备,分为左右两独立部分,用于接收相同的两个视频内容,分别给用户的左眼和右眼观看;

水平视差值调整设备,用于调整两个视频内容中弹幕在左右眼图像中的水平视差值,使得用户对弹幕产生不同的立体感;

弹幕发送设备,用于用户在观看视频或收看直播的时候发送弹幕,并自定义所发弹幕在立体视频中的深度信息值;

深度信息值处理设备,用于根据用户输入的已知弹幕的深度信息值,结合虚拟现实中已经确定的参数,计算出在左右两个视频中弹幕应有的水平视差值;

匹配设备,用于根据立体视频内容,通过计算机视觉立体匹配算法,得到视频中的具体物体深度信息值,再配合已定的弹幕深度信息值,实现弹幕与视频内容之间依据各自的深度情况保持正确的物理遮挡关系,实现弹幕与视频内容的融合;

弹幕选择设备,用于随着立体视频特有的对三维场景刻画而选择立体弹幕的表现形式。

所述深度信息值处理设备包括运算模块,用于通过物体的深度信息值计算其在左右两个视频内容中弹幕应有的水平视差值。

所述匹配设备还包括换算模块,用于根据屏幕长度以及图像分辨率,将水平视差值的长度单位从虚拟场景中的量度单位换算成像素单位,即水平视差值*图像分辨率/屏幕长度。

本发明的技术效果:通过合理调整左右眼中弹幕的视差,使得视频的观看者可以通过虚拟现实设备感受到弹幕的立体感。可以利用特有的深度信息值,穿插在视频内容中,起到既能发挥弹幕的作用,又不遮挡视频的主要前景部分的效果,同时也能使得弹幕与视频内容结合紧密,互相融合。充分利用虚拟现实中对立体视频的多种多样的表达形式,针对不同立体场景提供不同的弹幕形式。

附图说明

图1为本发明的流程图;

图2-1至图2-4为本发明的效果图。

具体实施方式

本发明以如下的虚拟场景模型作为最佳实施例:

左右平行相机,之间有l的间距,而左右屏幕完全重合,屏幕中心与双相机的连线中点相对,以下的运算公式均基于这个模型,如果模型出现了微小变化(比如采用两个屏幕分别和两个相机相对,不重合的模型),对应的计算公式和方法也会有所变化。虚拟现实中的立体视频由两个视频组成,两个视频在左右眼同步地播放,形成立体效果。

本发明中的立体弹幕是指:将一条弹幕同步地显示在左右屏幕,通过保持在两边的竖直高度一致,调整在各自屏幕中的水平位置,产生对应的立体效果。

下面根据附图对本发明进一步说明。

通过调整虚拟现实显示器中弹幕在左右眼图像中的水平视差,使得用户对弹幕产生不同的立体感。

利用获取到的视频或直播中的深度信息值,计算立体弹幕在图像中应显示的大小,并比较立体弹幕与场景间正确的前后关系,使得部分弹幕在屏幕中移动时会被视频中的物体遮挡,从而造成弹幕与立体视频内容之间的交融。

依据视频中场景的结构与弹幕立体的特性,调整多种弹幕表现形式。包括但不限于,在纵深场景中使用弹幕从远至近(垂直于屏幕)移动,在360度全景场景中弹幕环绕式移动。

具体步骤如下:

步骤1,在虚拟现实设备中创建出两个视频内容,分别给用户的左眼和右眼观看,两个视频里的物体之间存在对应的水平视差,使得用户在使用虚拟现实设备观看的时候,能够感觉到视频内物体的立体感。

步骤2,用户在观看视频或收看直播的时候发送弹幕,在发送弹幕时需要同时输入指定包括文字内容、格式、字体、大小等基本属性,并能够在一定范围内自定义所发弹幕在立体视频中的深度信息值。

深度信息值的定义:深度信息值是基于虚拟场景中的双相机系统的长度单位,单位是米,范围为正整数,用来衡量希望物体在双相机系统中表现出的深度。实际情况中,双相机系统中的所有图像均显示在一个位于双相机固定距离的左右屏幕上,屏幕到相机的距离是固定值,但可以用在左右屏幕中显示的同一物体的水平视差来控制物体的被感知深度,从而形成立体感。也就是说,物体在屏幕上的水平视差与它的深度信息值有一一对应的关系,通过一个给定的深度信息值求出弹幕的水平视差,从而生成用户希望感知到的深度信息值的弹幕。

水平视差e=(左屏幕中的点到屏幕左边缘的距离)-(右屏幕中的点到屏幕左边缘的距离)。水平视差可为负数。

步骤3,根据用户输入的已知弹幕的深度信息值,先计算弹幕在实际图像中的大小,根据透视原理,离得越近的弹幕越大,弹幕大小和其深度成反比。确定了大小之后,结合虚拟现实中已经确定好的参数,计算出在左右两个视频中弹幕应有的水平视差,一个物体的深度与其在左右图中呈现的水平视差成类反比关系。

水平视差e的计算公式:e=(s-h)*l/h,其中,h为一个物体的深度信息值,l为虚拟场景中的双相机距离,s为虚拟场景中的屏幕离双相机所在平面的距离。

对于比屏幕近的弹幕,水平视差为正,比屏幕远的弹幕,水平视差为负,对于无穷远的弹幕,趋于-l,其中l为相机的间距,即离观测者(镜头)越近的物体视差越大,在无限远的物体视差为0,这样,只要控制在左右眼中该弹幕的位置,就能使得用户产生对应深度信息值的立体感。

根据屏幕长度以及图像分辨率,将水平视差的单位从虚拟场景中的量度单位换算成像素单位,换算公式:图像分辨率*水平视差/屏幕长度。

例:用户发文字“你好”,假设场景中的相机间距l为0.06米,屏幕离相机距离s为2m,用户指定弹幕出现在深度信息值h为1.5m的位置。

根据e=(s-h)*l/h计算,此时需要弹幕在左右屏幕中水平视差为0.02m处能够产生合理的深度信息值。

根据屏幕的固定大小,比如1m大的屏幕,和对应屏幕中显示图像的分辨率,如1920*1080,计算出“你好”弹幕在左右屏幕的水平视差0.02m为1920*0.02/1=38像素单位。

补充:这里现在有两种情况:

情况一:模型“左右平行相机,之间有l的间距,而左右屏幕完全重合,屏幕中心与双相机的连线中点相对。

水平视差e的计算公式:e=(s-h)*l/h,其中,h为一个物体的深度信息值,l为虚拟场景中的双相机距离,s为虚拟场景中的屏幕离双相机所在平面的距离。

情况二:模型“左右平行相机”,之间有l的间距,左右屏幕中心分别于两个相机中心相对,两个屏幕之间存在l的间距。

水平视差的计算公式:e=s*l/h,其中,h为一个物体的深度信息值,l为虚拟场景中的双相机距离,s为虚拟场景中的屏幕离双相机所在平面的距离。

步骤4,根据立体视频内容,通过一些计算机视觉算法,立体匹配),(立体匹配的主要思想是通过输入已知间距的平行相机拍摄的左右两张图,通过特征点匹配或者块匹配等方式,来计算图中每个像素点在两张图中的视差,进而求得其在双相机模型中的深度信息值)。能求得视频中的具体物体深度信息值,再配合已定的弹幕深度(即对于弹幕所在的像素,分别计算该点出的场景深度信息值,加上已知的弹幕深度信息值做比较,将深度较小的一方显示在屏幕上,从而实现弹幕与视频内容之间的遮挡),可以实现弹幕与视频内容的融合,即,弹幕与视频内容之间依据各自的深度情况保持正确的物理遮挡关系。正确的物理遮挡关系指深度小、较近的物体挡住深度大、较远的物体。深度较大的弹幕会被深度较小的前景部分挡住,能给观众造成很好的融合感,又能突出表现视频的前景部分,不会在观看视频时收到大量弹幕的干扰。

步骤5,立体弹幕的表现形式可以随着立体视频特有的对三维场景刻画而改变与适应,既能展示现有普通弹幕通常的从右向左平移,在纵深很大的场景(深度幅度广,背景远),可以动态的调整立体弹幕在左右眼中的视差使其逐渐变大(同时弹幕字体大小也相应变大),产生弹幕在空间上自远往近运动的效果;在广阔的全景视频内容上,采用360度环绕式的立体弹幕。

下面以一个具体的打球视频举例说明:

对于篮球运动的立体视频,分为左右两个视频,视频的主要部分包括,运动中的人和球,静止的篮球架,与远处的背景。

普通的弹幕技术:在看视频的时候发送弹幕“漂亮的进球”,弹幕将会以同样的位置在左右两个视频中显示,用户在观看的时候,会认为弹幕和屏幕的距离完全一样,同时弹幕会处于视频的最上方,也就是说,会遮挡所有的其他处于同一个位置的视频内物体。然而,很多时候,运动的人的深度信息值可能比屏幕小,也就是说,用户感觉到球员的距离比弹幕要近,但是会被弹幕挡住,这样就会产生强烈的违和与不适感。

本发明的弹幕技术:假设用户指定弹幕的深度信息值为5m,而视频每一帧中的物体的深度、人的深度为3m,篮筐为7m,那么,弹幕在经过人的时候,会被人所遮挡,在经过篮筐的时候,会遮挡住篮筐。如果用户希望想让弹幕被看到,可将弹幕的深度信息值调整到一个比较小的值,保证其出现在所有视频内容前方,如果用户希望能欣赏整个球赛,可以将弹幕的深度信息值设成20m,这样弹幕会从整个球场的后方飘过,不影响到观看者的视频体验。

下面使用一组图片示例说明弹幕从生成到与图像融合的整个流程,为了方便理解,取左侧的画面加以说明:观众发送弹幕“今天的天气真好”(图2-1),设定其字体,颜色(分别设定为黑色,蓝色,白色),并指定深度为1m,1.5m,2m,对应直播的一帧1600*1200分辨率画面(图2-2)。

根据已知的相机参数,可以求得弹幕在图像中的大小对应为600*90的矩形,400*60的矩形,300*45的矩形。

使用立体匹配算法处理这一帧图像,得到了对应的深度图(图2-3),深度图是一张灰度图,其中颜色较浅的部分对应了这张图像的前景人物。

将三条弹幕与图像融合,结果如图2-4。

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