一种蓝屏抠图方法技术

技术编号:10748523 阅读:177 留言:1更新日期:2014-12-10 19:26
本发明专利技术公开了一种蓝屏抠图方法,先将视频传递到GPU中,通过在GPU中对视频帧进行蓝屏抠图处理,这样提高了抠图的速率。具体的讲,先对视频帧提取背景色,根据背景色,利用色差抠图技术对蓝屏图像进行不透明度处理,再经过二值化处理后得到初始不透明度图像,然后利用彩色图像的梯度信息和改进的联合双边滤波器对初始不透明度进行优化得到最终不透明度图像,最后对最终不透明度图像进行背景色溢出去除后回传到CPU客户端,通过显示设备显示。这样在整个处理过程中大大减少了人工交互和参数的调整。

【技术实现步骤摘要】
一种蓝屏抠图方法
本专利技术属于视觉特效领域,更为具体地讲,涉及一种蓝屏抠图方法。
技术介绍
抠图是指从图像或视频序列中精确地提取出前景对象的一种技术。抠图技术作为视觉特效领域的一种关键技术,被广泛地应用于图像编辑和电影制作等领域。但由于抠图问题的欠约束性,求解该问题时需要增加额外的约束条件,因此在影视制作中,通常采用蓝屏或者绿屏作为拍摄背景,以此来降低该问题的求解难度,这种将蓝屏或者绿屏作为背景的抠图技术通常叫做蓝屏抠图技术。蓝屏抠图发展到今天已经产生了许多不同的技术。常见的蓝屏抠图技术主要有:亮度抠图(LumaKeying)、差异抠图(DifferenceKeying)、色度抠图(ChromaKeying)、色差抠图(ColorDifferenceKeying)、3D抠图(3DKeying)。亮度抠图技术利用图像的亮度信息来求解不透明度。对于给定的RGB三通道彩色图像,先将其转换到HLS颜色空间,然后取亮度通道L进行二值化操作,得到的结果即为前景的不透明度。简单的硬阈值操作通常会造成边缘和半透明信息的严重丢失,因此,在实际应用中通常采取软阈值操作,即定义一个渐变的范围,使得不透明度从0到1平缓变化。由于该技术在抠图过程中只考虑了图像的亮度信息,而没有考虑图像的颜色信息,因此,对于大多数图像,该方法效果不够理想。差异抠图技术利用前景图像与背景图像的差异求解不透明度。差异抠图技术对背景没有严格的限制,不仅适用于单色背景,对于背景颜色复杂的情况同样适用。然而,由于差异抠图技术需要背景图像已知,因此其使用范围受到了一定的限制。色度抠图技术利用图像的颜色信息求解不透明度。对于给定的RGB三通道彩色图像,首先将其转换到HLS空间,然后对H通道进行阈值分割求取不透明度。在实际应用中,受光照等环境因素的影响,背景颜色会出现一定的波动,因此需要设置一个软阈值。然而,H通道虽然能较好地区分颜色信息,但是对于压缩的视频帧,H通道常常出现块状效应(blocky)。为了提高抠图精度,通常将色度(H)、亮度(L)、饱和度(S)三个通道结合起来。与单一通道的抠图技术相比,联合H、L、S三通道的抠图技术要更准确,不足之处是需要调节的参数较多,人工交互比较大。色差抠图技术利用R、G、B三通道的颜色差异来求解不透明度。以蓝屏视频为例,对于输入视频帧I,其不透明度表示为α=IB-MAX(IR,IG)。色差抠图技术比较简单,速度较快且不需要进行阈值判断,然而,效果不够理想。3D抠图技术是指在三维颜色空间(RGB、HLS等),根据像素的空间距离求解不透明度。由于背景的颜色变化范围较小,因此可以在三维空间中定义一个3D形状将前景和背景区分开来。该3D形状可以是球体,立方体,椭球体等。以简单的球体为例,为了获得渐变的不透明度,需要定义一大一小两个球体,小球体里面的像素为背景,大球体以外的像素为前景,介于两者之间的像素属于过度区域,不透明度在0到1之间变化。3D抠图技术虽然能取得较好的效果,但是速度和人工交互仍然有待进一步提高。从以上分析可以看出,现有的蓝屏抠图技术在抠图速度,抠图质量和人工交互上不能同时取得理想的效果,因此,对蓝屏抠图技术进行深入研究是很有必要的。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种蓝屏抠图方法,通过在GPU中对视频帧进行蓝屏抠图处理,具有抠图速度快,抠图效果好,且不需要调整太多的参数和人工交互等优点。为实现上述专利技术目的,本专利技术一种蓝屏抠图方法,其特征在于,包括以下步骤:(1)、传递视频到GPU对GPU进行初始化;在CPU端通过视频输入、输出接口向GPU端申请纹理内存、常量内存和全局内存;CPU端申请内存成功后,再次通过视频输入、输出接口将视频帧传递到纹理内存,将视频的参数向量传递到常量内存,同时将选取的一幅背景合成图像传递到全局内存;(2)、GPU的并行计算线程块对视频进行处理从纹理内存中读取视频帧,从常量内存中读取视频的参数向量到GPU的并行计算线程块,在GPU的并行计算线程块中分别对所有视频帧进行处理;(2.1)、提取背景色将视频的第一帧图像作为蓝屏图像,再读取视频的参数向量得到蓝屏图像的结构信息;将视频的第一帧图像从RGB颜色空间转换到转换到HLS颜色空间,对HLS颜色空间中H通道的图像颜色进行颜色直方图统计,将颜色直方图中出现频率最大的颜色作为背景色;(2.2)、获取蓝屏图像的初始不透明度参照步骤(2.1)得到的背景色,利用色差抠图技术对蓝屏图像的每个像素点进行不透明度处理,即通过公式α′i=Iikey-MAX(Ii,I'i),得到α′i,其中,i=1,2,…,n,n表示蓝屏图像中像素点的个数,Iikey表示像素点在BRG空间内与背景色相同的通道颜色值,Ii,I'i分别表示像素点在BRG空间内另外两个通道颜色值,所有的α′i组成一幅Trimap图,再对Trimap图中的每个像素点进行二值化处理,得到每个点的初始不透明度αi,所有的αi组成一幅初始不透明度图像;(2.3)、利用蓝屏图像的梯度信息对初始不透明度图像进行边缘补充在RGB空间的蓝屏图像的梯度信息为:Fθ(x,y)={12[(gxx+gyy)+(gxx-gyy)cos2θ+2gxysin2θ]}1/2---(a)]]>θxy=12arctan[2gxy(gxx-gyy)]---(b)]]>其中,Fθ(x,y)表示蓝屏图像的不透明度,θxy表示蓝屏图像在坐标(x,y)处最大变化率的方向,gxx、gyy和gxy的计算公式如下:gxx=|∂R∂x|2+|∂G∂x|2+|∂B∂x|2]]>gyy=|∂R∂y|2+|∂G∂y|2+|∂B∂y|2---(c)]]>gxy=∂R∂x∂R∂y+∂G∂x∂G∂y+∂B∂x∂B∂y]]>根据公式(b)得到Fθ(x,y)两个相隔90°的角度值,即公式(b)与两个正交方向的每个像素点相关,则对于每个像素点,取Fθ(x,y)两个正交方向的角度值,将两个角度值的最大值记为Fi;比较每个像素点的Fi值与αi值,取两者之间的最大值作为每个像素点边缘补充后的不透明度,即αinew=MAX(αi,Fi),所有的αinew组成一幅边缘补充后的不透明度图像;(2.4)、利用改进的联合双边滤波器对边缘补充后的不透明度图像进行滤波优化将边缘补充后的不透明度图像作为噪声图像,再将蓝屏图像的结构信息传递到噪声图像中,通过改进的联合双边滤波器进行滤波处理;αjb(p)=Σq∈Ω(p)f(p-q)·g(I(p)-I(q))·α(q)Σq&Eleme本文档来自技高网
...
一种蓝屏抠图方法

【技术保护点】
一种蓝屏抠图方法,其特征在于,包括以下步骤:(1)、传递视频到GPU对GPU进行初始化;在CPU端通过视频输入、输出接口向GPU端申请纹理内存、常量内存和全局内存;CPU端申请内存成功后,再次通过视频输入、输出接口将视频帧传递到纹理内存,将视频的参数向量传递到常量内存,同时将选取的一幅背景合成图像传递到全局内存;(2)、GPU的并行计算线程块对视频进行处理从纹理内存中读取视频帧,从常量内存中读取视频的参数向量到GPU的并行计算线程块,在GPU的并行计算线程块中分别对所有视频帧进行处理;(2.1)、提取背景色将视频的第一帧图像作为蓝屏图像,再读取视频的参数向量得到蓝屏图像的结构信息;将视频的帧图像从RGB颜色空间转换到转换到HLS颜色空间,对HLS颜色空间中H通道的图像颜色进行颜色直方图统计,将颜色直方图中出现频率最大的颜色作为背景色;(2.2)、获取蓝屏图像的初始不透明度参照步骤(2.1)得到的背景色,利用色差抠图技术对蓝屏图像的每个像素点进行不透明度处理,即通过公式α′i=Iikey‑MAX(Ii,I'i),得到α′i,其中,i=1,2,…,n,n表示蓝屏图像中像素点的个数,Iikey表示像素点在BRG空间内与背景色相同的通道颜色值,Ii,I'i分别表示像素点在BRG空间内另外两个通道颜色值,所有的α′i组成一幅Trimap图,再对Trimap图中的每个像素点进行二值化处理,得到每个点的初始不透明度αi,所有的αi组成一幅初始不透明度图像;(2.3)、利用彩色图像的梯度信息对初始不透明度图像进行边缘补充在RGB空间的蓝屏图像的梯度信息为:Fθ(x,y)={12[(gxx+gyy)+(gxx-gyy)cos2θ+2gxysin2θ]}1/2---(a)]]>θxy=12arctan[2gxy(gxx-gyy)]---(b)]]>其中,Fθ(x,y)表示蓝屏图像的不透明度,θxy表示蓝屏图像在坐标(x,y)处最大变化率的方向,gxx、gyy和gxy的计算公式如下:gxx=|∂R∂x|2+|∂G∂x|2+|∂B∂x|2]]>gyy=|∂R∂y|2+|∂G∂y|2+|∂B∂y|2---(c)]]>gxy=∂R∂x∂R∂y+∂G∂x∂G∂y+∂B∂x∂B∂y]]>根据公式(b)得到Fθ(x,y)两个相隔90°的角度值,即公式(b)与两个正交方向的每个像素点相关,则对于每个像素点,取Fθ(x,y)两个正交方向的角度值,将两个角度值的最大值记为Fi;比较每个像素点的Fi值与αi值,取两者之间的最大值作为每个像素点边缘补充后的不透明度,即αinew=MAX(αi,Fi),所有的αinew组成一幅边缘补充后的不透明度图像;(2.4)、利用改进的联合双边滤波器对边缘补充后的不透明度图像进行滤波优化将边缘补充后的不透明度图像作为噪声图像,再将蓝屏图像的结构信息传递到噪声图像中,通过改进的联合双边滤波器进行滤波处理;αjb(p)=Σq∈Ω(p)f(p-q)·g(I(p)-I(q))·α(q)Σq∈Ω(p)f(p-q)·g(I(p)-I(q))---(d)]]>其中,函数指数中的表示范数,σs表示高斯核宽度参数;p表示一个像素点,Ω(p)表示以p为中心的邻域窗口,q表示Ω(p)中的像素点,函数t表示颜色差,t=I(p)‑I(q)表示两个像素点在R、G、B通道的颜色差,I(p)表示输入的RGB蓝屏图像中像素点p的颜色值,α(q)表示q像素点的边缘补充后的不透明度,αjb(p)表示p像素点在进行滤波之后的不透明度,通过对每个像素点进行滤波优化,得到最终的不透明度图像;(2.5)、去除背景色溢出及图像合成将最终的不透明度图像与蓝屏图像进行与操作,得到前景图像F,然后从GPU的全局内存中读取背景合成图像,再与前景图像通过合成方程C=αF+(1‑α)B合成,得到初始合成图像C,其中F代表前景图像,B代表背景合成图像,α代表最终的不透明度图像;将初始合成图像C中的每个像素点在H通道的颜色值与背景色的颜色值进行比较,如果它们的差异值...

【技术特征摘要】
1.一种蓝屏抠图方法,其特征在于,包括以下步骤:(1)、传递视频到GPU对GPU进行初始化;在CPU端通过视频输入、输出接口向GPU端申请纹理内存、常量内存和全局内存;CPU端申请内存成功后,再次通过视频输入、输出接口将视频帧传递到纹理内存,将视频的参数向量传递到常量内存,同时将选取的一幅背景合成图像传递到全局内存;(2)、GPU的并行计算线程块对视频进行处理从纹理内存中读取视频帧,从常量内存中读取视频的参数向量到GPU的并行计算线程块,在GPU的并行计算线程块中分别对所有视频帧进行处理;(2.1)、提取背景色将视频的第一帧图像作为蓝屏图像,再读取视频的参数向量得到蓝屏图像的结构信息;将视频的第一帧图像从RGB颜色空间转换到转换到HLS颜色空间,对HLS颜色空间中H通道的图像颜色进行颜色直方图统计,将颜色直方图中出现频率最大的颜色作为背景色;(2.2)、获取蓝屏图像的初始不透明度参照步骤(2.1)得到的背景色,利用色差抠图技术对蓝屏图像的每个像素点进行不透明度处理,即通过公式α′i=Iikey-MAX(Ii,I'i),得到αi',其中,i=1,2,…,n,n表示蓝屏图像中像素点的个数,Iikey表示像素点在BRG空间内与背景色相同的通道颜色值,Ii,I'i分别表示像素点在BRG空间内另外两个通道颜色值,所有的α′i组成一幅Trimap图,再对Trimap图中的每个像素点进行二值化处理,得到每个点的初始不透明度αi,所有的αi组成一幅初始不透明度图像;(2.3)、利用蓝屏图像的梯度信息对初始不透明度图像进行边缘补充在RGB空间的蓝屏图像的梯度信息为:其中,Fθ(x,y)表示蓝屏图像的不透明度,θxy表示蓝屏图像在坐标(x,y)处最大变化率的方向,gxx、gyy和gxy的计算公式如下:根据公式(b)得到Fθ(x,y)两个相隔90°的角度值,即公式(b)与两个正交方向的每个像素点相关,则对于每个像素点,取Fθ(x,y)两个正交方向的角度值,将两个角度值的最大值记为Fi;比较每个像素点的Fi值与αi...

【专利技术属性】
技术研发人员:胡绍湘詹肇楷陈奋
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有1条评论
  • 来自[天津市联通] 2014年12月15日 18:54
    电脑蓝屏又叫蓝屏死机BlueScreenofDeath简称BSoD是微软的Windows系列操作系统在无法从一个系统错误中恢复过来时为保护电脑数据文件不被破坏而强制显示的屏幕图像Windows操作系统的蓝屏死机提示已经成为标志性的画面
    0
1