王艳安 , 刘英虎
(长安大学工程机械学院,陕西 西安 710000)
目前,基于装配机器人的智能化需求,需要能够比较准确获取到机械零件的CAD轮廓信息[1]。为了能够准确获取到机械零件三维轮廓信息,本文提出了一种新的机械CAD轮廓提取方法。由于两个正交相机只能提供两个方向的特征信息和位置信息,这就导致了三维模型中的信息不足[2-3]。借助Opencv及其图像处理技术和基于CAD文件的特征提取技术,利用CAD文件中获取的物体轮廓信息和位置信息可以弥补另外一个轴向缺失信息,从而可以比较精确的获取到零件三维轮廓信息[4-5]。
基于实验平台的视觉感知需求,本文首先介绍二维图像提取轮廓的算法,从而获得图像轮廓,然后由零件的结构特征获取所需要的轮廓二维特征信息[6-7]。其中,通过对二维图像进行图像处理,进而获取到所需要的轮廓二维特征信息是本文研究的重点。
实验平台拍摄到的二维图像主要包含像素数据信息。为了更好地描述相机位置,需要构建世界坐标系,将相机的坐标系转换成真实世界坐标系。本文利用两根轴正交布置构建相机获取视野,其相机获取视野实验平台如图1所示。
图1 相机获取视野实验平台
为了能提取准确的轮廓信息,首先需要对相机拍摄的图像进行预处理,经过灰度化,二值化以及去噪等步骤后提高原始图片的像素质量,最后进行二维图像的轮廓提取。轮廓获取流程如图2所示。
图2 轮廓流程框图
轮廓提取实验选取的实验零件以长方体为主,其尺寸分别为60mm×30mm×10mm、50mm×30mm×10mm、40mm×20mm×10mm,材质分别为铝、铜和铁,所使用的实物图如图3所示。
图3 零件实物图
图像轮廓提取实验平台的视觉系统采用的相机为索尼(SONY)系列数字摄像机。该款相机拍摄的二维图像如图4所示。MATLAB是一套功能强大的工程计算软件,可以高效求解复杂的工程问题,用强大的图形功能对数值计算结果进行显示。考虑到轮廓提取准确性和稳定性,选取MATLAB进行图像处理。本文借助软件的图像处理功能结合自主开发进行图像的轮廓提取。
图4 二维图像效果图
图像轮廓提取实验平台的视觉中摄像机首次采集到的图像为灰度图像,因此需要经过一系列的图像预处理才可以进行后面的轮廓提取。在本文中,由于摄像机采集的图像为静态图像,所以在预处理过程中需要对图像进行图像增强方法。均值滤波是较为常见的图像增强方法之一,均值滤波操作后的图像变得更模糊,这也就达到了噪声抑制的目的。通过MATLAB中的图像处理软件工具箱,编程调用相关图像处理程序即可实现图像的均值滤波操作。均值滤波处理后的结果如图5所示。
图5 均值滤波处理的图像
边缘检测主要用于检测数字图像中亮度变化明显的像素。在图像处理方面,边缘检测可以消除与图像识别无关的信息,以此来减少需要处理像素点的时间。通过比较几种常用的边缘检测算法效果,本文确定使用Canny算子进行正交图像的轮廓提取。轮廓提取结果如图6所示。
图6 边缘检测效果图
图像的轮廓按几何特征主要分为直线、圆、多边形和曲线等。在日常的应用场合中,直线和圆是经常遇到的几何特征,因此本节主要对轮廓的直线和圆进行程序检测。采用Hough变换得到的检测结果如图7所示。通过Hough变换检测到的直线效果比较精确,可以比较准确地获得轮廓直线边缘点的位置,像素坐标如图8所示。
图7 Hough变换的直线检测效果图
图8 像素坐标示意图
本文基于CAD特征提取技术,实现了机械零件三维物体的轮廓提取,使用两个相机得到二维图像,并且实现二维图像的轮廓提取、直线和圆的检测、特征点的获取,最终得到了模型CAD三维轮廓信息,较好验证了算法可行性。