CN101635859A - 一种实现平面视频转立体视频的方法和装置 - Google Patents

一种实现平面视频转立体视频的方法和装置 Download PDF

Info

Publication number
CN101635859A
CN101635859A CN200910091469A CN200910091469A CN101635859A CN 101635859 A CN101635859 A CN 101635859A CN 200910091469 A CN200910091469 A CN 200910091469A CN 200910091469 A CN200910091469 A CN 200910091469A CN 101635859 A CN101635859 A CN 101635859A
Authority
CN
China
Prior art keywords
present frame
frame
depth map
image
scene
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910091469A
Other languages
English (en)
Other versions
CN101635859B (zh
Inventor
戴琼海
晏希
曹汛
季向阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN200910091469XA priority Critical patent/CN101635859B/zh
Publication of CN101635859A publication Critical patent/CN101635859A/zh
Application granted granted Critical
Publication of CN101635859B publication Critical patent/CN101635859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种实现平面视频转立体视频的方法和装置,属于计算机多媒体技术领域。所述方法包括:C1:读取当前帧;C2:如果所述读取的当前帧为关键帧,则对所述当前帧的图像进行颜色分割,对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;如果所述读取的当前帧为非关键帧,则获取所述当前帧的深度图;C3:根据所述获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;C4:继续读取所述当前帧的下一帧,返回执行步骤C2-C3,直到最终得到立体视频。本发明能够在没有人工介入的情况下,全自动地实现了对一个视频序列中每帧图像所对应的深度图的获取,较好地完成将平面视频转为立体视频的任务。

Description

一种实现平面视频转立体视频的方法和装置
技术领域
本发明属于计算机多媒体技术领域,特别涉及一种实现平面视频转立体视频的方法和装置。
背景技术
立体视频的出现无疑是一场视觉上的革命,它给人们带来了全新的视觉体验。然而,伴随着立体显示技术的不断发展以及立体显示设备的飞速普及,立体显示片源却严重匮乏,这种现状对于我们能够方便地产生用于立体显示的片源提出了迫切要求。当然,我们可以通过重新设计现有的拍摄设备直接获得立体视频素材,譬如利用立体摄像机同时进行双目采集,但是这种方法远远不能满足我们的要求。一方面是因为我们希望能够利用已经积累起来的庞大的平面视频素材库,另一方面则是由于立体摄像器材的使用还受到成本、技术条件等种种限制,采用单目摄像机拍摄在相当长一段时期仍将是主流。为此,需要我们考虑如何转换现有的平面媒体资源,也即是说,平面视频立体化也将是未来的发展趋势。总之,平面视频转立体视频的研究不仅在科研领域属于前沿热点课题,在大众领域也越来越受到欢迎和青睐,尤其是电影、电视、游戏等娱乐产业,更是具有巨大的市场潜力。
目前一种被普遍采用的平面视频转立体视频的体系结构为:对于一段平面的彩色图像序列,想办法获取每一帧所对应的深度图,该深度图包含了原图像中各个像素点的深度信息。接下来,我们通过所谓的DIBR(Depth-Image-BasedRendering,基于深度图渲染)的技术,就可以获得真实世界场景在一个或多个方向上的虚拟视角(所谓虚拟视角是指并没有真正地在这个角度上对真实场景进行拍摄,却通过将“从其他角度所拍摄到的图像”进行变形获得了新的图像,看上去该图像好像就是从这个角度进行拍摄的),从而最终合成立体视频。然而,这种方法中深度图的获取是一个相当困难的任务。若是已知左右两幅视图求取深度图,我们还可以借助计算机视觉中已有的立体匹配算法,若在不知道左右两幅视图的情况下,如何通过直接由平面图像获取深度图,进而得到立体视频是个亟需解决的问题之一。
发明内容
为了全自动地实现对一个视频序列中每帧图像所对应的深度图的获取,从而较好地完成将平面视频转为立体视频的任务,本发明实施例提供了一种实现平面视频转立体视频的方法和装置。所述技术方案如下:
一方面,提供了一种实现平面视频转立体视频的方法,所述方法包括:
C1:读取当前帧;
C2:如果所述读取的当前帧为关键帧,则对所述当前帧的图像进行颜色分割,对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;
如果所述读取的当前帧为非关键帧,则获取所述当前帧的深度图;
C3:根据所述获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;
C4:继续读取所述当前帧的下一帧,返回执行步骤C2-C3,直到最终得到立体视频。
进一步地,所述步骤C2之前,所述方法还包括:判断所述读取的当前帧是否为关键帧;
所述判断所述读取的当前帧是否为关键帧,具体包括:
判断所述读取的当前帧是否为视频图像的起始帧,如果是,则该当前帧为关键帧;
如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与其上一帧的相似度,如果相似度差距大于第一预设阈值,则该当前帧为关键帧;或,
如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与前一个关键帧的相似度,如果相似度差距大于第二预设阈值,则该当前帧为关键帧。
其中,所述计算所述读取当前帧与其上一帧的相似度,包括:
分别将所述读取的当前帧以及所述读取的当前帧的上一帧图像划分为P×Q个子区域,计算出各个区域的图像区域熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) ;
根据所述读取的当前帧的上一帧的图像区域熵,得到P×Q维的矢量H=(H11,H12,…HP,Q-1,HPQ);
根据所述读取的当前帧的图像区域熵,得到P×Q维的矢量H′=(H′11,H′12,…H′P,Q-1,H′PQ);
获取所述两个矢量之间的距离D(H,H′)=‖H,H′‖2
根据所述获取的距离,得到所述读取的当前帧与其上一帧的相似度。
其中,所述计算所述读取当前帧与前个关键帧的相似度,包括:
分别对所述读取的当前帧以及所述读取的当前帧的前一关键帧图像划分为P×Q个子区域,计算出各个区域的图像区域熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) ;
根据所述读取的当前帧的前一关键帧的图像区域熵,得到P×Q维的矢量H=(H11,H12,…HP,Q-1,HPQ);
根据所述读取的当前帧的图像区域熵,得到P×Q维的矢量H′=(H′11,H′12,…H′P,Q-1,H′PQ);
获取所述两个矢量之间的距离D(H,H′)=‖H,H′‖2
根据所述获取的距离,得到所述读取的当前帧与其前一关键帧的相似度。
其中,所述对所述当前帧的图像进行颜色分割,包括:
将当前帧的图像由RGB颜色空间转换为CIELab颜色空间;
当进行完颜色空间转换后,对所述当前帧的图像中的每个像素,将所述像素的Lab分量及其空间坐标组合成一个五维向量x0
在所述五维向量x0所组成的线性空间中执行MeanShift算法,得到滤波后的图像;
通过洪泛算法,对所述滤波后的图像中颜色相似、位置相近的像素点指定相同的标号,赋予相同的颜色,得到多块图像区域;
将所述得到的多块图像区域中面积较小的区域合并到与之相邻的颜色最为接近的区域中去,得到分割后的图像,所述分割后的图像中最终的区域个数满足预设要求。
其中,所述预设要求为分割后的图像中最终的区域个数小于等于四个。
其中,所述对分割后的图像进行深度赋值,得到所述当前帧的深度图,包括:
如果所述当前帧的场景是静止场景,则使用图像熵判断区域的关系远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;
如果所述当前帧的场景是运动场景,则使用光流法判断区域的远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图。
进一步地,所述对分割后的图像进行深度赋值之前,所述方法还包括:判断所述当前帧的场景是否静止;
所述判断所述当前帧的场景是否静止,具体包括:
得到所述当前帧的图像与下一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) |
若e小于给定阈值,则是静止场景,否则是运动场景。
其中,所述使用图像熵判断区域的关系远近,包括:
将大小为M×N的当前帧由RGB颜色空间转换为HSI颜色空间,并划分成P×Q个小方块。
计算出各个方块所对应的图像熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) ;
依次遍历当前帧中所有的小方块(i,j),i=1,2,…,P;j=1,2,…Q,判断它在分割后得到的图像中所属于的区域;
依次遍历所述分割后的图像中所有的区域ci,i=1,2,...C,对于每块区域ci,根据其所包含的小方块,将这些方块所对应的图像熵取均值,作为衡量该区域ci的指标Hc
若区域c′∈{ci}没有任何属于它的方块,则按照公式 x ‾ = Σ ( x , y ) ∈ c ′ x , y ‾ = Σ ( x , y ) ∈ c ′ y 求取出该区域的重心(x,y),在当前帧中提取出以点(x,y)为中心,大小为
Figure G200910091469XD00045
的一个方块,计算出该方块所对应的图像熵,将其作为衡量区域c′的指标Hc′
对于各个区域,所述指标越大则该区域在实际场景中越靠近前方。
其中,所述使用光流法判断区域的远近,包括:
利用Harris角点检测,在当前帧中纹理比较复杂的地方选取一部分角点作为特征点,执行基于迭代金字塔的Lucas Kanade光流法,获得所述选取的特征点的光流值;对当前帧中纹理比较均匀的地方,随机选取一些点,使用块匹配的方法求取所述选取的点的光流值;
对于每个分割后区域,统计该区域内光流值的平均值。
所述光流平均值越大则所述区域在实际场景中越靠近前方。
其中,所述获取所述当前帧的深度图,包括:
如果所述当前帧的场景为运动场景,则通过深度图扩散算法获得当前帧的深度图;
如果所述当前帧的场景为静止场景,则将所述当前帧的上一帧的深度图作为所述当前帧的深度图。
进一步地,所述获取所述当前帧的深度图之前,所述方法还包括:判断所述当前帧的场景是否静止,
所述判断所述当前帧的场景是否运动,具体包括:
得到所述当前帧的图像与上一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) |
若e小于给定阈值,则是静止场景,否则是运动场景。
其中,所述通过深度图扩散算法获得当前帧的深度图,包括:
当前帧中任意一个像素点i的深度值由其邻域内所有像素点j在上一帧中的深度值经加权求和得到,即 d i t + 1 = Σ j ∈ B i w ij d j t Σ j ∈ B i w ij , 其中,邻域内各像素点j的权值由下式决定
w ij = 1 2 π σ exp ( - [ ( r i t + 1 - r j t ) 2 + ( g i t + 1 - g j t ) 2 + ( b i t + 1 - b j t ) 2 2 σ 2 )
其中,ri t+1、gi t+1、bi t+1代表当前帧中像素i的R、G、B分量,而rj t、gj t、bj t代表其邻域内的像素j在上一帧中的R、G、B分量。
进一步地,所述通过深度图扩散算法获得当前帧的深度图之后,所述方法还包括:对获取的当前帧的深度图进行修正;
所述对获取的当前帧的深度图进行修正,具体包括:
将所述当前帧的深度图划分为若干小块,对于每一小块,利用最小均方误差准则找到它在上一帧深度图中的匹配块,将这一小块中像素的灰度值用匹配块中对应像素的灰度值替代。
进一步地,所述步骤C3之前,所述方法还包括:
对所述获取的深度图,进行高斯滤波,得到滤波后的深度图;
相应地,
所述步骤C3,包括:根据所述得到的滤波后的深度图,基于深度图渲染得到立体视频的一帧。
再一方面,提供了一种实现平面视频转立体视频的装置,所述装置包括:
读取模块,用于读取当前帧;
分割模块,用于如果所述读取模块读取的当前帧为关键帧,则对所述当前帧的图像进行颜色分割;
第一深度图获取模块,用于对所述分割模块分割后的图像进行深度赋值,得到所述当前帧的深度图;
第二深度图获取模块,用于如果所述读取模块读取的当前帧为非关键帧,则获取所述当前帧的深度图;
渲染模块,根据所述第一深度图获取模块或所述第二深度图获取模块获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;通知所述读取模块继续读取所述当前帧的下一帧,直到最终得到立体视频。
进一步地,所述装置还包括:判断模块,用于判断所述读取的当前帧是否为关键帧:如果所述读取的当前帧是视频图像的起始帧,则该当前帧为关键帧;如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与其上一帧的相似度,如果相似度差距大于第一预设阈值,则该当前帧为关键帧;或,如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与前一个关键帧的相似度,如果相似度差距大于第二预设阈值,则该当前帧为关键帧。
其中,所述第一深度图获取模块包括:
第一深度图获取单元,用于如果所述当前帧的场景是静止场景,则使用图像熵判断区域的关系远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;
第二深度图获取单元,用于如果所述当前帧的场景是运动场景,则使用光流法判断区域的远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图。
进一步地,所述第一深度图获取模块还包括:
判断单元,用于所述判断所述当前帧的场景是否静止:根据所述当前帧的图像与下一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) | , 若e小于给定阈值,则是静止场景,否则是运动场景。
其中,所述第二深度图获取模块包括:
第三深度图获取单元,用于如果所述当前帧的场景为运动场景,则通过深度图扩散算法获得当前帧的深度图;
第四深度图获取单元,用于如果所述当前帧的场景为静止场景,则将所述当前帧的上一帧的深度图作为所述当前帧的深度图。
进一步地,所述第二深度图获取模块还包括:判断单元,用于判断所述当前帧的场景是否运动:根据得到所述当前帧的图像与上一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) | , 若e小于给定阈值,则是静止场景,否则是运动场景。
进一步地,所述第三深度图获取单元还包括;修正单元,用于对所述第三深度图获取单元获取的当前帧的深度图进行修正:将所述当前帧的深度图划分为若干小块,对于每一小块,利用最小均方误差准则找到它在上一帧深度图中的匹配块,将这一小块中像素的灰度值用匹配块中对应像素的灰度值替代。
进一步地,所述装置还包括:滤波模块,用于对所述第一深度图获取模块或所述第二深度图获取模块获取的深度图,进行高斯滤波,得到滤波后的深度图。
本发明实施例提供的技术方案的有益效果是:通过对关键帧图像进行颜色分割后,根据对分割后的区域进行深度判断得到该关键帧的深度图,以及通过深度扩散算法得到非关键帧的深度图,基于深度图渲染技术合成立体视频,能够在没有人工介入的情况下,全自动地实现了对一个视频序列中每帧图像所对应的深度图的获取,较好地完成将平面视频转为立体视频的任务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的实现平面视频转立体视频的方法的流程示意图;
图2是本发明实施例1提供的实现平面视频转立体视频的方法的详细流程示意图;
图3是本发明实施例1提供的对图像划分示意图;
图4是本发明实施例1提供的为待转换的平面视频图像的示意图;
图5是本发明实施例1提供的基于图4基础上利用Meanshift算法进行颜色分割的结果示意图;
图6是本发明实施例1提供的利用光流法对分割区域进行深度赋值的示意图;
图7是本发明实施例1提供的基于图6得到的深度图的示意图;
图8是本发明实施例1提供的通过深度扩散算法得到的非关键帧的深度图的示意图;
图9是本发明实施例2提供的实现平面视频转立体视频的装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
为了全自动地实现对一个视频序列中每帧图像所对应的深度图的获取,从而较好地完成将平面视频转为立体视频的任务,本发明实施例提供了一种实现平面视频转立体视频的方法,参见图1,该方法内容如下:
C1:读取当前帧;
C2:如果读取的当前帧为关键帧,则对当前帧的图像进行颜色分割,对分割后的图像进行深度赋值,得到当前帧的深度图;
如果读取的当前帧为非关键帧,则获取当前帧的深度图;
C3:根据获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;
C4:继续读取当前帧的下一帧,返回执行步骤C2-C3,直到最终得到立体视频。
本发明实施例提供的方法,通过对关键帧图像进行颜色分割后,根据对分割后的区域进行深度判断得到该关键帧的深度图,以及通过深度扩散算法得到非关键帧的深度图,基于深度图渲染技术合成立体视频,能够在没有人工介入的情况下,全自动地实现了对一个视频序列中每帧图像所对应的深度图的获取,较好地完成将平面视频转为立体视频的任务。
为了对上述本发明实施例提供的方法进行详细说明,参见图2,内容如下:
步骤101:读取当前帧。其中,读取当前帧,得到当前帧的图像。
步骤102:判断当前帧是否为关键帧,如果是,则执行步骤103;否则,执行步骤108.
其中,根据以下规则判断当前帧是否为关键帧:
1、判断当前帧是否为视频图像的起始帧,如果是,则该当前帧为关键帧;
2、如果当前帧不是视频图像的起始帧,则计算当前帧与其上一帧的相似度,如果差距大于第一预设阈值,则该当前帧为关键帧;或,计算当前帧与前个关键帧的相似度,如果差距大于第二预设阈值,则该当前帧为关键帧,如果不满足上述两种情况,则该当前帧为非关键帧。
其中,在计算当前帧与其上一帧的相似度时,方法如下:
1)、将上一帧图像划分为P×Q个大小相同的矩形区域,计算出各个区域的图像区域熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) . 其中,整个颜色空间被量化为L级,pi,j(l)表示第i,j个区域中被量化为颜色l的像素在整个区域中所占的百分比。所有这些熵组成了一个P×Q维的矢量H=(H11,H12,…HP,Q-1,HPQ)。
其中,在将帧图像划分为P×Q个大小相同的矩形区域,其中P指的是原图像在水平方向上所划分的份数,Q指的是原图像在垂直方向上所划分的份数。对划分得到的子区域没有什么限制。参见图3,图3A是原图,图3B则是被划分成的8×4个区域。
2)、对当前帧图像进行同样的处理,得到另一个矢量H′=(H′11,H′12,…H′P,Q-1,H′PQ)。
3)、计算这两个矢量之间的距离D(H,H′)=‖H,H′‖2,将其作为两幅图像之间相似性的度量。
4)、若D(H,H′)大于给定阈值TH1(即上述第一预设阈值),则认为此时发生了场景切换,将该帧作为新的关键帧,并且阈值将更新为TH1′=(TH1+D(H,H′))/2。
其中,计算当前帧与前个关键帧的相似度,与上述计算当前帧与其上一帧的相似度的方法类似。若相似度大于给定阈值TH2(即上述第二预设阈值),则虽然没有发生场景切换,但该帧与前一个关键帧间隔较远,若继续进行深度扩散效果会比较差,此时也将该帧作为新的关键帧。
步骤103:若当前帧为关键帧,则对当前帧进行颜色分割,然后执行步骤104。步骤103具体如下:
1031:将当前帧的图像由RGB颜色空间转换为CIELab颜色空间;
其中,RGB颜色空间即红绿蓝颜色空间,CIELab颜色空间中,L代表亮度,a代表从红色至绿色的范围,b代表从黄色至蓝色的范围。由于RGB颜色空间并不符合人眼对色彩的感觉特性,需要找到一种具有均匀特性的颜色空间,能够把易测的空间距离作为色彩在视觉上的差别量的度量,RGB颜色空间显然不满足这样的要求,但CIELab色度空间正是由国际照明委员会推荐的均匀颜色空间。对CIELab颜色空间来说,它能较好地反映人眼对颜色的感知和鉴别能力,颜色空间中的欧几里德距离与人眼可感知的颜色差异与成比例。因此,需要将当前帧的图像由RGB颜色空间转换为CIELab颜色空间。
1032:当进行完颜色空间转换后,对该图像中的任意一个像素,将像素的Lab分量及其空间坐标组合成一个五维向量x0
1033:在这个新的特征空间域(即步骤1032所得到的五维向量x0所组成的线性空间)中执行Mean Shift算法;其中,Mean Shift算法中所涉及的迭代公式为:
x t + 1 = x t + m K , N ( x t ) = x t + Σ i = 1 N x i 0 K ( x t - x i 0 ) Σ i = 1 N K ( x t - x i 0 )
其中,xt表示第t次迭代结果,xi 0(i=1,2,…N)表示在特征空间中位于xt的邻域内的点,K是用户定义的核函数,在这里我们选取
K h s , h r ( x ) = k ( | | x s h s | | 2 ) k ( | | x r h r | | 2 )
其中xs、xr分别表示x中的空间坐标分量及Lab分量,它们使用不同的窗宽大小hs及hr,k(x)为标准的均匀分布, k ( x ) = 1 , | | x | | ≤ 1 0 , otherwise
当‖mK,N(xc)‖小于给定阈值时,迭代终止,此时我们将xc中的Lab分量作为最终的像素值。
其中,上述1031-1033这几个步骤通常又被称为Meanshift滤波,在对该当前帧的图像中的所有像素进行了相同的处理后,最终我们将获得滤波后的图像。
1034:通过洪泛算法,给所有颜色相似、位置相近的像素点指定相同的标号,赋予相同的颜色,从而得到若干块图像区域。
1035:建立区域邻接矩阵,将面积较小的区域合并到与之相邻的颜色最为接近的区域中去,保证最终的区域个数不超过四块。
其中,在保证最后的区域个数时,本实施例仅以不超过四块为例进行示意说明,在这里优选3块。这样做的目的是方便接下来对各区域所进行的深度赋值。一方面,若分割区域太多的话,采用全自动算法很难准确地判断出各区域在真实场景中的相对远近关系,这样最终得到的深度赋值结果往往会是错误的;另一方面,分割太多的区域对提升最终立体视频的立体感也没有太大帮助,在最终要获取的深度图中每一个区域对应一种灰度值,一般来说一幅场景的深度图有3个左右的灰度级就可以了。因此,通常保证最终的区域个数为2-4块就可以满足要求。当然在具体应用时,还可以根据需要设定为最终的区域个数不超过5块,或不超过6块。
当执行完步骤103后,对分割所得到的各个区域,分析它们距离观察者的相对远近,详见如下:
104:判断此时的场景是否静止,如果是,则执行步骤105;否则,执行步骤106。
其中,在判断场景是否为静止时,具体方法如下:求出当前帧图像与下一帧图像的对应像素点在各个颜色通道上的差值,将此差值的绝对值关于所有像素点和所有颜色通道求和,即
e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) |
若e小于给定阈值,则认为场景静止,否则认为场景运动。
105:对于静止场景,使用图像熵判断区域的关系远近,详见如下:
1051:将大小为M×N的当前帧由RGB颜色空间转换为HSI颜色空间,并划分成P×Q个小方块。
1052:计算出各个方块所对应的图像熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i . j ( l ) . 其中,整个颜色空间被量化为L级,pi,j(l)表示第i,j个方块中被量化为颜色l的像素在整个方块中所占的百分比。
1053:假设经过步骤1052之后当前帧被分割为C块区域,依次遍历当前帧中所有的小方块(i,j),i=1,2,…,P;j=1,2,…Q,判断它在分割结果图中属于哪一块区域。判定标准为,若方块(i,j)的中心所处位置在分割结果图中位于区域c,并且方块(i,j)中9/10以上的像素点所处位置在分割结果图中也都位于区域c,则认为方块(i,j)属于区域c。否则,则认为方块(i,j)在分割结果图中覆盖了好几个区域,因此不将它归结到任何区域中。其中,本实施例只是优选9/10,简单来说就是让绝大多数的像素点所处位置在分割结果图中也都位于区域c,具体的比例数可以根据需要进行制订。
1054:依次遍历分割结果图中所有的区域ci,i=1,2,...C,对于每块区域ci,在第1053步中已经指定了若干个属于它的方块,将这些方块所对应的图像熵取均值,作为衡量该区域ci的指标,用字母Hc表示。
1055:若区域c′∈{ci}没有任何属于它的方块,首先按照公式 x ‾ = Σ ( x , y ) ∈ c ′ x , y ‾ = Σ ( x , y ) ∈ c ′ y 求取出该区域的重心(x,y),接着在当前帧中提取出以点(x,y)为中心,大小为
Figure G200910091469XD00124
的一个方块,计算出该方块所对应的图像熵,将其作为衡量区域c′的指标Hc′
1056:对于各个区域c1,i=1,2,...C,指标Hc越大就意味着该区域在实际场景中越靠近前方。
步骤106:对于运动场景,使用光流法判断区域的远近,详见如下:
1061:利用Harris角点检测,在当前帧中纹理比较复杂的地方选取一部分角点作为特征点,执行基于迭代金字塔的Lucas Kanade光流法,获得这些特征点的光流值;对当前帧中纹理比较均匀的地方,由于缺乏特征点,故随机选取一些点,使用块匹配的方法求取它们的光流值;
其中,所谓基于迭代金字塔的Lucas Kanade光流法是一种求取离散特征点光流的方法,属于现有技术不再赘述。
1062:对于每个分割区域,统计该区域内光流大小的平均值。
其中,基于“快者恒近”的深度假设,我们认为光流平均值越大的区域位于实际场景中越前方的位置。
综上,无论是静止场景还是运动场景,我们都可以得到区域的远近关系,接下来,执行如下步骤:
步骤107:根据上述步骤105、步骤106得到的区域的远近关系,对各分割区域进行灰度赋值(又称深度赋值),获得关键帧的深度图。详见如下:
将各区域按照其在实际场景中由远到近的顺序进行排序。假设区域ci排在第i位(i=1,2,…C),则赋予该颜色区域的深度值为 Depth c = - 255 ( C - 1 ) 2 ( i - C ) 2 + 255 . 也即使是说,若区域位于场景的最后方,则赋给该区域的灰度值为0;若区域位于场景的最前方,则赋给该区域的灰度值为255;其他区域的灰度值按照二次抛物线函数进行插值。
综上,通过上述步骤102-步骤107,我们最终可以获得关键帧的深度图。
步骤108:若当前帧为非关键帧,则判断此时的场景是否为运动,如果是,则执行步骤109;否则,执行步骤111。
其中,判断此时的场景是否为运动首先判断场景有没有发生运动,具体的判定方法与步骤104相类似,只不过此时是对当前帧图像与上一帧图像对应像素点在各个颜色通道上的差值,将此差值的绝对值关于所有像素点和所有颜色通道求和,即
e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) |
若e小于给定阈值,则认为场景静止,否则认为场景运动。
步骤109:若场景发生了运动,则通过深度图扩散算法获得当前帧的深度图:详见如下:
当前帧中任意一个像素点i的深度值由其邻域内(所谓某像素点的邻域,通俗地说就是以该像素点(xc,yc)为中心的矩形窗口,用数学式子表示即为{(x,y)||x-xc|<h1且|y-yc|<h2},其中h1和h2分别为矩形窗口的宽和高)所有像素点j在上一帧中的深度值经加权求和得到,即 d i t + 1 = Σ j ∈ B i w ij d j t Σ j ∈ B i w ij . 其中,邻域内各点的权值由下式决定
w ij = 1 2 π σ exp ( - [ ( r i t + 1 - r j t ) 2 + ( g i t + 1 - g j t ) 2 + ( b i t + 1 - b j t ) 2 2 σ 2 )
其中,ri t+1、gi t+1、bi t+1代表当前帧中像素i的R、G、B分量,而rj t、gj t、bj t代表其邻域内的像素j在上一帧中的R、G、B分量。
对当前帧中所有的像素点按照上述方法进行处理,为提高算法的运行速度,各像素点的深度值求取可以并行处理,从而求出当前帧的深度图。
步骤110:利用块匹配对步骤109求出的当前帧的深度图进行修正。详见如下:
当前帧的深度图划分为若干小块,对于每一小块,利用最小均方误差准则(MSE,Mean Squared Error)找到它在上一帧深度图中的匹配块,将这一小块中像素的灰度值用匹配块中对应像素的灰度值替代。
步骤111:若场景静止,则只需将上一帧的深度图直接作为当前帧的深度图。
综上,通过上述步骤108-步骤110,我们最终可以获得非关键帧的深度图。
步骤112:对所获取的深度图,进行高斯滤波,得到滤波后的深度图。
其中,通过对深度图进行高斯滤波,可以使深度图的深度值在物体轮廓处的过渡变得平滑,一方面可以减少在生成虚拟视角时需要进行背景填充的空洞面积,另一方面可以使最终合成的立体视频的抖动程度降低。当然,若不进行滤波也能实现平面视频(2D)转立体视频(3D)的目的,只不过最终生成立体视频的视频质量会受到影响。
步骤113:根据上述滤波得到的深度图,通过深度图渲染方法DIBR,获得该帧在各个视角上的图像。
其中,所谓深度图像渲染方法DIBR是一种利用深度图所提供的场景的深度信息,根据原图生成该场景在其他虚拟视角上的图像的技术,属于现有技术不再赘述。
步骤114:继续返回读取当前帧的下一帧图像,重复执行上述步骤102-步骤113,直到最终合成立体视频。详见如下:
首先是将视频中每一帧在各个视角(包括原始视角以及生成的虚拟视角)上的图像合成立体图像,接着再把该帧所对应的立体图像写入到一个新的视频中。当对原视频的所有帧都进行了这样的处理后,最终获得的新视频就是我们想要的立体视频。其中,本领域技术人员可知,如何将每一帧在各个视角上的图像合成一幅立体图像,是和具体的硬件设备(即立体显示器的类型)有关的。不同厂家生产的立体显示器对输入的立体图像的格式要求不同,因此所采用的方法也会有所区别,一般来说立体显示器所要求的输入都是交错的立体图像格式,因此我们所采取的方法往往是在每个视角的图像中抽取一部分像素,将抽取的像素组合成新的图像,该图像即为我们想要得到的立体图像。其中,具体像素该如何抽取、又该如何组合就与立体显示器的型号有关了。例如,以某种立体显示器为例,它要求输入是由8个视角上的图像(用图像0-图像7表示)所合成的图像,以前三行为例,它的合成方式是
(1B,0G,7R)(1B,0G,7R)(1B,0G,7R)......
(2B,1G,0R)(2B,1G,0R)(2B,1G,0R)......
(3B,2G,1R)(3B,2G,1R)(3B,2G,1R)......
也即是说,在立体图像的第一行中,每个像素的蓝色分量取的是图像1的蓝色分量,绿色分量取的是图像0的绿色分量,红色分量取的是图像7的红色分量;而在第二行中,每个像素的蓝色分量取的是图像2的蓝色分量,绿色分量取的是图像1的绿色分量,红色分量取的是图像0的红色分量,以此类推。
综上所述,通过上述步骤101-步骤114,全自动地实现了对一个视频序列中每帧图像所对应的深度图的获取,从而较好地完成将平面视频转为立体视频的任务,本发明提出实现平面视频转立体视频的方法,能够在普通PC机或工作站等硬件系统上实现。实验证明,对于比较简单的外部场景,该方法通常都能获得令人满意的效果。下面就以一具体的示例对本发明实施例提供的实现平面视频转立体视频的方法进行说明,本实施例基于普通PC作为该方法实现的硬件平台。详见如下:
选择一段外部场景作为待转换的平面视频序列,其中帧图像的大小为700×380。如图4所示,显示了该视频序列中并不相连的两帧,它们分别属于不同的场景。
图4A是该视频的起始帧,因此将其作为关键帧。利用Meanshift算法对该帧进行颜色分割,得到如图5A所示的分割结果。其中,hs=8,hr=7,区域的最小面积minRegion=5000。
经判断该帧属于运动场景,故利用光流法对分割区域进行深度赋值,这一过程以及最终获得的深度图如图6所示。
选择阀值TH1的初始值为3,经检测在图4B所示的视频帧处发生了场景切换,故将该帧作为关键帧。由于该帧也属于运动场景,故对该帧进行了颜色分割后,同样利用光流法对分割区域进行深度赋值,最终得到的分割结果及深度图分别如图5B及图7所示。
对于非关键帧,若此时场景发生了运动,则通过深度扩散算法获得该帧的深度图。还是以图4B所示的视频帧为例,我们对紧接在它之后的几个非关键帧进行深度扩散,可得到如图8所示的一系列深度图。其中,相关参数的设置为:邻域窗口的大小为7,进行块匹配时的搜寻范围为±3,块的大小为32。
综上所述,本发明实施例提供的实现平面视频转立体视频的方法,通过对关键帧图像进行颜色分割后,根据对分割后的区域进行深度判断得到该关键帧的深度图,以及通过深度扩散算法得到非关键帧的深度图,基于深度图渲染技术合成立体视频,能够在没有人工介入的情况下,全自动地实现了对一个视频序列中每帧图像所对应的深度图的获取,较好地完成将平面视频转为立体视频的任务。
实施例2
相应于上述方法实施例,本发明实施例提供了一种实现平面视频转立体视频的装置,参见图9,该装置包括:
读取模块901,用于读取当前帧;
分割模块902,用于如果读取模块901读取的当前帧为关键帧,则对当前帧的图像进行颜色分割;
第一深度图获取模块903,用于对分割模块902分割后的图像进行深度赋值,得到当前帧的深度图;
第二深度图获取模块904,用于如果读取模块901读取的当前帧为非关键帧,则获取当前帧的深度图;
渲染模块905,根据第一深度图获取模块903或第二深度图获取模块904获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;通知读取模块901继续读取当前帧的下一帧,直到最终得到立体视频。
进一步地,装置还包括:判断模块,用于判断读取的当前帧是否为关键帧:如果读取的当前帧是视频图像的起始帧,则该当前帧为关键帧;如果读取的当前帧不是视频图像的起始帧,则计算读取当前帧与其上一帧的相似度,如果相似度差距大于第一预设阈值,则该当前帧为关键帧;或,如果读取的当前帧不是视频图像的起始帧,则计算读取当前帧与前一个关键帧的相似度,如果相似度差距大于第二预设阈值,则该当前帧为关键帧。
其中,第一深度图获取模块903包括:
第一深度图获取单元,用于如果当前帧的场景是静止场景,则使用图像熵判断区域的关系远近,根据判断的结果对分割后的图像进行深度赋值,得到当前帧的深度图;
第二深度图获取单元,用于如果当前帧的场景是运动场景,则使用光流法判断区域的远近,根据判断的结果对分割后的图像进行深度赋值,得到当前帧的深度图。
进一步地,第一深度图获取模块903还包括:
判断单元,用于判断当前帧的场景是否静止:根据当前帧的图像与下一帧图像的对应像素点在各个颜色通道上的差值,将差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) | , 若e小于给定阈值,则是静止场景,否则是运动场景。
其中,第二深度图获取模块904包括:
第三深度图获取单元,用于如果当前帧的场景为运动场景,则通过深度图扩散算法获得当前帧的深度图;
第四深度图获取单元,用于如果当前帧的场景为静止场景,则将当前帧的上一帧的深度图作为当前帧的深度图。
进一步地,第二深度图获取模块904还包括:判断单元,用于判断当前帧的场景是否运动:根据得到当前帧的图像与上一帧图像的对应像素点在各个颜色通道上的差值,将差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) | , 若e小于给定阈值,则是静止场景,否则是运动场景。
进一步地,第三深度图获取单元还包括;修正单元,用于对第三深度图获取单元获取的当前帧的深度图进行修正:将当前帧的深度图划分为若干小块,对于每一小块,利用最小均方误差准则找到它在上一帧深度图中的匹配块,将这一小块中像素的灰度值用匹配块中对应像素的灰度值替代。
进一步地,装置还包括:滤波模块,用于对第一深度图获取模块903或第二深度图获取模块904获取的深度图,进行高斯滤波,得到滤波后的深度图。
其中,各模块所执行的具体的动作,可参考上述方法实施例,本实施例不再赘述。
综上所述,本发明实施例提供了一种实现平面视频转立体视频的装置,通过对关键帧图像进行颜色分割后,根据对分割后的区域进行深度判断得到该关键帧的深度图,以及通过深度扩散算法得到非关键帧的深度图,基于深度图渲染技术合成立体视频,能够在没有人工介入的情况下,全自动地实现了对一个视频序列中每帧图像所对应的深度图的获取,较好地完成将平面视频转为立体视频的任务。
本发明实施例中的“接收”一词可以理解为主动从其他模块获取也可以是接收其他模块发送来的信息。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (23)

1、一种实现平面视频转立体视频的方法,其特征在于,所述方法包括:
C1:读取当前帧;
C2:如果所述读取的当前帧为关键帧,则对所述当前帧的图像进行颜色分割,对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;
如果所述读取的当前帧为非关键帧,则获取所述当前帧的深度图;
C3:根据所述获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;
C4:继续读取所述当前帧的下一帧,返回执行步骤C2-C3,直到最终得到立体视频。
2、如权利要求1所述的方法,其特征在于,所述步骤C2之前,所述方法还包括:判断所述读取的当前帧是否为关键帧;
所述判断所述读取的当前帧是否为关键帧,具体包括:
判断所述读取的当前帧是否为视频图像的起始帧,如果是,则该当前帧为关键帧;
如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取的当前帧与其上一帧的相似度,如果相似度差距大于第一预设阈值,则该当前帧为关键帧;或,
如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与前一个关键帧的相似度,如果相似度差距大于第二预设阈值,则该当前帧为关键帧。
3、如权利要求2所述的方法,其特征在于,所述计算所述读取的当前帧与其上一帧的相似度,包括:
分别将所述读取的当前帧以及所述读取的当前帧的上一帧图像划分为P×Q个子区域,计算出各个区域的图像区域熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) ;
根据所述读取的当前帧的上一帧的图像区域熵,得到P×Q维的矢量H=(H11,H12,…HP,Q-1,HPQ);
根据所述读取的当前帧的图像区域熵,得到P×Q维的矢量H′=(H′11,H′12,…H′P,Q-1,H′PQ);
获取所述两个矢量之间的距离D(H,H′)=||H,H′||2
根据所述获取的距离,得到所述读取的当前帧与其上一帧的相似度。
4、如权利要求2所述的方法,其特征在于,所述计算所述读取的当前帧与前一个关键帧的相似度,包括:
分别对所述读取的当前帧以及所述读取的当前帧的前一关键帧图像划分为P×Q个子区域,计算出各个区域的图像区域熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) ;
根据所述读取的当前帧的前一关键帧的图像区域熵,得到P×Q维的矢量H=(H11,H12,…HP,Q-1,HPQ);
根据所述读取的当前帧的图像区域熵,得到P×Q维的矢量H′=(H′11,H′12,…H′P,Q-1,H′PQ);
获取所述两个矢量之间的距离D(H,H′)=||H,H′||2
根据所述获取的距离,得到所述读取的当前帧与其前一关键帧的相似度。
5、如权利要求1所述的方法,其特征在于,所述对所述当前帧的图像进行颜色分割,包括:
将当前帧的图像由RGB颜色空间转换为CIELab颜色空间;
当进行完颜色空间转换后,对所述当前帧的图像中的每个像素,将所述像素的Lab分量及其空间坐标组合成一个五维向量x0
在所述五维向量x0所组成的线性空间中执行MeanShift算法,得到滤波后的图像;
通过洪泛算法,对所述滤波后的图像中颜色相似、位置相近的像素点指定相同的标号,赋予相同的颜色,得到多块图像区域;
将所述得到的多块图像区域中面积较小的区域合并到与之相邻的颜色最为接近的区域中去,得到分割后的图像,所述分割后的图像中最终的区域个数满足预设要求。
6、如权利要求5所述的方法,其特征在于,所述预设要求为分割后的图像中最终的区域个数小于等于四个。
7、如权利要求1所述的方法,其特征在于,所述对分割后的图像进行深度赋值,得到所述当前帧的深度图,包括:
如果所述当前帧的场景是静止场景,则使用图像熵判断区域的关系远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;
如果所述当前帧的场景是运动场景,则使用光流法判断区域的远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图。
8、如权利要求7所述的方法,其特征在于,所述对分割后的图像进行深度赋值之前,所述方法还包括:判断所述当前帧的场景是否静止;
所述判断所述当前帧的场景是否静止,具体包括:
得到所述当前帧的图像与下一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) |
若e小于给定阈值,则是静止场景,否则是运动场景。
9、如权利要求7或权利要求8所述的方法,其特征在于,所述使用图像熵判断区域的关系远近,包括:
将大小为M×N的当前帧由RGB颜色空间转换为HSI颜色空间,并划分成P×Q个小方块。
计算出各个方块所对应的图像熵 H i , j = - Σ l = 1 L p i , j ( l ) log p i , j ( l ) ;
依次遍历当前帧中所有的小方块(i,j),i=1,2,…,P;j=1,2,…Q,判断它在分割后得到的图像中所属于的区域;
依次遍历所述分割后的图像中所有的区域ci,i=1,2,...C,对于每块区域ci,根据其所包含的小方块,将这些方块所对应的图像熵取均值,作为衡量该区域ci的指标Hc
若区域c′∈{ci}没有任何属于它的方块,则按照公式 x ‾ = Σ ( x , y ) ∈ c ′ x , y ‾ = Σ ( x , y ) ∈ c ′ y 求取出该区域的重心(x,y),在当前帧中提取出以点(x,y)为中心,大小为
Figure A2009100914690005C1
的一个方块,计算出该方块所对应的图像熵,将其作为衡量区域c′的指标Hc′
对于各个区域,所述指标越大则该区域在实际场景中越靠近前方。
10、如权利要求7或8所述的方法,其特征在于,所述使用光流法判断区域的远近,包括:
利用Harris角点检测,在当前帧中纹理比较复杂的地方选取一部分角点作为特征点,执行基于迭代金字塔的Lucas Kanade光流法,获得所述选取的特征点的光流值;对当前帧中纹理比较均匀的地方,随机选取一些点,使用块匹配的方法求取所述选取的点的光流值;
对于每个分割后区域,统计该区域内光流值的平均值。
所述光流平均值越大则所述区域在实际场景中越靠近前方。
11、如权利要求1所述的方法,特征在于,所述获取所述当前帧的深度图,包括:
如果所述当前帧的场景为运动场景,则通过深度图扩散算法获得当前帧的深度图;
如果所述当前帧的场景为静止场景,则将所述当前帧的上一帧的深度图作为所述当前帧的深度图。
12、如权利要求11所述的方法,其特征在于,所述获取所述当前帧的深度图之前,所述方法还包括:判断所述当前帧的场景是否运动,
所述判断所述当前帧的场景是否运动,具体包括:
得到所述当前帧的图像与上一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) |
若e小于给定阈值,则是静止场景,否则是运动场景。
13、如权利要求11或12所述的方法,其特征在于,所述通过深度图扩散算法获得当前帧的深度图,包括:
当前帧中任意一个像素点i的深度值由其邻域内所有像素点j在上一帧中的深度值经加权求和得到,即 d i t + 1 = Σ j ∈ B i w ij d j t Σ j ∈ B i w ij , 其中,邻域内各像素点j的权值由下式决定
w ij = 1 2 π σ exp ( - [ ( r i t + 1 - r j t ) 2 + ( g i t + 1 - g j t ) 2 + ( b i t + 1 - b j t ) 2 ] 2 σ 2 )
其中,ri t+1、gi t+1、bi t+1代表当前帧中像素i的R、G、B分量,而rj t、gj t、bj t代表其邻域内的像素j在上一帧中的R、G、B分量。
14、如权利要求13所述的方法,其特征在于,所述通过深度图扩散算法获得当前帧的深度图之后,所述方法还包括:对获取的当前帧的深度图进行修正;
所述对获取的当前帧的深度图进行修正,具体包括:
将所述当前帧的深度图划分为若干小块,对于每一小块,利用最小均方误差准则找到它在上一帧深度图中的匹配块,将这一小块中像素的灰度值用匹配块中对应像素的灰度值替代。
15、如权利要求1所述的方法,其特征在于,所述步骤C3之前,所述方法还包括:
对所述获取的深度图,进行高斯滤波,得到滤波后的深度图;
相应地,
所述步骤C3,包括:根据所述得到的滤波后的深度图,基于深度图渲染得到立体视频的一帧。
16、一种实现平面视频转立体视频的装置,其特征在于,所述装置包括:
读取模块,用于读取当前帧;
分割模块,用于如果所述读取模块读取的当前帧为关键帧,则对所述当前帧的图像进行颜色分割;
第一深度图获取模块,用于对所述分割模块分割后的图像进行深度赋值,得到所述当前帧的深度图;
第二深度图获取模块,用于如果所述读取模块读取的当前帧为非关键帧,则获取所述当前帧的深度图;
渲染模块,根据所述第一深度图获取模块或第二深度图获取模块获取的当前帧的深度图,基于深度图渲染得到立体视频的一帧;通知所述读取模块继续读取所述当前帧的下一帧,直到最终得到立体视频。
17、如权利要求16所述的装置,其特征在于,所述装置还包括:判断模块,用于判断所述读取的当前帧是否为关键帧:如果所述读取的当前帧是视频图像的起始帧,则该当前帧为关键帧;如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与其上一帧的相似度,如果相似度差距大于第一预设阈值,则该当前帧为关键帧;或,如果所述读取的当前帧不是视频图像的起始帧,则计算所述读取当前帧与前一个关键帧的相似度,如果相似度差距大于第二预设阈值,则该当前帧为关键帧。
18、如权利要求16所述的装置,其特征在于,所述第一深度图获取模块包括:
第一深度图获取单元,用于如果所述当前帧的场景是静止场景,则使用图像熵判断区域的关系远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图;
第二深度图获取单元,用于如果所述当前帧的场景是运动场景,则使用光流法判断区域的远近,根据判断的结果对所述分割后的图像进行深度赋值,得到所述当前帧的深度图。
19、如权利要求18所述的装置,其特征在于,所述第一深度图获取模块还包括:
判断单元,用于所述判断所述当前帧的场景是否静止:根据所述当前帧的图像与下一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) | , 若e小于给定阈值,则是静止场景,否则是运动场景。
20、如权利要求16所述的装置,其特征在于,所述第二深度图获取模块包括:
第三深度图获取单元,用于如果所述当前帧的场景为运动场景,则通过深度图扩散算法获得当前帧的深度图;
第四深度图获取单元,用于如果所述当前帧的场景为静止场景,则将所述当前帧的上一帧的深度图作为所述当前帧的深度图。
21、如权利要求20所述的装置,其特征在于,所述第二深度图获取模块还包括:判断单元,用于判断所述当前帧的场景是否运动:根据得到所述当前帧的图像与上一帧图像的对应像素点在各个颜色通道上的差值,将所述差值的绝对值关于所有像素点和所有颜色通道求和,即 e = Σ x = 0 M - 1 Σ y = 0 N - 1 Σ c = 1 3 | f ( x , y , c ) - f ^ ( x , y , c ) | , 若e小于给定阈值,则是静止场景,否则是运动场景。
22、如权利要求20所述的装置,其特征在于,所述第三深度图获取单元还包括;修正单元,用于对所述第三深度图获取单元获取的当前帧的深度图进行修正:将所述当前帧的深度图划分为若干小块,对于每一小块,利用最小均方误差准则找到它在上一帧深度图中的匹配块,将这一小块中像素的灰度值用匹配块中对应像素的灰度值替代。
23、如权利要求16所述的装置,其特征在于,所述装置还包括:滤波模块,用于对所述第一深度图获取模块或所述第二深度图获取模块获取的深度图,进行高斯滤波,得到滤波后的深度图。
CN200910091469XA 2009-08-21 2009-08-21 一种实现平面视频转立体视频的方法和装置 Active CN101635859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910091469XA CN101635859B (zh) 2009-08-21 2009-08-21 一种实现平面视频转立体视频的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910091469XA CN101635859B (zh) 2009-08-21 2009-08-21 一种实现平面视频转立体视频的方法和装置

Publications (2)

Publication Number Publication Date
CN101635859A true CN101635859A (zh) 2010-01-27
CN101635859B CN101635859B (zh) 2011-04-27

Family

ID=41594889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910091469XA Active CN101635859B (zh) 2009-08-21 2009-08-21 一种实现平面视频转立体视频的方法和装置

Country Status (1)

Country Link
CN (1) CN101635859B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951511A (zh) * 2010-08-19 2011-01-19 深圳市亮信科技有限公司 一种通过分析深度进行视频场景分层的方法
CN102098528A (zh) * 2011-01-28 2011-06-15 清华大学 一种平面图像的立体转换方法及装置
CN102098526A (zh) * 2011-01-28 2011-06-15 清华大学 一种深度图求取方法及装置
CN102196292A (zh) * 2011-06-24 2011-09-21 清华大学 基于人机交互生成视频深度图序列的方法及系统
CN102307307A (zh) * 2011-05-19 2012-01-04 福州华映视讯有限公司 产生立体影片深度图的方法
CN102316352A (zh) * 2011-08-08 2012-01-11 清华大学 一种基于区域连通图的立体视频深度图的制作方法和装置
CN102595151A (zh) * 2011-01-11 2012-07-18 倚强科技股份有限公司 影像深度计算方法
CN102609950A (zh) * 2012-03-14 2012-07-25 浙江理工大学 一种二维视频深度图的生成方法
CN102647602A (zh) * 2011-02-17 2012-08-22 北京大学深圳研究生院 一种基于gpu加速的2d视频转3d视频系统及方法
CN102722862A (zh) * 2012-05-22 2012-10-10 山东大学 采用优化技术的单张图片半自动二维转三维方法和装置
CN102819837A (zh) * 2012-07-12 2012-12-12 清华大学 基于反馈控制的深度图处理方法及装置
CN103177440A (zh) * 2012-12-20 2013-06-26 香港应用科技研究院有限公司 生成图像深度图的系统和方法
CN103269436A (zh) * 2013-05-20 2013-08-28 山东大学 一种2d-3d视频转换中的关键帧选择方法
TWI475515B (zh) * 2011-04-13 2015-03-01 Univ Nat Taiwan 產生立體影片之深度圖的方法
CN104460960A (zh) * 2013-09-18 2015-03-25 联想(北京)有限公司 一种数据处理方法及电子设备
US9323782B2 (en) 2013-07-16 2016-04-26 Novatek Microelectronics Corp. Matching search method and system
CN105635741A (zh) * 2014-10-29 2016-06-01 深圳市敬人科技创意有限公司 一种非关键帧深度快速生成方法
CN106355611A (zh) * 2016-09-13 2017-01-25 江苏奥斯汀光电科技股份有限公司 一种基于时空间关联的裸眼3d超解像滤波方法
CN107301402A (zh) * 2017-06-30 2017-10-27 锐捷网络股份有限公司 一种现实场景关键帧的确定方法、装置、介质及设备
CN107404633A (zh) * 2017-08-14 2017-11-28 南京国电南自维美德自动化有限公司 视频监控系统及其视频压缩编码方法、联合告警追踪方法
CN109982064A (zh) * 2019-03-18 2019-07-05 深圳岚锋创视网络科技有限公司 一种裸眼3d的虚拟视点图像生成方法和便携式终端
CN111882589A (zh) * 2020-06-23 2020-11-03 广州万维创新科技有限公司 基于图像的单目视觉slam的初始化方法
CN115941914A (zh) * 2023-01-06 2023-04-07 湖南马栏山视频先进技术研究院有限公司 一种基于视频帧分析的视频渲染系统
CN117880520A (zh) * 2024-03-11 2024-04-12 山东交通学院 一种用于机车乘务员值乘标准化监控的数据管理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724530B (zh) * 2012-05-29 2014-10-22 清华大学 基于反馈控制的平面视频立体化方法
CN102724532B (zh) * 2012-06-19 2015-03-04 清华大学 一种平面视频立体化转化方法及使用该方法的系统

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951511A (zh) * 2010-08-19 2011-01-19 深圳市亮信科技有限公司 一种通过分析深度进行视频场景分层的方法
CN101951511B (zh) * 2010-08-19 2012-11-28 深圳市亮信科技有限公司 一种通过分析深度进行视频场景分层的方法
CN102595151A (zh) * 2011-01-11 2012-07-18 倚强科技股份有限公司 影像深度计算方法
CN102098526B (zh) * 2011-01-28 2012-08-22 清华大学 一种深度图求取方法及装置
CN102098528B (zh) * 2011-01-28 2012-09-05 清华大学 一种平面图像的立体转换方法及装置
CN102098526A (zh) * 2011-01-28 2011-06-15 清华大学 一种深度图求取方法及装置
CN102098528A (zh) * 2011-01-28 2011-06-15 清华大学 一种平面图像的立体转换方法及装置
CN102647602A (zh) * 2011-02-17 2012-08-22 北京大学深圳研究生院 一种基于gpu加速的2d视频转3d视频系统及方法
CN102647602B (zh) * 2011-02-17 2014-08-20 北京大学深圳研究生院 一种基于gpu加速的2d视频转3d视频系统及方法
TWI475515B (zh) * 2011-04-13 2015-03-01 Univ Nat Taiwan 產生立體影片之深度圖的方法
CN102307307A (zh) * 2011-05-19 2012-01-04 福州华映视讯有限公司 产生立体影片深度图的方法
CN102307307B (zh) * 2011-05-19 2013-09-11 福州华映视讯有限公司 产生立体影片深度图的方法
CN102196292A (zh) * 2011-06-24 2011-09-21 清华大学 基于人机交互生成视频深度图序列的方法及系统
CN102316352A (zh) * 2011-08-08 2012-01-11 清华大学 一种基于区域连通图的立体视频深度图的制作方法和装置
CN102316352B (zh) * 2011-08-08 2013-11-06 清华大学 一种基于区域连通图的立体视频深度图的制作方法和装置
CN102609950B (zh) * 2012-03-14 2014-04-02 浙江理工大学 一种二维视频深度图的生成方法
CN102609950A (zh) * 2012-03-14 2012-07-25 浙江理工大学 一种二维视频深度图的生成方法
CN102722862A (zh) * 2012-05-22 2012-10-10 山东大学 采用优化技术的单张图片半自动二维转三维方法和装置
CN102722862B (zh) * 2012-05-22 2014-08-20 山东大学 采用优化技术的单张图片半自动二维转三维方法和装置
CN102819837A (zh) * 2012-07-12 2012-12-12 清华大学 基于反馈控制的深度图处理方法及装置
CN102819837B (zh) * 2012-07-12 2015-02-18 清华大学 基于反馈控制的深度图处理方法及装置
CN103177440A (zh) * 2012-12-20 2013-06-26 香港应用科技研究院有限公司 生成图像深度图的系统和方法
CN103177440B (zh) * 2012-12-20 2015-09-16 香港应用科技研究院有限公司 生成图像深度图的系统和方法
CN103269436A (zh) * 2013-05-20 2013-08-28 山东大学 一种2d-3d视频转换中的关键帧选择方法
US9323782B2 (en) 2013-07-16 2016-04-26 Novatek Microelectronics Corp. Matching search method and system
CN104460960A (zh) * 2013-09-18 2015-03-25 联想(北京)有限公司 一种数据处理方法及电子设备
CN105635741A (zh) * 2014-10-29 2016-06-01 深圳市敬人科技创意有限公司 一种非关键帧深度快速生成方法
CN106355611A (zh) * 2016-09-13 2017-01-25 江苏奥斯汀光电科技股份有限公司 一种基于时空间关联的裸眼3d超解像滤波方法
CN106355611B (zh) * 2016-09-13 2019-03-22 江苏奥斯汀光电科技股份有限公司 一种基于时空间关联的裸眼3d超解像滤波方法
CN107301402A (zh) * 2017-06-30 2017-10-27 锐捷网络股份有限公司 一种现实场景关键帧的确定方法、装置、介质及设备
CN107301402B (zh) * 2017-06-30 2020-06-16 锐捷网络股份有限公司 一种现实场景关键帧的确定方法、装置、介质及设备
CN107404633A (zh) * 2017-08-14 2017-11-28 南京国电南自维美德自动化有限公司 视频监控系统及其视频压缩编码方法、联合告警追踪方法
CN109982064A (zh) * 2019-03-18 2019-07-05 深圳岚锋创视网络科技有限公司 一种裸眼3d的虚拟视点图像生成方法和便携式终端
CN109982064B (zh) * 2019-03-18 2021-04-27 影石创新科技股份有限公司 一种裸眼3d的虚拟视点图像生成方法和便携式终端
CN111882589A (zh) * 2020-06-23 2020-11-03 广州万维创新科技有限公司 基于图像的单目视觉slam的初始化方法
CN115941914A (zh) * 2023-01-06 2023-04-07 湖南马栏山视频先进技术研究院有限公司 一种基于视频帧分析的视频渲染系统
CN117880520A (zh) * 2024-03-11 2024-04-12 山东交通学院 一种用于机车乘务员值乘标准化监控的数据管理方法
CN117880520B (zh) * 2024-03-11 2024-05-10 山东交通学院 一种用于机车乘务员值乘标准化监控的数据管理方法

Also Published As

Publication number Publication date
CN101635859B (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
CN101635859B (zh) 一种实现平面视频转立体视频的方法和装置
CN101479765B (zh) 对2d电影进行转换用于立体3d显示的方法和系统
Guttmann et al. Semi-automatic stereo extraction from video footage
CN102741879B (zh) 由单眼图像产生深度图的方法及其系统
Tam et al. 3D-TV content generation: 2D-to-3D conversion
US7764827B2 (en) Multi-view image generation
CN102223553B (zh) 一种二维视频到三维视频的自动转换方法
EP1719079B1 (en) Creating a depth map
KR101168384B1 (ko) 깊이 맵을 생성하는 방법, 깊이 맵 생성 유닛, 이미지 처리 장치, 및 컴퓨터 프로그램 제품
CN102609950B (zh) 一种二维视频深度图的生成方法
CN102263957B (zh) 一种基于搜索窗口自适应的视差估计方法
CN102254348A (zh) 一种基于块匹配视差估计的中间视图合成方法
CN103384340B (zh) 一种从单幅2d图像获取3d成像图像的方法
CN101873509B (zh) 消除深度图序列背景和边缘抖动的方法
Pearson et al. Plenoptic layer-based modeling for image based rendering
CN102360489B (zh) 实现二维图像到三维图像转换的方法及装置
EP1714251A1 (en) Creating a depth map
KR20070105994A (ko) 깊이 인식
CN106447718B (zh) 一种2d转3d深度估计方法
CN104159098B (zh) 一种视频的时域一致性半透明边缘提取方法
Fan et al. Vivid-DIBR based 2D–3D image conversion system for 3D display
US20150030233A1 (en) System and Method for Determining a Depth Map Sequence for a Two-Dimensional Video Sequence
De Luigi et al. Scannerf: a scalable benchmark for neural radiance fields
CN108848365A (zh) 一种重定位立体图像质量评价方法
CN107592538A (zh) 一种降低立体视频深度图编码复杂度的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant