基于光流场的平面视频转立体视频的方法

文档序号:7888823阅读:162来源:国知局
专利名称:基于光流场的平面视频转立体视频的方法
技术领域
本发明属于计算机多媒体技术领域,特别涉及一种将普通平面视频转为立体视频的技术。
背景技术
平面视频转为立体视频技术正在得到越来越多的重视,但是由于其实现难度较大,目前为止还没有较为完善的解决方案,是一个仍处于探索阶段的课题。
看过3D电影的人都会对其真实感留下深刻的印象,那种身临其境的感受让人难以忘怀,而现在,立体视频正在全世界范围内并在多个行业中得到越来越多的推广和青睐,比如,中国一些中心城市的大型购物场所和娱乐场所已经开始布置立体播放器,用这些立体播放器播放事先制作好的广告或其他宣传视频,给人以很强的视觉冲击力,非常能吸引观众的眼球。
立体视频必须包含两个视频序列,分别为左视图序列和右视图序列,两个序列分别给观众的左眼看和右眼看。人眼看世界之所以有立体感,是因为左眼和右眼看世界的视角有少许不同而存在视差(disparity),而立体视频的两个序列对应的每一帧也有视差,这也是使观众观看立体视频可以产生如临其境的立体感的原因。
上述视差(disparity)是指左视图和右视图对应于同一个世界点的两个象素点的水平位移,所有象素的视差值组成视差图(disparity map)。计算机视觉领域的定理指出,某点的视差和它所对应的世界点的深度(depth)成反比,也就是说,离观看点越远的点的视差值越小,无穷远点的视差为0,所有点的深度值组成了深度图(depth map)。如果给定了左视图(右视图)和视差图,就可以得到右视图(左视图)。
光流法是目前运动图像分析的重要方法,它是指时变图像中模式运动速度。光流表达了图像的变化,由于它包含了目标运动的信息,因此可被观察者用来确定目标的运动情况。由光流的定义可以引伸出光流场,光流场是指图像中所有象素点构成的一种二维(2D)瞬时速度场。光流场是通过对相邻两帧(M帧和M+1帧)的计算,得到M帧的每一点的从M帧到M+i帧的运动情况,需要强调的是这里的运动指的是图像里的运动,是指同一物体点在相邻帧的位置偏移。在计算光流场时,要求相邻的帧的差别不能太大,否则无法计算。关于光流场的计算,目前已经有了很成熟的且简单易行的算法。
目前已有的平面视频转立体视频方法是一种叫做帧延时(Frame Delay)的方法,其步骤如下a)得到每一帧的运动场(motion field);
b)由每一帧的运动场分析此帧的图像运动情况;c)根据此帧的运动情况从原序列里直接找到一帧和此帧组成左右视图;d)得到所有帧的左右视图,从而实现平面视频转立体视频。
上述已有方法存在以下两个问题(1)垂直视差的问题比如一个火箭向上发射,用已有方法不论怎么挑,也只能挑出两张有垂直视差的图,即只有垂直方向上的偏移而没有水平方向上的偏移,这样的两张图在立体显示器显示,不仅不会有任何立体感,还会让人眩晕和疲劳。
(2)多运动物体的情况如果视频里A物体向左运动,B物体向右运动,用已有方法不管怎么挑,也只能是其中一个物体的视差是对的而另一个物体的视差是错的。

发明内容
本发明的目的是为克服已有方法的不足之处,提供一种基于光流场的平面视频转立体视频的方法,该方法简单易行,且效果较好,在方法复杂度和效果之间取得很好的折中。
本发明提出的基于光流场的平面视频转立体视频的方法,其特征在于,包括以下步骤1)计算给定一个平面视频序列每一帧的光流场(11)对第一帧光流场的计算第一帧与第二帧计算得到第一帧的光流场的每一象素点的光流场矢量;利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;(12)对第二帧到倒数第二帧的光流场矢量的计算当前帧和当前帧的后一帧计算得到当前帧的光流场所有象素点的光流场矢量;根据第一阈值得到当前帧所有光流场矢量超过该阈值的光流场矢量的比例,再将该比例与预先设定的第二阈值进行比较,以判断当前帧是否是边界帧,若不是,则利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;如果是,则抛弃所述的光流场,而由当前帧和前一帧重新计算光流场,并利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;(13)对最后一帧光流场的计算最后帧和前一帧计算得到光流场,并利用第一阈值滤除该光流场中超过第一阈值的光流场矢量;2)根据视差值正比于光流场矢量的绝对值,由当前帧的光流场中未被滤除的光流场矢量得到对应的点的视差值;该当前帧中被滤除的光流场矢量所对应的点的视差值利用插值得到,当前帧所有点的视差值组成完整的视差图;3)将当前帧、当前帧与所述视差图合成得到新视图,作为当前帧的左、右视图;4)将每一帧的左、右视图合成得到立体视频帧;5)所有立体视频帧组成立体视频序列。
本发明的特点效果本发明的方法是通过原序列每一帧的光流场(optical flow)得到每一帧的视差图,由原序列的每一帧及其视差图可以得到新的右视图序列。该方法解决了已有技术存在的问题,且简单易行,在方法复杂度和效果之间取得很好的折中。
这个方法虽然不能完美的适用于各种情况,但可以取得较好的平均效果。
具体实施例方式
本发明提出的基于光流场的平面视频转立体视频的方法结合实施例详细说明如下本发明方法包括以下步骤1)计算给定一个平面视频序列每一帧的光流场,具体包括11)对第一帧光流场的计算第一帧与第二帧计算得到第一帧的光流场的每一象素点的光流场矢量 (光流场每点的矢量代表相应的象素点从第一帧到下一帧的运动位移矢量,其绝对值以像素个数为单位,光流场的具体计算方法已经非常成熟,在此不再详述);利用第一阈值T1滤除该光流场中超过第一阈值的光流场矢量,以避免在光流场的计算中可能会出现下面几个问题造成的误差计算错误的问题某点的光流场矢量值本来应当是0或接近0,但是由于计算错误可能得出一个超过正常范围的很大的值,这些点的光流场矢量值为非正常的光流场矢量。
遮挡问题一个在M帧中存在的点,由于视角的变化,在M+1帧中可能消失,这样的点是无法计算光流的,反映在结果上就是计算出来的值很大,这样的点的光流场矢量值为非正常的光流场矢量。
第一阈值T1用于去掉上述情况出现的非正常的光流场矢量,具体的取值为事先通过足够多的试验来确定(需要试验足够多的不同的视频),通过不断调整T1的大小,选取其有较好的过滤效果的值,本发明通过实验得到T1为80-120。实施例可选取T1为100,即绝对值超过100个像素长度的光流场矢量会被滤除。
(12)对第二帧到倒数第二帧的光流场矢量的计算当前帧和当前帧的后一帧计算得到当前帧的光流场所有象素点的光流场矢量;根据第一阈值T1得到当前帧所有光流场矢量超过该阈值的光流场矢量的比例,再将该比例与预先设定的第二阈值T2进行比较,以判断当前帧是否是边界帧,若不是,则利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;如果是,则抛弃所述的光流场,而由当前帧和前一帧重新计算光流场,并利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;上述边界帧,是指处于场景突变的位置的帧。因为会发生摄镜头突然由一个场景转移到另一个场景的情况,假设把整个视频分为若干片段,每一片段对应于一个场景。在同一个视频片段里(设为A段),不同帧之间的变化是较小的,反映在光流场,就是大多数点的光流场矢量值并不大;而片段和片段之间的帧,比如片段A的最后一帧M和下一片段(设为B段)的第一帧M+1,之间的差别应该是非常大,反映在光流场里,就是几乎每一点的矢量值都很大。因此对于相邻的两帧M和M+1,也可以通过光流场来判断是否处于A段和B段的分界处;本发明判断边界帧的方法如下帧M的像素点的总数为行的个数与列的个数相乘,即Width×Hight,则建立一个Width×Hight的二维数组Array保存帧M的每个象素的光流场矢量绝对值,然后统计Array中绝对值大于T1的光流场矢量个数Number,再得到此个数占帧总的流场矢量个数的比值PP=NumberWidth×Height,]]>如果P≥T2(T2是给定的比例阈值,即第二阈值),则认为M是某个视频片断的最后一帧,即是边界帧。如果M是边界帧,则其与M+1帧计算的光流场抛弃,用M帧和M-1帧重新计算光流场,虽然这样做得到的光流场反映的是的从M到M-1帧的运动情况(与真实运动方向相反),但是本发明并不关注运动方向而只关注运动大小;这样得到的光流场解决了边界帧计算光流场的问题。
上述第二阈值T2也是事先通过足够多的试验来确定(需要试验足够多的不同的视频),不断调整T2的大小以求对边界帧做出准确的判断,使选取的阈值达到不误判也不漏判的结果。在本发明中通过试验T2可以取0.4-0.6,实施例可取0.5。
2)根据视差值正比于光流场矢量的绝对值,由当前帧的光流场中未被滤除的光流场矢量得到得到对应的点的视差值;该当前帧中被滤除的光流场矢量所对应的点的视差值利用线性插值得到,当前帧所有点的视差值组成完整的视差图;本发明所述的视差值正比于光流场矢量的绝对值(即disparity∝||V→OF||]]>)根据以下分析得到视频帧里的运动是由摄像机和真实场景的相对运动引起的,可以分为下面四种情况第一种情况为摄像机静止,场景中无运动物体,帧的光流场全是零矢量。令视差图所有点的值为0,即左视图和右视图完全一样。满足disparity∝||V→OF||;]]>第二种情况为摄像机静止,场景中有运动物体,帧的光流场中的运动的图像部分有非零矢量。
对于第二种情况,一般说来运动的物体经常处于离摄像机比较近的前景,也就是说深度值比较小,而且往往离摄像机越近的物体在图像里运动的速度越大(不论什么运动方向),因此可以近似认为深度值反比于光流矢量的绝对值,即depth∝1||V→OF||,]]>再由视差值反比于深度值,就得到disparity∝||V→OF||;]]>第三种为摄像机运动,场景中无运动物体,这种情况下,帧的光流场大部分为非零矢量。
对于这种情况,运动的摄像机拍摄完全静止的场景,就会严格满足关系式
depth∝1||V→OF||]]>(这从直观上很容易理解,当人的眼睛环顾周围的静止的环境时,越近的地方在人的视野里的移动速度越快),再由视差值反比于深度值,就得到disparity∝||V→OF||]]>第四种为摄像机运动,场景中有运动物体。
这是最为复杂的一种情况,不仅摄像机运动,场景里面的物体也有运动的,在这种情况中对于静止的背景部分dispatity∝||V→OF||]]>的假设仍然成立(同第三种情况3),只对于运动的前景部分不成立。
综上所述,本发明提出的disparity∝||V→OF||]]>在很大范围内是合理的,可以实现较好的效果。
根据上述由光流场计算视差图的准则本发明在disparity∝||V→OF||]]>的具体实施上,确定合理的比例系数如下视差图为灰度图,每一点可以赋值的范围为0至255,255表示最大的视差,0表示没有视差。如果设定最大视差值为Dmax(具体数值可以根据想要的立体效果而设定,即Dmax越大最后得到的立体效果就越明显,但是太大的话就会让人感到眩晕,本发明通过试验可以取200-230,例如取220),而某帧的光流场的矢量的最大绝对值为 则比例系数就为k=Dmax||V→OF||max,]]>即使光流场的矢量的最大值对应为想要的最大视差值。
因此,根据上述的比例系数,当前帧的光流场中未被滤除的光流场矢量得到对应的点的视差值。
该当前帧中被滤除的光流场矢量所对应的点的视差值利用插值得到,具体插值方法是通过与点A相邻的已知视差值的点的视差值线性估计A的视差值;实施例中如A周围8个点的视差值都已经求得,那么把这8点的视差值求算术平均得到A的视差值。
当前帧所有点的视差值组成完整的视差图。
3)将当前帧、当前帧与所述视差图合成得到的新视图,作为当前帧的左、右视图;视差图每一点的值代表这个象素点在左右视图间的水平位移,把视差图叠加到当前帧上,或者说把当前帧的每个象素点作相应的位移,就可以得到新视图(具体操作时,例如可以把原序列的帧作为左视图,左视图上的点按照视差图向左作相应的位移就得到右视图,也就是新图,这样就有了左右视图)。
4)将每一帧的左、右视图合成得到立体视频帧,具体做法是令立体视频帧的奇数列的象素的值为左视图对应的奇数列的象素的值,立体视频帧的偶数列的象素的值为右视图对应的偶数列的象素的值。
对于序列每一帧都重复上述所有步骤,直至最后一帧。
5)所有立体视频帧组成立体视频序列。
上述步骤3)、4)、5)具体方法均可采用已有技术实现。
权利要求
1.一种基于光流场的平面视频转立体视频的方法,其特征在于,包括以下步骤1)计算给定一个平面视频序列每一帧的光流场(11)对第一帧光流场的计算第一帧与第二帧计算得到第一帧的光流场的每一象素点的光流场矢量;利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;(12)对第二帧到倒数第二帧的光流场矢量的计算当前帧和当前帧的后一帧计算得到当前帧的光流场所有象素点的光流场矢量;根据第一阈值得到当前帧所有光流场矢量超过该阈值的光流场矢量的比例,再将该比例与预先设定的第二阈值进行比较,以判断当前帧是否是边界帧,若不是,则利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;如果是,则抛弃所述的光流场,而由当前帧和前一帧重新计算光流场,并利用第一阈值滤除该光流场中超过第一阈值的非正常的光流场矢量;(13)对最后一帧光流场的计算最后帧和前一帧计算得到光流场,并利用第一阈值滤除该光流场中超过第一阈值的光流场矢量;2)根据视差值正比于光流场矢量的绝对值,由当前帧的光流场中未被滤除的光流场矢量得到对应的点的视差值;该当前帧中被滤除的光流场矢量所对应的点的视差值利用插值得到,当前帧所有点的视差值组成完整的视差图3)将当前帧、当前帧与所述视差图合成得到新视图,作为当前帧的左、右视图;4)将每一帧的左、右视图合成得到立体视频帧;5)所有立体视频帧组成立体视频序列。
2.如权利要求1所述的方法,其特征在于,所述第一阈值T1的取值范围为80-120。
3.如权利要求1所述的方法,其特征在于所述第二阈值T2的取值范围为0.4-0.6。
4.如权利要求1所述的方法,其特征在于所述视差值正比于光流场矢量的比例系数为k=Dmax||V→OF||max,]]>其中,Dmax为最大视差值, 为光流场的矢量的最大绝对值,取值范围为200-230。
全文摘要
本发明涉及基于光流场的平面视频转立体视频的方法,属于基于光流场的平面视频转立体视频的方法;该方法包括计算给定一个平面视频序列每一帧的光流场根据视差值正比于光流场矢量的绝对值,由当前帧的光流场中未被滤除的光流场矢量得到对应的点的视差值;将当前帧、当前帧与所述视差图合成得到新视图,作为当前帧的左、右视图;将每一帧的左、右视图合成得到立体视频帧;所有立体视频帧组成立体视频序列。本发明在方法复杂度和实现效果之间取得了良好的折衷,优点是实现起来非常简单。
文档编号H04N15/00GK101087437SQ20071011765
公开日2007年12月12日 申请日期2007年6月21日 优先权日2007年6月21日
发明者戴琼海, 李涛, 刘烨斌 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1