CN102968814B - 一种图像渲染的方法及设备 - Google Patents
一种图像渲染的方法及设备 Download PDFInfo
- Publication number
- CN102968814B CN102968814B CN201210477013.9A CN201210477013A CN102968814B CN 102968814 B CN102968814 B CN 102968814B CN 201210477013 A CN201210477013 A CN 201210477013A CN 102968814 B CN102968814 B CN 102968814B
- Authority
- CN
- China
- Prior art keywords
- pixel
- depth
- scene graph
- crowding distance
- diameter
- 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.)
- Expired - Fee Related
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明实施例公开了一种图像渲染的方法,包括:渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。相应地,本发明实施例还提供了一种图像渲染的设备。本发明实施例可以提高图像渲染的效率。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种图像渲染的方法及设备。
背景技术
图像渲染的本质是图形数据的实时计算和实时输出,目前广泛应用的图像渲染技术为在线累积渲染技术。该技术可以模拟景深效果,该技术采用累积缓存的方式实现,所谓累积缓存就是把一系列绘制结果进行累积,在所有图像渲染完毕之后,把累积缓存的绘制结果连成一个完整的图像,并将该图像送入帧缓存,最后在屏幕中显示出来。该技术中生成的最终图像的像素值是由多个图像中相同的像素点的像素值累积而成的。这样在该技术中需要采用多次绘制场景技术,经过多次渲染,从而导致图像渲染的效率偏低。
发明内容
本发明实施例提供了一种图像渲染的方法及设备,可以提高图像渲染的效率。
本发明第一方面提供一种图像渲染的方法,包括:
渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
本发明第二方面提供一种图像渲染的设备,包括:
渲染单元、聚集距离计算单元、直径计算单元和滤波单元,其中:
所述渲染单元,用于渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
所述聚集距离计算单元,用于计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
所述直径计算单元,用于通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
所述滤波单元,用于分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
上述技术方案,通过渲染出当前场景的场景图和深度图,并对深度图对场景图的像素点进行相关的计算,再根据计算得到的结果对场景图的像素点进行双边深度滤波,相比现有技术中采用多次绘制场景技术,经过多次渲染,本发明可以提高图像渲染的效率,同时,还可以实现景深效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种图像渲染的方法的流程示意图;
图2是本发明实施例提供的另一种图像渲染的方法的流程示意图;
图3是本发明实施例提供的一种可选的渲染效果示意图;
图4是本发明实施例提供的一种图像渲染的设备的结构示意图;
图5是本发明实施例提供的另一种图像渲染的设备的结构示意图;
图6是本发明实施例提供的另一种图像渲染的设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种图像渲染的方法的流程示意图,如图1所示,包括:
101、渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
102、计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
103、通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
104、分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
可选的,由双边深度滤波有边缘保持的特点,该滤波可以在深度不连续的地方对边缘进行保持。同时,本发明中是根据场景图中每个像素点的深度信息对双边深度滤波的参数做一个自适应的调整,这样就可以在场景图中的聚集物和模糊背景的边界避免颜色泄露的问题,且不会对其他区域造成反作用的影响。
上述技术方案,通过渲染出当前场景的场景图和深度图,并对深度图对场景图的像素点进行相关的计算,再根据计算得到的结果对场景图的像素点进行双边深度滤波,相比现有技术中采用多次绘制场景技术,经过多次渲染,本发明可以提高图像渲染的效率,同时,还可以实现景深效果。
图2是本发明实施例提供的另一种图像渲染的方法的流程示意图,如图2所示,包括:
201、渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息。
作为一种可选的实施方式,步骤201具体可以包括:
根据摄像机的位置渲染出当前场景的场景图和深度图。
可选的,由于摄像机的位置不同渲染出的场景图和深度图都可以是不同的,本发明中不同摄像机的位置进行限定。
可选的,所述深度图具体包含整个所述当前场景的深度信息,并将该深度信息与生成的场景图的每个像素点进行一一对应,构成一个矩阵,从而可以得到场景图中每个像素点的深度信息。
202、计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离。
可选的,步骤202中的预设区域具体可以定义为自动聚集区域。
作为一种可选的实施方式,步骤202具体可以包括:
通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
fd=Σp∈size(zone)WD(P)
其中,WD(p)为像素点p的深度信息的加权,d(p)是像素点p到所述区域的中心的距离,WG[d(p)]为根据高斯函数计算出的d(p)的高斯权重,depth(p)为像素点p的深度信息,size(zone)为所述区域的像素点的个数,fd为所述聚集距离。
作为一种可选的实施方式,步骤202具体可以包括:
通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
其中,为所有WD(p)的平均值,fd为所述聚集距离。
该实施方式中,由于计算聚集距离是采用上述区域中所有像素点的深度信息的加权的总和的平均值进行计算,这样就可以避免大量数字相加而可能引起的数字溢出。
可选的,该实施方式中,计算上述具体可以是将所述区域中每个像素点的WD(p)保存为一张大小为size(zone)的2D纹理,接收循环迭代,并一直对这个纹理进行采样,最终可以得到上述
203、通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径。
作为一种可选的实施方式,步骤203具体可以包括:
根据所述深度图和所述聚集距离通过透镜模型计算出所述场景图中每个像素点的模糊圈的直径。
可选的,该实施方式中,透镜模型具体可以包括:
其中,DCoC是模糊圈的直径,D是预先设置的透镜的直径,f是透镜的焦距,fd步骤202计算得到的聚集距离,depth(p)是像素点p的深度信息。
可选的,该实施方式中,透镜的直径的透镜的焦距都是定值,即可以认为计算模糊圈的直径的参考是不变的。其中,上述D可以设置20cm,上述f可以设置为30cm,对于场景图来说fd是不变的,而场景图的每个像素点的深度信息可以通过步骤201得到,这样就可以计算场景图中每个像素点的模糊程度,即每个像素点的模糊圈的直径。
作为一种可选的实施方式,步骤203具体可以包括:
通过所述深度图和所述聚集距离计算出归一化后的所述场景图中每个像素点的模糊圈的直径。
可选的,该实施方式中,对模糊圈的直径进行归一化处理具体可以通过如下公式对模糊圈的直径进行归一化处理:
其中,DCoCout是归一化处理后的模糊圈的直径,DCoCraw是归一化处理前的模糊圈的直径,DCoCmax是预先设置的最大模糊圈的直径(例如:12)。
该实施方式中,归一化处理后的模糊圈的直径更加适合双边深度滤波处理。
204、根据所述聚集距离分别计算针对所述场景图中每个像素点的双边深度滤波参数。
作为一种可选的实施方式,双边深度滤波参数可以包括:
高斯滤波参数和值域深度滤波参数。
可选的,该实施方式中,上述高斯滤波参数的计算方法为公知常识,本发明不作详细说明。
可选的,该实施方式中,可以根据所述聚集距离通过如下公式分别计算针对所述场景图中每个像素点的值域深度滤波参数:
σd=a[|depth(p)-fd|]2+σd0
其中,a和σd0为常数,depth(p)为当前计算的像素点的深度信息,fd为所述聚集距离。
通过上述公式计算出的值域深度滤波参数,可以实现只对步骤202中的预设区域进行边缘保持,而对其他区域不实现边缘保持。在实际应用中,如图3所示,在实现景深效果中,只需要对步骤202中的预设区域(例如:图3中亭子)进行边缘保持就可以实现景深效果,而其他区域(例如:图3中亭子以外的区域)可以不进行边缘保持。
205、分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
可选的,上述进行双边深度滤波具体就是采用双边深度滤波对场景图中的每个像素点进行模糊处理,而该双边深度滤波又是基于场景图中每个像素点的模糊圈的直径进行的,这样就可以实现对不同的像素点进行不同程度的模糊。
可选的,步骤205中用到的模糊圈的直径具体可以上述归一化处理后的模糊圈的直径。
作为一种可选的实施方式,步骤205具体可以包括:
分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行高斯滤波和值域深度滤波。
可选的,该实施方式中,具体可以通过如下公式对所述场景图中的每个像素点进行高斯滤波和值域深度滤波:
r(ξ,x)=c(ξ,x)×s(ξ,x)
其中,x为当前计算的像素点,ξ为像素点x附近的一个像素点,r(ξ,x)为像素点x的双边深度滤波的滤波系数,c(ξ,x)为像素点x的高斯滤波的滤波系数,s(ξ,x)为像素点x的值域深度滤波的滤波系数,s(ξ,x)满足如下条件:
δ[depty(ξ),depth(x)]=δ[depty(ξ)-depth(x)]=||depty(ξ)-depth(x)||
depty(x)和depty(ξ)分别为像素点x和像素点ξ的深度信息,σd为值域深度滤波的参数。
可选的,上述s(ξ,x)具体为值域深度滤波的基本公式,上述c(ξ,x)具体为高斯滤波的基本公式,其中,c(ξ,x)具体可以满足如下条件:
d(ξ,x)=d(ξ-x)=||ξ-x||
x为当前计算的像素点,ξ为像素点x附近的一个像素点,d(ξ,x)为像素点x与像素点ξ的距离,σg为高斯滤波的参数。
作为一种可选的实施方式,步骤205具体可以包括:
分别基于所述场景图中每个像素点的模糊圈的直径通过如下公式对所述场景图中的每个像素点进行双边深度滤波:
其中,x和y为当前计算的像素点在所述场景图中的坐标,resultColor(x,y)为当前计算的像素点的进行双边深度滤波后的结果,i和j为卷积核矩阵中的坐标,HalfKernelSize为KernelSize的值的一半,KernelSize为当前计算的像素点的卷积核,K(i,j)为卷积核矩阵中的坐标为i和j的点的卷积核,Color(x,y)为坐标为(x,y)的像素点的颜色值,KernelSize满足如下条件:
KernelSize=MaxKernelSize×DCoC
其中,MaxKernelSize为预先设置的卷积核,DCoC为当前计算的像素点的模糊圈的直径。
可选的,该实施方式中,对所述场景图中的每个像素点进行双边深度滤波具体可以是通过上式对所述场景图中的每个像素点进行卷积处理。
可选的,该实施方式中,上述K(i,j)具体可以满足如下条件:
其中,K(i,j)为最终卷积核在(i,j)处的值,G(i,j)为高斯滤波卷积核在(i,j)处的值,D(i,j)为值域深度滤波卷积核在(i,j)处的值,sum为卷积核矩阵中所有的G(i,j)×D(i,j)之和,σg为高斯滤波的参数,σd为值域深度滤波的参数。
该实施方式中,可以实现动态高斯滤波卷积核和值域深度滤波卷积核,以节约存储空间。
作为一种可选的实施方式,步骤203和步骤205都可以由实现本发明的设备的中央处理器(CentralProcessingUnit,CPU)的着色器实现。该实施方式中由CPU的着色器对场景图进行后处理(例如:计算像素点的模糊圈的直径,进行双边滤波处理),大大简化了计算的复杂性,并可以实现实时计算。
作为一种可选的实施方式,本发明可以应用于电子游戏和虚拟实现的场景渲染,和3D电视、电影的装置设备中用于再现三维场景,以及动画、电影制作过程中的场景优化或修饰。同时,本发明还可以应用于实时监控系统中,用于监控特定场景中突然出现的人物。本发明还可以配合相应的人脸识别技术,可以有效地对特定区域进行智能监控。
上述技术方案中,在上面实施例的基本上增加了,计算针对场景图中每个像素点的双边深度滤波参数,这样可以使图像渲染的效果更佳。同时,还可以提高图像渲染的效率。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至二实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一和实施例二。
图4是本发明实施例提供的一种图像渲染的设备的结构示意图,如图4所示,包括:渲染单元31、聚集距离计算单元32、直径计算单元33和滤波单元34,其中:
渲染单元31,用于渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
聚集距离计算单元32,用于计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
直径计算单元33,用于通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
滤波单元34,用于分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
可选的,由双边深度滤波有边缘保持的特点,该滤波可以在深度不连续的地方对边缘进行保持。同时,本发明中是根据场景图中每个像素点的深度信息对双边深度滤波的参数做一个自适应的调整,这样就可以在场景图中的聚集物和模糊背景的边界避免颜色泄露的问题,且不会对其他区域造成反作用的影响。
上述技术方案,通过渲染出当前场景的场景图和深度图,并对深度图对场景图的像素点进行相关的计算,再根据计算得到的结果对场景图的像素点进行双边深度滤波,相比现有技术中采用多次绘制场景技术,经过多次渲染,本发明可以提高图像渲染的效率,同时,还可以实现景深效果。
图5是本发明实施例提供的另一种图像渲染的设备的结构示意图,如图5所示,包括:渲染单元41、聚集距离计算单元42、直径计算单元43、参数计算单元44和滤波单元45,其中:
渲染单元41,用于渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息.
聚集距离计算单元42,用于计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离。
作为一种可选的实施方式,聚集距离计算单元42还可以用于通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
fd=Σp∈size(zone)WD(P)
其中,WD(p)为像素点p的深度信息的加权,d(p)是像素点p到所述区域的中心的距离,WG[d(p)]为根据高斯函数计算出的d(p)的高斯权重,depth(p)为像素点p的深度信息,size(zone)为所述区域的像素点的个数,fd为所述聚集距离。
作为一种可选的实施方式,聚集距离计算单元42还可以用于通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
其中,为所有WD(p)的平均值,fd为所述聚集距离。
该实施方式中,由于计算聚集距离是采用上述区域中所有像素点的深度信息的加权的总和的平均值进行计算,这样就可以避免大量数字相加而可能引起的数字溢出。
可选的,该实施方式中,计算上述具体可以是将所述区域中每个像素点的WD(p)保存为一张大小为size(zone)的2D纹理,接收循环迭代,并一直对这个纹理进行采样,最终可以得到上述
直径计算单元43,用于通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径。
作为一种可选的实施方式,直径计算单元43还可以用于根据所述深度图和所述聚集距离通过透镜模型分别计算出所述场景图中每个像素点的模糊圈的直径。
可选的,该实施方式中,透镜模型具体可以包括:
其中,DCoC是模糊圈的直径,D是预先设置的透镜的直径,f是透镜的焦距,fd聚集距离计算单元42计算得到的聚集距离,depth(p)是像素点p的深度信息。
可选的,该实施方式中,透镜的直径的透镜的焦距都是定值,即可以认为计算模糊圈的直径的参考是不变的。其中,上述D可以设置20cm,上述f可以设置为30cm,对于场景图来说fd是不变的,而场景图的每个像素点的深度信息可以通过渲染单元41得到,这样就可以计算场景图中每个像素点的模糊程度,即每个像素点的模糊圈的直径。
作为一种可选的实施方式,直径计算单元43还可以用于通过所述深度图和所述聚集距离分别计算出归一化后的所述场景图中每个像素点的模糊圈的直径。
可选的,该实施方式中,对模糊圈的直径进行归一化处理具体可以通过如下公式对模糊圈的直径进行归一化处理:
其中,DCoCout是归一化处理后的模糊圈的直径,DCoCraw是归一化处理前的模糊圈的直径,DCoCmax是预先设置的最大模糊圈的直径(例如:12)。
该实施方式中,归一化处理后的模糊圈的直径更加适合双边深度滤波处理。
参数计算单元44,用于根据所述聚集距离分别计算针对所述场景图中每个像素点的双边深度滤波参数。
作为一种可选的实施方式,双边深度滤波参数可以包括:
高斯滤波参数和值域深度滤波参数。
可选的,该实施方式中,上述高斯滤波参数的计算方法为公知常识,本发明不作详细说明。
可选的,该实施方式中,可以根据所述聚集距离通过如下公式分别计算针对所述场景图中每个像素点的值域深度滤波参数:
σd=a[|depth(p)-fd|]2+σd0
其中,a和σd0为常数,depth(p)为当前计算的像素点的深度信息,fd为所述聚集距离。
通过上述公式计算出的值域深度滤波参数,可以实现只对步骤202中的预设区域进行边缘保持,而对其他区域不实现边缘保持。在实际应用中,如图3所示,在实现景深效果中,只需要对聚集距离计算单元42中的预设区域(例如:图3中亭子)进行边缘保持就可以实现景深效果,而其他区域(例如:图3中亭子以外的区域)可以不进行边缘保持。
滤波单元45,用于分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
可选的,上述进行双边深度滤波具体就是采用双边深度滤波对场景图中的每个像素点进行模糊处理,而该双边深度滤波又是基于场景图中每个像素点的模糊圈的直径进行的,这样就可以实现对不同的像素点进行不同程度的模糊。
可选的,滤波单元45中用到的模糊圈的直径具体可以上述归一化处理后的模糊圈的直径。
作为一种可选的实施方式,滤波单元45还可以用于分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行高斯滤波和值域深度滤波。
可选的,该实施方式中,具体可以通过如下公式对所述场景图中的每个像素点进行高斯滤波和值域深度滤波:
r(ξ,x)=c(ξ,x)×s(ξ,x)
其中,x为当前计算的像素点,ξ为像素点x附近的一个像素点,r(ξ,x)为像素点x的双边深度滤波的滤波系数,c(ξ,x)为像素点x的高斯滤波的滤波系数,s(ξ,x)为像素点x的值域深度滤波的滤波系数,s(ξ,x)满足如下条件:
δ[depty(ξ),depth(x)]=δ[depty(ξ)-depth(x)]=||depty(ξ)-depth(x)||
depty(x)和depty(ξ)分别为像素点x和像素点ξ的深度信息,σd为值域深度滤波的参数。
可选的,上述s(ξ,x)具体为值域深度滤波的基本公式,上述c(ξ,x)具体为高斯滤波的基本公式,其中,c(ξ,x)具体可以满足如下条件:
d(ξ,x)=d(ξ-x)=||ξ-x||
x为当前计算的像素点,ξ为像素点x附近的一个像素点,d(ξ,x)为像素点x与像素点ξ的距离,σg为高斯滤波的参数。
作为一种可选的实施方式,滤波单元45还可以用于分别基于所述场景图中每个像素点的模糊圈的直径通过如下公式对所述场景图中的每个像素点进行双边深度滤波:
其中,x和y为当前计算的像素点在所述场景图中的坐标,resultColor(x,y)为当前计算的像素点的进行双边深度滤波后的结果,i和j为卷积核矩阵中的坐标,HalfKernelSize为KernelSize的值的一半,KernelSize为当前计算的像素点的卷积核,K(i,j)为卷积核矩阵中的坐标为i和j的点的卷积核,Color(x,y)为坐标为(x,y)的像素点的颜色值,KernelSize满足如下条件:
KernelSize=MaxKernelSize×DCoC
其中,MaxKernelSize为预先设置的卷积核,DCoC为当前计算的像素点的模糊圈的直径。
可选的,该实施方式中,对所述场景图中的每个像素点进行双边深度滤波具体可以是通过上式对所述场景图中的每个像素点进行卷积处理。
可选的,该实施方式中,上述K(i,j)具体可以满足如下条件:
其中,K(i,j)为最终卷积核在(i,j)处的值,G(i,j)为高斯滤波卷积核在(i,j)处的值,D(i,j)为值域深度滤波卷积核在(i,j)处的值,sum为卷积核矩阵中所有的G(i,j)×D(i,j)之和,σg为高斯滤波的参数,σd为值域深度滤波的参数。
该实施方式中,可以实现动态高斯滤波卷积核和值域深度滤波卷积核,以节约存储空间。
作为一种可选的实施方式,本发明可以应用于电子游戏和虚拟实现的场景渲染,和3D电视、电影的装置设备中用于再现三维场景,以及动画、电影制作过程中的场景优化或修饰。同时,本发明还可以应用于实时监控系统中,用于监控特定场景中突然出现的人物。本发明还可以配合相应的人脸识别技术,可以有效地对特定区域进行智能监控。
上述技术方案中,在上面实施例的基本上增加了,计算针对场景图中每个像素点的双边深度滤波参数,这样可以使图像渲染的效果更佳。同时,还可以提高图像渲染的效率。
图6是本发明实施例提供的另一种图像渲染的设备的结构示意图,如图6所示,包括:处理器51,其中:
处理器51用于执行如下步骤:
渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
可选的,由双边深度滤波有边缘保持的特点,该滤波可以在深度不连续的地方对边缘进行保持。同时,本发明中是根据场景图中每个像素点的深度信息对双边深度滤波的参数做一个自适应的调整,这样就可以在场景图中的聚集物和模糊背景的边界避免颜色泄露的问题,且不会对其他区域造成反作用的影响。
作为一种可选的实施方式,处理器51还可以用于执行如下步骤:
渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
通过所述深度图和所述聚集距离分别计算出所述场景图中每个像素点的模糊圈的直径;
根据所述聚集距离分别计算针对所述场景图中每个像素点的双边深度滤波参数;
分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波。
可选的,处理器51执行的渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息的步骤具体可以包括:
根据摄像机的位置渲染出当前场景的场景图和深度图。
可选的,由于摄像机的位置不同渲染出的场景图和深度图都可以是不同的,本发明中不同摄像机的位置进行限定。
可选的,所述深度图具体包含整个所述当前场景的深度信息,并将该深度信息与生成的场景图的每个像素点进行一一对应,构成一个矩阵,从而可以得到场景图中每个像素点的深度信息。
可选的,所述预设区域具体可以定义为自动聚集区域。
可选的,处理器51执行的计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离的步骤具体可以包括:
通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
fd=Σp∈size(zone)WD(P)
其中,WD(p)为像素点p的深度信息的加权,d(p)是像素点p到所述区域的中心的距离,WG[d(p)]为根据高斯函数计算出的d(p)的高斯权重,depth(p)为像素点p的深度信息,size(zone)为所述区域的像素点的个数,fd为所述聚集距离。
可选的,处理器51执行的计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离的步骤具体可以包括:
通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
其中,为所有WD(p)的平均值,fd为所述聚集距离。
该实施方式中,由于计算聚集距离是采用上述区域中所有像素点的深度信息的加权的总和的平均值进行计算,这样就可以避免大量数字相加而可能引起的数字溢出。
可选的,计算上述具体可以是将所述区域中每个像素点的WD(p)保存为一张大小为size(zone)的2D纹理,接收循环迭代,并一直对这个纹理进行采样,最终可以得到上述
可选的,处理器51执行的通过所述深度图和所述聚集距离分别计算出所述场景图中每个像素点的模糊圈的直径的步骤具体可以包括:
根据所述深度图和所述聚集距离通过透镜模型分别计算出所述场景图中每个像素点的模糊圈的直径。
可选的,透镜模型具体可以包括:
其中,DCoC是模糊圈的直径,D是预先设置的透镜的直径,f是透镜的焦距,fd处理器51计算得到的聚集距离,depth(p)是像素点p的深度信息。
可选的,透镜的直径的透镜的焦距都是定值,即可以认为计算模糊圈的直径的参考是不变的。其中,上述D可以设置20cm,上述f可以设置为30cm,对于场景图来说fd是不变的,而场景图的每个像素点的深度信息可以通过处理器51计算得到,这样就可以计算场景图中每个像素点的模糊程度,即每个像素点的模糊圈的直径。
可选的,处理器51执行的通过所述深度图和所述聚集距离分别计算出所述场景图中每个像素点的模糊圈的直径的步骤具体可以包括:
通过所述深度图和所述聚集距离分别计算出归一化后的所述场景图中每个像素点的模糊圈的直径。
可选的,对模糊圈的直径进行归一化处理具体可以通过如下公式对模糊圈的直径进行归一化处理:
其中,DCoCout是归一化处理后的模糊圈的直径,DCoCraw是归一化处理前的模糊圈的直径,DCoCmax是预先设置的最大模糊圈的直径(例如:12)。
该实施方式中,归一化处理后的模糊圈的直径更加适合双边深度滤波处理。
可选的,双边深度滤波参数可以包括:
高斯滤波参数和值域深度滤波参数。
可选的,上述高斯滤波参数的计算方法为公知常识,本发明不作详细说明。
可选的,可以根据所述聚集距离通过如下公式分别计算针对所述场景图中每个像素点的值域深度滤波参数:
σd=a[|depth(p)-fd|]2+σd0
其中,a和σd0为常数,depth(p)为当前计算的像素点的深度信息,fd为所述聚集距离。
通过上述公式计算出的值域深度滤波参数,可以实现只对步骤202中的预设区域进行边缘保持,而对其他区域不实现边缘保持。在实际应用中,如图3所示,在实现景深效果中,只需要对上述预设区域(例如:图3中亭子)进行边缘保持就可以实现景深效果,而其他区域(例如:图3中亭子以外的区域)可以不进行边缘保持。
可选的,处理器51执行的分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波的步骤具体可以包括:
分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行高斯滤波和值域深度滤波。
可选的,具体可以通过如下公式对所述场景图中的每个像素点进行高斯滤波和值域深度滤波:
r(ξ,x)=c(ξ,x)×s(ξ,x)
其中,x为当前计算的像素点,ξ为像素点x附近的一个像素点,r(ξ,x)为像素点x的双边深度滤波的滤波系数,c(ξ,x)为像素点x的高斯滤波的滤波系数,s(ξ,x)为像素点x的值域深度滤波的滤波系数,s(ξ,x)满足如下条件:
δ[depty(ξ),depth(x)]=δ[depty(ξ)-depth(x)]=||depty(ξ)-depth(x)||
depty(x)和depty(ξ)分别为像素点x和像素点ξ的深度信息,σd为值域深度滤波的参数。
可选的,上述s(ξ,x)具体为值域深度滤波的基本公式,上述c(ξ,x)具体为高斯滤波的基本公式,其中,c(ξ,x)具体可以满足如下条件:
d(ξ,x)=d(ξ-x)=||ξ-x||
x为当前计算的像素点,ξ为像素点x附近的一个像素点,d(ξ,x)为像素点x与像素点ξ的距离,σg为高斯滤波的参数。
可选的,处理器51执行的分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波的步骤具体可以包括:
分别基于所述场景图中每个像素点的模糊圈的直径通过如下公式对所述场景图中的每个像素点进行双边深度滤波:
其中,x和y为当前计算的像素点在所述场景图中的坐标,resultColor(x,y)为当前计算的像素点的进行双边深度滤波后的结果,i和j为卷积核矩阵中的坐标,HalfKernelSize为KernelSize的值的一半,KernelSize为当前计算的像素点的卷积核,K(i,j)为卷积核矩阵中的坐标为i和j的点的卷积核,Color(x,y)为坐标为(x,y)的像素点的颜色值,KernelSize满足如下条件:
KernelSize=MaxKernelSize×DCoC
其中,MaxKernelSize为预先设置的卷积核,DCoC为当前计算的像素点的模糊圈的直径。
可选的,该实施方式中,对所述场景图中的每个像素点进行双边深度滤波具体可以是通过上式对所述场景图中的每个像素点进行卷积处理。
可选的,该实施方式中,上述K(i,j)具体可以满足如下条件:
其中,K(i,j)为最终卷积核在(i,j)处的值,G(i,j)为高斯滤波卷积核在(i,j)处的值,D(i,j)为值域深度滤波卷积核在(i,j)处的值,sum为卷积核矩阵中所有的G(i,j)×D(i,j)之和,σg为高斯滤波的参数,σd为值域深度滤波的参数。
该实施方式中,可以实现动态高斯滤波卷积核和值域深度滤波卷积核,以节约存储空间。
上述技术方案,通过渲染出当前场景的场景图和深度图,并对深度图对场景图的像素点进行相关的计算,再根据计算得到的结果对场景图的像素点进行双边深度滤波,相比现有技术中采用多次绘制场景技术,经过多次渲染,本发明可以提高图像渲染的效率,同时,还可以实现景深效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (8)
1.一种图像渲染的方法,其特征在于,包括:
渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波;
其中,所述通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径,包括:
根据所述深度图和所述聚集距离通过透镜模型计算出所述场景图中每个像素点的模糊圈的直径;或者
通过所述深度图和所述聚集距离计算出归一化后的所述场景图中每个像素点的模糊圈的直径;
其中,所述分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波,包括:
分别基于所述场景图中每个像素点的模糊圈的直径通过如下公式对所述场景图中的每个像素点进行双边深度滤波:
其中,x和y为当前计算的像素点在所述场景图中的坐标,resultColor(x,y)为当前计算的像素点的进行双边深度滤波后的结果,i和j为卷积核矩阵中的坐标,HalfKernelSize为KernelSize的值的一半,KernelSize为当前计算的像素点的卷积核,K(i,j)为卷积核矩阵中的坐标为i和j的点的卷积核,Color(x,y)为坐标为(x,y)的像素点的颜色值,KernelSize满足如下条件:
KernelSize=MaxKernelSize×DCoC
其中,MaxKernelSize为预先设置的卷积核,DCoC为当前计算的像素点的模糊圈的直径。
2.如权利要求1所述的方法,其特征在于,所述计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离包括:
通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
fd=Σp∈size(zone)WD(P)
其中,WD(p)为像素点p的深度信息的加权,d(p)是像素点p到所述区域的中心的距离,WG[d(p)]为根据高斯函数计算出的d(p)的高斯权重,depth(p)为像素点p的深度信息,size(zone)为所述区域的像素点的个数,fd为所述聚集距离;
或者,通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
其中,为所有WD(p)的平均值,fd为所述聚集距离。
3.如权利要求1所述的方法,其特征在于,所述计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离之后,所述分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波之前,所述方法还包括:
根据所述聚集距离分别计算针对所述场景图中每个像素点的双边深度滤波参数,所述参数包括:
高斯滤波参数和值域深度滤波参数。
4.如权利要求3所述的方法,其特征在于,所述根据所述聚集距离分别计算针对所述场景图中每个像素点的值域深度滤波参数包括:
根据所述聚集距离通过如下公式分别计算针对所述场景图中每个像素点的值域深度滤波参数:
σd=a[|depth(p)-fd|]2+σd0
其中,a和σd0为常数,depth(p)为当前计算的像素点的深度信息,fd为所述聚集距离。
5.一种图像渲染的设备,其特征在于,包括:渲染单元、聚集距离计算单元、直径计算单元和滤波单元,其中:
所述渲染单元,用于渲染出当前场景的场景图和深度图,所述深度图包含所述场景图中每个像素点对应的所述当前场景的深度信息;
所述聚集距离计算单元,用于计算所述场景图中的预设区域中所有像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离;
所述直径计算单元,用于通过所述深度图和所述聚集距离计算出所述场景图中每个像素点的模糊圈的直径;
所述滤波单元,用于分别基于所述场景图中每个像素点的模糊圈的直径对所述场景图中的每个像素点进行双边深度滤波;
其中,所述直径计算单元具体用于根据所述深度图和所述聚集距离通过透镜模型计算出所述场景图中每个像素点的模糊圈的直径;或者所述直径计算单元具体用于通过所述深度图和所述聚集距离计算出归一化后的所述场景图中每个像素点的模糊圈的直径;
所述滤波单元具体用于分别基于所述场景图中每个像素点的模糊圈的直径通过如下公式对所述场景图中的每个像素点进行双边深度滤波:
其中,x和y为当前计算的像素点在所述场景图中的坐标,resultColor(x,y)为当前计算的像素点的进行双边深度滤波后的结果,i和j为卷积核矩阵中的坐标,HalfKernelSize为KernelSize的值的一半,KernelSize为当前计算的像素点的卷积核,K(i,j)为卷积核矩阵中的坐标为i和j的点的卷积核,Color(x,y)为坐标为(x,y)的像素点的颜色值,KernelSize满足如下条件:
KernelSize=MaxKernelSize×DCoC
其中,MaxKernelSize为预先设置的卷积核,DCoC为当前计算的像素点的模糊圈的直径。
6.如权利要求5所述的设备,其特征在于,所述聚集距离计算单元还用于通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
fd=Σp∈size(zone)WD(P)
其中,WD(p)为像素点p的深度信息的加权,d(p)是像素点p到所述区域的中心的距离,WG[d(p)]为根据高斯函数计算出的d(p)的高斯权重,depth(p)为像素点p的深度信息,size(zone)为所述区域的像素点的个数,fd为所述聚集距离;
或者,所述聚集距离计算单元还用于通过如下公式计算所述场景图中的预设区域中每个像素点的深度信息的加权,并将所述所有像素点的深度信息的加权的总和作为聚集距离:
WD(p)=WG[d(p)]×depth(p)
其中,为所有WD(p)的平均值,fd为所述聚集距离。
7.如权利要求5所述的设备,其特征在于,所述设备还包括:
参数计算单元,用于根据所述聚集距离分别计算针对所述场景图中每个像素点的双边深度滤波参数,所述参数包括:
高斯滤波参数和值域深度滤波参数。
8.如权利要求7所述的设备,其特征在于,所述参数计算单元还用于根据所述聚集距离通过如下公式分别计算针对所述场景图中每个像素点的值域深度滤波参数:
σd=a[|depth(p)-fd|]2+σd0
其中,a和σd0为常数,depth(p)为当前计算的像素点的深度信息,fd为所述聚集距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210477013.9A CN102968814B (zh) | 2012-11-22 | 2012-11-22 | 一种图像渲染的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210477013.9A CN102968814B (zh) | 2012-11-22 | 2012-11-22 | 一种图像渲染的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968814A CN102968814A (zh) | 2013-03-13 |
CN102968814B true CN102968814B (zh) | 2015-11-25 |
Family
ID=47798939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210477013.9A Expired - Fee Related CN102968814B (zh) | 2012-11-22 | 2012-11-22 | 一种图像渲染的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968814B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103327413A (zh) * | 2013-06-26 | 2013-09-25 | 四川长虹电器股份有限公司 | 一种在智能电视中实现alpha动画的方法 |
CN103745455B (zh) * | 2013-12-20 | 2016-06-15 | 大连理工大学 | 一种面向运动模糊的场景空间划分方法 |
CN105513122B (zh) * | 2014-09-24 | 2019-01-25 | 中兴通讯股份有限公司 | 阴影体的建立方法及装置 |
CN105574818B (zh) * | 2014-10-17 | 2020-07-17 | 中兴通讯股份有限公司 | 一种景深渲染方法和装置 |
CN105590294B (zh) * | 2014-11-18 | 2019-02-05 | 联想(北京)有限公司 | 一种图像处理方法和电子设备 |
CN105721852B (zh) * | 2014-11-24 | 2018-12-14 | 奥多比公司 | 用于确定深度细化图像捕获指令的方法、存储设备和系统 |
CN106384378A (zh) * | 2016-08-31 | 2017-02-08 | 上海交通大学 | 一种基于GPU的广义mipmap插值实时景深渲染方法 |
CN108886572B (zh) * | 2016-11-29 | 2021-08-06 | 深圳市大疆创新科技有限公司 | 调整图像焦点的方法和系统 |
CN106981044B (zh) * | 2017-03-20 | 2020-06-23 | 成都通甲优博科技有限责任公司 | 一种图像虚化方法及系统 |
CN107633497A (zh) * | 2017-08-31 | 2018-01-26 | 成都通甲优博科技有限责任公司 | 一种图像景深渲染方法、系统及终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509294A (zh) * | 2011-11-08 | 2012-06-20 | 清华大学深圳研究生院 | 一种基于单幅图像的全局深度估计方法 |
CN102750726A (zh) * | 2011-11-21 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种基于OpenGL实现景深效果的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8532425B2 (en) * | 2011-01-28 | 2013-09-10 | Sony Corporation | Method and apparatus for generating a dense depth map using an adaptive joint bilateral filter |
-
2012
- 2012-11-22 CN CN201210477013.9A patent/CN102968814B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509294A (zh) * | 2011-11-08 | 2012-06-20 | 清华大学深圳研究生院 | 一种基于单幅图像的全局深度估计方法 |
CN102750726A (zh) * | 2011-11-21 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种基于OpenGL实现景深效果的方法 |
Non-Patent Citations (2)
Title |
---|
Bilateral Depth-Discontinuity Filter for Novel View Synthesis;Ismael Daribo等;《Multimedia Signal Processing (MMSP), 2010 IEEE International Workshop on》;20101006;第145-149页 * |
基于分割的离焦图像深度图提取方法;史国凯等;《液晶与显示》;20120430;第27卷(第2期);第229-234页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102968814A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968814B (zh) | 一种图像渲染的方法及设备 | |
Li et al. | SPM-BP: Sped-up PatchMatch belief propagation for continuous MRFs | |
CN115699114B (zh) | 用于分析的图像增广的方法和装置 | |
CN107274476B (zh) | 一种阴影图的生成方法及装置 | |
US8861836B2 (en) | Methods and systems for 2D to 3D conversion from a portrait image | |
CN102835119B (zh) | 支持自动立体显示器上的实时3d图像渲染的多核心处理器 | |
US9454851B2 (en) | Efficient approach to estimate disparity map | |
CN101605270B (zh) | 生成深度图的方法和装置 | |
US8897542B2 (en) | Depth map generation based on soft classification | |
US20080165181A1 (en) | Rendering 3d video images on a stereo-enabled display | |
US20120249836A1 (en) | Method and apparatus for performing user inspired visual effects rendering on an image | |
US7791605B2 (en) | Universal rasterization of graphic primitives | |
CN102903086B (zh) | 一种待拼接图像亮度的调整方法和装置 | |
CN104010180B (zh) | 三维视频滤波方法和装置 | |
CN104246822A (zh) | 图像增强 | |
CN108665494A (zh) | 基于快速引导滤波的景深实时渲染方法 | |
US8854392B2 (en) | Circular scratch shader | |
CN104253929A (zh) | 视频降噪方法及其系统 | |
CN104735435A (zh) | 影像处理方法及电子装置 | |
CN111951368A (zh) | 一种点云、体素和多视图融合的深度学习方法 | |
BR102020027013A2 (pt) | Método para gerar uma imagem multiplano adaptativa a partir de uma única imagem de alta resolução | |
CN103093416A (zh) | 一种基于图形处理器分区模糊的实时景深模拟方法 | |
Yuan et al. | Free-viewpoint image based rendering with multi-layered depth maps | |
CN116563172A (zh) | 一种vr全球化在线教育互动优化增强方法及装置 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20181122 |
|
CF01 | Termination of patent right due to non-payment of annual fee |