【《基于delta机器人的视觉测量系统的设计案例》4000字】_第1页
【《基于delta机器人的视觉测量系统的设计案例》4000字】_第2页
【《基于delta机器人的视觉测量系统的设计案例》4000字】_第3页
【《基于delta机器人的视觉测量系统的设计案例》4000字】_第4页
【《基于delta机器人的视觉测量系统的设计案例》4000字】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于delta机器人的视觉测量系统的设计案例目录TOC\o"1-3"\h\u18117基于delta机器人的视觉测量系统的设计案例 1203981.1.图像拼接 2185971.2.图像处理 4313221.2.1.灰度化 4185281.2.2.均值滤波 4189631.2.3.中值滤波 65371.2.4.图像锐化 8249171.2.5.阈值分割 9127051.3.系统标定 10109931.4.尺寸测量 1191781.4.1.半自动测量 11246421.4.2.自动测量 11本文选用Matlab作为开发环境设计测量系统。为了降低程序复杂性,将图像测量系统分为以下四个模块:图像拼接,图像处理,系统标定,尺寸测量。其界面如图4-1所示。图4-1软件界面Axes1显示采集到的图像,Axes2显示拍到的图片,Axes3显示处理后的图像。图像拼接模块采用结合模块匹配和特征匹配的图像拼接算法。图像处理模块包括以下算法:图像灰度化、均值滤波、中值滤波、sobel算子锐化、LoG算子锐化、otsu法阈值分割和迭代法阈值分割。系统标定模块通过对标准件进行测量,利用输入的标准件物理尺寸,计算求出标定系数,为下一步测量打下基础。图像拼接由于摄像头倍率较大,不能获取完整零件的图像,所以需要应用图像拼接技术,将拍到的多幅图片拼接成完整零件图像。本文基于区域匹配和特征匹配编写一种快速自动拼接算法,其算法流程如图4-2:图4-2图像拼接流程先对相邻两幅图像提取特征点,在第一幅图像中根据特征点确定模板,根据Delta并联机构动平台位移在第二幅图像中限定搜索范围,完成粗匹配。再基于模板块内特征点大小及位置和搜索范围内特征点大小及位置进行精确匹配,最后完成图像拼接。由于获得的工件图像缺乏边缘、轮廓,本文将采用角点作为特征点。因为Harris算子计算简单,不因亮度、对比度的变化而发生较大变化,而且具有旋转不变性,本文将用Harris算子获取角点。其算法步骤如下所示:通过gradient函数求出图像的梯度,其用法为[Ix,Iy]=gradient(F)。其中F为对象图像;Ix、Iy分别为x、y方向的梯度;计算梯度方向的乘积,即:,以及;通过fspecial函数创建高斯低通滤波器,在用filter2函数对、、进行高斯加权;用双for循环遍历图像所有像素点,通过公式计算每个像素的Harris响应值R。然后使用if条件语句,条件设为R<0,滤除不符合条件的像素点,剩余的点即为角点,记录其位置。本文选用序贯相似性检测法(SSDA)进行模板匹配,其算法步骤如下:在重叠区域中根据特征点的分布确定模板块T(x,y)。一般模板块内的重叠区域的特征点个数为3~10个。在采集工件图像时,相机固定,通过delta并联机构移动摄像头采集图像,根据动平台x、y方向的位移量确定图像间的相对位移,从而在第二幅图像中限定搜索范围S(x,y)。设定阈值Th在搜索范围内选取子图Si(x,y),在模板图中随机选取不重复的像素点,计算与子图的绝对误差,并累加,当误差超过Th时,记下累加次数H。绝对误差计算公式如下所示:其中Si(x,y)和重复步骤4,直至遍历完所有子图,H最大值对应的子图为匹配图。图像处理进一步降低程序复杂性,并为了后续可以方便的修改代码,利用Maltab中function函数创建一个新函数my_callback_fcn1。该新函数主要通过if语句,在满足某些条件时,进行相应图像处理。在按钮的回调函数中,设定各类图像处理的条件,然后调用函数。这样的做法,可以将所有图像处理的代码集成到一处,在后续修改时,也很容易找到需修改的位置。灰度化通过Matlab自带函数rgb2gray实现,默认采用的是对R、G、B分量进行简单加法,如式4-1所示:(4-1)均值滤波均值滤波可以归为低通滤波,是一种线性滤波。其原理就是将领域模板内的像素的平均灰度值代替图像中的像素。均值滤波能有效抑制各种噪声,但同时也会破坏了图像的细节部分,易造成图像模糊。均值滤波可以用卷积方式来描述,于是滤波输出的图像g(x,y)可以用如下式4-2的离散卷积表示:(4-2)其中A(r,s)可以看做一个作用于图像f(x,y)的低通空间滤波器,一般k=1(3×3的邻域)效果就很好了。邻域取的越大,图像变得越模糊起来。常用的均值模板如图4-3所示。图4-3常用均值模板在maltab中算法实现步骤如下:通过size函数获得图像大小(height,width);从第二行第二列开始,遍历图像所有像素点,通过两个for循环完成,循环次数分别为i=2:height-1和j=2:width-1;将选定像素点(i,j)的领域矩阵(3×3)和模板相乘,在计算矩阵的行列式;将行列式的值作为灰度值赋给该像素点,循环结束后,将得到滤波后图像。均值滤波对高斯噪声影响如图4-4所示:图4-4均值滤波对高斯噪声影响对椒盐噪声如图4-5所示:图4-5均值滤波对椒盐噪声影响中值滤波中值滤波是一种非线性滤波,它的基本原理是把图像中像素点的灰度值用该点的领域中各点灰度值的中值替代。中值滤波在滤除噪声的同时,可以很好地保护图像的边缘信息,但有时会丢失掉图像中的细节。中值滤波可以定义为如下式4-3所示:(4-3)其中,M为模板;g(m,n)为模板中心的灰度值;f(m−k,n−1)为模板的像素灰度值。中值滤波常规模板如图4-6所示。图4-6中值滤波常规模板在maltab中,其算法实现步骤如下:通过size函数获得图像大小(height,width);从第三行第三列开始,遍历图像所有像素点,通过两个for循环完成,循环次数分别为i=3:height-2和j=3:width-2;将选定像素点(i,j)的领域矩阵(5×5)和模板相乘得到矩阵g用sort函数对矩阵g进行排序。排序后的矩阵g的中心像素的灰度值就是领域矩阵内像素灰度值的中值。将g(13)的值赋给该像素点(i,j),循环结束后,将得到滤波后图像。中值滤波对高斯噪声影响如图4-7所示:图4-7中值滤波对高斯噪声影响对椒盐噪声影响如图4-8所示:图4-8中值滤波对椒盐噪声影响图像锐化Sobel算子是基于一阶导数的边缘检测算子。用来运算图像亮度函数的一阶梯度之近似值。该算子对噪声具有平滑作用,能有效的消除噪声的影响,可以提供精确的边缘方向信息。在Maltab中其算法主要步骤:用两个for循环遍历图像所有的像素点;将选定像素点的领域矩阵与模板相乘,在求出矩阵的行列式的值;将该值作为灰度值赋给对应像素点;循环完毕后,将会得到新的图像,与原图像相加,完成图像锐化。LoG算子是一种利用图像强度二阶导数的零交叉点来求边缘点的算法。因其将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测,检测效果好,图像处理后也很清晰。此种方法在对边缘噪声十分敏感,所以边缘检测前首先通过滤波消除噪声。该算法的主要思路如下:滤波:对图像f(x,y)进行滤波,其滤波函数为高斯函数。如下式4-4所示:

(4-4)将其与f(x,y)进行卷积,可以得到一个平滑的图像I(x,y),如下式4-5所示:(4-5)增强:对平滑图像进行拉普拉斯运算,得到平滑图像I(x,y)的二阶方向导数图像M(x,y),如下式(4-6)所示:(4-6)将高斯拉普拉斯算子展开:检测:根据二阶导数的零交叉点(一阶导数的较大峰值)对图像进行边缘检测。sobel算子模板为,LoG算子模板为,它们的效果如图4-9所示:原图Sobel算子LoG算子图4-9边缘提取阈值分割阈值分割法是一种基于区域的图像分割技术,是对像素集合进行划分,将目标从背景中提取出来。可以从灰度级出发选取一个或多个阈值来实现。本文主要讨论otsu法阈值分割及迭代法阈值分割两种算法。OTSU(大津法)是一种图像二值化算法,该方法又称作最大类间方差法。背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大。算法的具体步骤如下:给定一个初始阈值,将图像分为两类。分别计算出每个灰度值在图像矩阵中的个数。计算每个灰度值在总矩阵中所占的比例,同时计算出图像总体的灰度均值。初始化阈值开始遍历所有像素点,不断进行计算类间方差的运算,直至找出最大类间方差对应的阈值作为最佳阈值。将小于最佳阈值的灰度值赋值为0,大于最佳阈值的灰度值赋值为255。在maltab中,我们可以调用其官方函数graythresh获取最佳阈值,其用法T=graythresh(I),其中I为对象图像,T为otsu法下的最佳阈值。然后用im2bw函数对图像进行分割,其用法为I1=im2bw(I,T),其中I为对象图像,T为设置阈值,I1为处理后得到的二值图像。迭代法的中心思想是使图像分割后的两部分r1和r2的均值和基本保持稳定,其算法具体步骤如下:选择图像灰度的中值作为全局阈值的初始估计值T,并预设精度T0;用阈值T分割图像,得到两个区域:r1由灰度值大于T的像素组成,r2由小于等于T像素组成;通过mean函数计算r1和r2像素的平均灰度值m1和m2,加和取平均,即Ti重复步骤2和3,直到与的差小于T0为止;用im2bw函数进行图像分割,阈值为Ti。Otsu法阈值分割及迭代法阈值分割处理图像效果如图4-10所示:原图otsu法迭代法图4-10阈值分割系统标定由图像所得尺寸是以像素为单位的尺寸,并不是工件的物理尺寸。所以我们需要通过系统标定,获得像素为单位的尺寸和空间中的物理尺寸之间的映射关系。在maltab中,该算法具体步骤如下:获取文本框中输入的标准件物理尺寸S;运用尺寸测量算法,对标准件进行测量,获得像素尺寸,由公式计算标定系数。为了减小系统标定带来的误差,需要进行多次标定,取平均值作为标定系数。当然,当测量环境改变时,如摄像机和工作台的相对位置改变,都会使测量结果出现巨大的误差,但是只要是在同一环境里进行测量,就不会影响零件的测量。选定10mm的量块进行系统标定,结果如图4-11所示:图4-11系统标定尺寸测量本文所设计尺寸测量模块有两种测量模式。第一种为半自动测量,使用者需在处理好的图像中选取两个点,由软件自动测量两点间距离;第二种为自动测量,软件自动识别工件特征,对零件进行十组测量,获取零件长宽,并对测量数据进行分析。半自动测量Matlab中ginput函数提供一个十字光标,在图像中选择我们所需要的位置,输出其坐标值。利用其获得选取点的坐标,然后用几何法求出两点坐标距离,除以系统标定值k,即为实际距离。ginput函数可以获取指定点坐标值,其用法为[x,y]=ginout(n)。用户从图像中选取n个点,按下回车键可终止输入,然后返回选取点的坐标向量x、y。自动测量首先用bwlabel函数获得图像8连通区域,用find函数获取标记区域。通过minboundrect函数获取标记物体最小外接矩形坐标点,再用几何法计算最小外接矩形长宽。最后,将获取的长宽除以系统标定值k,则得到被测物的实际尺寸。bwlabel函数一般用在图像区域的分割

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论