C#基于Halcon机器视觉与抓取对象机械手系统设计

C#基于Halcon机器视觉与抓取对象机械手系统设计

1.本文基于机器视觉的可以分为三层:决策层。处理层和执行层。

本文主要
打算解决以下关键技术问题。
1、设置系统硬件环境;
2、C++。源代码编写友好的人机交互接口;
3、针对目标的图像处理算法。识别和目标定位;
4、二次 工业相机和语音识别的发展 模块;
5、分析操纵器控制指令。
6、系统稳定性调试。本系统的预期设计是在运行过程中对 系统作为一个整体,通过开发的上位机控制软件,识别、定位并抓取指定的? 通过手动选择或语音选择对象,然后将其放置在提前设定好位置。

2. 系统设计

2.1. 系统设计框架

本文开发了一种人机交互基于MFC框架的界面,并在Visual C++的基础上进行开发。Studio平台。软件界面包括 显示拍摄的图像,发送控制信号 指示、接收反馈信息、 图像处理的操作,以及控制机器人的操作。以及各种参数的调整等。本文主要研究软件编程和算法应用,其中软件编程包括UI界面编程、数据通信编程,以及单片机编程。和算法的应用是机器视觉图像处理算法。
机器视觉图像处理算法
应用Halcon自己的语言,以及书面算法导出为C/C++语言,然后将代码以 移植到图像处理功能模块中
的主机控制软件。三大开发的算法包括:摄像机校准和手眼系统校准,Blob分析。和形态学处理,基于形状的模板。匹配和形状识别。
硬件部分包括那个黑白色的 大恒工业相机GigE Vision水星图像 系列;矩形光源和环形光源。重拍舞台和摄影机光源支架;Levosol’s。六自由度伺服操纵器;语音。识别单芯片系统模块;TTL转USB。电平转换模块和各种电缆。

2.2. 软件开发平台和框架

Microsoft Visual Studio被用于开发主机系统。编译器的版本和 使用的集成开发环境是最新VisualStudio 2019开发平台如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第1张图片

3. 图像处理算法

3.1. Blob分析

Blob分析(连域分析)是一种流程的总称,包括:图像采集、图像分割和特征提取。
如图所示,首先进行图像采集。
C#基于Halcon机器视觉与抓取对象机械手系统设计_第2张图片

图像分割主要包括图像噪声滤波(filtering)和阈值处理。常见的 滤波方法有:均值滤波、中值滤波和高斯滤波。滤波器。阈值处理主要分为。全局阈值处理(阈值)和动态阈值处理(动态阈值)(局部阈值)。均值滤波是一种典型的线性滤波算法,以达到向图像上的目标像素提出一个模板,即模板包括它周围的相邻像素,那么的平均值来替换原始像素值。模板中的所有像素。遮罩宽度和遮罩高度表示滤波矩阵的乘积大小,而其中的平均滤波效果如图所示:C#基于Halcon机器视觉与抓取对象机械手系统设计_第3张图片中值滤波器是一种非线性平滑滤波器。像素点灰度值设置为该点附近窗口中的所有像素。的参数遮罩类型可以将遮罩的类型设置为圆形和方形。方形。参数Radius代表的半径。掩码。中值滤波的效果如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第4张图片
高斯滤波器是一种线性平滑滤波器,适用于以下情况用于去除高斯噪声。的过程中。加权平均,每个像素的值由以下方式获得。加权平均值本身和其他像素值在邻里。平滑效果随滤波器的大小,高斯滤波效果如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第5张图片
滤除图像的噪声后,需要对图像进行阈值处理。对于在的前景和背景的对比。图像大,全局阈值处理即可。对于对比度较小的情况,动态的必须采用阈值处理。它可以采用 全局阈值来处理,它提取矩形和对比度大的三角形(因为有光照)。重制阶段左侧的操作。该阈值处理效果如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第6张图片
经过阈值处理后,可以清楚地看到图中的三角形部分比较好提取。而长方形部分需要填充,其他区域还是会被误抽取。此时。需要进行数学形态学处理。要进一步提高提取和细分地区。数学形态学是一个最在图像处理中广泛使用的技术。识别可以捕捉到最显著的形状特征。目标对象。形态学有两种基本操作。即腐蚀和膨胀,它们结合在一起形成一个开放的操作和一个封闭的操作。开放式操作方法是先侵蚀后扩张。封闭式的操作方法是先膨胀后腐蚀。腐蚀可以使目标区域的面积变小。导致图像的边界收缩在
性质,它可以用来消除小和。毫无意义的目标。腐蚀可以基于结构圆形或矩形结构的元素执行操作,二进制图像腐蚀操作如图7所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第7张图片
腐蚀效果如图。扩张,可使靶区范围内的较大的背景点,合并目标区域的背景点。触及到目标,并将目标边界扩大到外面的。效果是填补了目标的一些漏洞的区域,并消除其中包含的小颗粒的噪音。目标区域。扩容可根据以下情况进行操作圆形或矩形结构件元素。二进制图像放大操作如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第8张图片
图9. 扩张效果如图10所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第9张图片
C#基于Halcon机器视觉与抓取对象机械手系统设计_第10张图片
腐蚀处理后,可以清楚地看到。画面中的小而无意义的物体有 已被移除,而内部空缺的形状。矩形比较清晰。此时,图像分割是完整的,而长方形内的空缺则需要完全填充后再进行特征提取。然后,通过特征提取,将圆圈的部分和被错误提取的五角星被清除。使得目标矩形和三角形区域需要被提取的特征完全呈现出来。特征的思想这里的提取很简单,区域处理。由于如图11所示,矩形被填充。填充后的特征 萃取,如图12所示
C#基于Halcon机器视觉与抓取对象机械手系统设计_第11张图片
C#基于Halcon机器视觉与抓取对象机械手系统设计_第12张图片填充的长方体部分,就像完整的 三角形部分。此外,图像看起来像四个大小不同的区域,但本质上是一样的。连接域。如果进一步进行图像分割和需要进行提取操作,四个区块需被划分。区域分散到不同的
连接域。然后将该区域用于特征提取,使所需的三角形和矩形的区域完全提取,独立存在。总结Blob分析的基本操作步骤。图像采集、滤波预处理、阈值处理分割、形态学处理和色散。目标对象,经过不同的连接域。在对Blob算法的分析,图像处理的方法在本系统的算法已经完成。

3.2 基于形状的模板匹配

模板匹配是最具代表性的方法在图像识别中的应用。它提取了几个特征识别图像的向量,并将其与要识别的图像进行比较。与原模板的相应特征向量。特征向量之间的距离。图像和模板,并使用最小的距离
方法来确定类别。模板匹配通常会提前建立一个标准的模板库。来寻找模板图像中最匹配的部分。引用的图像。通过对目标图像的遍历,在要匹配的图像,每个起始值的匹配值为像素,可以通过选择某个匹配的方法,而匹配值最大的位置。是候选人的匹配位置,这也就实现了。匹配搜索的效果。
提供的基于形状匹配的算法。海康机器视觉图像处理算法库主要是为收集匹配率建立的模板。基本的
基于形状匹配的过程如下。首先,对ROI的矩形范围内的区域进行匹配值确定,并协调ROI的矩形的左点和右下角是需要确定。随后,该图片的位置。得到矩形区域的中心点,如图所示。
C#基于Halcon机器视觉与抓取对象机械手系统设计_第13张图片
其次,在将图像数据转换为区域,创建一个模板。在模板创建的算法中,有一些重要的参数需要用到要解释的。金字塔的阶段数是参数Numlevels指定。数值越大。找到目标对象所需的时间就越短。的
参数AngleStart和AngleExtent决定范围可能的旋转,AngleStep指定步长大小。角度范围搜索。对于较大的模板,可以使用参数优化,以减少模板。参数Minconstraint用于分隔模板从图像的噪声。如果波动灰度值的范围是10,其对应的设置是10. 参数Metric确定了以下条件:模板识别。如果参数设置use_polarity。图像和模板中的对象必须具备以下条件。同样的对比度。图像转换为面积的效果是如图所示:C#基于Halcon机器视觉与抓取对象机械手系统设计_第14张图片
在创建模板后,您需要监控模板,用于检查该模板的适用性。调试参数,并帮助找到合适的参数。在此外,模板的轮廓是需要获得的。以便日后匹配。创建模板的效果。监控模板和获取模板大纲如图所示 :
C#基于Halcon机器视觉与抓取对象机械手系统设计_第15张图片
创建模板后,搜索模板。模板搜索算法的功能是在图中找到最匹配的模板,并返回长度。模板实例的宽度和旋转角度。该SubPixel参数决定了它是否精确至实现子像素级别,直接影响到了子像素的搜索度。参数MinScore和Greediness,即为前者用来分析旋转对称性和模板的相似性,后者用于搜索到的贪婪程度,直接影响搜索速度,对基本匹配的前提下,提高其价值作为尽可能多。模板搜索如图所示。
C#基于Halcon机器视觉与抓取对象机械手系统设计_第16张图片
模板搜索后,值和变换为用于显示坐标变换。Affine变换被定义为非线性变换或两个向量空间之间的仿射映射,其中包括的非正弦线性变换(通过以下方式进行的变换使用一个函数),然后进行转换。它改变了搜索的模板的参考图像。到当前图像中,而坐标转换为如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第17张图片

4. 上位机图像处理

图像算法在Halcon上进行处理后,它是输出为C++代码。在生成的.Cpp文件中得到动作函数,该函数具有一些属性和从Halcon转换而来的方法,如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第18张图片
软件最初会有一些识别图像显示区域上方的信息。原来的图片控制是需要加载窗口的。与Halcon一起设置。初始界面如下图所示图:C#基于Halcon机器视觉与抓取对象机械手系统设计_第19张图片
然后点击控制按钮矩形的操纵器,并在界面右下角设置了通过画一个矩形框来表示感兴趣的ROI区域。如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第20张图片
右键单击表示设置完成,而图像算法将自动启动,识别程序将显示在以下位置。界面顶部的进度条。右下角的进度条 的界面显示实时处理的进度。如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第21张图片
当进度条达到100%时。表示处理完毕。可见图像区域内的矩形已被提取,并且界面顶部的信息显示它是认识到这是一个长方形,坐标是其中心点的位置,如图所示:
C#基于Halcon机器视觉与抓取对象机械手系统设计_第22张图片

关注苏州程序大白,持续更新技术分享。谢谢大家支持

你可能感兴趣的:(Halcon,上位机,C#,计算机视觉,c#)