一种基于色彩迁移技术的DeBruijn彩色结构光解码算法 下载: 1075次
1 引言
结构光三维重构作为一种非接触式主动视觉测量技术,具有速度快、实时性强等优点,在工业形貌测量、逆向工程等领域得到了广泛应用[1-2]。DeBruijn彩色结构光是主动视觉测量技术之一,其结构光编码属于空间编码,结构光投影图像的条纹中心点颜色识别和中心点坐标的准确提取是影响解码精度的关键因素[3]。结构光投影图像在获取时容易受到拍摄环境、光照条件、被测物体表面材料特性、表面纹理,以及拍摄方式等因素的综合影响而引起图像质量下降,降低了条纹中心点颜色识别和中心点坐标提取的精度,导致解码精度降低[4]。因此,条纹中心点坐标提取和颜色识别是提高系统解码精度的关键,也是提高系统测量精度的前提。
在条纹中心点提取方面:Yang等[5]结合零交叉检测算法和Steger检测器提出一种灰度结构光图像条纹中心点提取算法,对灰度编码结构光图像的条纹中心点能实现较高的提取精度;蔡怀宇等[6]提出一种基于主成分分析的结构光条纹中心提取方法,首先利用大津阈值法提取图像的感兴趣区域,再经2次高斯卷积得到条纹的梯度分布,确定条纹中心的初始位置,利用主成分分析确定法线方向,从而得到条纹的精确位置;刘振等[7]提出一种互相关中心条纹提取方法,将赋予不同权值的互相关系数与相对应的光条纹灰度值进行互相关运算,以互相关极大值对应的条纹作为初始光条纹中心,通过曲线拟合的方法对条纹中心进行精确定位。以上中心点提取算法对单条纹灰度图像中心点提取精度较高,但这些算法均以图像的灰度分布为基础,而彩色条纹图像灰度化的过程中容易出现灰度分布非对称退化,图像彩色条纹种类越多,非对称退化的问题越严重,因此,这些算法对于多条纹彩色图像中心点坐标提取的精度并不高。
在条纹颜色识别方面:Fechteler等[8]提出了一种在RGB颜色空间对条纹颜色进行自适应颜色分类的方法;范静涛等[9]通过在RGB空间直接对捕获的结构光图像进行颜色聚类和分类处理来识别特征点的颜色;陆军等[10]在CIELab颜色空间中,通过L值的线性二次差分滤波实现对高低强度条纹的分割,利用主成分分析和K均值聚类思想设计一种自适应颜色聚类方法,实现了对高低强度颜色的识别。上述方法在结构光投影图像质量较好的条件下能实现较高的识别精度,但未考虑光照和物体表面纹理导致结构光投影图像质量不高时的颜色识别问题。
在彩色图像处理方面, Retinex理论[11]模拟人类大脑视觉皮层的成像原理,建立了简化的图像形成模型,采用多次迭代的方法消除目标本身的反射,达到图像增强的效果;Reinhard等[12]提出一种全局图像色彩迁移算法,将一幅图像的颜色特征迁移到另一幅图像中,使目标图像具有与源图像相似的颜色信息;在前述算法基础上:Pitie等[13]提出一种全新的色彩迁移思路,利用直方图规定化和N维概率密度函数转移的方式实现色彩迁移;Welsh等[14]将色彩迁移技术用于灰度图像着色,即将彩色图像的特征传递给灰度图像完成着色,该方法在影视制作、信息可视化和医学等领域已有大量应用[15]。
由于结构光投影图像在捕获过程中容易受到光照和物体表面纹理的影响,导致结构光投影图像质量不高,而上述的条纹中心点提取算法和条纹颜色识别算法均未考虑图像质量对解码精度的影响。鉴于此,本文提出一种基于色彩迁移技术的彩色结构光解码算法。首先,以结构光编码图像的颜色分布为先验知识,利用色彩迁移方式对捕获的结构光投影图像进行增强和去光照处理,还原结构光投影图像条纹中心点的颜色信息,从而完成条纹中心点的颜色识别;然后,将色彩迁移处理后的图像转换到RGB空间,通过2次精确定位条纹中心点的方式实现中心点的精确提取,从而实现高精度的彩色结构光解码。
2 基于色彩迁移技术的DeBruijn彩色结构光解码算法
在结构光三维重构测量技术中,结构光解码是完成结构光编码图像和结构光投影图像之间特征点的匹配[16]。针对光照和物体表面纹理等因素导致解码精度不高的问题,本文提出一种基于色彩迁移技术的DeBruijn彩色结构光解码算法。算法流程如
图 1. 基于色彩迁移技术的DeBruijn彩色结构光解码算法流程图
Fig. 1. Flow chart of DeBruijn color structured light decoding algorithm based on color transfer technique
2.1 基于色彩迁移技术的结构光投影图像增强方法
颜色迁移可以表示为数学变换H,即t(x,y)=H
在色彩迁移过程中,需要将目标图像各个颜色通道的颜色分布迁移到源图像上,因此颜色空间的选择对算法的处理结果具有很大的影响。通常,工业相机捕获到的彩色图像多为RGB空间图像,由于各通道之间存在相关性,因此色彩迁移通常在lαβ颜色空间中进行。在lαβ颜色空间中,l代表非彩色通道的亮度通道,α表示彩色的红绿通道信息,β表示彩色的黄蓝通道信息。lαβ空间更适合人类的视觉系统,而且像素点各个分量之间近似正交,能最大限度地减少改变其中一个分量对其他2个分量的影响,因此可以在不同通道之间独立地进行统计信息的迁移。
设R和T分别表示结构光投影图像和结构光编码图像,图像的分辨率均为U×V,则结构光投影图像和结构光编码图像在l、α和β通道的均值和标准差分别为
式中K∈{l,α,β},
颜色通道的均值和标准差描述了结构光投影图像和结构光编码图像的颜色分布,从而,提出基于结构光编码图像各颜色通道均值和方差的结构光投影图像色彩迁移变换模型:
式中R
考虑到结构光投影图像捕获过程中还受光照的影响,因此,需要在增强处理的基础上再进行去光照处理。首先将色彩迁移处理后的结构光投影图像定义为F,并将其变换到RGB颜色空间。从结构光编码图像的颜色分布可知,每个像素点的三通道最小像素值为0,但由于光照对结构光投影图像的影响,导致其最小像素值通常不为0。为此,将结构光投影图像F中每个像素点的三通道最小像素值定义为光照模型λ,去光照处理后的结构光投影图像定义为I,则光照计算模型为
式中F(i,j)K和I(i,j)K分别表示图像F和I在像素点(i,j)的K通道像素值,λ(i,j)表示图像F在像素点(i,j)的光照,K∈{R,G,B}。
2.2 基于色彩迁移技术的彩色条纹中心点亚像素提取方法
色彩迁移技术的图像增强方法能够消除物体表面纹理、环境光照和相机畸变等因素对结构光投影图像的干扰,使结构光投影图像具有与结构光编码图像相似的颜色分布。基于本文算法,提出一种两步定位法,实现条纹中心点亚像素提取。首先,在RGB颜色空间对结构光投影图像每一行的最大像素值序列求一阶导数和二阶导数,根据二阶导数确定条纹边界点序列,再根据最大像素值序列实现条纹中心点的粗定位;然后,基于Hession矩阵确定粗条纹中心点的法线方向,在法线方向上利用泰勒展开实现条纹中心的精确定位,从而实现条纹中心的亚像素提取。
假设色彩迁移处理后的结构光投影图像为I,图像的分辨率为U×V,如
式中K∈{R,G,B},i=1,…,U,j=1,…,V。以
为确定条纹间的边界点,首先根据Mi二阶导数循环判断当前像素点j是否为零点位置,并定义零点亚像素位置为j+Δj,得到零点亚像素位置序列:
式中dMi(j)为Mi(j)的一阶中心差分导数,Si(j)为dMi(j)的平方值,dSi(j)为Si(j)的一阶中心差分导数,j=2,…,V。如果当前像素点j的dSi(j)值为0,则j即为零点位置,Δj=0;如果当前像素点j的dSi(j)和前一个像素点j-1的dSi(j-1)值都不为0,且符号相反,则零点位置介于j-1和j之间,其亚像素位置Δj如(14)式所示。
图 2. 结构光投影图像彩色条纹亚像素中心位置
Fig. 2. Sub-pixel center position of structure light projection image stripe
然后,根据零点亚像素位置序列确定条纹边界点位置序列。如果当前零点位置k的一阶导数值dSi(k)大于0,而且下一个零点位置k+1的一阶导数值dSi(k+1)小于0,则当前零点位置k为条纹边界点位置,反之则不是边界点。通过以上定义得到条纹边界点亚像素位置序列。
最后,根据条纹边界点位置序列确定边界点之间的粗条纹中心位置。假定当前边界点位置为q,下一个边界点位置为q+1。因为在解码过程中只需要确定彩色条纹的中心位置,因此,在确定中心位置之前要确定q与q+1之间是黑色条纹还是彩色条纹。假设q与q+1之间的条纹像素点个数为n,令这n个像素点的Mi向量为D,即D(c)=Mi(m),c=1,…,n,m=in(q),…,in(q+1),其中in(q)表示的是边界点q的纵坐标,然后分别统计向量t的递增点个数和递减点个数,即当D(c)>D(c+1),则递减点个数加1,如果D(c)
式中I为D的索引向量,即I(r)=r,r=1,…,n。最后得到当前彩色条纹粗中心点坐标(x,y)=(i,j)。
得到条纹粗中心点位置序列之后,基于每个粗中心点的法线方向进行泰勒展开,得到精确的中心点坐标。假设当前的粗中心点的坐标为(x,y),该点的法线方向就是图像I(x,y)中二阶方向导数绝对值取极大值的方向,该方向可以通过计算Hession矩阵的特征值和特征向量来确定,Hession矩阵为
式中g(x,y)为二维高斯函数,粗中心点坐标(x,y)的法线方向与图像I(x,y)在该点的Hession矩阵最大特征值的绝对值对应的特征向量相同。假设点(x,y)的法线向量的单位向量n=(nx,ny),以粗中心点坐标(x,y)为基点,对该基点的像素分布函数沿(nx,ny)方向进行二阶泰勒展开,则精确中心点的像素值为
式中(rx,ry)由图像I(x,y)与高斯卷积核得到:
令∂I/∂t=0,结合(20)式得到:
则条纹精确中心点坐标为(x+tnx,y+tny)。
根据以上原理,基于色彩迁移技术的条纹中心点亚像素提取算法流程如下。
输入:相机捕获的结构光投影图像。
输出:结构光投影图像的彩色条纹中心点亚像素坐标。
1) 根据(13)式获取当前行所有坐标点的RGB最大值序列Mi。
2) 根据(15)式计算Mi的一阶导数dMi,再根据(17)式计算Si的一阶导数dSi。
3) 根据(14)式确定dSi的亚像素零点位置序列,再根据零点位置序列确定条纹边界点位置序列。
4) 循环判断两个条纹边界点之间是彩色条纹还是黑色条纹,如果是彩色条纹则根据(18)式确定这两个条纹边界点之间的粗中心位置。
5) 根据(19)式计算粗中心点坐标的法线方向,然后基于(20)式对粗中心点坐标进行泰勒展开,最后根据(23)式得到条纹的精确中心点坐标。
3 实验结果
实验设备采用DLP4500数字投影仪和POINTGREY的CM3-U3-13Y3C-CS工业相机,分辨率分别为912 pixel×1140 pixel和1280 pixel×1024 pixel。为了验证算法的有效性,结合主观视觉评价和均方误差(MSE)、峰值信噪比(PSNR)、特征点匹配精度评价本文的结构光投影图像增强方法和条纹中心点提取方法。其中:MSE反映结构光投影图像颜色恢复后与结构光编码图像之间的误差,值越小,说明结构光投影图像增强效果越好;PSNR是信号最大可能功率和影响它精度的破坏性噪声功率的比值,值越大,说明结构光投影图像增强效果越好[19]。
分别以钢轨金属材质、彩色花瓶材质、人的手部和石膏头像为检测对象进行实验,其材质和形状各具代表性,能充分验证本文增强算法对不同材质的结构光投影图像增强效果的稳健性,以及条纹中心点亚像素提取算法对表面形状变化剧烈的结构光投影图像中心点提取结果的适用性。
受物体表面材质纹理和不均匀光照等因素的影响,将DeBruijn结构光编码图像投影到各种材质物体表面时都发生了色彩扭曲,加大了颜色识别的难度。
表 1. 结构光投影图像增强结果对比
Table 1. Comparison of structured light projection image enhancement
|
表 2. 条纹中心点提取结果对比
Table 2. Comparison of extraction results of fringe center points
|
为了提高解码的精度,对增强算法处理后的结构光投影图像提出两步精确定位的条纹中心点亚提取算法。利用本文算法和Yang等[5]算法分别对
图 4. 相机捕获的结构光投影图像和增强处理后的结果对比
Fig. 4. Comparison of captured structured light projection images and enhanced processing results
图 5. 结构光投影图像条纹中心点提取结果
Fig. 5. Extraction results of fringe centers in structured light projection images
4 结论
针对光照和被测物体表面纹理等因素,导致结构光投影图像解码精度不高的问题,提出一种基于色彩迁移技术的结构光解码算法。首先,以结构光编码图像为先验知识,采用色彩迁移的方式,将编码图像的颜色分布迁移到相机捕获的结构光投影图像上,提高条纹中心点颜色识别的精度;然后,在RGB颜色空间提出两步精确定位的彩色条纹中心点亚像素提取算法,有效提高了条纹中心点提取的精度。实验结果表明,本文算法有效提高了结构光测量系统的解码精度。
[1] 韦争亮, 钟约先, 袁朝龙. 色栅线动态三维测量中自适应相关匹配技术[J]. 光学学报, 2009, 29(4): 949-954.
[2] 苏显渝, 张启灿, 陈文静. 结构光三维成像技术[J]. 中国激光, 2014, 41(2): 0209001.
[6] 蔡怀宇, 冯召东, 黄战华. 基于主成分分析的结构光条纹中心提取方法[J]. 中国激光, 2015, 42(3): 0308006.
[7] 刘振, 李声, 冯常. 基于互相关算法的激光条纹中心提取[J]. 中国激光, 2013, 40(5): 0508004.
[9] 范静涛, 韩成, 张超, 等. 一种新的De Bruijn彩色结构光解码技术研究[J]. 电子学报, 2012, 40(3): 483-488.
[10] 陆军, 张鑫, 高乐, 等. 基于De Bruijn序列的彩色结构光编解码方法研究[J]. 光电子·激光, 2014, 25(1): 147-155.
[11] LimJ, deHarakB. On Edwin H. Land's Retinex theory: developing a classroom demonstration for color vision[C]. John Wesley Powell Student Research Conference, 2012.
[12] Reinhard E, Ashikhmin M, Gooch B, et al. Color transfer between images[J]. IEEE Computer Graphics & Applications, 2002, 21(5): 34-41.
[13] PitieF, Kokaram AC, DahyotR. N-dimensional probability density function transfer and its application to colour transfer[C]// Proceedings of the Tenth IEEE International Conference on Computer Vision, 2005: 1434- 1439.
[14] WelshT, AshikhminM, MuellerK. Transferring color to greyscale images[C]. Conference on Computer Graphics and Interactive Techniques, ACM, 2002: 277- 280.
[15] Faridul HS, PouliT, ChamaretC, et al. A survey of color mapping and its applications[C]. Eurographics (State of the Art Reports), 2014: 43- 67.
[16] PagesJ, SalviJ, ForestJ. A new optimised De Bruijn coding strategy for structured light patterns[C]// International Conference on Pattern Recognition, IEEE, 2004: 284- 287.
[17] ZhangL, CurlessB, Seitz SM. Rapid shape acquisition using color structured light and multi-pass dynamic programming[C]// International Symposium on 3D Data Processing Visualization and Transmission, 2002: 24- 36.
[18] GroganM, Dahyot R. Robust registration of Gaussian mixtures for colour transfer[J]. arXiv preprint arXiv: 1705. 06091, 2017.
[19] 王灿进, 孙涛, 陈娟. 基于方向滤波器组的激光主动成像图像复原[J]. 中国激光, 2014, 41(8): 0802011.
Article Outline
白宏运, 许宏丽, 黄华. 一种基于色彩迁移技术的DeBruijn彩色结构光解码算法[J]. 激光与光电子学进展, 2018, 55(1): 011013. Bai Hongyun, Xu Hongli, Huang Hua. A DeBruijn Color Structured Light Decoding Algorithm Based on Color Transfer Technique[J]. Laser & Optoelectronics Progress, 2018, 55(1): 011013.