CN102098526B - 一种深度图求取方法及装置 - Google Patents

一种深度图求取方法及装置 Download PDF

Info

Publication number
CN102098526B
CN102098526B CN2011100316104A CN201110031610A CN102098526B CN 102098526 B CN102098526 B CN 102098526B CN 2011100316104 A CN2011100316104 A CN 2011100316104A CN 201110031610 A CN201110031610 A CN 201110031610A CN 102098526 B CN102098526 B CN 102098526B
Authority
CN
China
Prior art keywords
pixel
depth map
present frame
value
frame
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.)
Active
Application number
CN2011100316104A
Other languages
English (en)
Other versions
CN102098526A (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 CN2011100316104A priority Critical patent/CN102098526B/zh
Publication of CN102098526A publication Critical patent/CN102098526A/zh
Application granted granted Critical
Publication of CN102098526B publication Critical patent/CN102098526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开一种深度图求取方法,包括输入平面图像;预处理;对平面图像选择性地进行基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图计算以及基于颜色分割的深度图快速计算;对计算得到的深度图进行基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进;以及输出计算得到的深度图、改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图和平面图像。本发明可以改善深度图的质量,并且可以满足多种时间要求、质量要求的深度图求取,应用范围比较广泛。本发明还公开了一种深度图求取装置。

Description

一种深度图求取方法及装置
技术领域
本发明涉及计算机视觉技术领域,特别涉及一种深度图求取方法及装置。
背景技术
现有的各种视频媒介一般是以平面的形式存在的,但是上述视频媒介在获取的同时已经损失掉了具体场景的深度信息。
立体视频技术作为未来多媒体技术的发展方向,是一种能够提供立体感的新型视频技术。与单通道视频相比,立体视频一般有两个视频通道,数据量要远远大于单通道视频,所以对立体视频的高效压缩尤为重要。具体而言,立体视频不仅包含传统二维视频的关于场景的表面信息,而且还包含与场景具***置相关的三维立体信息。与传统的二维视频相比,立体视频是一种更有效、更真实的表达方式,克服了二维视频的片面性与被动性的缺点,能够更充分地满足人们的视觉感官需求,在交互式自由视点视频(FVV)、虚拟现实、3DTV、3D游戏、体育直播、广告传媒等很多领域有着广泛的应用前景。
在立体视觉技术中,深度图的提取作为获取具体场景的深度信息则尤为重要。现有的各种深度提取方法虽然很多,但是都存在计算复杂度高,计算耗时等特点。特别地,对于双目立体视觉中的深度图获取算法,分为全局和局部算法两种。上述算法的复杂度一般与图像或视频帧的像素数目的几何级数成正比,特别是全局算法涉及到了全局优化的迭代过程,复杂度更高。
特别的,现有的深度图提取方法对于在普通消费型电脑主机上的实时处理图像数据的实时性不高。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别提出了一种深度图求取方法及装置。
为达到上述目的,本发明第一方面的实施例提出了一种深度图求取方法,包括如下步骤:
输入平面图像,其中,所述平面图像包括单路视频、双路视频、单路图像序列或双路图像序列;
对所述平面图像进行预处理;
判断预处理后的平面图像是否需要进行图像颜色分割以及是否需要运行滑动平均算法,对所述平面图像选择性地进行基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图计算和基于颜色分割的深度图快速计算;
对计算得到的深度图进行基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进,其中,所述计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图;以及
输出所述计算得到的深度图以及改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图和所述平面图像。
根据本发明实施例的深度图求取方法,采用基于滑动平均方法的深度图实时求取算法可实现实时深度图提取,从而可以应用于各种实时性要求较高的立体视觉***中;采用基于图像颜色分割的深度快速求取算法,充分利用了图像颜色的分类信息,改进了基本的深度图求取方法,同时应用滑动平均方法实现了准实时的深度图求取;采用基于参考帧深度图的深度图改进算法,有效地检测出图像的遮挡区域和错误匹配,并且通过利用参考帧的深度信息,可明显改善遮挡区域的错误深度信息;通过基于双边滤波的深度图改进算法,既可以保持深度图边界信息,又可以滤除深度图中的噪声,进一步改善了深度图的质量,并且可以满足多种时间要求、质量要求的深度图求取,应用范围比较广泛。
本发明第二方面的实施例提出了一种深度图求取装置,包括平面图像输入模块,所述平面图像输入模块用于输入平面图像,其中,所述平面图像包括单路视频、双路视频、单路图像序列或双路图像序列;预处理模块,所述预处理模块用于对所述平面图像进行预处理;深度图计算模块,所述深度图计算模块用于判断所述预处理模块预处理后的平面图像是否需要进行图像颜色分割以及是否需要运行滑动平均算法,对所述平面图像选择性地进行基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图计算和基于颜色分割的深度图快速计算;深度图改进模块,所述深度图改进模块用于对所述深度图计算模块计算得到的深度图进行基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进,其中,所述计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图;以及输出模块,所述输出模块用于输出所述计算得到的深度图以及改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图和所述平面图像。
根据本发明实施例的深度图求取装置,采用基于滑动平均方法的深度图实时求取算法可实现实时深度图提取,从而可以应用于各种实时性要求较高的立体视觉***中;采用基于图像颜色分割的深度快速求取算法,充分利用了图像颜色的分类信息,改进了基本的深度图求取方法,同时应用滑动平均方法实现了准实时的深度图求取;采用基于参考帧深度图的深度图改进算法,有效地检测出图像的遮挡区域和错误匹配,并且通过利用参考帧的深度信息,可明显改善遮挡区域的错误深度信息;通过基于双边滤波的深度图改进算法,既可以保持深度图边界信息,又可以滤除深度图中的噪声,进一步改善了深度图的质量,并且可以满足多种时间要求、质量要求的深度图求取,应用范围比较广泛。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的深度图求取方法的流程框图;
图2为根据本发明实施例的输入平面图像的流程图;
图3为根据本发明实施例的对平面图像进行预处理的流程图;
图4为根据本发明实施例的深度图计算的流程图;
图5为根据本发明实施例的深度图改进的流程图;
图6为根据本发明实施例的深度图输出的流程示意图;
图7为根据本发明实施例的深度图求取装置的结构示意图;以及
图8为根据本发明实施例的深度图计算模块的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下面参考图1至图6描述根据本发明实施例的深度图求取方法。
如图1所示,根据本发明实施例的深度图求取方法,包括如下步骤:
S101:输入平面图像;
如图2所示,平面图像包括单路视频、双路视频、单路图像序列或双路图像序列。其中,平面图像可以来自双目立体采集与立体播放***、全自动2D视频转3D视频***、其他双路视频或图像序列输出接口或其他单路视频或图像序列输出接口。
对于双目立体采集与立体播放***,将拍摄端采集到的双路视频或双路图像帧作为输入的平面图像。对于全自动2D视频转3D视频***,直接将2D视频中的时间轴上的前后两帧作为输入的平面图像。
当输入的平面图像为单路视频或双路视频时,需要进行解码处理。基于不同的视频压缩格式有不同的视频解码方法。其中,对视频的解码包括从已知的视频中读取数据流再转换为合适的视频帧格式。如果解码输出的视频帧格式与后续的深度图求取接口不符,则需要进行视频帧格式的转换操作。
当输入的平面图像为双路视频或双路图像序列时,对于双路输入的同一时刻图像帧,将其中一路视频或图像序列的图像帧作为当前帧,将另一路视频或图像序列的图像帧作为参考帧,可以按照实际应用要求设置两路视频的顺序。具体而言,对于双目立体采集与立体播放***,将左(或右)路视频或图像序列的图像帧称为当前帧,将右(或左)路视频或图像序列的同时刻的图像帧称为参考帧。
当输入的平面图像为单路视频或单路图像序列时,例如对于全自动2D视频转3D视频***,输入为单路2D视频,则将单路视频在时间轴上的当前帧称为当前帧,时间轴上的后一帧称为默认参考帧。
S102:对平面图像进行预处理;
如图3所示,当输入的平面图像为单路视频或图像序列时,对单路视频或图像序列进行预处理包括如下步骤:
S1021:判断是否需要进行关键帧检测,如果需要则执行S1022;否则执行S103;
对于实时2D视频转3D视频,输入为2D视频中时间轴上的前后两图像帧,此时需要对后一帧做一个关键帧判断,以确认后一帧的图像与当前帧图像的相似性。如果后一帧图像与当前帧图像的相异性超过在某个特定度量下的阈值,则认为后一帧图像是关键帧,反之则认为后一帧图像不为关键帧。
S1022:关键帧检测;
首先,对前后两帧同时进行水平中线分割和垂直中线分割,从而使前后两帧分别被均分为四个小图像块。在本发明的一个实施例中,分割后的四个小图像块的长和宽的大小为原来图像帧长和宽大小的1/2。
其次,将前后两帧对应位置的四个小图像块分别进行图像块像素值相减,取差值的绝对值作为新像素值以得到新的图像块,对新的四个图像块求取像素均值和方差。
再次,对四个新图像块的像素均值和方差分别进行阈值判断。如果四个新图像块中均值和方差超过阈值的个数均大于预设值a,则判断后一帧相对当前帧为一新的关键帧。在本发明的一个实施例中,预设值a可以为3。
在本发明的一个实施例中,像素均值和方差阈值可以为[20,30]之内的任意值。
最后,如果后一帧相对当前帧为新的关键帧,则不能将后一帧作为当前帧的深度图计算的参考帧,此时可以选取当前帧的前一帧作为当前帧的深度图计算的参考帧。
当输入的平面图像为双路视频或双路图像序列时,对双路视频或双路图像序列进行预处理包括如下步骤:
S1023:判断是否需要进行外级线校正,如果需要则执行S1024,否则执行S103;
对于双目立体采集与立体播放***,对输入的双路视频或双路图像序列进行预处理,需要对两路视频帧或图像序列的外级进行校正。外级线校正可使得当前帧某像素点对应参考帧中同一高度的某一行像素,消除了垂直方向上的偏差。从而可以降低该像素点对应参考帧中同时刻图像帧中的对应像素点的搜索维度,减少计算量。
S1024:图像外级线校正。
将双路视频中的一路视频中的某一时刻图像帧中的任一个像素点与另一路视频中相同时刻图像帧中的某一像素点唯一对应,从而共同表示采集空间中的某一物体点。
但是如果一路视频中某一图像帧中某一个像素点的对应深度未知,那么该像素点在另一路视频中同时刻图像帧中的唯一对应像素点可能出现在后一图像帧中某一条直线的任意位置上。即后一个图像帧中的这条直线上的所有像素都可能与该像素点对应空间中同一个物体点。该直线即为该像素点对应外级线。一般情况下,外级线不是一条水平直线,而是一条斜线。通过外级线校正可使得该像素点对应另一图像帧中的对应外级线变换为水平方向,从而消除了垂直方向上的偏离,可以缩小该像素点对应另一路视频中同时刻图像帧中的唯一对应像素点的搜索维度,从而减少计算量。
当然本领域技术人员可以理解的是,对双路视频或图像序列的外级线校正还可以采用其他外级线校正方法。
从图3中可以看出,输入的平面图像也可以不经过预处理而直接作为深度图计算的输入。
S103:计算深度图;
如图4所示,在本发明的实施例中,深度图的计算通过窗口匹配算法找到当前帧任意一个像素点在参考帧中对应的像素点,然后通过两个相对应像素点的位置关系得到当前帧像素点的深度信息。
S1031:判断是否进行图像颜色分割,如果是则执行S1035;否则执行S1032;
对来自步骤S101的直接输入的平面图像或来自步骤S102的改进后的平面图像判断是否需要进行图像颜色分割。
S1032:判断是否运用滑动平均算法,如果是则执行S1034;否则执行S1033;
当判断平面图像不需要进行图像颜色分割时,进一步判断平面图像是否需要运用滑动平均算法。
S1033:计算基本深度图;
当判断平面图像不需要运用滑动平均算法时,计算平面图像的基本深度图,包括如下步骤:
第一步,设置窗口和搜索空间。
首先设置窗口的尺寸,设置窗口的窗口宽度为奇数N,在窗口宽度为N的窗口内包含有N*N个像素。将当前帧中的任意一个像素以及参考帧中搜索区间上的一个候选对应像素分别作为中心像素。其中,中心像素位于窗口的中心位置。窗口内包含的所有像素(包括中心像素本身)成为中心像素的支持像素。在本发明的一个实施例中,窗口宽度N可以为15。当然本领域技术人员可以理解的是,窗口宽度N亦可以为其它奇数宽度。
当将每一个图像的四个角的像素或者四个周边的行列像素作为中心像素建立预设尺寸的窗口时,将遇到该像素的周围没有像素的情况。此时,可以采用如下两种方式之一设置窗口。
1)将该像素周围不存在像素的像素值设置为0。
2)直接建立上述像素对应窗口的窗口尺寸设置为1×1像素(即将该像素本身作为一个窗口)。
当然本领域技术人员可以理解的是,当采用其他方法解决该像素的周围没有像素的情况下设置窗口的问题时,上述其他方法亦落入本发明的保护范围。
对于当前帧的任意一个像素点,设置搜索区间即设定该像素点在参考帧中的候选对应像素点的搜索范围。搜索区间表示当前帧中任意像素与参考帧中候选对应像素的相对位置关系。在本发明的一个实施例中,搜索区间可以根据实际出席的具体情况以灵活处理。
对经过图像外级线校正消除垂直偏差以后的当前帧和参考帧,搜索区间可以设置为[dmin,dmax]=[0,32],其中d为参考帧候选对应像素点与当前帧中任意待求深度像素的水平坐标之间的差值,dmin=0表示参考帧中候选对应像素的坐标与当前帧待求深度的像素坐标一致,两个像素分别处于参考帧与当前帧中的同一位置。
第二步,根据窗口对平面图像进行基于窗口的像素匹配计算;
基于窗口的像素匹配计算可以采用如下公式进行计算,
E d = Σ q ∈ N p , q ‾ d ∈ N p ‾ d e ( q , q ‾ d ) ,
其中,p表示当前帧中的任意一个像素点;
Figure BDA0000045983560000072
表示距离当前帧像素点p相对位置为d的参考帧中候选对应像素点;Np表示以像素点p为中心像素的窗口所包含的所有像素(包括像素点p本身);
Figure BDA0000045983560000073
表示以参考帧中候选像素点
Figure BDA0000045983560000074
为中心像素的窗口所包含的所有像素(包括像素点本身);p与对应的窗口宽度均为N;q表示当前帧中以p为中心像素的窗口中的任意一个像素点,
Figure BDA0000045983560000077
表示参考帧中以候选像素点
Figure BDA0000045983560000078
为中心像素的窗口中的任意一个像素点,
Figure BDA0000045983560000079
在窗口中的相对位置与q相同,
Figure BDA00000459835600000710
表示像素点q与
Figure BDA00000459835600000711
的像素值差的绝对值。
第三步,根据窗口匹配值和搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基本深度图。
首先获取当前帧中的各个像素点的像素视差。对于当前帧中的任意一个像素点p,在搜索区间[dmin,dmax]内选取其中一个d对应的参考帧中的候选像素点,计算这两个中心像素点所在窗口内的所有像素的差值绝对值并求和得到Ed,对区间[dmin,dmax]内的任一个d均对应一个Ed,最后选择所有Ed的最小值对应的视差值作为当前帧中当前像素点的视差值ds,同时与视差值ds对应的参考帧中的候选像素点作为像素点p的最终对应像素,其中,
Figure BDA0000045983560000082
采用上述方法可以得到当前帧的所有像素点的时差,根据得到的当前帧所有像素点的视差d(i,j)=ds,其中d(i,j)为对应像素点(i,j)的视差。根据得到的当前帧对应的深度图,
Z ( i , j ) = d ( i , j ) - d min ( d max - d min ) * 255
其中Z(i,j)即为对应像素点(i,j)的深度。
S1034:计算基本实时深度图;
当判断平面图像需要运用滑动平均算法时,计算平面图像的基本实时深度图,包括如下步骤:
对于搜索区间[dmin,dmax]中的每一个视差d,对于当前帧中的每一个像素点,都需要计算其所在窗口中每个像素与参考帧中候选像素点所在窗口中的对应像素的像素差值。
当输入为长与宽为W*H的当前帧和参考帧,窗口尺寸为N*N,搜索长度为L,其中对于当前帧中的每个像素点和搜索范围内的参考帧中的候选像素点,每计算一次,计算量为N*N次的减法,N*N-1次的加法,最终的计算量为W*H*L*(N*N)*(N*N-1)。该计算量与窗口宽度N的四次方成正比,由于N是可变的,当N增大时,则计算量将呈几何级数增加。
第一步,在行方向上的行滑动平均的初始化计算以及行滑动平均递归计算,并在列方向上的列滑动平均的初始化计算以及列滑动平均递归计算,得到所述当前帧的任一个像素点对应的实时窗口匹配值Q(i,j)
首先在行方向上行滑动平均的初始化计算。对当前帧中每一行的第一个像素(i,0)在窗口行宽范围[0,N]内对像素差值绝对值C(i,j)进行累加计算。其中,
Figure BDA0000045983560000084
j∈[0,N],A(i,0)=A(i,0)+C(i,j)
其中,
Figure BDA0000045983560000085
表示取任意一行i,A(i,0)表示任意一行i的第一个像素(i,0)在窗口行宽范围内的C(i,j)累加计算结果,C(i,j)表示窗口行宽范围内的支持像素(i,j)与参考帧中相应像素的像素差值绝对值,N表示窗口宽度。
然后对行滑动进行平均递归计算。具体而言,采用下式对任意行i进行行滑动平均递归计算:
A ( i , j ) = A ( i , j - 1 ) + C ( i , j + N 2 ) - C ( i , j - N 2 - 1 ) ,
其中,对于第i行的第j列的中心像素(i,j),其对应行方向上的滑动平均值A(i,j)由前一个像素的行滑动平均值A(i,j-1)加上当前窗口右端点
Figure BDA0000045983560000092
计算结果
Figure BDA0000045983560000093
的和,再减去前一个窗口的左端点
Figure BDA0000045983560000094
计算结果
Figure BDA0000045983560000095
递归计算得到。
再后,对列方向上列滑动平均的初始化计算。具体而言,对当前帧中的任意列j的第一个像素(0,j)采用下式在窗口列宽范围内对行滑动平均值进行累加计算:
Figure BDA0000045983560000096
i∈[0,N],Q(0,j)=Q(0,j)+A(i,j)
其中
Figure BDA0000045983560000097
表示任取一个j,Q(0,j)表示任意一列j第一个像素(0,j)在窗口列宽范围内对行滑动平均值的累积计算,A(i,j)表示当前帧中像素(i,j)的行滑动平均值,N表示窗口宽度。
最后进行列滑动的平均递归计算。具体而言,对于任意列j采用下式进行列方向列滑动平均递归计算:
Q ( i , j ) = Q ( i - 1 , j ) + A ( i + N 2 , j ) - A ( i - N 2 - 1 , j ) ,
其中Q(i,j)表示任意一列j的第i行像素(i,j)在窗口列宽范围内列滑动平均值的递归计算结果,由上一个像素的列滑动平均值Q(i-1,j)与当前窗口下端点
Figure BDA0000045983560000099
的行滑动平均值的和,再减去上一个窗口上端点
Figure BDA00000459835600000910
的行滑动平均值递归计算得到。
第二步,在当前帧中的任一个像素点(i,j)对应于特定搜索空间d中的各个相对位置对应有多个所述实时窗口匹配值Q(i,j),在对于搜索区间[dmin,dmax]内多个实时窗口匹配值Q(i,j)中选取最小值对应视差值作为当前帧中当前像素点(i,j)的视差值ds1,从而可以得到相应像素的深度值。
d s 1 = min d ∈ [ d min , d max ] { Q ( i , j ) | d } .
第三步,求取当前帧的各个像素点的实时像素视差,从而可以得到当前帧对应的基本实时深度图。
S1035:判断是否运用滑动平均算法,如果是则执行S1037;否则执行S1036;
由于在一般情况下,相同颜色的图像区域对应同一物体,深度值相同或相似;而不同颜色的图像区域对应不同物体,深度不一致。因此可以利用图像颜色分割得到的分类信息,在基于窗口计算深度图时,增大与窗口中心像素属于同一类的其他像素所占的权重,减小与窗口中心像素不属同一类的其他像素所占的权重。
S1036:计算基于图像分割的深度图。
第一步,建立图模型V(i,j),将输入当前帧的每个像素点(i)与其周围的8个像素点(j)连接为8条边。其中,每条边的两个端点为两个像素点(i,j),每条边的权值w(i,j)为对应的两个端点的像素差值的绝对值|value(i)-value(j)|,由此得到一系列的边edge(i,j)。
第二步,在初始情况下,将每个像素点(i)均为一类,并且设定此时类初始归并阈值为threshold(i)=c,然后对上述图模型中的每条边按照权值从小到大进行排序。
第三步,对排序后的边所对应的两个像素点(i,j)所在类进行两两归并操作,其中,归并包括如下步骤:
当一条边edge(i,j)的权重w(i,j)比该条边的两个端点(i,j)所在类的归并阈值threshold(i),threshold(j)都小时,则将该条边edge(i,j)的两个像素点所在的两类归并为一类,同时更新得到的新类的归并阈值为:
threshold ( i , j ) = w ( i , j ) + c num ( i , j ) ,
其中,num(i,j)表示像素点i和j原来所在类的像素个数相加。
第四步,对归并后得到的像素个数比较少的类进行强制归并操作,遍历所有的边edge(i,j),如果存在任意一条边上的两个像素点不在同一个类时,而且两像素点所在的类的像素数目均少于一个给定的值minSize,那么就对两像素点所在的两个类进行归并操作,最终得到每个像素归类后的颜色分割图。
第五步,根据窗口对颜色分割后的平面图像进行基于窗口的像素匹配计算;
基于颜色分割的像素匹配计算可以采用如下公式进行计算,
E d = Σ q ∈ NS p , q ‾ d ∈ NS p ‾ d e ( q , q ‾ d ) + λ × Σ q ∈ N S ‾ p , q ‾ d ∈ N S ‾ p ‾ d e ( q , q ‾ d ) ,
其中,NSp表示以像素点p为中心像素的窗口所包含的与像素点p属于同一颜色分割块的像素(包括像素点p本身);
Figure BDA0000045983560000112
表示以参考帧中候选像素点
Figure BDA0000045983560000113
为中心像素的窗口所包含的与像素
Figure BDA0000045983560000114
属于同一颜色分割块的像素(包括像素点
Figure BDA0000045983560000115
本身);表示以像素点p为中心像素的窗口所包含的与像素点p不属于同一颜色分割块的像素;
Figure BDA0000045983560000117
表示以参考帧中候选像素点
Figure BDA0000045983560000118
为中心像素的窗口所包含的与像素
Figure BDA0000045983560000119
不属于同一颜色分割块的像素;λ表示与中心像素不属于同一分割块的区域像素的累积计算权重。在本发明的一个实施例中,λ可以为0.01。
第六步,根据窗口匹配值和搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基本深度图。
d s = min d ∈ [ d min , d max ] { E d } .
S1037:计算基于图像分割的实时深度图;
第一步,基于图像分割的分割信息的行滑动的初始化计算。
对于当前帧的每一行,令所有分割块的行滑动平均初始为零,即TS=0,其中s为像素所属的分割块。然后对每一行进行基于分割信息的行滑动平均初始化计算,即在窗口行宽范围内对像素差值按照所在分割块,进行累加计算。
Figure BDA00000459835600001111
j∈[0,N],TS(i,j)=TS(i,j)+C(i,j)
上式中,TS(i,j)表示像素(i,j)所属分割块在行方向上的滑动平均值,由属于分割块S(i,j)的C(i,j)累加得到,C(i,j)表示当前帧中像素(i,j)与参考帧中相应像素的像素差值绝对值。通过上式计算,可以得到任意一行基于分割信息的行滑动平均的初始计算结果。
第二步,基于图像分割的分割信息的行滑动平均递归计算
采用下式对任意一行进行基于分割信息的行滑动平均递归计算:
T S ( i , j + N 2 ) = T S ( i , j + N 2 ) + C S ( i , j + N 2 )
T S ( i , j - N 2 - 1 ) = T S ( i , j - N 2 - 1 ) - C S ( i , j - N 2 - 1 ) ,
在上式中,对于第i行第j列的中心像素(i,j),其对应窗口的右端点的计算结果为
Figure BDA0000045983560000121
其对应的前一个窗口的左端点的计算结果为
Figure BDA0000045983560000122
分别按照其所在的分割块 进行加法和减法计算,更新分割块TS的行滑动平均递归计算结果。最终对于每个中心像素(i,j),得到基于分割信息的行滑动平均计算结果为
A ( i , j ) r = T S ( i , j ) .
第三步,基于图像分割的分割信息的列滑动平均的初始化计算
对于当前帧的每一列,令所有分割块的列滑动平均初始为零,即GS=0,其中s为像素所属的分割块,G为列滑动平均计算结果。然后对每一列进行基于分割信息的列滑动平均初始化计算,即在窗口列宽范围内对基于分割信息的行滑动平均计算结果按照所在分割块,进行累加计算。
Figure BDA0000045983560000126
i∈[0,N], G S ( i , j ) = G S ( i , j ) + A ( i , j ) r
在上式中,GS(i,j)表示像素(i,j)所属分割块列方向上的窗口滑动平均,
Figure BDA0000045983560000128
表示当前帧中像素(i,j)在行方向上的基于分割信息的行滑动平均计算结果。通过上式计算,可以得到对于任意一列列方向基于分割信息的列滑动平均的初始计算结果。
第四步,基于图像分割的分割信息的列滑动平均递归计算。
对任意一列采用下式进行基于分割信息的列滑动平均递归计算:
G S ( i + N 2 , j ) = G S ( i + N 2 , j ) + A S ( i + N 2 , j ) r
G S ( i - N 2 - 1 , j ) = G S ( i - N 2 - 1 , j ) - A S ( i - N 2 - 1 , j ) r ,
在上式中,对于第j列第i行的中心像素(i,j),其对应窗口下端点的行滑动平均计算结果为
Figure BDA00000459835600001211
其对应列方向上一个窗口的上端点的行滑动平均计算结果为
Figure BDA00000459835600001212
分别按照其所在的分割块
Figure BDA00000459835600001213
进行加法和减法计算,递归更新分割块GS的列滑动平均结果。最终得到任意像素(i,j)基于分割信息的窗口累积计算结果为GS(i,j)
第五步,基于图像分割的分割信息求取视差与深度图。
通过已得到任意像素(i,j)的基本窗口累积计算结果Q(i,j)和基于颜色分割信息的窗口累积计算结果GS(i,j),利用上述结果采用下述改进基本深度图实时求取算法:
M(i,j)|d=λ(Q(i,j)|d-GS(i,j)|d)+GS(i,j)|d
在上式中|d表示对于搜索范围内特定的d,M(i,j)表示最终的窗口累积计算结果,Q(i,j)-GS(i,j)表示窗口累积计算时与中心像素(i,j)不属于同一分割块的累积计算部分,GS(i,j)表示与中心像素(i,j)属于同一分割块的累积计算部分,λ表示与中心像素不属于同一分割块的区域像素的累积计算权重。在本发明的一个实施例中,λ可以为0.01。最终取M(i,j)的最小值对应的视差值为当前帧像素的视差ds2
d s 2 = min d ∈ [ d min , d max ] { M ( i , j ) | d } .
在本发明的一个实施例中,基于四种不同特征的算法对当前帧的深度图的计算,即基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图计算和基于颜色分割的深度图快速计算,四种算法是相互独立的。每一个算法都可以作为独立的深度图计算。当然本领域技术人员可以理解的是,上述四种算法的独立或综合使用均属于本发明的保护范围。
本发明实施例的基本深度图的实时计算对基本深度图的计算在计算复杂度上进行了改进,达到了实时性要求。本发明实施例的基于颜色分割的深度图计算进一步对基本深度图的计算在计算准确性上进行了改进,本发明实施例的基于颜色分割的深度图快速计算在计算准确性和实时性上均进行了改进,得到了质量更高的深度图。
S104:改进深度图;
由于利用上述基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图的计算和基于颜色分割的深度图的快速计算对当前帧的深度图进行提取,存在像素匹配错误,或者当前帧的某些像素在参考帧中不存在对应的匹配像素点,因此需要对步骤S103中计算得到的深度图进行改进。
如图5所示,对步骤S103中计算得到的深度图进行基于参考帧的深度图的改进和基于当前帧颜色分布与空间位置的改进。其中,计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图。
S1041:判断是否需要进行基于参考帧深度图的改进;如果是则执行S1042;否则执行S1044;
S1042:计算参考帧深度图;
当判断需要进行基于参考帧深度图的改进时,对计算得到的深度图进行求取、查找、检查和改进。具体而言,包括如下步骤:
第一步,根据计算得到的深度图求取参考帧的深度图。只需在深度图计算接口处将之前的参考帧作为现在的当前帧,将之前的当前帧作为现在的参考帧,即可计算出之前参考帧对应的深度图。
第二步,由当前帧中的某个像素PC(i,j)的深度ZC(i,j)可以找到参考帧中对应的像素点PR(i,j),则该像素点在参考帧深度图中的对应深度为ZR(i,j)。
S1043:基于参考帧深度图的改进;
第一步,检查深度图。如果ZC(i,j)与ZR(i,j)两个深度值的差值小于或等于预定阈值t,则表示两个像素点PC(i,j)与PR(i,j)对应同一个物体点,则可以判断深度计算准确;如果ZC(i,j)与ZR(i,j)两深度值的差值大于预定阈值t时,则表示两像素点不对应,可认定当前帧在像素PC(i,j)处的深度计算错误。
预定阈值t可以根据具体情况及需要而设定。在本发明的一个实施例中,预定阈值t可以为1。
第二步,深度图改进。如果出现深度计算错误,则可以取ZC(i,j)与ZR(i,j)两者之间的较小者为当前帧像素点PC(i,j)的深度,从而达到改进深度图质量的目的。
S1044:判断是否进行基于当前帧颜色分布与空间位置的改进;如果是则执行S1045;否则执行S105;
S1045:基于参考帧深度图的改进。
基于当前帧颜色分布与空间位置的改进指初始深度值可以由其对应当前帧的像素值所在窗口区域内的颜色分布和空间位置来进行双边滤波改善。
对于初始深度图中的任一个表示深度的像素Z(p),其在当前帧中对应像素为p,当前帧中以像素p为中心像素,窗口宽度为N的窗口内的所有像素为q。计算窗口内所有像素q与中心像素p的像素差值高斯权重因子w1(Vp,Vq)、像素空间距离高斯权重因子w2(Sp,Sq),并将两个权重因子与像素q的深度值Z(q)相乘,得到带权重因子的深度值Z(q)。像素差值高斯权重因子w1(Vp,Vq)、像素空间距离高斯权重因子w2(Sp,Sq)分别为:
w 1 ( V p , V q ) = e - ( V p - V q ) 2 2 σ 1 2
w 2 ( S p , S q ) = e - ( p ( x ) - q ( x ) ) 2 2 σ 2 2 * e - ( p ( y ) - q ( y ) ) 2 2 σ 2 2 ,
其中,
Figure BDA0000045983560000153
为高斯滤波函数,V表示像素值,p(x),p(y),q(x),q(y)分别表示像素p、q的横纵坐标。σ1,σ2表示高斯滤波方差。其中,σ1,σ2可以根据具体情况及需要而设置。在本发明的一个实施例中,σ1=15,σ2=5。
对带权重因子的深度值Z(q)进行累加,并对权重进行归一化处理,得到的深度即为改进后像素p的深度
Figure BDA0000045983560000154
Z ‾ ( p ) = Σ q ∈ N p w 1 ( V p , V q ) w 2 ( S p , S q ) Z ( q ) Σ q ∈ N p w 1 ( V p , V q ) w 2 ( S p , S q ) .
从上式可知,p为当前帧的一个像素点,q为以当前像素点p为中心,窗口宽度为N的窗口中的任意像素点,Np表示窗口大小。在本发明的一个实施例中,窗口宽度N为7,则窗口大小为7*7。Z(q)为当前帧中像素q的深度值,
Figure BDA0000045983560000156
为当前帧中像素p改进后的深度值,w1(Vp,Vq)为像素p与像素q的像素差值的高斯权重因子,w2(Sp,Sq)为像素p与像素q的像素空间距离的高斯权重因子。
采用上述深度图改进方法改进后的深度图不但可以滤除掉深度计算时的噪声或错误匹配,并且保持当前帧初始深度的边界信息。
本发明实施例提供的基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进可以单独使用或同时使用。
S105:输出深度图。
如图6所示,将由步骤S103输出的计算得到的深度图和步骤S104输出的改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图及原始输入的平面图像进行输出。
根据本发明实施例的深度图求取方法,采用基于滑动平均方法的深度图实时求取算法可实现实时深度图提取,从而可以应用于各种实时性要求较高的立体视觉***中;采用基于图像颜色分割的深度快速求取算法,充分利用了图像颜色的分类信息,改进了基本的深度图求取方法,同时应用滑动平均方法实现了准实时的深度图求取;采用基于参考帧深度图的深度图改进算法,有效地检测出图像的遮挡区域和错误匹配,并且通过利用参考帧的深度信息,可明显改善遮挡区域的错误深度信息;通过基于双边滤波的深度图改进算法,既可以保持深度图边界信息,又可以滤除深度图中的噪声,进一步改善了深度图的质量,并且可以满足多种时间要求、质量要求的深度图求取,应用范围比较广泛。
如图7所示,本发明实施例提供了一种深度图求取装置700,包括平面图像输入模块710,其中,平面图像输入模块710用于输入平面图像,其中,平面图像包括单路视频、双路视频、单路图像序列或双路图像序列;预处理模块720,其中预处理模块720用于对平面图像进行预处理;深度图计算模块730,其中所述深度图计算模块730深度图计算模块用于判断所述预处理模块预处理后的平面图像是否需要进行图像颜色分割以及是否需要运行滑动平均算法,对所述平面图像选择性地进行基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图快速计算或基于颜色分割的深度图计算;深度图改进模块740,其中所述深度图改进模块740用于对所述深度图计算模块计算得到的深度图进行基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进,其中,所述计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图;和输出模块750,其中所述输出模块750用于输出所述计算得到的深度图以及改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图和所述平面图像。
在本发明的一个实施例中,平面图像可以来自双目立体采集与立体播放***、全自动2D视频转3D视频***、其他双路视频或图像序列输出接口或其他单路视频或图像序列输出接口。对于双目立体采集与立体播放***,将拍摄端采集到的双路视频或双路图像帧作为输入的平面图像。对于全自动2D视频转3D视频***,直接将2D视频中的时间轴上的前后两帧作为输入的平面图像。
当平面图像输入模块710输入的平面图像为单路视频或双路视频时,需要进行解码处理。基于不同的视频压缩格式有不同的视频解码方法。其中,对视频的解码包括从已知的视频中读取数据流再转换为合适的视频帧格式。如果解码输出的视频帧格式与后续的深度图求取接口不符,则需要进行视频帧格式的转换操作。
当平面图像输入模块710输入的平面图像为双路视频或双路图像序列时,对于双路输入的同一时刻图像帧,将其中一路视频或图像序列的图像帧作为当前帧,将另一路视频或图像序列的图像帧作为参考帧,可以按照实际应用要求设置两路视频的顺序。具体而言,对于双目立体采集与立体播放***,将左(或右)路视频或图像序列的图像帧称为当前帧,将右(或左)路视频或图像序列的同时刻的图像帧称为参考帧。
当平面图像输入模块710输入的平面图像为单路视频或单路图像序列时,例如对于全自动2D视频转3D视频***,输入为单路2D视频,则将单路视频在时间轴上的当前帧称为当前帧,时间轴上的后一帧称为默认参考帧。
当平面图像输入模块710输入的平面图像为单路视频或图像序列时,预处理模块720判断是否需要进行关键帧检测。对于实时2D视频转3D视频,输入为2D视频中时间轴上的前后两图像帧,此时需要对后一帧做一个关键帧判断,以确认后一帧的图像与当前帧图像的相似性。如果后一帧图像与当前帧图像的相异性超过在某个特定度量下的阈值,则认为后一帧图像是关键帧,反之则认为后一帧图像不为关键帧。
当判断需要进行关键帧检测时,首先预处理模块720对前后两帧同时进行水平中线分割和垂直中线分割,从而使前后两帧分别被均分为四个小图像块。在本发明的一个实施例中,分割后的四个小图像块的长和宽的大小为原来图像帧长和宽大小的1/2。其次,预处理模块720将前后两帧对应位置的四个小图像块分别进行图像块像素值相减,取差值的绝对值作为新像素值以得到新的图像块,对新的四个图像块求取像素均值和方差。再次,预处理模块720对四个新图像块的像素均值和方差分别进行阈值判断。如果四个新图像块中均值和方差超过阈值的个数均大于预设值a,则判断后一帧相对当前帧为一新的关键帧。在本发明的一个实施例中,预设值a可以为3。在本发明的一个实施例中,像素均值和方差阈值可以为[20,30]之内的任意值。最后,如果后一帧相对当前帧为新的关键帧,则不能将后一帧作为当前帧的深度图计算的参考帧,此时预处理模块720可以选取当前帧的前一帧作为当前帧的深度图计算的参考帧。
当平面图像输入模块710输入的平面图像为双路视频或双路图像序列时,预处理模块720判断是否需要进行外级线校正。对于双目立体采集与立体播放***,对输入的双路视频或双路图像序列进行预处理,需要对两路视频帧或图像序列的外级进行校正。外级线校正可使得当前帧某像素点对应参考帧中同一高度的某一行像素,消除了垂直方向上的偏差。从而可以降低该像素点对应参考帧中同时刻图像帧中的对应像素点的搜索维度,减少计算量。
当判断需要进行外级线校正时,预处理模块720将双路视频中的一路视频中的某一时刻图像帧中的任一个像素点与另一路视频中相同时刻图像帧中的某一像素点唯一对应,从而共同表示采集空间中的某一物体点。但是如果一路视频中某一图像帧中某一个像素点的对应深度未知,那么该像素点在另一路视频中同时刻图像帧中的唯一对应像素点可能出现在后一图像帧中某一条直线的任意位置上。即后一个图像帧中的这条直线上的所有像素都可能与该像素点对应空间中同一个物体点。该直线即为该像素点对应外级线。一般情况下,外级线不是一条水平直线,而是一条斜线。通过外级线校正可使得该像素点对应另一图像帧中的对应外级线变换为水平方向,从而消除了垂直方向上的偏离,可以缩小该像素点对应另一路视频中同时刻图像帧中的唯一对应像素点的搜索维度,从而减少计算量。当然本领域技术人员可以理解的是,对双路视频或图像序列的外级线校正还可以采用其他外级线校正方法。
在本发明的一个实施例中,平面图像输入模块710输入的平面图像也可以不经过预处理模块720的预处理而直接作为深度图计算模块730的输入。
如图8所示,深度图计算模块730包括判断单元731、基本深度图实时计算单元732、基本深度图计算单元733、基于颜色分割的深度图计算单元734和基于颜色分割的深度图快速计算单元735。
首先,判断单元731对来自平面图像输入模块710或预处理模块720的平面图像判断是否需要进行图像颜色分割。当判断平面图像不需要进行图像颜色分割时,进一步判断平面图像是否需要运用滑动平均算法。
当判断单元731判断平面图像不需要运用滑动平均算法时,基本深度图计算单元733计算平面图像的基本深度图。
首先基本深度图计算单元733设置窗口的尺寸,设置窗口的窗口宽度为奇数N,在窗口宽度为N的窗口内包含有N*N个像素。将当前帧中的任意一个像素以及参考帧中搜索区间上的一个候选对应像素分别作为中心像素。其中,中心像素位于窗口的中心位置。窗口内包含的所有像素(包括中心像素本身)成为中心像素的支持像素。在本发明的一个实施例中,窗口宽度N可以为15。当然本领域技术人员可以理解的是,窗口宽度N亦可以为其它奇数宽度。
基本深度图计算单元733当将每一个图像的四个角的像素或者四个周边的行列像素作为中心像素建立预设尺寸的窗口时,将遇到该像素的周围没有像素的情况。此时,可以采用如下两种方式之一设置窗口。
1)将该像素周围不存在像素的像素值设置为0。
2)直接建立上述像素对应窗口的窗口尺寸设置为1×1像素(即将该像素本身作为一个窗口)。
当然本领域技术人员可以理解的是,当采用其他方法解决该像素的周围没有像素的情况下设置窗口的问题时,上述其他方法亦落入本发明的保护范围。
对于当前帧的任意一个像素点,基本深度图计算单元733设置搜索区间即设定该像素点在参考帧中的候选对应像素点的搜索范围。搜索区间表示当前帧中任意像素与参考帧中候选对应像素的相对位置关系。在本发明的一个实施例中,搜索区间可以根据实际出席的具体情况以灵活处理。
基本深度图计算单元733对经过图像外级线校正消除垂直偏差以后的当前帧和参考帧,搜索区间可以设置为[dmin,dmax]=[0,32],其中d为参考帧候选对应像素点与当前帧中任意待求深度像素的水平坐标之间的差值,dmin=0表示参考帧中候选对应像素的坐标与当前帧待求深度的像素坐标一致,两个像素分别处于参考帧与当前帧中的同一位置。
基本深度图计算单元733基于窗口的像素匹配计算可以采用如下公式进行计算,
E d = Σ q ∈ N p , q ‾ d ∈ N p ‾ d e ( q , q ‾ d ) ,
其中,p表示当前帧中的任意一个像素点;
Figure BDA0000045983560000192
表示距离当前帧像素点p相对位置为d的参考帧中候选对应像素点;Np表示以像素点p为中心像素的窗口所包含的所有像素(包括像素点p本身);表示以参考帧中候选像素点
Figure BDA0000045983560000194
为中心像素的窗口所包含的所有像素(包括像素点本身);p与
Figure BDA0000045983560000196
对应的窗口宽度均为N;q表示当前帧中以p为中心像素的窗口中的任意一个像素点,
Figure BDA0000045983560000197
表示参考帧中以候选像素点
Figure BDA0000045983560000198
为中心像素的窗口中的任意一个像素点,
Figure BDA0000045983560000199
在窗口中的相对位置与q相同,
Figure BDA00000459835600001910
表示像素点q与
Figure BDA00000459835600001911
的像素值差的绝对值。
基本深度图计算单元733首先获取当前帧中的各个像素点的像素视差。对于当前帧中的任意一个像素点p,在搜索区间[dmin,dmax]内选取其中一个d对应的参考帧中的候选像素点,计算这两个中心像素点所在窗口内的所有像素的差值绝对值并求和得到Ed,对区间[dmin,dmax]内的任一个d均对应一个Ed,最后选择所有Ed的最小值对应的视差值作为当前帧中当前像素点的视差值ds,同时与视差值ds对应的参考帧中的候选像素点
Figure BDA0000045983560000201
作为像素点p的最终对应像素,其中,
Figure BDA0000045983560000202
采用上述方法可以得到当前帧的所有像素点的时差,根据得到的当前帧所有像素点的视差d(i,j)=ds,其中d(i,j)为对应像素点(i,j)的视差。根据得到的当前帧对应的深度图,
Z ( i , j ) = d ( i , j ) - d min ( d max - d min ) * 255
其中Z(i,j)即为对应像素点(i,j)的深度。
当判断单元731判断平面图像需要运用滑动平均算法时,基本深度图实时计算单元732计算平面图像的基本实时深度图。对于搜索区间[dmin,dmax]中的每一个视差d,对于当前帧中的每一个像素点,都需要计算其所在窗口中每个像素与参考帧中候选像素点所在窗口中的对应像素的像素差值。
当输入为长与宽为W*H的当前帧和参考帧,窗口尺寸为N*N,搜索长度为L,其中对于当前帧中的每个像素点和搜索范围内的参考帧中的候选像素点,每计算一次,计算量为N*N次的减法,N*N-1次的加法,最终的计算量为W*H*L*(N*N)*(N*N-1)。该计算量与窗口宽度N的四次方成正比,由于N是可变的,当N增大时,则计算量将呈几何级数增加。
基本深度图实时计算单元732在行方向上的行滑动平均的初始化计算以及行滑动平均递归计算,并在列方向上的列滑动平均的初始化计算以及列滑动平均递归计算,得到所述当前帧的任一个像素点对应的实时窗口匹配值Q(i,j)
首先在行方向上行滑动平均的初始化计算。对当前帧中每一行的第一个像素(i,0)在窗口行宽范围[0,N]内对像素差值绝对值C(i,j)进行累加计算。其中,
Figure BDA0000045983560000204
j∈[0,N],A(i,0)=A(i,0)+C(i,j)
其中,表示取任意一行i,A(i,0)表示任意一行i的第一个像素(i,0)在窗口行宽范围内的C(i,j)累加计算结果,C(i,j)表示窗口行宽范围内的支持像素(i,j)与参考帧中相应像素的像素差值绝对值,N表示窗口宽度。
基本深度图实时计算单元732然后对行滑动进行平均递归计算。具体而言,采用下式对任意行i进行行滑动平均递归计算:
A ( i , j ) = A ( i , j - 1 ) + C ( i , j + N 2 ) - C ( i , j - N 2 - 1 ) ,
其中,对于第i行的第j列的中心像素(i,j),其对应行方向上的滑动平均值A(i,j)由前一个像素的行滑动平均值A(i,j-1)加上当前窗口右端点
Figure BDA0000045983560000212
计算结果
Figure BDA0000045983560000213
的和,再减去前一个窗口的左端点
Figure BDA0000045983560000214
计算结果
Figure BDA0000045983560000215
递归计算得到。
再后,基本深度图实时计算单元732对列方向上列滑动平均的初始化计算。具体而言,对当前帧中的任意列j的第一个像素(0,j)采用下式在窗口列宽范围内对行滑动平均值进行累加计算:
Figure BDA0000045983560000216
i∈[0,N],Q(0,j)=Q(0,j)+A(i,j)
其中表示任取一个j,Q(0,j)表示任意一列j第一个像素(0,j)在窗口列宽范围内对行滑动平均值的累积计算,A(i,j)表示当前帧中像素(i,j)的行滑动平均值,N表示窗口宽度。
最后基本深度图实时计算单元732进行列滑动的平均递归计算。具体而言,对于任意列j采用下式进行列方向列滑动平均递归计算:
Q ( i , j ) = Q ( i - 1 , j ) + A ( i + N 2 , j ) - A ( i - N 2 - 1 , j ) ,
其中Q(i,j)表示任意一列j的第i行像素(i,j)在窗口列宽范围内列滑动平均值的递归计算结果,由上一个像素的列滑动平均值Q(i-1,j)与当前窗口下端点
Figure BDA0000045983560000219
的行滑动平均值的和,再减去上一个窗口上端点
Figure BDA00000459835600002110
的行滑动平均值递归计算得到。
基本深度图实时计算单元732在当前帧中的任一个像素点(i,j)对应于特定搜索空间d中的各个相对位置对应有多个所述实时窗口匹配值Q(i,j),在对于搜索区间[dmin,dmax]内多个实时窗口匹配值Q(i,j)中选取最小值对应视差值作为当前帧中当前像素点(i,j)的视差值ds1,从而可以得到相应像素的深度值。
d s 1 = min d ∈ [ d min , d max ] { Q ( i , j ) | d } .
基本深度图实时计算单元732求取当前帧的各个像素点的实时像素视差,从而可以得到当前帧对应的基本实时深度图。
由于在一般情况下,相同颜色的图像区域对应同一物体,深度值相同或相似;而不同颜色的图像区域对应不同物体,深度不一致。因此可以利用图像颜色分割得到的分类信息,在基于窗口计算深度图时,增大与窗口中心像素属于同一类的其他像素所占的权重,减小与窗口中心像素不属同一类的其他像素所占的权重。
基于颜色分割的深度图计算单元734计算基于图像分割的深度图。
首先,基于颜色分割的深度图计算单元734建立图模型V(i,j),将输入当前帧的每个像素点(i)与其周围的8个像素点(j)连接为8条边。其中,每条边的两个端点为两个像素点(i,j),每条边的权值w(i,j)为对应的两个端点的像素差值的绝对值|value(i)-value(i)|,由此得到一系列的边edge(i,j)。
在初始情况下,基于颜色分割的深度图计算单元734将每个像素点(i)均为一类,并且设定此时类初始归并阈值为threshold(i)=c,然后对上述图模型中的每条边按照权值从小到大进行排序。
其次,基于颜色分割的深度图计算单元734对排序后的边所对应的两个像素点(i,j)所在类进行两两归并操作,其中,归并包括如下步骤:
当一条边edge(i,j)的权重w(i,j)比该条边的两个端点(i,j)所在类的归并阈值threshold(i),threshold(j)都小时,则将该条边edge(i,j)的两个像素点所在的两类归并为一类,同时更新得到的新类的归并阈值为:
threshold ( i , j ) = w ( i , j ) + c num ( i , j ) ,
其中,num(i,j)表示像素点i和j原来所在类的像素个数相加。
再次,基于颜色分割的深度图计算单元734对归并后得到的像素个数比较少的类进行强制归并操作,遍历所有的边edge(i,j),如果存在任意一条边上的两个像素点不在同一个类时,而且两像素点所在的类的像素数目均少于一个给定的值minSize,那么就对两像素点所在的两个类进行归并操作,最终得到每个像素归类后的颜色分割图。
然后,基于颜色分割的深度图计算单元734根据窗口对颜色分割后的平面图像进行基于窗口的像素匹配计算;
基于颜色分割的像素匹配计算可以采用如下公式进行计算,
E d = Σ q ∈ NS p , q ‾ d ∈ NS p ‾ d e ( q , q ‾ d ) + λ × Σ q ∈ N S ‾ p , q ‾ d ∈ N S ‾ p ‾ d e ( q , q ‾ d ) ,
其中,NSp表示以像素点p为中心像素的窗口所包含的与像素点p属于同一颜色分割块的像素(包括像素点p本身);
Figure BDA0000045983560000232
表示以参考帧中候选像素点
Figure BDA0000045983560000233
为中心像素的窗口所包含的与像素
Figure BDA0000045983560000234
属于同一颜色分割块的像素(包括像素点
Figure BDA0000045983560000235
本身);
Figure BDA0000045983560000236
表示以像素点p为中心像素的窗口所包含的与像素点p不属于同一颜色分割块的像素;
Figure BDA0000045983560000237
表示以参考帧中候选像素点
Figure BDA0000045983560000238
为中心像素的窗口所包含的与像素不属于同一颜色分割块的像素;λ表示与中心像素不属于同一分割块的区域像素的累积计算权重。在本发明的一个实施例中,λ可以为0.01。
最后,根据窗口匹配值和搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基本深度图。
d s = min d ∈ [ d min , d max ] { E d } .
基于颜色分割的深度图快速计算单元735计算基于图像分割的实时深度图。对于当前帧的每一行,基于颜色分割的深度图快速计算单元735令所有分割块的行滑动平均初始为零,即TS=0,其中s为像素所属的分割块。然后对每一行进行基于分割信息的行滑动平均初始化计算,即在窗口行宽范围内对像素差值按照所在分割块,进行累加计算。
Figure BDA00000459835600002311
j∈[0,N],TS(i,j)=TS(i,j)+C(i,j)
上式中,TS(i,j)表示像素(i,j)所属分割块在行方向上的滑动平均值,由属于分割块S(i,j)的C(i,j)累加得到,C(i,j)表示当前帧中像素(i,j)与参考帧中相应像素的像素差值绝对值。通过上式计算,可以得到任意一行基于分割信息的行滑动平均的初始计算结果。
基于颜色分割的深度图快速计算单元735基于图像分割的分割信息的行滑动平均递归计算。采用下式对任意一行进行基于分割信息的行滑动平均递归计算:
T S ( i , j + N 2 ) = T S ( i , j + N 2 ) + C S ( i , j + N 2 )
T S ( i , j - N 2 - 1 ) = T S ( i , j - N 2 - 1 ) - C S ( i , j - N 2 - 1 ) ,
在上式中,对于第i行第j列的中心像素(i,j),其对应窗口的右端点的计算结果为
Figure BDA0000045983560000243
其对应的前一个窗口的左端点的计算结果为
Figure BDA0000045983560000244
分别按照其所在的分割块
Figure BDA0000045983560000245
进行加法和减法计算,更新分割块TS的行滑动平均递归计算结果。最终对于每个中心像素(i,j),得到基于分割信息的行滑动平均计算结果为
A ( i , j ) r = T S ( i , j ) .
基于颜色分割的深度图快速计算单元735基于图像分割的分割信息的列滑动平均的初始化计算。对于当前帧的每一列,令所有分割块的列滑动平均初始为零,即GS=0,其中s为像素所属的分割块,G为列滑动平均计算结果。然后对每一列进行基于分割信息的列滑动平均初始化计算,即在窗口列宽范围内对基于分割信息的行滑动平均计算结果按照所在分割块,进行累加计算。
Figure BDA0000045983560000247
i∈[0,N], G S ( i , j ) = G S ( i , j ) + A ( i , j ) r
在上式中,GS(i,j)表示像素(i,j)所属分割块列方向上的窗口滑动平均,表示当前帧中像素(i,j)在行方向上的基于分割信息的行滑动平均计算结果。通过上式计算,可以得到对于任意一列列方向基于分割信息的列滑动平均的初始计算结果。
基于颜色分割的深度图快速计算单元735基于图像分割的分割信息的列滑动平均递归计算。对任意一列采用下式进行基于分割信息的列滑动平均递归计算:
G S ( i + N 2 , j ) = G S ( i + N 2 , j ) + A S ( i + N 2 , j ) r
G S ( i - N 2 - 1 , j ) = G S ( i - N 2 - 1 , j ) - A S ( i - N 2 - 1 , j ) r ,
在上式中,对于第j列第i行的中心像素(i,j),其对应窗口下端点的行滑动平均计算结果为
Figure BDA00000459835600002412
其对应列方向上一个窗口的上端点的行滑动平均计算结果为
Figure BDA00000459835600002413
分别按照其所在的分割块
Figure BDA00000459835600002414
进行加法和减法计算,递归更新分割块GS的列滑动平均结果。最终得到任意像素(i,j)基于分割信息的窗口累积计算结果为GS(i,j)
基于颜色分割的深度图快速计算单元735基于图像分割的分割信息求取视差与深度图。通过已得到任意像素(i,j)的基本窗口累积计算结果Q(i,j)和基于颜色分割信息的窗口累积计算结果GS(i,j),利用上述结果采用下述改进基本深度图实时求取算法:
M(i,j)|d=λ(Q(i,j)|d-GS(i,j)|d)+GS(i,j)|d
在上式中|d表示对于搜索范围内特定的d,M(i,j)表示最终的窗口累积计算结果,Q(i,j)-GS(i,j)表示窗口累积计算时与中心像素(i,j)不属于同一分割块的累积计算部分,GS(i,j)表示与中心像素(i,j)属于同一分割块的累积计算部分,λ表示与中心像素不属于同一分割块的区域像素的累积计算权重。在本发明的一个实施例中,λ可以为0.01。最终取M(i,j)的最小值对应的视差值为当前帧像素的视差ds2
d s 2 = min d ∈ [ d min , d max ] { M ( i , j ) | d } .
在本发明的一个实施例中,基于四种不同特征的算法对当前帧的深度图的计算,即基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图的计算和基于颜色分割的深度图的快速计算,四种算法是相互独立的,即基本深度图实时计算单元732、基本深度图计算单元733、基于颜色分割的深度图计算单元734和基于颜色分割的深度图快速计算单元735可以独立运行计算深度图。当然本领域技术人员可以理解的是,基本深度图实时计算单元732、基本深度图计算单元733、基于颜色分割的深度图计算单元734和基于颜色分割的深度图快速计算单元735可以独立运行计算深度图的独立或综合使用均属于本发明的保护范围。
本发明实施例的基本深度图实时计算单元732对基本深度图计算单元733在计算复杂度上进行了改进,达到了实时性要求。本发明实施例的基于颜色分割的深度图计算单元734进一步对基本深度图实时计算单元732在计算准确性上进行了改进,基于颜色分割的深度图快速计算单元735又进一步对基本深度图实时计算单元734在计算速度上进行了改进得到了实时运算、质量更高的深度图。
深度图改进模块740对深度图计算模块730计算得到的深度图进行基于参考帧的深度图的改进和基于当前帧颜色分布与空间位置的改进。其中,深度图计算模块730计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图。
深度图改进模块740判断是否需要进行基于参考帧深度图的改进。当判断需要进行基于参考帧深度图的改进时,对计算得到的深度图进行求取、查找、检查和改进。首先,深度图改进模块740根据计算得到的深度图求取参考帧的深度图。只需在深度图计算接口处将之前的参考帧作为现在的当前帧,将之前的当前帧作为现在的参考帧,即可计算出之前参考帧对应的深度图。然后,由当前帧中的某个像素PC(i,j)的深度ZC(i,j)可以找到参考帧中对应的像素点PR(i,j),则该像素点在参考帧深度图中的对应深度为ZR(i,j)。
深度图改进模块740进行基于参考帧深度图的改进。首先,检查深度图。如果ZC(i,j)与ZR(i,j)两个深度值的差值小于或等于预定阈值t,则表示两个像素点PC(i,j)与PR(i,j)对应同一个物体点,则可以判断深度计算准确;如果ZC(i,j)与ZR(i,j)两深度值的差值大于预定阈值t时,则表示两像素点不对应,可认定当前帧在像素PC(i,j)处的深度计算错误。预定阈值t可以根据具体情况及需要而设定。在本发明的一个实施例中,预定阈值t可以为1。如果出现深度计算错误,则可以取ZC(i,j)与ZR(i,j)两者之间的较小者为当前帧像素点PC(i,j)的深度,从而达到改进深度图质量的目的。
深度图改进模块740进一步判断是否进行基于当前帧颜色分布与空间位置的改进。基于当前帧颜色分布与空间位置的改进指初始深度值可以由其对应当前帧的像素值所在窗口区域内的颜色分布和空间位置来进行双边滤波改善。
当判断进行基于参考帧深度图的改进时,对于初始深度图中的任一个表示深度的像素Z(p),其在当前帧中对应像素为p,当前帧中以像素p为中心像素,窗口宽度为N的窗口内的所有像素为q。计算窗口内所有像素q与中心像素p的像素差值高斯权重因子w1(Vp,Vq)、像素空间距离高斯权重因子w2(Sp,Sq),并将两个权重因子与像素q的深度值Z(q)相乘,得到带权重因子的深度值Z(q)。像素差值高斯权重因子w1(Vp,Vq)、像素空间距离高斯权重因子w2(Sp,Sq)分别为:
w 1 ( V p , V q ) = e - ( V p - V q ) 2 2 σ 1 2
w 2 ( S p , S q ) = e - ( p ( x ) - q ( x ) ) 2 2 σ 2 2 * e - ( p ( y ) - q ( y ) ) 2 2 σ 2 2 ,
其中,
Figure BDA0000045983560000273
为高斯滤波函数,V表示像素值,p(x),p(y),q(x),q(y)分别表示像素p、q的横纵坐标。σ1,σ2表示高斯滤波方差。其中,σ1,σ2可以根据具体情况及需要而设置。在本发明的一个实施例中,σ1=15,σ2=5。
深度图改进模块740对带权重因子的深度值Z(q)进行累加,并对权重进行归一化处理,得到的深度即为改进后像素p的深度
Z ‾ ( p ) = Σ q ∈ N p w 1 ( V p , V q ) w 2 ( S p , S q ) Z ( q ) Σ q ∈ N p w 1 ( V p , V q ) w 2 ( S p , S q ) .
从上式可知,p为当前帧的一个像素点,q为以当前像素点p为中心,窗口宽度为N的窗口中的任意像素点,Np表示窗口大小。在本发明的一个实施例中,窗口宽度N为7,则窗口大小为7*7。Z(q)为当前帧中像素q的深度值,
Figure BDA0000045983560000276
为当前帧中像素p改进后的深度值,w1(Vp,Vq)为像素p与像素q的像素差值的高斯权重因子,w2(Sp,Sq)为像素p与像素q的像素空间距离的高斯权重因子。
采用上述深度图改进方法改进后的深度图不但可以滤除掉深度计算时的噪声或错误匹配,并且保持当前帧初始深度的边界信息。
本发明实施例提供的基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进可以单独使用或同时使用。
输出模块750将由深度图计算模块730计算得到的深度图和深度图改进模块740的改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图及平面图像输入模块710的原始输入的平面图像进行输出。
根据本发明实施例的深度图求取装置,采用基于滑动平均方法的深度图实时求取算法可实现实时深度图提取,从而可以应用于各种实时性要求较高的立体视觉***中;采用基于图像颜色分割的深度快速求取算法,充分利用了图像颜色的分类信息,改进了基本的深度图求取方法,同时应用滑动平均方法实现了准实时的深度图求取;采用基于参考帧深度图的深度图改进算法,有效地检测出图像的遮挡区域和错误匹配,并且通过利用参考帧的深度信息,可明显改善遮挡区域的错误深度信息;通过基于高斯滤波的深度图改进算法,既可以保持深度图边界信息,又可以滤除深度图中的噪声,进一步改善了深度图的质量,并且可以满足多种时间要求、质量要求的深度图求取,应用范围比较广泛。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (18)

1.一种深度图求取方法,其特征在于,包括如下步骤:
输入平面图像,其中,所述平面图像包括单路视频、双路视频、单路图像序列或双路图像序列;
对所述平面图像进行预处理;
判断预处理后的平面图像是否需要进行图像颜色分割以及是否需要运行滑动平均算法,对所述平面图像选择性地进行基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图计算或基于颜色分割的深度图快速计算,其中,当判断所述预处理后的平面图像不需要进行图像颜色分割时,进一步判断是否需要运用滑动平均算法,当判断需要运用滑动平均算法时,对所述平面图像进行基本深度图的实时计算;否则,对所述平面图像进行基本深度图的计算;
当判断所述预处理后的平面图像需要进行图像颜色分割时,进一步判断是否需要运用滑动平均算法,当判断需要运用滑动平均算法时,对所述平面图像进行基于颜色分割的深度图快速计算;否则,对所述平面图像进行基于颜色分割的深度图计算;
对计算得到的深度图进行基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进,其中,所述计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图;以及
输出所述计算得到的深度图以及改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图和所述平面图像。
2.如权利要求1所述的深度图求取方法,其特征在于,当输入的平面图像为双路视频或双路图像序列时,对于同一时刻图像帧,将一路视频或图像序列中的图像帧作为当前帧,将另一路视频或图像序列中的图像帧作为参考帧;
当输入的平面图像为单路视频或单路图像序列时,将所述单路视频或单路图像序列在时间轴上的当前图像帧作为当前帧,将时间轴上的当前图像帧的后一帧作为默认参考帧。
3.如权利要求2所述的深度图求取方法,其特征在于,当所述平面图像为单路视频或单路图像序列时,对所述平面图像进行预处理包括如下步骤:
对所述单路视频或单路图像序列进行关键帧判断以得到作为当前帧的深度图计算的参考帧;
当所述平面图像为双路视频或者双路图像序列时,对所述平面图像进行预处理包括如下步骤:对所述双路视频或双路图像序列进行图像的外级线校正。
4.如权利要求1所述的深度图求取方法,其特征在于,所述对平面图像进行基本深度图的计算包括如下步骤:
设置窗口和搜索空间;
根据所述窗口对所述平面图像进行基于窗口的像素匹配计算,得到窗口匹配值Ed
根据窗口匹配值Ed和所述搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基本深度图,包括如下步骤:
在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述窗口匹配值Ed,在所述多个窗口匹配值Ed中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds
5.如权利要求4所述的深度图求取方法,其特征在于,所述对平面图像进行基本深度图的实时计算,包括如下步骤:
在行方向上进行行滑动平均的初始化计算以及行滑动平均递归计算,并在列方向上进行列滑动平均的初始化计算以及列滑动平均递归计算,得到所述当前帧的任一个像素点对应的实时窗口匹配值Q(i,j)
在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述实时窗口匹配值Q(i,j),在所述多个实时窗口匹配值Q(i,j)中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds1
求取当前帧的各个像素点的实时像素视差,得到当前帧对应的基本实时深度图。
6.如权利要求1所述的深度图求取方法,其特征在于,所述对平面图像进行基于颜色分割的深度图计算包括如下步骤:
将所述当前帧的每个像素点与对应的周围的n个像素点连接为n条边,每条边的权值w(i,j)为对应两个端点的像素差值的绝对值|value(i)-value(j)|,得到多个边edge(i,j),其中,i为当前帧的一个像素点,j为与所述当前帧的一个像素点对应的周围的n个像素点;
将所述当前帧的每个像素点分为一类,设定初始归并阈值为threshold(i)=c,将所述每条边按照权值从小到大进行排序;
对排序后的边所对应的当前帧的像素点及与所述当前帧的像素点对应的周围的n个像素点所在类进行两两归并操作,得到每个像素归类后的颜色分割图;
设置窗口和搜索空间,在所述窗口内按照颜色分割结果,将窗口区域划分为两部分,一部分与当前待求深度像素点属于同一颜色区域,另一部分与当前待求深度像素点不属于同一颜色区域,降低后者的计算权重,对所述平面图像进行基于窗口的像素匹配计算,得到窗口匹配值Ed
根据窗口匹配值Ed和所述搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基于图像分割的深度图,包括如下步骤:
在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述窗口匹配值Ed,在所述多个窗口匹配值Ed中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds
7.如权利要求5所述的深度图求取方法,其特征在于,所述对平面图像进行基于颜色分割的深度图快速计算,包括如下步骤:
对所述平面图像进行基于图像分割的行滑动平均的初始化计算以及行滑动平均递归计算,并进行基于图像分割的列滑动平均的初始化计算以及列滑动平均递归计算,得到基于图像分割的窗口匹配值GS(i,j)
根据所述实时窗口匹配值Q(i,j)和所述基于图像分割的窗口匹配值GS(i,j),求取基于图像分割的实时窗口匹配值M(i,j);
在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述基于图像分割的实时窗口匹配值M(i,j),在所述基于图像分割的实时窗口匹配值M(i,j)中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds2
求取当前帧的各个像素点的实时像素视差,得到当前帧对应的基于图像分割的实时深度图。
8.如权利要求1所述的深度图求取方法,其特征在于,所述对计算得到的深度图进行基于参考帧的深度图改进,包括如下步骤:
将参考帧与当前帧的位置对调,计算参考帧的深度图;
对所述当前帧中的每个像素点查找所述参考帧中的对应像素点及所述对应像素点的深度值;
根据所述参考帧中对应像素点的深度值对当前帧中的每个像素点的深度值进行检查,包括:当所述当前帧中的一个像素点的深度值与所述参考帧中对应像素点的深度值的差值小于或等于预定阈值时,则判断所述当前帧中该像素点的深度值正确;当所述当前帧中的某个像素点的深度值与所述参考帧中对应像素点的深度值的差值大于所述预定阈值时,则判断所述当前帧中该像素点的深度值错误;
当判断所述当前帧中一个像素点的深度值错误时,将所述当前帧中的该像素点的深度值与所述参考帧中对应像素点的深度值进行比较,包括:
当所述当前帧中的该像素点的深度值小于所述参考帧中对应像素点的深度值,保留所述当前帧中的该像素点的深度值;
当所述当前帧中的该像素点的深度值大于所述参考帧中对应像素点的深度值,所述当前帧中的该像素点的深度值为所述参考帧中对应像素点的深度值。
9.如权利要求1所述的深度图求取方法,其特征在于,所述对计算得到的深度图进行基于当前帧颜色分布与空间位置的改进,包括如下步骤:
对所述计算得到的深度图中任一个深度值按照其在当前帧中的对应像素点所在窗口内的颜色分布和空间位置进行双边滤波。
10.一种深度图求取装置,其特征在于,包括:
平面图像输入模块,所述平面图像输入模块用于输入平面图像,其中,所述平面图像包括单路视频、双路视频、单路图像序列或双路图像序列;
预处理模块,所述预处理模块用于对所述平面图像进行预处理;
深度图计算模块,所述深度图计算模块用于判断所述预处理模块预处理后的平面图像是否需要进行图像颜色分割以及是否需要运行滑动平均算法,对所述平面图像选择性地进行基本深度图的计算、基本深度图的实时计算、基于颜色分割的深度图快速计算或基于颜色分割的深度图计算,其中,所述深度图计算模块包括判断单元、基本深度图实时计算单元、基本深度图计算单元、基于颜色分割的深度图计算单元和基于颜色分割的深度图快速计算单元,其中,
所述判断单元判断预处理后的平面图像是否需要进行图像颜色分割,当判断所述预处理后的平面图像不需要进行图像颜色分割时,进一步判断是否需要运用滑动平均算法,当判断需要运用滑动平均算法时,所述基本深度图实时计算单元对所述平面图像进行基本深度图的实时计算;否则,所述基本深度图计算单元对所述平面图像进行基本深度图的计算;
当所述判断单元判断所述预处理后的平面图像需要进行图像颜色分割时,进一步判断是否需要运用滑动平均算法,当判断需要运用滑动平均算法时,所述基于颜色分割的深度图快速计算单元对所述平面图像进行基于颜色分割的深度图快速计算;否则,所述基于颜色分割的深度图计算单元对所述平面图像进行基于颜色分割的深度图计算;
深度图改进模块,所述深度图改进模块用于对所述深度图计算模块计算得到的深度图进行基于参考帧的深度图改进和基于当前帧颜色分布与空间位置的改进,其中,所述计算得到的深度图包括通过基本深度图的计算得到的基本深度图、通过基本深度图的实时计算得到基本实时深度图、通过基于颜色分割的深度图计算得到的基于图像分割的深度图和通过基于颜色分割的深度图快速计算得到的基于图像分割的实时深度图;以及
输出模块,所述输出模块用于输出所述计算得到的深度图以及改进后的基于参考帧的深度图、改进后的基于当前帧颜色分布与空间位置的深度图和所述平面图像。
11.如权利要求10所述的深度图求取装置,其特征在于,当所述平面图像输入模块输入的平面图像为双路视频或双路图像序列时,对于同一时刻图像帧,将一路视频或图像序列中的图像帧作为当前帧,将另一路视频或图像序列中的图像帧作为参考帧;
当所述平面图像输入模块输入的平面图像为单路视频或单路图像序列时,将所述单路视频或单路图像序列在时间轴上的当前图像帧作为当前帧,将时间轴上的当前图像帧的后一帧作为默认参考帧。
12.如权利要求10所述的深度图求取装置,其特征在于,当所述平面图像为单路视频或单路图像序列时,所述预处理模块对所述单路视频或单路图像序列进行关键帧判断以得到作为当前帧的深度图计算的参考帧;
当所述平面图像为双路视频或者双路图像序列时,所述预处理模块对所述双路视频或双路图像序列进行图像的外级线校正。
13.如权利要求10所述的深度图求取装置,其特征在于,所述基本深度图计算单元设置窗口和搜索空间,根据所述窗口对所述平面图像进行基于窗口的像素匹配计算,得到窗口匹配值Ed,并根据窗口匹配值Ed和所述搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基本深度图,包括在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述窗口匹配值Ed,并在所述多个窗口匹配值Ed中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds
14.如权利要求13所述的深度图求取装置,其特征在于,所述基本深度图实时计算单元在行方向上进行行滑动平均的初始化计算以及行滑动平均递归计算,并在列方向上进行列滑动平均的初始化计算以及列滑动平均递归计算,得到所述当前帧的任一个像素点对应的实时窗口匹配值Q(i,j),并在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述实时窗口匹配值Q(i,j),在所述多个实时窗口匹配值Q(i,j)中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds1,并且求取当前帧的各个像素点的实时像素视差,得到当前帧对应的基本实时深度图。
15.如权利要求10所述的深度图求取装置,其特征在于,所述基于颜色分割的深度图计算单元执行如下步骤:
将所述当前帧的每个像素点与对应的周围的n个像素点连接为n条边,每条边的权值w(i,j)为对应两个端点的像素差值的绝对值|value(i)-value(j)|,得到多个边eage(i,j),其中,i为当前帧的一个像素点,j为与所述当前帧的一个像素点对应的周围的n个像素点,将所述当前帧的每个像素点分为一类,设定初始归并阈值为threshold(i)=c,将所述每条边按照权值从小到大进行排序,并对排序后的边所对应的当前帧的像素点及与所述当前帧的像素点对应的周围的n个像素点所在类进行两两归并操作,得到每个像素归类后的颜色分割图;
设置窗口和搜索空间,在所述窗口内按照颜色分割结果,将窗口区域划分为两部分,一部分与当前待求深度像素点属于同一颜色区域,另一部分与当前待求深度像素点不属于同一颜色区域,降低后者的计算权重,对所述平面图像进行基于窗口的像素匹配计算,得到窗口匹配值Ed
根据窗口匹配值Ed和所述搜索空间获取当前帧中各个像素点像素视差,得到当前帧对应的基于图像分割的深度图,包括如下步骤:
在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述窗口匹配值Ed,在所述多个窗口匹配值Ed中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds
16.如权利要求14所述的深度图求取装置,其特征在于,所述基于颜色分割的深度图快速计算单元对所述平面图像进行基于图像分割的行滑动平均的初始化计算以及行滑动平均递归计算,并进行基于图像分割的列滑动平均的初始化计算以及列滑动平均递归计算,得到基于图像分割的窗口匹配值GS(i,j),根据所述实时窗口匹配值Q(i,j)和所述基于图像分割的窗口匹配值GS(i,j),求取基于图像分割的实时窗口匹配值M(i,j),在当前帧中的任一个像素点对应于所述搜索空间中的各个相对位置对应有多个所述基于图像分割的实时窗口匹配值M(i,j),在所述基于图像分割的实时窗口匹配值M(i,j)中选取最小值对应的视差值作为所述当前帧中当前像素点的视差值ds2,求取当前帧的各个像素点的实时像素视差,得到当前帧对应的基于图像分割的实时深度图。
17.如权利要求10所述的深度图求取装置,其特征在于,所述深度图改进模块将参考帧与当前帧的位置对调计算参考帧的深度图,对所述当前帧中的每个像素点查找所述参考帧中的对应像素点及所述对应像素点的深度值,根据所述参考帧中对应像素点的深度值对当前帧中的每个像素点的深度值进行检查,包括:当所述当前帧中的一个像素点的深度值与所述参考帧中对应像素点的深度值的差值小于或等于预定阈值时,则判断所述当前帧中该像素点的深度值正确;当所述当前帧中的一个像素点的深度值与所述参考帧中对应像素点的深度值的差值大于所述预定阈值时,则判断所述当前帧中该像素点的深度值错误;
当判断所述当前帧中一个像素点的深度值错误时,将所述当前帧中的该像素点的深度值与所述参考帧中对应像素点的深度值进行比较,包括:
当所述当前帧中的该像素点的深度值小于所述参考帧中对应像素点的深度值,保留所述当前帧中的该像素点的深度值;
当所述当前帧中的该像素点的深度值大于所述参考帧中对应像素点的深度值,所述当前帧中的该像素点的深度值为所述参考帧中对应像素点的深度值。
18.如权利要求10所述的深度图求取装置,其特征在于,所述输出模块对所述计算得到的深度图中任一个深度值按照其在当前帧中的对应像素点所在窗口内的颜色分布和空间位置进行双边滤波。
CN2011100316104A 2011-01-28 2011-01-28 一种深度图求取方法及装置 Active CN102098526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100316104A CN102098526B (zh) 2011-01-28 2011-01-28 一种深度图求取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100316104A CN102098526B (zh) 2011-01-28 2011-01-28 一种深度图求取方法及装置

Publications (2)

Publication Number Publication Date
CN102098526A CN102098526A (zh) 2011-06-15
CN102098526B true CN102098526B (zh) 2012-08-22

Family

ID=44131361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100316104A Active CN102098526B (zh) 2011-01-28 2011-01-28 一种深度图求取方法及装置

Country Status (1)

Country Link
CN (1) CN102098526B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957923B (zh) * 2011-08-24 2015-06-03 陈良基 立体影像深度图的校正***及方法
US8682087B2 (en) * 2011-12-19 2014-03-25 Cisco Technology, Inc. System and method for depth-guided image filtering in a video conference environment
US9571810B2 (en) 2011-12-23 2017-02-14 Mediatek Inc. Method and apparatus of determining perspective model for depth map generation by utilizing region-based analysis and/or temporal smoothing
US20130162763A1 (en) * 2011-12-23 2013-06-27 Chao-Chung Cheng Method and apparatus for adjusting depth-related information map according to quality measurement result of the depth-related information map
CN103208110B (zh) * 2012-01-16 2018-08-24 展讯通信(上海)有限公司 视频图像的转换方法及装置
JP2013172190A (ja) * 2012-02-17 2013-09-02 Sony Corp 画像処理装置、および画像処理方法、並びにプログラム
CN102609974B (zh) * 2012-03-14 2014-04-09 浙江理工大学 一种基于深度图分割渲染的虚拟视点图像的生成方法
TWI450024B (zh) * 2012-06-05 2014-08-21 Wistron Corp 立體深度影像建立系統及其方法
CN102881018B (zh) * 2012-09-27 2014-10-29 清华大学深圳研究生院 一种图像深度图生成方法
CN106559659B (zh) * 2015-09-25 2018-07-10 台达电子工业股份有限公司 立体影像深度图产生装置及方法
CN106447719B (zh) * 2016-10-31 2019-02-12 成都通甲优博科技有限责任公司 一种单目摄像机获取深度图的方法
CN109145803B (zh) * 2018-08-14 2022-07-22 京东方科技集团股份有限公司 手势识别方法及装置、电子设备、计算机可读存储介质
CN111626086A (zh) * 2019-02-28 2020-09-04 北京市商汤科技开发有限公司 活体检测方法、装置及***、电子设备和存储介质
CN110689565B (zh) * 2019-09-27 2022-03-04 北京奇艺世纪科技有限公司 一种深度图确定的方法、装置及电子设备
CN112750157B (zh) * 2020-08-11 2023-09-12 腾讯科技(深圳)有限公司 一种深度图像生成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101400001A (zh) * 2008-11-03 2009-04-01 清华大学 一种视频帧深度图的生成方法及***
CN101582171A (zh) * 2009-06-10 2009-11-18 清华大学 一种创建深度图的方法及装置
CN101605270A (zh) * 2009-07-16 2009-12-16 清华大学 生成深度图的方法和装置
CN101635859A (zh) * 2009-08-21 2010-01-27 清华大学 一种实现平面视频转立体视频的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1984893B8 (en) * 2006-02-13 2018-05-16 Snell Advanced Media Limited Method and apparatus for modifying a moving image sequence

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101400001A (zh) * 2008-11-03 2009-04-01 清华大学 一种视频帧深度图的生成方法及***
CN101582171A (zh) * 2009-06-10 2009-11-18 清华大学 一种创建深度图的方法及装置
CN101605270A (zh) * 2009-07-16 2009-12-16 清华大学 生成深度图的方法和装置
CN101635859A (zh) * 2009-08-21 2010-01-27 清华大学 一种实现平面视频转立体视频的方法和装置

Also Published As

Publication number Publication date
CN102098526A (zh) 2011-06-15

Similar Documents

Publication Publication Date Title
CN102098526B (zh) 一种深度图求取方法及装置
US8644596B1 (en) Conversion of monoscopic visual content using image-depth database
CN101640809B (zh) 一种融合运动信息与几何信息的深度提取方法
CN101443817B (zh) 用于确定场景的三维重建时的对应关系的方法和装置
CN103248906A (zh) 一种双目立体视频序列的深度图获取方法与***
CN102136136B (zh) 基于自适应Census变换的光度不敏感立体匹配方法
CN108257165B (zh) 图像立体匹配方法、双目视觉设备
CN104756491A (zh) 基于组合的深度提示从单视场图像生成深度图
US9111350B1 (en) Conversion of monoscopic visual content to stereoscopic 3D
CN102609950B (zh) 一种二维视频深度图的生成方法
CN104065946B (zh) 基于图像序列的空洞填充方法
CN102665086A (zh) 利用基于区域的局部立体匹配获取视差的方法
CN103679739A (zh) 基于遮挡区域检测的虚拟视图生成方法
CN102761765B (zh) 一种用于三维立体视频的深度快速插帧方法
CN103337064A (zh) 图像立体匹配中的一种误匹配点剔除方法
CN103871037A (zh) 图像之间颜色转换的方法和装置
CN105138979A (zh) 基于立体视觉的运动人体头部检测方法
US20130176388A1 (en) Method and device for providing temporally consistent disparity estimations
Hyun et al. Hardware-friendly architecture for a pseudo 2D weighted median filter based on sparse-window approach
Abd Manap et al. Novel view synthesis based on depth map layers representation
CN108924542A (zh) 基于显著性和稀疏性的无参考立体视频质量评价方法
Chang et al. Real-time Hybrid Stereo Vision System for HD Resolution Disparity Map.
CN102447932B (zh) 自由视点视频中视点的重建方法
Feng et al. Superpixel based depth propagation for semi-automatic 2D-to-3D video conversion
Zhan et al. Learning from multi metrics for stereoscopic 3D image quality assessment

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