具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
以图2为例详细说明本发明实施例公开的图像处理的方法,图2为本发明实施例公开的深度图提取及优化的方法流程图。
如图2所示,在本发明实施例中,首先获取连续当前源图像,所述当前源图像为二维连续帧序列,提取当前源图像中每个像素点的场景相关度,对当前源图像分别经过横向和纵向的两次1/2下采样操作,并在两次1/2下采样后进行相应的提取每个像素点的场景相关度,获取各阶段分辨率源图像中每个像素点的的场景相关度。
利用经过两次1/2下采样后,分辨率为1/16的源图像中的像素点与之前的1/16分辨率源图像相对应的像素点进行块匹配运动矢量计算,得出当前1/16分辨率源图像中像素点的运动矢量值,累加当前1/16分辨率源图像中像素点的运动矢量值,基于运动矢量累加和提取当前1/16分辨率源图像中像素点的初始深度值,每个像素点的初始深度值形成初始深度图;但是,所述初始深度图的分辨率为源图像的1/16,因此轮廓模糊不清晰,还要对所述初始深度图进行严格优化处理。
对1/16分辨率初始深度图进行基于1/16分辨率场景相关度的超平滑滤波处理,并进行四次迭代超平滑滤波;对迭代超平滑滤波处理完的1/16分辨率深度图分别进行横向和纵向的两倍上采样,得到1/4分辨率初始深度图,对1/4分辨率深度图进行基于1/4分辨率场景相关度的超平滑滤波处理,并进行两次迭代超平滑滤波;进一步对处理完的1/4分辨率深度图进行两倍上采样得到原始分辨率大小的深度图,再进行基于场景相关度的一次迭代超平滑滤波处理,最后获取到优化处理后的深度图,具体实现的步骤如下所描述:
步骤210、获取二维源图像,并从源图像中提取场景相关度;
具体地,首先获取连续当前源图像,所述当前源图像为二维连续帧序列,如图3所示,图3为本发明实施例当前源图像示意图;
同时,从当前源图像中提取场景相关度;
在本发明实施例中,场景相关度为在一帧图像中任一像素点(任取一像素点为中心像素点)与其周围相邻像素点的相关程度。利用中心像素点处R(红)、G(绿)、B(蓝)的值依次与周围相邻像素点处R(红)、G(绿)、B(蓝)的值相减,并取差值的绝对值。如果某一个方向上的相邻像素的差值的绝对值小于预先设定的相关度阈值,那么,就将该方向上相关度标志槽中的相关度标志位设置1,否则设置0。所述相关度标志槽buffer[]是一个8位宽的缓冲器,从最低位到最高位的8个相关度标志位依次存放中心像素点与其最近的8个相邻像素点按顺时针顺序旋转的相关度信息。存储1为中心像素点与相邻像素点相关,存储0为中心像素点与相邻像素点不相关。一个相关度标志槽映射源图像中的任一个像素点。
如图4所示,图4为本发明实施例计算任一像素点场景相关度的示意图;其中,红色像素点为选取的中心像素点,中心像素点的坐标为(x,y),与所述中心像素点相邻的像素点为相邻像素点,在图4中,有8个相邻像素点,并将8个相邻像素点按顺时针编号,如0-7号,所述编号分别对应着场景相关度标志槽的最低位至最高位;
根据前述方法,判断每个相邻像素点与中心像素点的相关程度,假如在编号1的相邻像素点与中心像素点的相关,则在相关度标志槽buffer[1]中存储1;因此,相关度标志槽buffer[m]的公式为:
(式1)
其中,k=0,1;0≤m≤7;m∈Z;f(x,y)、f(x±k,y±k)为像素点R(红)、G(绿)、B(蓝)分量的值;A为场景相关度的阈值;buffer[m]为相关度的第m位;m为相邻像素点标号。
在此,说明一下,在计算边界上像素点相关度的情况,如图5所示,图5为本发明实施例计算边界上任一像素点场景相关度的示意图;其中,红色像素点为选取的中心像素点,中心像素点的坐标为(x,y),与所述中心像素点相邻的像素点为相邻像素点,在图5中,中心像素点的坐标取x=0和y=0,即中心像素点位于当前源图像的第一行,第一列,此时,编号的方式与前述相同,只需计算虚线框内的编号为2、3、4像素点的相关度,编号为0、1、5、6、7、像素点不存在,因此,直接将相关度标志槽buffer[0]、buffer[1]、buffer[5]、buffer[6]、buffer[7]赋值为0,其它边界位置上的像素点处理方法与之相同,因此,不再赘述。
需要说明的是,上述描述的计算相关度是以1个像素点为例进行说明的,在实际计算中,均要对每个像素点进行计算,在源图像中每个像素点经计算后,均存在1个相关度标志槽,所有像素点的所有相关度标志槽构成了当前源图像的场景相关度。
步骤220、对源图像进行横向和纵向1/2下采样,获取1/4分辨率源图像,并从1/4分辨率源图像中提取场景相关度;
具体地,对获取的当前源图像分别经过横向和纵向的1/2下采样操作,并在1/2下采样后,从1/4分辨率源图像的每个像素点中提取场景相关度,获取1/4分辨率源图像和1/4分辨率源图像中每个像素点的场景相关度。
在当前1/4分辨率的采样阶段,用步骤210描述的方法计算出1/4分辨率源图像中每个像素点场景相关度。
需要说明的是,对源图像的下采样处理为现有技术,在此不再赘述。
步骤230、对1/4分辨率源图像再次进行横向和纵向1/2下采样,获取1/16分辨率源图像,并从1/16分辨率源图像中提取场景相关度;
具体地,对获取的1/4分辨率源图像分别经过横向和纵向的1/2下采样操作,并在1/2下采样后,从1/16分辨率源图像中提取场景相关度,获取1/16分辨率源图像和1/16分辨率源图像中每个像素点的场景相关度。
在当前1/16分辨率的采样阶段,用步骤210描述的方法计算出1/16分辨率源图像中每个像素点场景相关度。
需要说明的是,对1/4分辨率源图像的下采样处理为现有技术,在此不再赘述。
步骤240、1/16分辨率源图像与之前1/16分辨率源图像进行块匹配运动矢量计算;
具体地,利用步骤230中,经下采样后的1/16分辨率源图像与之前的1/16分辨率源图像进行块匹配运动矢量计算,获取当前1/16分辨率源图像中每个像素点的运动矢量值,并对获取的当前1/16分辨率源图像中每个像素点的运动矢量值累加。
需要说明的是,基于块匹配的运动矢量累加也为现有技术,在此不再赘述。
步骤250、运动矢量累加和中提取初始深度值,形成初始深度图;
具体地,根据步骤240的描述,获取当前1/16分辨率源图像中每个像素点的运动矢量值累加,从所述运动矢量累加和中提取每个像素点的初始深度值,对1/16分辨率源图像中全部像素点均提取初始深度值,全部像素点的初始深度值形成1/16分辨率源图像的初始深度图;
在此,说明一下,对每个像素点基于运动矢量累加和中提取初始深度值;
假定,连续两个源图像中运动物体的最大偏移量为当前源图像的3.5%宽度,此时,所代表的运动矢量值对应的灰度值为255,那么单位像素位移所代表的灰度值大小如下公式:
(式2)
其中,W为图像的宽度;
若计算得到的图像块运动矢量模为表1所示的值,在此,以举例的方式说明,表1中计算出9个运动矢量模。
表1运动矢量模
那么,上述9个运动矢量模对应的灰度值为:
表2运动矢量灰度值
a*I |
b*I |
c*I |
d*I |
e*I |
f*I |
g*I |
h*I |
k*I |
在前述已说明获取的源图像是二维视频帧序列,从所述二维帧序列中提取任一像素点的深度信息,为了保持像素点在停止运动之后,其深度值仍然存在,以便于随时获取其运动信息,将任一像素点的深度值存入深度暂存器中。否则,一旦像素点在当前源图像中停止了运动,那么,之后源图像中该像素点的运动矢量就会为零,此时,如果直接由当前像素点运动矢量值计算深度信息就会获取错误的结果。因此,深度暂存器存放的为像素点之前的深度信息的累加值,由于深度暂存器是存在最大值的,所以,限制深度暂存器的最大值为Dtotal。
由于在前述中已经获取任一像素点的灰度值,当前深度图全部灰度值的累加和为Dnew,深度暂存器中之前所有深度图的全部灰度值累加和为Dacc,若一直把Dnew简单的加到Dacc中,最终会超过深度暂存器累加和的最大值Dtotal而导致溢出,导致像素点深度信息流失;因此,在本发明实施例中,
如果Dnew+Dacc<Dtotal时,则Dacc_depth(x,y)=Dacc_depth(x,y)+Dnew_depth(x,y) (式3)
如果Dnew+Dacc>Dtotal时,则 (式4)
若 则 (式5)
若 则 (式6)
其中0≤x≤h-1,0≤y≤w-1。h、w分别为下采样1/16分辨率源图像的高度和宽度。Dacc_depth(x,y)表示为每个像素点之前运动矢量灰度值的累加和,Dnew_depth(x,y)表示为每个像素点当前运动矢量灰度值。
需要说明的是,上述描述的从运动矢量累加和中提取初始深度值是以部分像素点为例进行说明的,在实际计算中,均要对每个像素点进行提取,在1/16分辨率源图像中提取每个像素点初始深度值后,形成1/16分辨率源图像的初始深度图,如图6所示,图6为本发明实施例源图像的初始深度图。
步骤260、对1/16分辨率初始深度图进行超平滑滤波处理,和上采样处理;
具体地,从图6的初始深度图可知,由于在步骤250中,块匹配运动矢量计算过程中,存在较大误差,导致所提取的初始深度图轮廓模糊不清晰,因此,在本步骤中对1/16分辨率初始深度图进行严格优化处理。
根据步骤230的描述,在步骤230中获取1/16分辨率源图像的场景相关度,因此,根据获取的1/16分辨率源图像的场景相关度对1/16分辨率初始深度图进行超平滑滤波处理,并进行四次迭代滤波;然后,对迭代超平滑滤波处理完的1/16分辨率初始深度图分别进行横向和纵向的两倍上采样,得到1/4分辨率初始深度图。
在本发明实施例中,根据步骤230的描述,已获取了1/16分辨率源图像像素点的场景相关度,根据1/16分辨率源图像像素点的场景相关度对1/16分辨率初始深度图进行优化处理;在计算相关度中定义了与中心像素点相邻的像素点,在本步骤中的超平滑滤波处理中,再将每个相邻像素点分配不同的权重系数,如图7所示,图7为本发明实施例为任一像素点分配权重系数示意图;
每个相邻像素点的权重系数分别作为超平滑滤波器的滤波抽头系数。所述超平滑滤波器为低通滤波器,由于该滤波器系数因子为8个,并且有规律的分布在中心像素点的8个方向上,所以,滤波性能高,可以有效的平滑初始深度图中凹凸锐利的高频噪声和高频分量。
当选取的中心像素点不在初始深度图的边界上时,根据中心像素点处的相关度标志槽,获取中心像素点与8个相邻像素点的相关情况。如果某一相邻像素点与中心像素点相关度为1,则用相邻像素点的灰度值乘以该相邻像素点的权重系数,如果某一相邻像素点与中心像素点相关度为0,则用相邻像素点的权重系数乘以中心像素点的灰度值,最后,将8个相邻像素点相乘的结果累加起来作为对1/16分辨率初始深度图平滑滤波后的结果。
图8为本发明实施例对边界上任一像素点分配权重系数示意图;如图8所示,其中,红色像素点为选取的中心像素点,中心像素点的坐标为(x,y),与所述中心像素点相邻的像素点为相邻像素点,在图8中,中心像素点的坐标取x=0和y=0,即中心像素点位于当前源图像的第一行,第一列,此时,编号的方式与前述相同,只需根据虚线框内的编号为2、3、4像素点的相关度进行滤波,编号为0、1、5、6、7、像素点不存在,因此,相关度标志槽buffer[0]、buffer[1]、buffer[5]、buffer[6]、buffer[7]值为0,其它边界位置上的像素点处理方法与之相同,因此,不再赘述。
图9为本发明实施例超平滑滤波器的结构图,如图9所示,图9中的coef0-coef7为相邻像素点的权重系数,也为超平滑滤波器的抽头系数;在本发明实施例中,设定coef0=coef2=coef4=coef6=1/6;coef1=coef3=coef5=coef7=1/12;在设定权重系数时,要满足8个相邻像素点的权重系数和为1,即coef0+coef1+coef2+coef3+coef4+coef5+coef6+coef7=1。
因此,对任一像素点进行滤波的公式为:
(式7)
其中,n∈Z,n=0,1,2,3;buffer[]为相邻像素点的场景相关度;~buffer[]为相邻像素点的场景相关度的取反;f(x,y)为中心像素点(x,y)处的灰度值。
对所述1/16分辨率初始深度图进行四次迭代超平滑滤波处理完成后,对迭代超平滑滤波处理完的1/16分辨率初始深度图中每个像素点分别进行横向和纵向的两倍上采样,获取每个1/4分辨率像素点的深度值,每个1/4分辨率像素点的深度值形成1/4分辨率深度图,得到1/4分辨率深度图。
需要说明的是,上述描述的根据相关度对初始深度图滤波是以1个像素点为例进行说明的,在实际计算中,均要对每个像素点进行滤波。
对迭代超平滑滤波处理完的1/16分辨率初始深度图的上采样处理为现有技术,在此不再赘述。
步骤270、对1/4分辨率深度图进行超平滑滤波处理,和上采样处理;
具体地,根据步骤260获取1/4分辨率深度图,根据步骤220的描述,在步骤220中获取1/4分辨率源图像的场景相关度,因此,根据获取的1/4分辨率源图像的场景相关度对1/4分辨率深度图进行超平滑滤波处理,并进行两次迭代滤波;然后,对迭代超平滑滤波处理完的1/4分辨率初始深度图分别进行横向和纵向的两倍上采样,获取每个原始分辨率像素点的深度值,每个原始分辨率像素点的深度值形成原始分辨率深度图,得到原始分辨率的初始深度图;
在本步骤中的滤波过程中,用步骤260描述的方法对1/4分辨率深度图进行超平滑滤波。
步骤280、获取优化处理后的深度图;
具体地,根据步骤270获取原始分辨率深度图,根据步骤210的描述,在步骤210中获取源图像的场景相关度,因此,根据获取的源图像的场景相关度对原始分辨率深度图进行一次迭代超平滑滤波处理;最后,获取源图像深度图。
如图10所示,图10为源图像优化处理后深度图;与图6源图像的初始深度图相比较,初始深度图分辨率较低,像素点较少,图像轮廓不清晰,在进行较多次迭代超平滑滤波和上采样后,初始深度图分辨率升高,像素点变多,深度图轮廓更加清晰,提高了深度图的图像质量。
通过应用本发明实施例公开的方法,在不同下采样阶段求出相应的场景相关度,通过运动矢量累加和提取初始深度图,利用不同下采样阶段的场景相关度对初始深度图进行迭代超平滑处理,同时进行上采样处理,最终生成源图像深度图,提高了深度图的图像质量,让深度图轮廓更加清晰,同时本方法也让整个过程的计算开销保持在合理范围之内。
相应地,上述实施例是对提取及优化图像深度图的方法描述,相应地,也可用图像处理的装置实现。如图11所示,图11为本发明实施例公开的提取及优化图像深度图的装置图。所述提取及优化图像深度图的装置包括:第一获取单元1110,用于获取当前源图像和所述当前源图像中每个像素点的场景相关度,所述当前源图像为当前视频连续帧序列;
第二获取单元1120,用于对所述当前源图像连续下采样,获取当前每个下采样源图像中每个像素点的场景相关度;
第三获取单元1130,用于将所述当前下采样源图像中每个像素点与之前下采样源图像中相对应的像素点进行块匹配运动矢量计算,获取所述当前下采样源图像中每个像素点的运动矢量值;
计算单元1140,用于分别累加所述当前下采样源图像中每个像素点的运动矢量值,从运动矢量累加和中提取每个像素点的初始深度值,所述初始深度值构成源图像初始深度图;
第一处理单元1150,用于利用所述源图像中每个像素点的场景相关度和所述每个下采样源图像中每个像素点的场景相关度对所述初始深度图中每个像素点进行连续超平滑滤波处理和上采样处理,获取所述源图像深度图。
所述装置中,第一获取单元1110具体用于:选择任一像素点作为中心像素点,将与所述中心像素点相邻像素点标号;
获取所述中心像素点红R、绿G、蓝B分量值与每个所述相邻像素点红R、绿G、蓝B分量值的差值,并对所述差值取绝对值;
将所述绝对值与场景相关度阈值相比较,如果所述绝对值小于场景相关度阈值,则将所述相邻像素点的场景相关度设置为1相关,否则,设置为0不相关;
将所述相邻像素点的场景相关度存储在缓冲器中,所述缓冲器具体为
其中,k=0,1;0≤m≤7;m∈Z;f(x,y)、f(x±k,y±k)为像素点红R、绿G、蓝B分量的值;A为场景相关度阈值;buffer[m]为相关度的第m位;m为相邻像素点标号。
所述装置中,第二获取单元1120具体用于:对所述当前源图像进行横向和纵向的1/2下采样,获取当前1/4分辨率源图像和当前1/4分辨率源图像中每个像素点的场景相关度;
对所述当前1/4分辨率源图像进行横向和纵向的1/2下采样,获取当前1/16分辨率源图像和当前1/16分辨率源图像中每个像素点的场景相关度。
所述装置中,第三获取单元1130具体用于:将所述当前1/16分辨率源图像中每个像素点与之前的所述1/16分辨率源图像中相对应的像素点进行块匹配运动矢量计算,获取所述当前1/16分辨率源图像中每个像素点的运动矢量值;
分别累加所述当前1/16分辨率源图像中每个像素点的运动矢量值。
所述装置中,计算单元1140具体用于:获取每个像素点位移的运动矢量模和单位像素位移灰度值,所述单位像素位移灰度值为W为图像的宽度;
将所述运动矢量模与所述单位像素位移灰度值相乘,获取所述每个像素点的运动矢量灰度值;
将所述每个像素点的运动矢量灰度值的累加和存储在深度暂存器中;
如果Dnew+Dacc<Dtotal;则Dacc_depth(x,y)=Dacc_depth(x,y)+Dnew_depth(x,y);
如果Dnew+Dacc>Dtotal;则
若 则
若 则
其中,所述(x,y)为每个像素点坐标;Dacc_depth(x,y)为每个像素点之前运动矢量灰度值的累加和;Dnew_depth(x,y)为每个像素点当前运动矢量灰度值;Dtotal为深度暂存器累加和的最大值,Dnew为当前深度图全部灰度值的累加和;Dacc为深度暂存器中之前所有深度图的全部灰度值累加和。
所述装置中,第一处理单元1150具体用于:为所述每个相邻像素点分配权重系数,所述权重系数为超平滑滤波的抽头系数;
调用所述缓冲器中存储的所述相邻像素点的场景相关度;
如果所述相邻像素点的场景相关度为1相关,则将相邻像素点灰度值与相邻像素点分配的权重系数相乘;
如果所述相邻像素点的场景相关度为0不相关,则将中心像素点灰度值与相邻像素点分配的权重系数相乘;
累加所述相邻像素点灰度值与相邻像素点分配的权重系数相乘的值,以及所述中心像素点灰度值与相邻像素点分配的权重系数相乘的值;
其中,n∈Z,n=0,1,2,3;buffer[]为相邻像素点的场景相关度;~buffer[]为相邻像素点的场景相关度的取反;f(x,y)为中心像素点(x,y)处的灰度值。
所述装置中,第一处理单元1150进一步具体用于:对所述初始深度图进行四次迭代超平滑滤波处理,对所述经过四次迭代超平滑滤波处理后的深度图进行横向和纵向的两倍上采样;
获取每个1/4分辨率像素点的深度值,所述每个1/4分辨率像素点的深度值形成1/4分辨率深度图;
对所述1/4分辨率深度图进行两次迭代超平滑滤波处理,对所述经过两次迭代超平滑滤波处理后的深度图进行横向和纵向的两倍上采样;
获取每个原始分辨率像素点的深度值,所述每个原始分辨率像素点的深度值形成原始分辨率深度图;
对所述原始分辨率深度图进行一次迭代超平滑滤波处理,获取源图像深度图。
所述装置中,所述为所述每个相邻像素点分配权重系数具体为:累加相邻像素点的权重系数和为1。
通过应用本发明实施例公开的装置,在不同下采样阶段求出相应的场景相关度,通过运动矢量累加和提取初始深度图,利用不同下采样阶段的场景相关度对初始深度图进行迭代超平滑处理,同时进行上采样处理,最终生成源图像深度图,提高了深度图的图像质量,让深度图轮廓更加清晰,同时本方法也让整个过程的计算开销保持在合理范围之内。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。