本发明涉及三维重建技术领域,具体涉及一种基于结构光的三维重建方法。
背景技术:
计算机视觉是计算机通过对图片或者对图片序列的处理,获取对客观世界的描述和信息,以帮助人们更好的理解图片中包含的内容。三维重建技术是计算机视觉的一个分支,是计算机视觉和计算机图形图像处理相结合的一个研究方向。它广泛的用于工业自动化、逆向工程、文物保护、计算机辅助医疗、虚拟现实、增强现实和机器人应用等场景。
结构光三维重建是计算机视觉中的重要技术之一。然而,现有的方法大多需要对设计的模式进行多次投影来实现封闭形式的解决方案,这使得它们无法对动态对象进行度量。在光源上大都采用高精度投影仪投射黑白光栅或者彩色光栅实现,大多数相关系统在三维彩色图像的重构,以及图像的边缘检测,特征匹配算法上,大都是按rgb三种颜色单独处理,对图像颜色信息之间的关联进行人为剥离,影响了检测的可靠性。
双目立体视觉技术是通过两个相机在两个角度拍摄物体的左右两幅图像,然后利用立体匹配算法寻找出左右两幅图像中同名点,并结合相机内外参数,利用三角交会计算出被测物体的三维空间位置坐标信息。双目立体视觉技术不需要主动投射图案信息,硬件结构简单,但是重建点云精度低,重建速度慢,对于表面纹理信息少的物体,容易出现匹配点出错等缺点。结构光技术是通过投影仪向物体表面投影特定的编码图案,再由相机拍摄被物体表面调制了的编码图案,通过编码图案的解码运算恢复出物体的深度信息。结构光技术重建精度高,速度快,即使是表面纹理信息少的物体也能得到很好的重建效果,但是传统的结构光重建系统大多都是单目的,在计算深度信息的过程中需要对投影仪进行标定,而投影仪的标定过程又极其繁琐。
技术实现要素:
本发明目的在于克服现有技术的缺点与不足,提供了双目立体视觉结合结构光技术的三维重建方法,其利用主动视觉中的结构光增加物体表面的纹理特征,通过被动视觉实现三维重建,有利于提高三维重建的精度和效率,并节约了成本。
一种基于结构光的三维重建方法,包括如下步骤:
s1.搭建三维重建系统,所述三维重建系统包括两台相机、一台投影仪,一台计算机;
s2.对相机进行标定,并获得相机的内外参数;
s3.根据相机的参数,求取畸变映射矩阵;
s4.利用投影仪向物体投射所设计的rgb点结构光图案;
s5.利用双目立体视觉系统的相机采集重建物体的左图像和右图像,并对图像进行立体校正;
s6.基于区域相似性,利用三通道组合rgb点分割方法,对左图像和右图像的红点、绿点、蓝点分别进行分割;
s7.根据欧几里得距离,对相同颜色的点进行聚类;
s8.匹配左视图中的点和右视图中的点,并获得左图像和右图像上的对应匹配点关于物体上点p的视差;
s9.结合相机的内外参数,利用视差原理得到物体上各点的三维空间坐标;
s10.根据物体上多点的三维空间坐标生成物体稀疏的点云图,完成物体三维重建。
优选的,所述步骤s2包括以下子步骤:
s21.先对左相机进行标定,得到左相机的内外参数,外参数包括一个旋转矩阵和一个平移矩阵;
s22.左相机和右相机的内参数和旋转矩阵相同,右相机的平移矩阵由左相机的平移矩阵和两个相机的距离得到,从而得到右相机的内外参数。
优选的,所述步骤s4中,所述rgb结构光点图案是基于rgb三基色的结构光点阵。
优选的,所述rbg结构光点图案为能形成按红、绿、蓝三色每行各点的颜色相同、相邻行颜色不同的结构光点阵。
优选的,s4中,所述结构光是从物体的正前方向物体投射。
优选的,所述步骤s5包括以下子步骤:
s51.基于左相机的内外参数和畸变映射矩阵、右相机的内外参数和畸变映射矩阵,分别得到左校正矩阵和右校正矩阵;
s52.利用左校正矩阵对左图像进行立体校正,利用右校正矩阵对右图像进行立体校正,经过左校正矩阵处理后的左图像中的点与经过右校正矩阵处理后的右图像中的匹配点在同一条扫描线上,即所述点与匹配点的y轴坐标相同。
优选的,所述步骤s6包括以下子步骤:
s601.利用基于斜率差分布的阈值选择方法,对r通道的点图像计算第一个阈值t;
s602.采用阈值t对点图像进行分割,将分割后的二值图像i1中的所有的点被标记为:
其中(x,y)为二值图像的索引;
s603.设图像分辨率为nx×ny,定义集合x为{1,2,...,nx},集合y为{1,2,...,ny},则计算第k个标记点的索引集为:
(xk,yk)={(x,y)|i1(x,y)=k}(2);
计算第k个标记点的区域ak为:
ak=|xk|=|yk|(3);
s604.区域集合
由于点的区域是相似的,所以如果对所有的点进行足够精确的分割,那么排序区域的差异应该不会太大。因此,可以通过计算得到的分类区域的差值来判断分割结果的准确性;
s605.计算排序区域的差值di为:
则最大差值计算为:
dmax=maxdi,i=1,2,...,nb-1(6);
如果最大差dmax大于阈值(该阈值计算为集合区域
s606.计算区域集合
s607.所有区域小于am的分割点的索引集
s608.全局阈值更新为:
t=t δt(9);
其中δt是循环的步长,它的值是一个大于或等于1的整数;为了加快收敛速度,选择δt=10;
s609.再次使用更新的阈值对图像进行分割;
s610.重复步骤s601至s609,直到dmax小于区域集合
s611.设上述步骤重复m次,得到第m次分割结果im,所有被分割的点的索引集(xm,ym)为:
(xm,ym)={(x,y)|im(x,y)>0}(10);
s612.最终分割图像ir的分辨率nx×ny初始化为:
计算得:
s613.对g通道和b通道图像进行分割,得到ig和ib,将分割结果相加,形成最终的分割结果。
优选的,所属步骤s7包括以下子步骤:
s71.在每个通道中,以结构元素b={0,0}将分割后的点展开5次,使相邻的点连接起来,形成直线图像;
s72.将每个通道内的聚类直线图像与相应的分割点图像相乘,生成聚类点图像。在每个通道中,不同直线上的点被分配不同的识别号,包括线识别号,行识别号。
优选的,所属步骤s8包括以下子步骤:
s81.在每个通道的两个视图中,首先根据点的线识别号进行匹配,然后将具有相同行标识号的点按其行识别号进行匹配,由此将两个视图中的聚类点进行匹配;
s82.得到左图像和右图像的匹配角点像素坐标,即左图像某角点l(xl,yl)和右图像某角点r(xr,yr);
s83.由于已经对图像进行立体校正,实现行对准,所以点l和点r的y轴坐标相同,左图像和右图像上的对应匹配点关于物体上点p的视差可直接表示为d=xl-xr。
优选的,所属步骤s9包括以下子步骤:
s91.根据左图像和右图像上的对应匹配点关于物体上点p的视差,以及左相机和右相机的光心,得到三角形polor相似于三角形p1r,其中相似三角形比例公式为:
其中,t为左相机和右相机的光心距离,d为左图像和右图像上的对应匹配点关于物体上点p的视差d=xl-xr,f为左相机和右相机的的焦距,z为p点的深度值,ol为左相机光心,or为右相机光心;
s92.利用式(13)得到p点的三维坐标(x,y,z),
最后求得图像上所有点的三维坐标(x,y,z)。
本发明的有益效果为:本发明结合双目立体视觉和结构光技术,避免了对投影仪的标定,简化了三维重建的步骤;本发明设计的双视图重建方法,只需一次投影,可实现对动态对象的度量;设计的rgb结构光点图案及基于点结构光图案的区域相似性,提出的迭代点分割方法,能够有效地对三通道组合rgb结构光点图案的红、蓝、绿点分别进行分割,便于后续无监督点聚类,以便于快速地匹配左右视图中的点;再通过被动视觉实现三维重建,有利于提高三维重建的精度和效率,对色彩不鲜艳、纹理不丰富、遮挡不明显的目标具有良好的重建效果。
附图说明
图1为基于结构光点图案重建物体表面方法的流程图;
图2为搭建的成像系统示意图;
图3为设计的rgb格式点结构光图案;
图4为本发明向球状物体投射规则结构光的拍摄图;
图5为三维重建立体成像模型;
图6为本发明采用视差原理的相似三角形示意图。
具体实施方式
本发明采用的几何模型,如图5所示,其中,ol为左相机光心,or为右相机光心,p为空间中任意一点,左右相机光心与p点组成平面polor。pl和pr分别为p点在左右相机中的像点,称为一对同名点,平面polor与左右像平面的交线lp1、lpr称为一对极线。
下面结合附图和实施例对本发明作进一步说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例1
请参考图1和图2,一种基于结构光的三维重建方法,包括如下步骤:
s1.搭建三维重建系统,所述三维重建系统包括两台相机、一台投影仪,一台计算机;
s2.对相机进行标定,并获得相机的内外参数;
所述步骤s2包括以下子步骤:
s21.先对左相机进行标定,得到左相机的内外参数,外参数包括一个旋转矩阵和一个平移矩阵;
s22.左相机和右相机的内参数和旋转矩阵相同,右相机的平移矩阵由左相机的平移矩阵和两个相机的距离得到,从而得到右相机的内外参数。
即标定的左相机和右相机的旋转矩阵和平移矩阵分别为r1、t1和r2、t2,其中r1=r2,t1=(x,y,z)t,t2=(x d,y,z)t,d为左相机到右相机的平移距离。
s3.根据相机的参数,求取畸变映射矩阵;
s4.参照图2、图3和图4,利用投影仪向物体投射所设计的rgb点结构光图案;
所述步骤s4中,所述rgb结构光点图案是基于rgb三基色的结构光点阵,所述结构光是从物体的正前方向物体投射。
在本实施例中,所述rbg结构光点图案为能形成按红、绿、蓝三色每行各点的颜色相同、相邻行颜色不同的结构光点阵。选择投射rgb三基色的结构光点阵,是因为彩色结构光点图案更有利于特征点的匹配。
s5.利用双目立体视觉系统的相机采集重建物体的左图像和右图像,并对图像进行立体校正;
所述步骤s5包括以下子步骤:
s51.基于左相机的内外参数和畸变映射矩阵、右相机的内外参数和畸变映射矩阵,分别得到左校正矩阵和右校正矩阵;
s52.利用左校正矩阵对左图像进行立体校正,利用右校正矩阵对右图像进行立体校正,经过左校正矩阵处理后的左图像中的点与经过右校正矩阵处理后的右图像中的匹配点在同一条扫描线上,即所述点与匹配点的y轴坐标相同。
s6.基于区域相似性,利用三通道组合rgb点分割方法,对左图像和右图像的红点、绿点、蓝点分别进行分割;
所述步骤s6包括以下子步骤:
s601.利用基于斜率差分布的阈值选择方法,对r通道的点图像计算第一个阈值t;
s602.采用阈值t对点图像进行分割,将分割后的二值图像i1中的所有的点被标记为:
其中(x,y)为二值图像的索引;
s603.设图像分辨率为nx×ny,定义集合x为{1,2,...,nx},集合y为{1,2,...,ny},则计算第k个标记点的索引集为:
(xk,yk)={(x,y)|i1(x,y)=k}(2);
计算第k个标记点的区域ak为:
ak=|xk|=|yk|(3);
s604.区域集合
由于点的区域是相似的,所以如果对所有的点进行足够精确的分割,那么排序区域的差异应该不会太大。因此,可以通过计算得到的分类区域的差值来判断分割结果的准确性;
s605.计算排序区域的差值di为:
则最大差值计算为:
dmax=maxdi,i=1,2,...,nb-1(6);
如果最大差dmax大于阈值(该阈值计算为集合区域
s606.计算区域集合
s607.所有区域小于am的分割点的索引集
s608.全局阈值更新为:
t=t δt(9);
其中δt是循环的步长,它的值是一个大于或等于1的整数;为了加快收敛速度,选择δt=10;
s609.再次使用更新的阈值对图像进行分割;
s610.重复步骤s601至s609,直到dmax小于区域集合
s611.设上述步骤重复m次,得到第m次分割结果im,所有被分割的点的索引集(xm,ym)为:
(xm,ym)={(x,y)|im(x,y)>0}(10);
s612.最终分割图像ir的分辨率nx×ny初始化为:
计算得:
s613.对g通道和b通道图像进行分割,得到ig和ib,将分割结果相加,形成最终的分割结果。
s7.根据欧几里得距离,对相同颜色的点进行聚类;
所属步骤s7包括以下子步骤:
s71.在每个通道中,以结构元素b={0,0}将分割后的点展开5次,使相邻的点连接起来,形成直线图像;
s72.将每个通道内的聚类直线图像与相应的分割点图像相乘,生成聚类点图像。在每个通道中,不同直线上的点被分配不同的识别号,包括线识别号,行识别号。
s8.匹配左视图中的点和右视图中的点,并获得左图像和右图像上的对应匹配点关于物体上点p的视差;
所属步骤s8包括以下子步骤:
s81.在每个通道的两个视图中,首先根据点的线识别号进行匹配,然后将具有相同行标识号的点按其行识别号进行匹配,由此将两个视图中的聚类点进行匹配;
s82.得到左图像和右图像的匹配角点像素坐标,即左图像某角点l(xl,yl)和右图像某角点r(xr,yr);
s83.由于已经对图像进行立体校正,实现行对准,所以点l和点r的y轴坐标相同,左图像和右图像上的对应匹配点关于物体上点p的视差可直接表示为d=xl-xr。
s9.结合相机的内外参数,利用视差原理得到物体上各点的三维空间坐标;
所属步骤s9包括以下子步骤:
s91.根据左图像和右图像上的对应匹配点关于物体上点p的视差,以及左相机和右相机的光心,得到三角形polor相似于三角形p1r,其中相似三角形比例公式为:
其中,t为左相机和右相机的光心距离,d为左图像和右图像上的对应匹配点关于物体上点p的视差d=xl-xr,f为左相机和右相机的的焦距,z为p点的深度值,ol为左相机光心,or为右相机光心;
s92.利用式(13)得到p点的三维坐标(x,y,z),
最后求得图像上所有点的三维坐标(x,y,z)。
s10.根据物体上多点的三维空间坐标生成物体稀疏的点云图,完成物体三维重建。
1.一种基于结构光的三维重建方法,其特征在于,包括以下步骤:
s1.搭建三维重建系统,所述三维重建系统包括两台相机、一台投影仪,一台计算机;
s2.对相机进行标定,并获得相机的内外参数;
s3.根据相机的参数,求取畸变映射矩阵;
s4.利用投影仪向物体投射所设计的rgb点结构光图案;
s5.利用双目立体视觉系统的相机采集重建物体的左图像和右图像,并对图像进行立体校正;
s6.基于区域相似性,利用三通道组合rgb点分割方法,对左图像和右图像的红点、绿点、蓝点分别进行分割;
s7.根据欧几里得距离,对相同颜色的点进行聚类;
s8.匹配左视图与右视图中的点,并获得左图像和右图像上的对应匹配点关于物体上点p的视差;
s9.结合相机的内外参数,利用视差原理得到物体上各点的三维空间坐标;
s10.根据物体上多点的三维空间坐标生成物体稀疏的点云图,完成物体三维重建。
2.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所述步骤s2包括以下子步骤:
s21.先对左相机进行标定,得到左相机的内外参数,外参数包括一个旋转矩阵和一个平移矩阵;
s22.左相机和右相机的内参数和旋转矩阵相同,右相机的平移矩阵由左相机的平移矩阵和两个相机的距离得到,从而得到右相机的内外参数。
3.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所述步骤s4中,所述rgb结构光点图案是基于rgb三基色的结构光点阵。
4.根据权利要求3所述的基于结构光的三维重建方法,其特征在于:所述rbg结构光点图案为能形成按红、绿、蓝每行各点的颜色相同、相邻行颜色不同的结构光点阵。
5.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:s4中,所述结构光是从物体的正前方向物体投射。
6.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所述步骤s5包括以下子步骤:
s51.基于左相机的内外参数和畸变映射矩阵、右相机的内外参数和畸变映射矩阵,分别得到左校正矩阵和右校正矩阵;
s52.利用左校正矩阵对左图像进行立体校正,利用右校正矩阵对右图像进行立体校正,经过左校正矩阵处理后的左图像中的点与经过右校正矩阵处理后的右图像中的匹配点在同一条扫描线上,即所述点与匹配点的y轴坐标相同。
7.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所述步骤s6包括以下子步骤:
s601.利用基于斜率差分布的阈值选择方法,对r通道的点图像计算第一个阈值t;
s602.采用阈值t对点图像进行分割,将分割后的二值图像i1中的所有的点被标记为:
其中(x,y)为二值图像的索引;
s603.设图像分辨率为nx×ny,定义集合x为{1,2,...,nx},集合y为{1,2,...,ny},则计算第k个标记点的索引集为:
(xk,yk)={(x,y)|i1(x,y)=k}(2);
计算第k个标记点的区域ak为:
ak=|xk|=|yk|(3);
s604.区域集合
s605.计算排序区域的差值di为:
则最大差值计算为:
dmax=maxdi,i=1,2,...,nb-1(6);
s606.计算区域集合
s607.所有区域小于am的分割点的索引集
s608.全局阈值更新为:
t=t δt(9);
其中δt是循环的步长,它的值是一个大于或等于1的整数;
s609.再次使用更新的阈值对图像进行分割;
s610.重复步骤s601至s609,直到dmax小于区域集合
s611.设上述步骤重复m次,得到第m次分割结果im,所有被分割的点的索引集(xm,ym)为:
(xm,ym)={(x,y)|im(x,y)>0}(10);
s612.最终分割图像ir的分辨率nx×ny初始化为:
计算得:
s613.对g通道和b通道图像进行分割,得到ig和ib,将分割结果相加,形成最终的分割结果。
8.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所属步骤s7包括以下子步骤:
s71.在每个通道中,以结构元素b={0,0}将分割后的点展开5次,使相邻的点连接起来,形成直线图像;
s72.将每个通道内的聚类直线图像与相应的分割点图像相乘,生成聚类点图像;在每个通道中,不同直线上的点被分配不同的识别号,包括线识别号,行识别号。
9.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所属步骤s8包括以下子步骤:
s81.在每个通道的两个视图中,首先根据点的线识别号进行匹配,然后将具有相同行标识号的点按其行识别号进行匹配,由此将两个视图中的聚类点进行匹配;
s82.得到左图像和右图像的匹配角点像素坐标,即左图像某角点l(xl,yl)和右图像某角点r(xr,yr);
s83.由于已经对图像进行立体校正,实现行对准,所以点l和点r的y轴坐标相同,左图像和右图像上的对应匹配点关于物体上点p的视差可直接表示为d=xl-xr。
10.根据权利要求1所述的基于结构光的三维重建方法,其特征在于:所属步骤s9包括以下子步骤:
s91.根据左图像和右图像上的对应匹配点关于物体上点p的视差,以及左相机和右相机的光心,得到三角形polor相似于三角形p1r,其中相似三角形比例公式为:
其中,t为左相机和右相机的光心距离,d为左图像和右图像上的对应匹配点关于物体上点p的视差d=xl-xr,f为左相机和右相机的的焦距,z为p点的深度值,ol为左相机光心,or为右相机光心;
s92.利用式(13)得到p点的三维坐标(x,y,z),
最后求得图像上所有点的三维坐标(x,y,z)。
技术总结