一种基于图形处理器的3d视频颜色自动校正方法

文档序号:7553914阅读:296来源:国知局
专利名称:一种基于图形处理器的3d视频颜色自动校正方法
技术领域
本发明涉及一种基于图形处理器的3D视频颜色自动校正方法。
背景技术
视觉是人类获取信息的最主要的手段,视觉所获取的信息量约占人类所获取的总信息量的60%,其对人类的重要性不言而喻。而图像正是人类获取视觉信息的主要途径,是对场景做出客观描述的第一手材料。图像处理就是人们对图像进行加工,以满足其视觉心理或应用需求的行为,有助于其做出相应的行为规划和决策。随着人工智能和计算机图形学等课题的深入研究和不断发展,图像处理技术进入了高速发展期。在针对一些特定的研究(如立体视觉、医学图像分析与遥感图像融合)时,人们希望从图像采集设备中得到的图像序列具有良好的颜色一致性。但是,由于受图像采集设备和光源分布变化的影响,摄像机在不同视点下拍摄的相同物体的光度和色度可能存在较大差异。人类的视觉系统具有颜色恒常性,能够在一定程度上消除各种条件下颜色的影响,正确感知物体固有的颜色。使用计算机进行图像分析时,也需要计算机系统具备对图像间的这种差异进行处理的能力,否则会影响后续处理的效果。比如,全景图像的拼接中,图像序列间颜色的不匹配会严重影响图像拼接效果,甚至产生错误拼接。因此,在实际应用中通常需要考虑图像的颜色校正问题。现有的图像颜色校正方法通常可以分为两类:1)基于图像设备的校正方法,通过确定源颜色空间到目标颜色空间的映射关系实现颜色空间转换,其中的代表方法是矩阵法(Marszalec E and Pietikainen M 1996)、查表法(Henry R Kang 1995)、多项式驾照法(王永刚2001)和人工神经网络法(赵忠旭2000),这类方法常用于确定图像输入输出设备的前提下;2)基于图像分析的校正方法,一方面可以利用色度均值(Gasparinif andSchettinir 2003)和分布特性根据自身需要进行自校正,另一方面可以指定参考图像,其它待校正图像的颜色风格都要与其一致,通常采用统计信息(郑建铧2003)或区域信息作为校正信息进行准确的校正。对于图像颜色校正,传统的校正算法都需要好几个过程,需要进行大量的计算,而传统算法的大量代数运算均由CPU完成,大大限制了图像颜色校正的速度;此外,部分算法需要对图像进行分割并提取图像的特征点,然后再进行匹配校正,这些步骤均需要进行大量运算,而且特征点提取和匹配的正确率会受图像质量及图像畸变程度的影响。

发明内容
本发明的目的在于克服现有技术的不足,提供一种新型的基于图形处理器的3D视频颜色自动校正方法,充分利用图形处理器GPU的并行性和可编程能力,将大量代数运算从CPU转移至GPU,释放了 CPU且减少了 CPU与GPU之间的通信量,大大提高了图像颜色校正的速度;同时,颜色自动校正算法只需要用户指定参考图像和待校正图像,算法会根据待校正图像与参考图像间准确的校正信息来选取合适的校正方式和校正参数,从而使待校正图像在校正后获得预期的效果,算法真正的实现了全自动校正;此外,算法不会受图像失真或者画面畸变的影响,算法具有良好的鲁棒性。本发明的目的是通过以下技术方案来实现的:一种基于图形处理器的3D视频颜色自动校正方法,它包括以下步骤:
51:将3D视频拆分为每一帧的左右眼原 52:选择其中一帧左右眼原图作为待校正图像,并同时选取参考图像;
S3:将待校正图像和参考图像转换为图形处理器GPU可以处理的文件形式,充分利用图形处理器GPU的并行性和可编程能力将大量代数运算从中央处理器CPU转移至图形处理器 GPU;
S4:将待校正图像和参考图像从RGB格式转换为Lab格式;
S5:利用图形处理器GPU提取待校正图像和参考图像的有效统计信息,并对待校正图像进行校正;
56:将待校正图像从Lab格式转换为RGB格式,并进行越界检测校正处理;
57:重复步骤S2 S6,完成3D·视频颜色自动校正。其中,步骤S3所述的将待校正图像和参考图像转换为图形处理器GPU可以处理的文件形式的方法包括以下两种:
(1)将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据;
(2)将待校正图像和参考图像读入内存并将上行到图形处理器GPU中。进一步地,将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据的步骤为:使用DirectX提供的函数将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据。进一步地,将待校正图像和参考图像读入内存并将上行到图形处理器GPU中的步骤为:
53021:将待校正图像和参考图像读入内存;
53022:使用OpenGL或DirectX提供的函数将内存里的数据上行到图形处理器GPU中。步骤S4所述的将待校正图像和参考图像从RGB格式转换为Lab格式的步骤为:
5401:将待校正图像和参考图像从RGB格式转换为XYZ格式;
5402:将XYZ格式图像归一化处理成XnYnZn ;
5403:将XnYnZn转换成Lab格式;
5404:在出现颜色饱和的情况下,即:在L < LVALUE及b > BVALUE的情况下,对Lab格式图像进行修正处理:
l:1f(L < LVALUE)
2: {
3:a*=exp((L - LVALUE)/(LVALUE/4));
4:b*=exp((L - LVALUE)/(LVALUE/4));
5:L=20 ;
6:}
7:1f(b > BVALUE)8: {
9:b=BVALUE ;
10:}
其中,伪代码中的变量L、变量a和变量b分别代表经过变换后的Lab颜色空间三通道的值,另外,伪代码中的LVALUE和BVALUE的值可以根据情况设定,大致范围控制在LVALUE在10 30之间、BVALUE在60 80之间。步骤S5所述的利用图形处理器GPU提取待校正图像和参考图像的有效统计信息,并对待校正图像进行校正的步骤为:
5501:使用DirectXll提供的计算Shader功能,分别统计出待校正图像和参考图像的均值与方差;
5502:根据所提取的均值与方差,对待校正图像进行校正。进一步地,使用DirectXll提供的计算Shader功能,分别统计出待校正图像和参考图像的均值与方差的步骤为:
55011:将原二维图像降维成一维图像,它包括以下步骤:
S50111:将二维图像划分为若干等份块;
S50112:开辟与图像等份数相同的线程,每一个线程负责一个图像等份块中所有像素的统计;
55012:用一个线程对一维图像中所有像素进行统计,完成操作。进一步地,根据所提取的均值与方差,对待校正图像进行校正的步骤为:对待校正图像的每个像素点的每一通道做运 算:对应象素值p=(p_ml)*(d2/dl)+m2,其中,ml、m2、dl、d2分别为待校正图像和参考图像在Lab下某一通道的均值和方差。步骤S6所述的将待校正图像从Lab格式转换为RGB格式,并进行越界检测校正处理的步骤为:
5601:将Lab格式转换成XnYnZn ;
5602:将XnYnZn转换成XYZ格式;
5603:将XYZ格式转换成RGB格式;
5604:对RGB格式图像的三通道进行越界检测校正处理。本发明的有益效果是:
O充分利用了图形处理器GPU的并行性和可编程能力,在渲染时将场景存为纹理,将大量代数运算从CPU转移至GPU,不仅释放了 CPU,而且减少了 CPU与GPU之间的通信量,大大提高了图像颜色校正的速度;
2)算法摒弃了直接到传统RGB颜色空间进行处理的方式,选择了通道关联性较小的Lab颜色空间,使得颜色校正的效果更加理想;
3)在图像由RGB格式转为Lab的过程中,在传统转换的基础上,在出现颜色饱和的情况下对算法进行了修正处理,从而使得颜色转换更加精准、可靠;
4)算法不受特征点的束缚,也不受图像失真或者画面畸变的影响,算法的鲁棒性良
好;
5)在使用DirextXll的计算Shader对图像进行均值与方差统计时,采用降维的方法将原二维图像转换为一维图像再进行处理降低了统计的运算量,进一步提高了颜色校正的速度。


图1为本发明自动校正方法流程 图2为本发明图形处理器GPU提取图像均值与方差示意图。
具体实施例方式下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。如图1所示,一种基于图形处理器的3D视频颜色自动校正方法,它包括以下步骤:
51:将3D视频拆分为每一帧的左右眼原 52:选择其中一帧左右眼原图作为待校正图像,并同时选取参考图像;
S3:将待校正图像和参考图像转换为图形处理器GPU可以处理的文件形式,充分利用图形处理器GPU的并行性和可编程能力将大量代数运算从中央处理器CPU转移至图形处理器 GPU ;
54:将待校正图像和参考图像从RGB格式转换为Lab格式;
55:利用图形处理器GPU提取待校正图像和参考图像的有效统计信息,并对待校正图像进行校正;
56:将待校正图像从Lab格式转换为RGB格式,并进行越界检测校正处理;
57:重复步骤S2 S6,完成3D视频颜色自动校正。其中,步骤S3所述的将待校正图像和参考图像转换为图形处理器GPU可以处理的文件形式的方法包括以下两种:
(1)将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据;
(2)将待校正图像和参考图像读入内存并将上行到图形处理器GPU中。进一步地,将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据的步骤为:使用DirectX提供的函数将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据。进一步地,将待校正图像和参考图像读入内存并将上行到图形处理器GPU中的步骤为:
53021:将待校正图像和参考图像读入内存;
53022:使用OpenGL或DirectX提供的函数将内存里的数据上行到图形处理器GPU中。步骤S4所述的将待校正图像和参考图像从RGB格式转换为Lab格式的步骤为:
5401:将待校正图像和参考图像从RGB格式转换为XYZ格式; 5402:将XYZ格式图像归一化处理成XnYnZn ;
5403:将XnYnZn转换成Lab格式;
5404:在出现颜色饱和的情况下,即:在L < LVALUE及b > BVALUE的情况下,对Lab格式图像进行修正处理:
l:1f(L < LVALUE)2: {
3:a*=exp((L - LVALUE)/(LVALUE/4));
4:b*=exp((L - LVALUE)/(LVALUE/4));
5:L=20 ;
6:}
7:1f(b > BVALUE)
8: {
9:b=BVALUE ;
10:}
其中,伪代码中的变量L、变量a和变量b分别代表经过变换后的Lab颜色空间三通道的值,另外,伪代码中的LVALUE和BVALUE的值可以根据情况设定,大致范围控制在LVALUE在10 30之间、BVALUE在60 80之间。其中,步骤S401 S403为传统RGB转Lab算法,其算法步骤为:
// RGB转XYZ格式
1: x = 0.412453*R + 0.357580*G + 0.180423*B ;
2: y = 0.212671*R + 0.715160*G + 0.072169*B ;
3: z = 0.019334*R + 0.119193*G + 0.950227*B ;
// XYZ 归一化成 XnYnZn 4: X = x/(255*0.950456);
5: y = y/255 ;
6: z = z/(255*1.088754);
// XnYnZn 转成 Lab 7:1f(y > 0.008856)
8: fy = pow(y, 1.0/3.0);
9:1 = 116.0*fy-16.0 ;
10: else
11: fy = 7.787*y + 16.0/116.0 ;
12:1 = 903.3*y ;
13:endif
14:1f(x > 0.008856)
15: fx = pow(x, 1.0/3.0); 16: else
17: fx = 7.787*x + 16.0/116.0 ;
18:endif
19:1f (z > 0.008856)
20: fz = pow(z, 1.0/3.0);
21: else
22: fz = 7.787*x + 16.0/116.0 ;
23:endif24:a = 500 * (fx-fy);
25:b = 200 * (fy-fz);
步骤S5所述的利用图形处理器GPU提取待校正图像和参考图像的有效统计信息,并对待校正图像进行校正的步骤为:
5501:使用DirectXll提供的计算Shader功能,分别统计出待校正图像和参考图像的均值与方差;
5502:根据所提取的均值与方差,对待校正图像进行校正。进一步地,使用DirectXll提供的计算Shader功能,分别统计出待校正图像和参考图像的均值与方差的步骤为:
55011:将原二维图像降维成一维图像,它包括以下步骤:
S50111:将二维图像划分为若干等份块;
S50112:开辟与图像等份数相同的线程,每一个线程负责一个图像等份块中所有像素的统计;
55012:用一个线程对一维图像中所有像素进行统计,完成操作。如图2所示,在使用DirextXll的计算Shader对图像进行均值与方差统计时,采用的主要思想是降维。先将一个二维图像划分成为若干等份块,若一张二维图像的大小为(1600*1600),每个块里的像素个数取为100*100,那么这个二维图像就会被分成16*16=256块。同时开辟与图像等份数相同的线程,每一个线程负责一个图像等份块中所有像素的统计,这样就可以将一个1600*1600大小的二维图像降为一个1*256大小的一维图像,最后用一个线程将这个一维图像中所有像素统计起来即可完成操作。进一步地,在得到两个图像各个通道的均值和方差后,根据所提取的均值与方差,对待校正图像进行校正的步骤为:对待校正图像的每个像素点的每一通道做运算:对应象素值P= (p-ml) * (d2/dl) +m2,其中,ml、m2、dl、d2分别为待校正图像和参考图像在Lab下某一通道的均值和方差。步骤S6所述的将待校正图像从Lab格式转换为RGB格式,并进行越界检测校正处理的步骤为:
5601:将Lab格式转换成XnYnZn ;
5602:将XnYnZn转换成XYZ格式;
5603:将XYZ格式转换成RGB格式;
5604:对RGB格式图像的三通道进行越界检测校正处理。Lab转RGB算法的具体算法步骤为:
// Lab 转 XnYnZn
1: fy = (1+16.0)/116.0 ;
2: fy = fy*fy*fy ;
3:1f(fy > 0.008856)
4: y = fy ;
5: else
6: fy = 1/903.3 ;
7:1f(fy > 0.008856)8: y = pow(fy, 1.0/3.0);
9: else
10: fy = 7.787*fy+16.0/116.0 ;
11:endif
12:fx = a/500.0 + fy ;
13:1f (fx > 0.206893)
14: X = pow(fx, 3.0)
15: else
16: X= (fx-16.0/116.0)/7.787 ;
17:endif
18:fz = fy - b/200.0 ;
19:1f (fz > 0.206893)
20: z= pow(fz, 3);
21: else
22: z = (fz-16.0/116.0)/7.787 ;
23:endif
// XnYnZn 转 XYZ
24:X = x*0.950456^255 ;
25:y = y*255 ;
26:z = z*l.088754^255 ;
// XYZ 转 RGB
27:R = 3.240479*x - 1.537150*y - 0.498535^ ;28:G = -0.969256*x + 1.875992*y + 0.041556^ ;29:B = 0.055648*x - 0.204043*y + 1.057311^ ;//对RGB三通道进行越界检测校正30:R = clamp(R,O,255);
31:R = clamp(R,0,255);
32:R = clamp(R,0,255)o
权利要求
1.一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:它包括以下步骤: 51:将3D视频拆分为每一帧的左右眼原图; 52:选择其中一帧左右眼原图作为待校正图像,并同时选取参考图像; 53:将待校正图像和参考图像转换为图形处理器GPU可以处理的文件形式; 54:将待校正图像和参考图像从RGB格式转换为Lab格式; 55:利用图形处理器GPU提取待校正图像和参考图像的有效统计信息,并对待校正图像进行校正; 56:将待校正图像从Lab格式转换为RGB格式,并进行越界检测校正处理; 57:重复步骤S2 S6,完成3D视频颜色自动校正。
2.根据权利要求1所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:步骤S3所述的将待校正图像和参考图像转换为图形处理器GPU可以处理的文件形式的方法包括以下两种: (1)将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据; (2)将待校正图像和参考图像读入内存并将上行到图形处理器GPU中。
3.根据权利要求2所述的 一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据的步骤为:使用DirectX提供的函数将待校正图像和参考图像转换为图形处理器GPU可以处理的纹理数据。
4.根据权利要求2所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:将待校正图像和参考图像读入内存并将上行到图形处理器GPU中的步骤为: 53021:将待校正图像和参考图像读入内存; 53022:使用OpenGL或DirectX提供的函数将内存里的数据上行到图形处理器GPU中。
5.根据权利要求1所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:步骤S4所述的将待校正图像和参考图像从RGB格式转换为Lab格式的步骤为: 5401:将待校正图像和参考图像从RGB格式转换为XYZ格式; 5402:将XYZ格式图像归一化处理成XnYnZn ; 5403:将XnYnZn转换成Lab格式; 5404:在出现颜色饱和的情况下,对Lab格式图像进行修正处理。
6.根据权利要求1所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:步骤S5所述的利用图形处理器GPU提取待校正图像和参考图像的有效统计信息,并对待校正图像进行校正的步骤为: 5501:使用DirectXll提供的计算Shader功能,分别统计出待校正图像和参考图像的均值与方差; 5502:根据所提取的均值与方差,对待校正图像进行校正。
7.根据权利要求6所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:使用DirectXll提供的计算Shader功能,分别统计出待校正图像和参考图像的均值与方差的步骤为: S5011:将原二维图像降维成一维图像,它包括以下步骤: S50111:将二维图像划分为若干等份块;S50112:开辟与图像等份数相同的线程,每一个线程负责一个图像等份块中所有像素的统计; S5012:用一个线程对一维图像中所有像素进行统计,完成操作。
8.根据权利要求6所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:根据所提取的均值与方差,对待校正图像进行校正的步骤为:对待校正图像的每个像素点的每一通道做运算:对应象素值p=(p-ml)*(d2/dl)+m2,其中,ml、m2、dl、d2分别为待校正图像和参考图像在Lab下某一通道的均值和方差。
9.根据权利要求1所述的一种基于图形处理器的3D视频颜色自动校正方法,其特征在于:步骤S6所述的将待校正图像从Lab格式转换为RGB格式,并进行越界检测校正处理的步骤为: 5601:将Lab格式转换成XnYnZn ; 5602:将XnYnZn转换成XYZ格式; 5603:将XYZ格式转换成RGB格式; 5604:对RGB格式图 像的三通道进行越界检测校正处理。
全文摘要
本发明公开了一种基于图形处理器的3D视频颜色自动校正方法,它包括将3D视频拆分为每一帧的左右眼原图;选择待校正图像并选取参考图像;将待校正图像和参考图像转换为GPU可以处理的文件形式;将两个图像从RGB转为Lab;利用GPU提取两个图像的有效统计信息,并对待校正图像进行校正;将待校正图像从Lab转为RGB,并进行越界检测校正。本发明将大量代数运算从CPU转移至GPU,提高了校正速度;选择通道关联性较小的Lab颜色空间,校正效果更好;RGB转Lab过程中,在出现颜色饱和的情况下进行修正,颜色转换更加精准;算法不受特征点的束缚,也不受图像失真或者画面畸变的影响,鲁棒性良好;采用降维方法进行均值与方差统计,降低了运算量,提高了颜色校正的速度。
文档编号H04N13/00GK103139591SQ201310094539
公开日2013年6月5日 申请日期2013年3月24日 优先权日2013年3月24日
发明者姚平, 盛志明, 余刚 申请人:成都索贝数码科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1