摘 要:针对传感技术课程实验教学中利用视觉传感器开展非接触式形貌检测的教学需求,设计了一套基于双目电荷耦合器件(CCD)的三维形貌检测装置。在对实验教学装置进行功能分析的基础上,完成了包含水平和竖直方向的双目CCD视觉测量总体方案,水平方向通过多图像序列进行三维重建;竖直方向通过被测物不同高度截面进行三维重建。进行了硬件设计,主要包括图像采集、机械运动和支架设计,并对机械结构进行了可靠性分析。根据装置工作方案,对两种三维重建方式分别做了相应的理论分析,并在Windows环境下进行软件开发。通过整合VisualSFM、PMSV与Meshlab进行多图像三维重建,同时根据总体方案。设计了相应的图像采集程序。最终在完成总体三维形貌检测系统的情况下,进行了实验测试,给出了实验流程与结果分析。
关键词:图像处理;三维重建;非接触检测;计算机视觉
0 引 言
在传感技术的课程实验教学中,利用电荷耦合器件(CCD)进行视觉测量无论在学生实践能力培养还是工程实际应用中都是重要的内容,非接触式测量可以根据采用的技术手段不同分为声学测量技术、光学测量技术和电磁学检测技术三大类,其中视觉测量应用最为广泛[1-2]。机器视觉是使用光学器件进行非接触感知,自动获取和解释一个真实场景的图像,以获取信息或控制机器或过程[3-4]。机器视觉检测技术是以现代光学为基础,融合电子学、计算机图像学、信息处理、计算机视觉等科学技术为一体的现代检测技术,机器视觉系统可以快速获取大量信息,而且易于与设计信息及加工控制信息集成,基于视觉检测技术的仪器设备能够实现智能化、数字化、小型化、网络化和多功能化,具备在线检测、实时分析、实时控制的能力[5-6]。三维重建是利用二维投影恢复物体三维信息(形状等)的数学过程和计算机技术,它根据真实场景的数据重建出具有准确几何信息和照片真实感的三维模型,可以满足数据的存档、测量和分析等更高层次的需求[7-8]。CCD是一种用电荷量表示信号大小的微型图像传感器,具有光电转换和信号电荷存储、转移及读出的功能,可直接将光学信号转换为模拟电流信号,电流信号经过放大和模数转换,实现图像的获取、存储、传输、处理和复现。CCD检测技术与图像处理技术相结合,具有检测精度高、处理速度快、抗干扰能力强、运行稳定、非接触测量等优点,其测量精度与效率都不受外界影响的干扰,因而在图像采集、非接触测量和实时监控方面得到了广泛应用[9-11]。
本文针对增材制造领域中目标物体三维形貌检测的需求,研制了一套基于双目CCD视觉感知的非接触式三维形貌检测装置,该装置通过电动缸搭载CCD相机,联动转台拍摄被测目标,对应的图像处理系统对所拍摄图像处理后进行自动三维重构,实现全自动的视觉检测、一键扫描和自动三维重构。解决了非接触形貌检测中的实际问题,弥补了传统检测系统需要手动改变被测目标工位位置的缺点,解决了传感技术课程中利用CCD进行非接触测量缺少相应仪器设备的问题。
1 图像的三维形貌重建原理
要从二维图像重建出物体的三维形貌,首先要理清相机的成像过程,这涉及到视觉系统坐标系及其转换关系。视觉系统的三大坐标系包括世界坐标系、相机坐标系和图像坐标系[12-13]。
(1) 世界坐标系OwXwYwZw。目标物体位置的参考系。
(2) 相机坐标系OcXcYcZc。以相机光心为原点Oc,光轴为Zc轴的坐标系。
(3) 图像坐标系xOy/uO′v。以相机拍摄的二维照片为基准建立的坐标系,用于指定物体在照片中的位置,分为图像物理坐标系xOy和像素坐标系uO′v。
转换关系为:世界坐标系通过刚体变换到达摄像机坐标系;然后摄像机坐标系通过透视投影变换到达图像坐标系;最后再将成像平面上的数据转换到图像像素坐标系[13-14]。
(1) 世界坐标与相机坐标之间的变换(刚体变换)。两坐标系位置关系如图1所示。
图1 世界坐标系与相机坐标系位置关系
两台相机在同一时刻拍摄空间物体的同一特征点P,选择左相机坐标系为世界坐标系,空间点P在世界坐标系OwXwYwZw中坐标为Pw(xw, yw, zw),在摄像机坐标系OcXcYcZc中坐标为Pc(xc, yc, zc),世界坐标系下的坐标通过刚体变换的方式转换到相机坐标下的坐标,用矩阵表示为:
(1)
Xc=RXw+T
(2)
式中:Xc代表相机坐标系;Xw代表世界坐标系;R3×3代表旋转;T3×1代表平移;R和T与相机无关,所以称这两个参数为相机的外参数。转换为齐次坐标表示为:
(3)
(4)
(2) 相机坐标系与图像坐标系之间的变换(透视投影)。系统的参考坐标系定在左摄像机,空间任意点P的三维坐标为Pw(xw,yw,zw),对应的图像坐标为(xl, yl),焦距大小是fl;右摄像机坐标系中,点P的坐标为Pcr(xcr, ycr, zcr),对应的图像坐标值为(xr, yr),焦距大小为fr,由于左右摄像机完全相同,有f=fl=fr。由于成像过程与内参相同,这里坐标不区分左右[15]。
根据摄像机的理想透视成像模型(见图2),摄像机坐标通过透视投影变换可得:
(5)
转换为齐次坐标
(6)
图2 透视投影成像模型
(3) 图像物理坐标系与图像像素坐标系的变换(离散化)。图像物理坐标系经过平移和单位转换变化到图像像素坐标系,两者位置关系如图3所示。表示为:
(7)
式中:dx代表x轴方向一个像素的宽度;dy代表y轴方向上一个像素的宽度;dx、dy为摄像机的内参数;u0和v0称为图像平面的主点,也是摄像机的内参数[16],相当于对x轴和y轴的离散化。运用齐次坐标,将上式写成矩阵形式:
(8)
图3 图像物理坐标系与像素坐标系的关系
(4) 世界坐标系与图像像素坐标系之间的整体转换。整体传换如下所示:
(9)
2 三维形貌检测装置总体设计
系统总体从硬件与软件两方面进行设计,其中硬件包括图像采集、机械机构两部分,软件主要由:图像获取、图像特征点提取、立体匹配、相机标定与投影矩阵估计、三维坐标解算构成。系统方案如图4所示。
图4 三维形貌检测装置系统总体方案图
系统设置水平和竖直方向两种CCD视觉测量方法。水平方向通过多图像序列来进行三维重建;竖直方向通过被测物不同高度截面图像进行三维重建。
3 三维形貌检测装置硬件设计
3.1 图像采集模块
图像采集模块工作流程如图5所示。根据流程,图像采集模块所需硬件包括工业相机和配套镜头。相机和镜头是计算机视觉中重要的组成部分,合适的相机和镜头决定了系统的性能[14]。
图5 图像采集模块流程图
3.2 运动模块
运动模块包括直线导轨、转盘和支架,工件放置在转盘上,相机通过支架与直线导轨连接,导轨带动相机实现直线运动,最后整个支架支撑硬件设备。首先根据使用要求选择直线导轨的类型,然后根据产品手册中的速度和负载质量图表选择具体类别,完成最终型号选择后与该型号参数表进行对比校核。根据拍摄要求,转盘直径20 mm,质量0.5 kg,支持连续拍摄和间歇拍摄,间歇拍摄时间、角度可设置。由于总体工作量较大,因此选择电动遥控转盘,两种拍摄模式,一是转盘连续旋转,控制相机一定间隔拍摄;二是控制转盘间歇转动,每停止1次相机拍摄1次。支架主体由工业铝型材拼接完成,支架上固定400 mm×500 mm的钢板用于承载转台和水平电动机,系统整体的硬件装配如图6所示。
图6 总装示意图
4 三维形貌检测装置软件设计
系统软件部分构成如图7所示。在C++环境下开发一个对两台相机同时进行图像信号获取、处理和显示的程序GxMultiCam,其具体流程如图8所示。
图7 软件处理平台模块构成
图8 GxMultiCam流程
软件的流程如图9所示,具体过程为:
(1) 载入采集图像。载入采集图像并对其进行筛选、去噪、校正等预处理。
(2) SIFT特征点提取与匹配。因照片可能存在旋转、缩放或亮度变化,此过程利用SIFT算法提取、描述特征,用RANSAC算法过滤掉误匹配。
(3) SFM稀疏点云重建。在检测出每张图片所有的特征点后,需要对对应的特征点进行匹配,在该匹配过程中,需要完成相机的标定,通过图像中的二维数据点反推出其空间位置,由此将所有的二维特征点反推至三维空间,形成稀疏点云。该过程主要通过SFM(Structure From Motion)技术实现。
(4) PMVS稠密点云重建。稠密点云的生成主要由基于面片的三维立体重建算法(Patch-based Multi-View Stereo Software, PMVS)技术实现。形成稠密点云后,被测目标的轮廓和特征都有了明显的改善。
(5) 删除冗余的错误点。
(6) 表面重建。根据稠密点云虽然能够更加形象地还原出被测目标的形貌,但是其仍只是大量孤立的三维空间点的集合,必须要对其进行表面重建。表面重建可以使用泊松表面重建算法,也可以使用Delaunay三角化。
图9 多图像三维形貌重建软件流程
在Windows环境下进行软件设计。流程(1)~(3)通过VisualSFM软件实现;流程(4)通过加载到VisualSFM中的CMVS/PMVS实现;流程(5)、(6)在Meshlab中实现,处理点云,生成三维模型并可360°观察。
本文基于MC算法进行竖直方向图像三维重建及可视化,首先对图像进行预处理,通过提取边缘得到二值化的图像,并以此作为输入进行三维形貌重建。图像预处理程序集成在一个Matlab GUI中,如图10所示。在理论分析的基础上进行软件设计(Windows环境下),通过Visual Studio2013编写基于MC算法的程序进行三维重建。由一系列二维断层图像构成的数据集形成三维空间采用数据集,采用OpenGL对三维空间数据集进行渲染,以还原出被测目标的三维形貌。
图10 常见图像处理算法GUI界面
5 实验测试分析
5.1 实验过程
在打开设备前将相机调节光圈到最大,检查线路是否连接好。启动RC/RE联机程序,连接导轨,打开相机控制程序,通过微动调节水平方向相机位置,使被测物体位于图像中央,调节焦距环直到采集到的图像清晰且被测物体为止。
竖直方向:首先运行MyDIP.m对图像进行预处理,得到二值化图像,然后将包含二维断层图像的文件夹放在工程Debug(可执行文件.exe所在的)路径下,编译运行程序,在弹出的MFC窗口中单击M按钮即可出现三维重建之后的形貌。
水平方向:
第1步运行VisualSFM,步骤如图11所示。
图11 载入图像
(1) 载入图像。VisualSFM无照片数量限制,照片越多,重建细节越丰富,重建过程消耗时间也越长。
(2) SIFT特征点提取与匹配。由于照片可能存在旋转、缩放或亮度变化,因此需要利用SIFT算法提取、描述其特征,并通过RANSAC算法过滤掉误匹配,该过程可以利用GPU进行加速处理。
(3) 利用SFM进行稀疏3D重建。利用SFM方法,通过迭代求解出相机参数和三维点的坐标,即重建出3D模型的稀疏点云。若有“bad”相机(位置错误或朝向错误),结合工具栏上的“3+”按钮和手型按钮即可删除之,使结果更为准确。
(4) 稠密点云重建。通过CMVS对照片进行聚类,以减少稠密重建数据量,利用PMVS从3D模型的稀疏点云开始,在局部光度一致性和全局可见性地约束下,经过匹配、扩散、过滤生成带有实际颜色的稠密点云,如图12所示。
第2步运行Meshlab。
(1) 输入VisualSFM的生成文件。打开由VisualSFM生成的文件。检测相机载入是否正确,由于可视化相机的尺寸比网格尺寸大得多,所以需调整相机的缩放因子(Scale Factor),直到相机位置清晰可见,如图13所示。
图12 稠密点云重建
图13 查看相机
(2) 稠密点云代替稀疏点云。由路径File -> import Mesh加载稠密点云;通过VisualSFM生成多个.ply文件时,需要将其合并成一个mesh文件。
(3) 网格化。利用泊松表面重建(Poisson Surface Reconstruction)算法由稠密点云生成多边形网格表面。参数中的Octree Depth控制网格的细节,该值越大生成的细节越丰富,占用的内存也越大,影响计算速度,需要进行合理地选择。泊松表面重建算法会生成一个“不漏水”气泡,把所有场景对象包裹在其中,形成封闭的模型,如图14所示。
(4) 修复流形边缘。后续的纹理处理要求网格化的模型必须是流形的,因此需删除非流形边(由多面共享的边)。
(5) 参数化(Parameterization)、投影纹理。根据相机投影关系创建UV映射,保存整个project和mesh。可设置任意分辨率(512的2的2次方倍:512/1 024/2 048/4 096/8 192)的纹理图,如图15所示。
5.2 结果及分析
基于多图像的三维重建系统成像速度快,成像结果清晰,安装过程简单,可在Windows环境下使用,操
作简单,但生成的点云杂点较多,需要在Meshlab下手动删除处理。
6 结 语
本文针对非接触式形貌检测的需求,设计了一种基于双目CCD的三维形貌检测装置,在此过程中进行了目标分析、硬件设计、软件开发和测试分析,对所要研制的三维形貌检测装置进行了功能分析,给出了总体方案,初步确定两种双目CCD视觉检测方法:通过多图像序列来进行三维重建和通过被测物不同高度截面图像进行三维重建。在总体方案的基础上进行了硬件设计,包括图像采集、机械运动并对机械结构进行了可靠性分析,在安全范围内,然后完成了装置硬件的搭建。根据所要进行的三维形貌检测方法进行了理论研究,包括计算机视觉理论和相机模型,阐述了对极几何、基础矩阵和本质矩阵等立体视觉理论,SIFT特征检测和SFM算法,简单介绍了体绘制和面绘制并解释了MC算法的原理,为后续的工作做理论准备。基于多图像的三维重建方法采用SFM方法,通过被测物不同高度截面图像进行三维重建采用MC算法实现。在理论分析的基础上在Windows环境下进行软件设计,多图像三维重建整合了VisualSFM、PMSV与Meshlab进行三维重建,断层图像三维重建通过Visual Studio 2013编写基于MC算法的程序进行三维重建。同时根据重建需求设计了相应的图像采集程序GxMultiCam。介绍了软件流程操作流程以及软件实现,并对图像处理软件进行了测试以及对其测试结果进行分析。最后在总体三维形貌检测系统设计完成的情况下,进行了实验测试,给出了实验流程、结果及分析,实验证明所设计装置能够实现水平方向三维形貌检测的任务,竖直方向由于拍摄图像数量限制没有完成实际目标任务,在传感技术课程实验教学的具体应用中对培养学生的创造性思维和工程实践能力都发挥了重要的作用。