裴忠发,赵敬斌,罗志增(杭州电子工业学院 机器人研究所,浙江 杭州310037)
摘 要:介绍了从图像获取、图像处理、图像理解等几个方面去实现具有视觉功能装配机器人的方法。
关键词:机器视觉;图像处理;图像理解
1 引 言
机器视觉是指用计算机来模拟人的视觉功能的一门科学技术,它的目标就是用图像获取来恢复现实世界的模型,然后认知现实世界。机器视觉是一个相当新颖而且发展十分迅速的研究领域。自从20世纪50年代就着眼于研究统计模式识别继而开始机器视觉的探讨建立了不少机器视觉理论,如马尔(Marr)计算理论、正则化理论等,大大地推动了机器视觉研究的发展。目前,机器视觉广泛地应用于工业检测,医学、遥感图像处理,鉴别、监视系统等方面。
通过对机器视觉的研究,自行编写识别软件和引用美国NI公司的应用软件LabVIEW相结合的办法进行机器视觉的开发,实现装配机器人的视觉功能。
2LabVIEW简介
LabVIEW是基于程序代码的一种图形化编程语言。其提供了大量的图像预处理、图像分割、图像理解函数库和开发工具,用户只要在流程图中用图标连接器将所需要的子VI(Virtual Instruments LabVIEW开发程序)连接起来就可以完成目标任务。任何1个VI都有3部分组成:可交互的用户界面、流程图和图标连接器。LabVIEW编程简单,而且对工件的正确识别率很高。
3图像获取
3.1硬件组成
(1) 彩色CCD摄像机。由光学镜头和图像传感器及相关电路组成,竖直安放在装配机器人的正上方。
(2) 图像采集卡。完成对摄像头中的图像信号的A/D转换,插在PC机的插槽上,CCD器件和图像采集卡通过视频信号线连接起来。
(3) PC机。通过CCD摄像头和图像采集卡获得的图像在PC机上显示,通过LabView编写的程序实现对不同工件的识别。其结构,如图1所示。
3.2软件实现
VFW(Video for Windows)是微软公司推出的基于Windows的视频开发平台,提出了****I文件标准,为用户提供了一套应用程序接口函数(API),通过VC++这个开发工具就可以开发视频采集播放程序。
(1) 调用capCreateCaptureWindow函数创建一个采集窗口,所有的采集操作和设置都以该窗口为基础,其形式为:
其中 参数nID代表窗口号。
(2) 调用CapDriverConnect函数将视频采集卡的驱动程序和采集窗口连接起来,其形式为:
capDriverConnect(hwndC nIndex)
其中 参数hwndC为窗口句柄,nIndex为驱动程序的索引号。
(3) 调用FrameCallbackProc函数在内存进行图像数据的采集,其形式为:
FrameCallbackProc(HWND hwnd LPVIDEOHDR lpVHdr)
(4) 调用capFileSaveDIB函数将采集到的图像存到硬盘,其形式为:
capFileSaveDIB(hwndC “C:\\xxxx.bmp ")
至此,外界环境就被计算机所获取存于硬盘的某一目录下以供计算机做进一步的处理分析。
4 图像处理
通过摄像头获取的图像由于受到外界环境的影响 因此 对图像进行预处理非常重要,其目的就是要恢复周围环境的真实图像。其主要方法有平滑、锐化、增强、边缘检测等。
(1) 平滑。主要是为了减少噪声,在时域内一般用邻域平均的办法,即对图像中的每个像素点取邻域S,计算所有S中的像素中颜色平均值作为处理后的图像的该点的像素值。算式为:
式中M——像素点的数目
S——(x y)点的频域
在频域主要用低通滤波器处理。
(2) 锐化。其目的是为了使边缘和轮廓模糊的图像变得清晰,它是平均的逆处理,即微分处理,即:
对于数字图像,可改写如下:
在频域主要用高通滤波器处理。
(3) 增强。是将图像中感兴趣的特征有选择的突出,而不必逼近原图像,在时域内主要方法为直方图均衡。若一幅数字图像灰度等级为M,各像素灰度值为rk(k=0 1 2 3 … M-1) 灰度值的概率估计Pr(k)为:
Pr(k)=nk/n (k=0 1 2 … M-1) (4)
式中nk——灰度值为的像素点数
n——像素点总数
直方图均衡就要使它线性化 使含有像素多的几个灰度级间隔被拉大,压缩像素少的几个灰度级,从而增大视觉接受的信息量。
(4) 边缘检测。边缘是图像灰度变化比较剧烈的地方,在灰度变化大的地方进行微分将产生高值,此处便是边缘,在数字图像中用差分代替微分运算。常见的有拉普拉斯运算:
5 图像理解与识别
图像理解就是要对图像特征作出描述或解释,它包括两个主要过程:图像分割或图像分类。利用阈值分割 实现从图像中分割出各目标物体,然后提取它们的特征参数进行特征模板匹配。常见的特征参数有面积、形状、矩不变量等。面积A的数学表达式为:
式中k——每个像素的面积
n——像素总数目
形状因子S的可表示为:
S=l2/A
式中l——物体周长
区域的(p+q)阶中心矩定义为:
工业机器人正确识别了工件之后,必须确定工件的实际的具体的位置从而进行正确的抓取。为此,必须建立机器人本身各连杆之间的运动学关系。以机器人的机座为参考坐标系,建立机器人的运动学方程,其通式为然后对其求逆,解出机器人各关节相对与参考坐标系的位置。以此参数控制各关节电机的运行,实现对工件的准确抓取。
6LabView程序实现
基于以上算法,LabView的库函数相应地提供了子VI,如:颜色匹配子VI、形状匹配子VI、边缘检测子VI、图像锐化子VI、图像增强子VI、物体形心坐标子VI等等,用户只要用导线将必要的其他子VI连接起来,就可以完成对获得图像的预处理、理解,从而实现机器人的视觉。
7结束语
通过将美国NI公司的图像处理软件LabVIEW进行机器视觉的开发,实现了装配机器人准确无误地识别不同颜色、不同形状的工件。
参考文献
[1]夏良正.数字图像处理[M].南京:东南大学出版社,1999.
[2] 何发昌 邵 远.多功能机器人的原理及应用[M].北京:高等教育出版社,1996.
[3] 贾云得.机器视觉[M].北京:科学出版社,2000.