苏 波,郑孟州
(河南理工大学电气工程与自动化学院,河南 焦作 454000)
机器视觉具有信息量大、精度高、检测范围广等特点[1],可以有效提高生产系统的效率和柔性,已被广泛应用于各领域。但是传统的机器视觉系统受限于工业现场的环境条件,获取的图像需要经过一系列的图像处理才能使用,增加了系统的复杂性,且鲁棒性差。随着近二十年设备和技术的发展,3D视觉已成为机器视觉领域发展的焦点[2]。
三维激光扫描智能传感器以精度高、速度快、抗干扰性强的方式作业,对物体发射激光束,获取大量点云数据,对点云数据进行处理、建模可快速还原物体的真实面貌[3],已成为视觉系统中常用的方法。3D智传感器集激光器、传感器和测量软件于一身,具有运行稳定可靠,维护方便简单,运行和构建成本低廉等特点[4],可用于三维位姿智能化测量。
基于上述原因,本文提出利用智能传感器获取工件位姿的方法。
该方法利用三维视觉技术,利用表面匹配技术在点云构建的模型中匹配获取工件位姿。结果表明,该方法能够智能化识别工件获取位姿信息,能较好应用于工业现场。
单目视觉系统的三维位姿智能化测量已成为工业自动化的主要发展方向[5]。为了满足柔性装配系统对工件位姿的感知力,适应智能化生产系统,搭建了工件位姿检测系统。系统结构如图1 所示。
图1 系统结构图
该系统的硬件主要包括智能传感器、工件传送平台、数据传输线和I/O线、转换器及上位机。智能传感器选用Gocator2350。该3D传感器把2D相机、镜头、激光器、标定算法集成在一起,出厂前标定完毕,开箱即可用于测量,开发周期较短。转换器选用HF150W-S-48,并采用符合传感器使用要求的系统和浏览器计算机。根据传感器的参数表,调整架设高度并完成传感器的安装和接线,其他硬件按照相应的技术要求安装连接。完成相应的连接后,进行编码器和平台校准,并在 Web 应用界面上设置好曝光值、采集间距、有效区域等各类相关参数,即可以开始进行图像的采集[6]。
HALCON是德国MVTec公司开发的一套完善的标准机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它能节约产品的成本,缩短软件的开发周期,在欧洲及日本的工业界是公认的具有极佳效能的机器视觉软件。它是一套图像处理库,由多个各自独立的算子以及底层的数据管理核心构成[7]。HALCON支持Windows、Linux和Mac OS X操作环境,它保证了投资的有效性。整个函数库可以用C、C++、C#、Visual Basic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。进行开发时,在 HALCON 图像处理软件的 HDevelop 环境下进行开发会相对比较容易,代码的执行速度也比较快。所以HALCON成为目前业内功能最完善、效率最高的软件之一,已被广泛应用于工业生产中的各个方面,如汽车制造、公路检测、包装检测、电子器件加工等领域。
3D表面被认为是表示和识别三维对象的最有前景的工具之一。而表面匹配是三维计算机视觉领域的基本技术。因此,三维表面匹配被广泛应用于三维物体识别、检索、分类等[8-9]。对于两个给定的三维表面,一个模板表面为M(x,y,z),另一个搜索表面为S(x,y,z)。二者具有重叠的区域O(x,y,z),且O=MIS。一般采用七参数空间相似性变换模型描述两个独立的3D坐标系的外部变换关系,假设模板上任意点P(x,y,z),对应搜索表面共轭点为O(x′,y′,z′),且P、Q应满足P∈(MIO),Q∈(SIO),则Q=t+mRP,即:
(1)
式中:tx、ty、tz为沿坐标轴方向的三个平移分量,像素(Px);φ、ω、k为绕坐标轴旋转的三个角度参数,(°);m为空间坐标系尺度[9]。
表面匹配的目标是寻找M(x,y,z)和S(x,y,z)之间空间几何变换关系的正形变换参数T,使得:
S(x,y,z)=T{M(x,y,z)}
(2)
为了获得正形变换T,引入随机真误差向量V(x,y,z),使得:
V(x,y,z)=S(x,y,z)-M(x,y,z)
(3)
求解上述方程,即可确定正形变换参数T。设P、Q,则:
D=(x-x′)2+(y-y′)2+(z-z′)2
(4)
理论上,匹配完成后共轭点间距平方和值D为0,但是通常情况下不能达到理论值,而且点云数据计算比较复杂。使用HALCON中的算子则可以很好地解决计算问题。
在构建的试验平台下,提出的适用于工业现场的智能传感器的工件位姿获取方法。首先利用智能传感器获取工件的三维点云数据,然后通过获取的信息构建三维模型,最后通过3D表面匹配技术获取工件的位姿。
①Gocator智能传感器采集的图片为16位的RGB图。图像的高度信息、灰度信息和参数信息分别保存在R、G、B三个通道中。运用算子Go2GenTL_ParseData(Image,HeightMap,Intensity,frameCount,timestamp,encoderPosition,encoderIndex,inputs,xOffset,xResolution,yOffset,yResolution,zOffset,zResolution,width,height,hasIntensity)进行图像拆分,得到高度图和灰度图。各参数所代表的意义如下:Image为图像,HeightMap为高度图,Intensity为灰度图,frameCount为帧计数,timestamp 为时间标志,encoderPosition为编码器位置,encoderIndex为编码器序列,inputs为输入,xOffset为X方向偏移,xResolution为X方向分辨率,yOffset为Y方向偏移,yResolution为Y方向分辨率,zOffset为Z方向偏移,zResolution为Z方向分辨率,width为图像宽,height为图像高,hasIntensity为是否有灰度值。图像的宽度和高度表示x和y轴的尺寸,每个3D点像素代表现实世界坐标中的一个点。根据像素坐标(Px,Py,Pz),计算世界坐标(X,Y,Z):
(5)
工件位姿获取方法流程如图2所示。
图2 工件位姿获取方法流程图
然而智能传感器在获得的参数信息中并没有X图像和Y图像,只有校准的深度图像,即“Z图像”可用。因此,可以创建对应的X和Y图像:X和Y图像必须具有与Z图像相同的尺寸。通过将Z图像的列号分配给X图像的每一行来创建X图像,并且通过将Z图像的行号分配给Y图像的每一列来创建Y图像,这样创建的X、Y和Z图像可以转换成3D模型。
②通过上述方法获得X、Y和Z图像,而且X、Y和Z图像已经包含3D对象模型所需的信息。因此,可以使用运算符xyz_to_object_model_3d,从X,Y和Z图像中导出3D对象模型。
③create_surface_model表面模型是通过对具有一定距离的3D对象模型进行采样而创建的。采样距离必须在参数采样距离中指定。表面模型的创建要求3D对象模型包含点和法线,而上述方法利用xyz_to_object_model_3d算子构建3D模型,再创建的表面模型中则包含点和2D映射信息。通过上述方法构建的表面模型如图3所示。
图3 表面模型
④通过运算符find_surface_model,在3D场景ObjectModel3D中查找表面模型SurfaceModelID的最佳匹配。找到的对象实例的3D姿态在Pose中返回。运算符find_surface_model(::SurfaceModelID,ObjectModel3D,RelSamplingDistance,KeyPointFraction,MinScore,ReturnResultHandle,GenParamName,GenParamValue:Pose,Score,SurfaceMatchingResultID)参数如上所示。算子的匹配过程分为三个步骤。
首先,从ObjectModel3D中传递的场景中统一采样点。采样结果可由参数RelSamplingDistance和KeyPointFraction控制。RelSamplingDistance为采样距离,KeyPointFraction为关键点比例。减小采样距离和增加关键点比例,会降低匹配速度,但可以获得更稳定的匹配效果。反之,则会降低匹配稳定性提高匹配速度,可以利用这两个参数来寻找合适的稳定与速度结合的匹配方案。对于每个选定的关键点,通过将关键点与所有其他采样场景点配对,找到表面模型上具有相似距离和相对方向的点对来计算表面模型的最佳姿态。对象上采样的场景点数量被认为是姿势的得分。
其次,稀疏姿态细化。将前一步中找到的近似姿态进一步细化,这增加了姿势的准确性和分数值的重要性。稀疏姿态细化使用来自近似匹配的采样场景点。姿态被优化,使得从采样的场景点到最近的模型点的平面的距离是最小的。
最后,密集的姿势细化。准确地细化前面步骤中找到的姿势。此步骤与稀疏姿态细化类似,并将场景点与最近模型点的平面之间的距离最小化。不同之处在于,只有前一步得分最高的才会被提炼,而且ObjectModel3D中传递的场景中的所有点都用于细化,从场景中取得所有点提高了细化的准确性。
完成系统的构建后,对上述工件位姿获取方法进行了试验验证。仿真试验从智能传感器采集的在不同场景中工件的位姿信息建立场景,并从中随机选取5个场景进行匹配试验分析。在各场景中获得的匹配结果如图4所示,表面匹配获得的工件位姿数据如表1所示。
图4 匹配结果
场景X轴平移 Y轴平移 Z轴平移 X轴旋转 Y轴旋转 Z轴旋转 119.414126.27310.571 00.022354.852121.2612-48.260-173.69411.366 3355.716359.6763.0693130.205-163.02712.334 6357.8502.974323.1374120.135-17.345-12.530 75.205 17353.732327.9325153.675-47.49613.425 4357.4194.230327.361
本文以专业的机器视觉处理软件HALCON为平台,配合使用3D智能传感器Gocator2350,提出了智能传感器位姿获取方法。该方法利用智能传感器获取工件表面点云数据,并利用数据构建表面模型,最后通过3D表面匹配的方法获取场景中工件的位姿。仿真试验表明,该方法可以有效排除工业现场环境因素的干扰,获取准确的位姿数据,具有较好的工业应用价值。