摘要:针对工业制造领域中大型工件很难进行全尺寸测量的问题,提出并实现了一种基于立体视觉技术的便携式工业测量系统。对该系统所采用的特征识别、相机定向、立体匹配、三维重建、多视点云配准等关键算法进行了研究。提出了改进的CANNY边缘亚像素检测算法,使用先验规则去除误识别的标志点,多次拟合定位标志点中心,对标志点环带多次采样取中值求取编码点的ID。根据ID号找出不同照片中的同名编码点,顺次对照片进行相对定向和绝对定向。然后,根据多幅图像的多极线几何约束,实现非编码点的匹配,消除误匹配。采用前方交会法重建标志点的三维坐标,利用光束平差对计算出的结果和内外部参数做迭代修正。最后,设计了双目结构光扫描系统,提出了一种改进的双目像机标定算法,描述了利用全局和局部标志点的子图同构实现多视点云配准的新算法。实验结果表明,该系统可在生产现场对大型工件进行快速测量,整体测量精度达到0.112 mm/3 m,可以满足工业现场大尺寸测量对精度和效率的要求。
关 键 词:立体视觉;标志点识别;立体匹配;三维重建;点云配准
1 引 言
随着制造业工艺水平的不断提高,工业制件特别是大型工件的表面设计越来越多的采用各种复杂曲面。由于这类工件尺寸大,移动困难,传统的测量手段及设备很难对其进行高效率的全尺寸检测:如三坐标机虽然能提供较高的精度,但其很难移动到生产现场进行测量;关节臂、激光跟踪仪、全站仪、经纬仪可以方便地移动并提供高精度,但都属于点测量方式,对于曲面的测量效率太低,且测量时间随采样密度逞平方数增长;大视场的激光扫描仪精度为mm级,多在工程测量上应用,远远不能满足工业测量的高精度要求。因此,目前的研究热点集中于融合了光学、数字图像、计算机视觉技术的非接触式三维测量方法。这种方法有着严谨的理论基础,量程具有较大的弹性,并能提供相当高的精度和较高的测量效率,是解决中大型工件三维全尺寸检测难题的一种可行方案。国外学者已开展了大量深入的研究,Pancewicz提出了基于条纹投影的物体三维建模方法[1],Hung提出了基于视觉技术的全景曲面三维测量系统[2];G.Sansoni采用主动立体视觉和结构光快速获取物体表面三维点云数据[3];C.Reich提出了集成近景摄影测量与编码结构光技术的曲面三维测量方法[4]。国内在这一领域的研究与工业发达国家相比存在较大差距,但在某些应用领域也取得了一些成果。天津大学的叶声华等提出了用于汽车检测的白车身三维视觉检测系统[5];武汉大学在多目立体视觉检测工业板金件方面进行了研究[6]。
近几年,融合多目立体视觉和双目结构光扫描技术的新一代便携式移动光学三维测量的商用系统已在国外出现,如德国GOM 公司的 T RITOP摄影测量系统和ATOS光栅扫描系统,美国GSI公司的V-STAR系统。国内也有多个单位推出类似ATOS的双目结构光扫描系统,如北京开远的OKIO,上海数字制造的3DSS,但它们的多视点云采用相邻拼接的方法,无法解决误差累积问题。本文结合数字近景摄影测量技术,基于立体视觉原理设计并实现了一种大尺寸工业视觉测量系统,包括全局标志点测量系统和局部密集点扫描系统,试图为解决工业领域大型工件全尺寸快速检测这一行业难题做一些探索。
2 立体视觉原理
立体视觉的基本原理与人类双目视觉的立体感知过程类似,即从2个或2个以上的视点观察同一物体得到不同视角下的感知图像,通过计算分析不同图像中同一像点的视差来获取物体表面的三维形状信息[7]。根据使用传感器的多少,立体视觉又分为多目立体视觉和双目立体视觉,双目立体视觉三维坐标测量的数学模型和相应的坐标系如图1所示。
图1 双目立体视觉模型
Fig.1 Stereo vision model
其中,OwXwYwZw为物方世界坐标系,O1X1Y1Z1为左摄像机坐标系,O2X2Y2Z2为右摄像机坐标系,OXY为像平面坐标系。物方点P(Xw,Yw,Zw)在左右摄像机中对应的像点分别为P1(x1,y1,z1)、P2(x2,y2,z2),直线 O1P1和直线 O2P2相交于P点。
通过对两摄像机进行标定,可以得到左摄像机坐标系O1X1Y1Z1与右摄像机坐标系O2X2Y2Z2的相对关系:
其中R=为右摄像机坐标系对左摄像机坐标系的旋转矩阵,t=[tx ty tz]T为右摄像机坐标系对左摄像机坐标系的平移矩阵。在已知像点P1、P2和坐标系关系R、t的条件下即可计算P点三维坐标(Xw,Yw,Zw):
其中A=
因此,双目立体视觉的基本过程是,首先对左右摄像机进行标定,然后两摄像机同时获取物方对象图像,通过数字图像处理获取目标对象特征点,立体匹配后重建出目标对象三维坐标。
3 核心算法
要测量工件复杂曲面的三维坐标,首先采用多目立体视觉技术,测量粘贴在工件表面的众多标志点的三维坐标,得到标志点点云表示的工件表面框架模型。然后将标志点点云模型导入到双目结构光扫描系统,逐块扫描工件表面各个区域,得到局部密集点云,自动拼接后形成完整的工件点模型。基于多目立体视觉技术的标志点测量系统一次性计算出全局标志点的三维坐标,从而保证整体测量精度,消除多视点云拼接的累积误差。
3.1 标志点三维测量
3.1.1 标志点识别及定位
标志点作为待测工件表面上的参考点,测量前先行粘贴于待测物体表面和周围区域。本文采用具有明显人工特征的圆型点作为标志点,分为编码标志点和非编码标志点,如图2所示,右边带圆环段的为编码点。编码点作为辅助测量工具,用于相机的标定和恢复外部姿态。非编码点作为被测对象,用于恢复工件表面相应点的三维坐标。
图2 非编码标志点和编码标志点
Fig.2 Un-coded and coded reference points
单张图像中两种标志点的检测算法如下:
(1)采用Canny算法检测图像中的边缘,得到单像素宽的闭合边缘集;
(2)用梯度幅值作为权值来计算沿梯度方向的位置加权值,对边缘位置沿梯度方向做子像素级校正:
其中,di是一个像素沿梯度方向与检测到的边缘点的距离,gi是梯度幅值。
(3)采用圆度准则鉴别出边缘集中的椭圆,并利用其它先验信息去除不合条件的椭圆,如椭圆的面积太小、凹凸性及封闭性、与相邻的椭圆距离太近等[8]。
(4)两次采用最小二乘拟合出椭圆的中心,第一次拟合后去除掉距离>3σ的边缘,再进行第二次拟合。
(5)判断椭圆外围是否有环带,如果没有即为非编码点;如果有则径向做内外边界的连线,在连线上等距离采样5次,以5次采样的中值与标志点的灰度阈值做比较,大于阈值则本环带的编码为1,否则为0;每36°(对应于 10位编码点)重复上述操作,旋转一周后得到形如“0100100111”的二进制编号。
(6)查表得到编码点的ID。如果查不到则看作非编码点。
标志点识别的稳定性和精度对于后续的相机的标定、姿态恢复及三维空间点坐标的求解有着直接的影响。实验证明,上述算法可以达到0.02像素的定位精度。
3.1.2 相机定向
相机定向就是确定每一幅图像的旋转矩阵R和平移矩阵t中六个外方位元素的过程。以左右两幅图像为例,设左图像为世界坐标系,则左图的投影矩阵Pl=K[1|0],右图的投影矩阵则可以写成Pr=K[R|t],其中:K=是相机的固有内参数矩阵,需要先标定出来,这里视为已知量。左右图像中像点在左相机像空间坐标系下的空间向量与基线向量满足共面方程[9]。
相对定向时可以忽略比例尺的影响,因此每个像对中识别出5对以上的同名编码点,就可以解出像对旋转矩阵R和平移矩阵t。
对图片组中的各像对重复上述操作,完成相对定向,形成一个个的单个模型;以第一张图像的像空间坐标系作为世界坐标系,将各模型连接起来,形成统一坐标系的自由网模型。
3.1.3 标志点立体匹配
立体视觉中的匹配是从不同视角的照片中找到空间点对应的同名像点,是三维重建过程的基础,也是立体视觉技术应用的难点。本文采用的编码点在每张照片上都显示其唯一的ID,通过ID可以对其进行匹配。对于非编码点,由射影几何知两张不同图像上的同名点具有如下关系:
其中:F=K-1[t]×RK-1
式中R和t已在3.1.2中求出;[t]×是平移矩阵的反对称矩阵;m′T、m分别是两张图像上同名像点;F是两张图像之间的基础矩阵。此方程称为同名点之间的极线约束,它说明对于左边图像上一点m,其对应点只能落在右图像的相应极线上l′=Fm上,这样就将潜在的二维搜索空间降为一维。但是,当非编码较密集的情况下,基于外极几何关系的匹配算法在双目立体视觉因只能推断出匹配结果在外极线上,匹配歧异性较大而影响其广泛应用。多目立体视觉测量中由于存在多个相机位置,利用多个图像上的外极线约束就可以大大提高非编码标志点匹配的正确率,见图3。非编码标志点匹配策略如下:
图3 多视图像外极线匹配示意图
Fig.3 Epipolar constraint of multi-view images
(1)图像S1中标志点P′在图像S2中对应点在外极线l12上,将图像S2中符合条件的标志点记录到点集Q12中;
(2)图像S1中标志点P′在图像S3中对应点的外极线l13上,将图像S3中符合条件的标志点记录到点集Q13中;
(3)点集Q12和Q13中满足图像2和图像3对应的外极关系的点才可能是图像1中标志点P′对应的像点,如果满足外极关系的点对只有一对,则认为匹配成功,如果仍然出现多个点对,则继续使用另外的图像加以判别;
通过实际的匹配实验验证,在图像质量较好的条件下,匹配正确率达99%以上。
3.1.4 标志点的三维重建及光束平差
当编码点和非编码点完成同名点匹配后,只需要两张图像就可以通过公式(2)计算出其三维空间坐标。对于多目立体视觉,同一标志点往往出现在多张图片中,可以通过光速平差法,把控制点的像点坐标,标志点的像点坐标,相机的内外参数全部视作观测值进行整体平差计算,同步求解所有参数,使各类观测值的改正数V满足VTPV为最小。
与传统的光束平差法不同,本文考虑了相机可能存在的4种系统误差:径向畸变、偏心畸变、像平面畸变和内方位元素误差,采用光束平差方法整体求解所有的内部参数。将以上各种误差加入共线方程中并线性化得到像点的误差方程式:
式中:V为像点坐标的改正值;X1,X2,X3分别为相机的外方位元素、物方点坐标和相机的内部参数。X1,X2,A1,A2和L的值与共线方程误差方程一般式中的值相同,不同的是X3和A3:
X3即为待标定的内部参数,共有10个未知数,包含了径向畸变、偏心畸变、像平面畸变和内方位元素误差参数。利用以上公式进行光束平差运算,对用传统方法计算出的像机内部参数进行修正,有效地消除了绝大部分的系统误差。
3.2 双目结构光扫描
结构光法的基本思想是利用结构光投影的几何信息来求得物体的三维信息,通过向物体投射各种结构光,如点、单线、多线、单圆、网格、颜色编码条纹等,在物体上形成图案并由摄像机摄取,而后由图像根据三角法和传感器结构参数进行计算,从二维像素坐标计算物体表面采样点的三维坐标[10]。
3.2.1 编码光栅投影及图像获取
本文采用光栅型结构光[11],由DLP投影机投射垂直于基线的正弦条纹到待测物体表面,按照时间序列相移光栅,左右两个相机同步采集多帧图像并编号,如图4所示。
图4 相移法光栅条纹
Fig.4 Phase shifting stripe pattern
3.2.2 立体匹配及三维重建
在某一时刻,沿水平方向投射灰度按正弦变化的竖向条纹,将物体表面分区成多组条纹。然后在下一时刻相移信号,使得物体表面上某一列的灰度也按正弦波的形式不断变化,且每一列的波形的相位与其它列不同(见黑框)。因此,可以通过对正弦光栅图像解包裹,获得图像x向的对应关系,将两相机图像中的同名列匹配起来[12],再应用3.1.3中的外极线约束方程,求解出左相片中某一像素点在右相片的极线,此极线与右图像中同名列的交点即是其同名像素点,得到其y向坐标。通过此方法,将左右相片中的像素一一对应起来,通过叠加使用多种频率的正弦波,可以将上述分区细分至单个像素。
在完成左右两相机图像单个像素的一一匹配后,就可以应用公式(2)计算出此像素对应空间点的三维坐标。
3.2.3 双目标定算法
传统的摄像机标定算法需要精确控制摄像机和标定物的相对运动,或者需要精确地知道标定物几何尺寸[13],这类方法能够实现高精度的标定,但标定过程复杂,在实际中难以应用。张正友提出一种使用平面棋盘格进行摄像机标定的柔性方法[14]。在张正友标定算法中,仅考虑了两阶径向畸变,忽略了切向畸变和薄棱镜畸变,主要是因为畸变参数过多可能导致非线性优化失败,为了进一步提高双目结构光扫描系统的测量精度,本文提出了一种新的标定算法,以张正友摄像机标定算法为初始值,考虑标定平面模板加工制造中的误差,加入更多的畸变参数,使用光束平差算法优化初始的标定结果,既提高了标定精度,又避免了非线性迭代不收敛的问题。
标定时使用的平面标定板如图5所示,图中小圆点为非编码标志点,带圆环段的编码标志点,标定前需要先用3.1所述标志点测量方法测量出最远两对角编码点的精确距离,具体标定算法如下:
(1)将标定平面模板放置在测量装置前1 m处,两摄像机同时拍摄五组不同姿态的图像;
(2)对5组图像进行特征点识别,得到圆形特征点中心的图像坐标,带编码的特征点还要得到其编码;
(3)根据编码特征点分析得到其他特征点在模板中的行列位置;
(4)根据标定平面模板特征点的实际尺寸和对应的图像坐标,使用张正友标定算法计算出两摄像机的内参数和每幅图像对应的外参数;
(5)使用光束平差法对两摄像机内外参数、标定平面模板世界坐标进行迭代平差;
(6)利用光束平差算法前后的摄像机内外参数分别计算出优化前后双目立体测量系统的标定结果。
图5 双目标定改进算法使用的标定板
ig.5 Plane used in binocular stereo camera calibration
为验证新标定算法的精度,分别用两种方法的标定结果对标定板上的三维空间点进行重投影,计算重投影误差,得到结果如表1所示。标定实验表明,本文方法相对精度优于1/5 000,测量误差是仅使用张正友标定算法的27%,具有较高的测量精度。
表1 两种标定结果的重投影误差对比
Tab.1 Re-projection errors of two calibration methods(pixel)
3.3 多视点云的配准
在对物体表面某一区域进行扫描时,所采集的密集点云采用此时左相机像空间坐标系,因此每一次扫描出的点云坐标系是无序的,需要通过配准将它们的统一到一个坐标系下,本文采用多目视觉测量出的全局标志点坐标系作为世界坐标系,将多视点云分别对齐到世界坐标系下,具体算法如下:
(1)对物体表面某一区域进行光栅投影之前,首先用左右相机对本区域内的标志点拍摄两张照片;
(2)经过图像处理识别出标志点;
(3)由于两相机内外参数经过标定后为已知量,利用标定值对标志点进行立体匹配,前方交会计算出本区域内标志点三维点云;
(4)在三维空间,利用子图同构算法匹配区域标志点和全局标志点点云:区域标志点表示为“子图”,待匹配的全局标志点点云表示为“大图”,在“大图”中搜索同构子图;
(5)匹配成功后,计算出区域到整体的旋转矩阵R和平移矩阵t[15]。
(6)将光栅扫描得到的密集点云根据[R|t]转换到世界坐标系下。
4 实验验证
本文两套系统的测量软件均在VC++6.0下开发。多目视觉测量系统XJTUDP由单反数码相机Canon400D,尼康20 mm定焦镜头、磁性环形编码标志点,高精度比例尺,十字方向尺等部件构成。
双目结构光扫描系统XJTUOM由两个1.3×106万像素工业CCD摄像机和DLP投影光源组成,光学镜头采用Computar 16 mm定焦镜头。扫描头安装在一个重型操作架上,两个摄像机分布于横梁两端,中间部分是投影光源。
选择尺寸3 m×3 m×1 m的大型水轮机叶片铸件为测量对象,实物见图6(a),其表面布置的是编码标志点和非编码标志点。先使用Canon400D相机,围绕叶片多角度拍摄一组照片,多目视觉系统软件处理后得到全局标志点点云,见图6(b),再用双目结构光扫描系统逐块扫描叶片表面,得到叶片表面的密集点云数据,见图6(c)。采用K平均聚类法[16]进行多视点云的融合处理,得到叶片的整体表面密集点云,见图6(d)。
图6 实验对象及测量结果
Fig.6 Experiment object and measurement results
对于得到的叶片密集点云数据,由于没有加工后叶片表面的真实数据,无法将整体测量数据与真实值进行比对,因此采用分步方法估算系统的精度。全局标志点点云控制着全局误差,是测量误差的主要来源,为了验证其精度,选择德国GOM公司的工业近景摄影测量系统TRITOP作为精度对比标准,分别对叶片进行测量。标志点点云生成后,在粘贴的标志点中按不同距离随机选取几十对点,分别用两套系统测量每对点之间的距离,以 TRITOP的测量结果作为对比标准(精度约为1/40 000),表2列出其中10对点距的测量结果及对比。
表2 XJT UDP与TRITOP的测量结果对比
Tab.2 Measurement results of TRITOP&XJTUDP(mm)
从表中数据可以看出,对于尺寸3 m左右的对象,标志点测量系统XJTUDP的测量结果与T RITOP的测量结果基本一致,误差<0.1 mm。
根据德国VDI标准,使用标准球对双目结构光扫描系统进行精度测试,得到的局部密集点云单幅扫描精度为0.02 mm;多视点云的配准精度由局部标志点和全局标志点的匹配精度决定,在匹配程序中设定同名标志点搜索半径为0.03 mm,因此可以认为局部密集点云的最大匹配误差为0.03mm。这样,本文系统的总体测量误差由标志点测量误差、2次局部点云配准误差、2次局部点云的测量误差矢量和构成,且各次误差相互独立,可由下式计算系统总体误差:
5 结 论
现代工业加工制造过程对几何量检测越来越追求大量程、高精度、高效率和低成本,本文基于立体视觉原理和摄影测量技术,提出了一种非接触式的便携式工业视觉测量系统。介绍了视觉测量系统的构成及工作原理,研究了系统所采用的核心算法,包括标志点识别和定位、标志点立体匹配、相机定向、标志点三维重建等,重点描述了改进的双目相机标定算法和多视点云的配准算法。现场实验结果表明,本文系统的测量精度达到0.112 mm/3 m,可满足大多数大型工业品的质量控制要求。此外,相对于传统测量手段,本文系统还具有其他方法无法比拟的优点:测量现场工作量小、高效,不易受灰尘、振动、湿度和温度变化等外界因素干扰等。由于上述的诸多优点,本文系统已在大型模具、汽车外覆盖件、飞机外形测量等多个工业领域应用推广。