Chance小组机器视觉图像处理系统_第1页
Chance小组机器视觉图像处理系统_第2页
Chance小组机器视觉图像处理系统_第3页
Chance小组机器视觉图像处理系统_第4页
Chance小组机器视觉图像处理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、机器视觉二维图像处理软件组长:赵祖乾 组员:张彤 易文星 李琴 赵祖乾 何发富摘要:随着计算机的广泛应用,在智能化蓬勃发展的今天,机器视觉也成为研究的热点。机器视觉在智能化生产中有很大的帮助,能够在恶劣的环境中获取信息,并对获取的信息进行智能的分析,并进行一定的反应,从而达到人工智能控制的一个效果。本文就针对机器视觉对二维图像的识别开发一套简单的图像处理软件,并基于软件工程设计方法来管理整个软件的开发过程,已达到快速、高效、高品质的效果。本文主要对整个软件工程的管理过程进行了详细的分析。关键字:机器视觉, 二维图像, 软件工程,智能化一、 概述1.1 软件工程概述随着计算机的广泛应用,信息产业

2、悄然兴起,越来越成为经济发展中的先导产业。目前,信息化已从整体上引导着世界经济和社会发展,信息处理技术已成为现代化社会生产力、竞争力的关键,具有十分重要的战略地位。这一期间,计算机软件以其独特的知识形态,广泛渗透于国民经济建设的各行各业中,对信息采集、信息处理、信息交换以及生产过程、社会生活的变革产生了深远的影响。计算机软件,尤其是软件工程作为软件产业的依托学科已经成为信息技术的核心之一。1.1.1 软件工程科学产生的背景六十年代末,计算机应用领域的扩大人们对软件的需求量剧增,对软件的正确性提出了更高的要求,并迫切需要缩短软件生产周期。但是,当时的软件编制还只是一种手工活动,过多地依赖程序员的

3、个人能力和技巧,这就导致了软件生产周期长,可靠性及可维护性也很差。软件开发远远满足不了社会的需求,从而爆发了一场“软件危机”。1968年,在NATO会议(德国,Garmisch)上首次提出了软件工程这一概念。而后,围绕如何采用“工程”的方法、技术、管理与控制,开展了大量的研究工作,以期提高软件生产率,改善软件质量,克服“软件危机”。软件工程(software engineering)是应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,解决软件问题的工程。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本

4、等管理。因此,软件工程是一门交又性学科。软件工程作为一门学科的出现给软件界带来了一场变革,众多的研究者和实践者投身于软件工程领域,并取得了丰硕成果。虽然离预期目标仍有很大距离,并未能从根本上克服软件危机,但是软件工程的思想毕竟给人们带来了希望。迄今为止,软件工程的发展大体可分为二个时期。1960年代末到1980年代初,主要围绕软件项目,开展了有关开发模型、方法以及支持工具的研究。其主要成果是,提出了瀑布模型,开发了一些结构化程序设计语言(例如户ASCAL语言等)、结构化方法和支持工具(例如排错工具)。并且,围绕项目管理出现了一些管理方法(例如费用沽算、文档复审等)和支持工具(例如计划工具)。这

5、一时期的主要特点是:前期着重研究系统实现技术,后期强调开发管理及软件质量。通常,我们把一时期称为“项目时期”。1970年代初,自“软件工厂”这一概念提出以来,主要围绕软件工程过程,开展了有关软件生产技术和软件生产管理的研究与实践。其主要成果是,提出了具有广泛应用潜力的面向对象方法以及相关的语言(例如Smalltalk,C+等);大力开展了计算机辅助软件工程(CASE)的研究与实践(例如我国在“七·五”、“八·五”期间,均把这一研究作为国家重点科技攻关课题),各类CASE产品相继问世。有的文献把这一时期称为“过程时期”。1.1.2 软件工程研究的内容及现状软件工程的框架可概括

6、为:目标、过程和原则。目标是生产具有正确性、可用性以及开销合宜的产品。这些目标的实现不论在理论上还是在实践中均存在很多问题有待解决,它们形成了对过程、过程模型及工程方法选取的约束。过程是生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。伴随以上过程的发生,还有管理过程、支持过程、培训过程等。根据软件工程这一框架,其研究内容主要包括:软件开发模型,软件设计方法,软件过程,软件工具,软件开发环境,计算机辅助软件工程(CASE)以及软件经济学等。目前,已提出了很多软件开发模型,例如早期的瀑布模型

7、,以及后来的“演化模型”、“螺旋模型”、“喷泉模型”等。这些模型从不同角度、或多或少地控制了软件开发的复杂性和软件需求的易变性。软件设计方法的研究,主要针对需求和设计,提出了各种方法,其中典型的有:结构化方法、面向数据结构方法和面向对象方法等。其中,面向对象方法以对象、对象关系来构造软件问题模型。主要特点为:问题结构与模型结构基本一致;分析与设计之间“无空隙”,支持“喷泉”开发模型。面向对象方法已颇受注意,有可能成为1990年代大系统分析与设计的主要方法。软件过程的研究主要针对软件生产和管理。1980年于弋以来,计算机辅助软件工程(CASE)或软件_E程环境的研究,作为软件产业的墓础设施建设,

8、一直是软件工程研究的热点。主要包括CASE工具和CASE环境的研究,旨在应用计算机支持软件开友过程,改进软件开发行为,为开发人员提供软件工具、平台和环境,以提高软件生产率并改善软件产品的质量。其中,环境机制实现数据和控制集成;实现工具组合、工具之间的通信和协同工作;实现用户界面集成,使用户具有一致视感。支持多种开发模型、设计方法和项日管理。软件工程的研究已逾二十余年,其间成果纷呈。这些成果的应用为缓解软件危机起到了很好的作用。随着软件技术研究的深入,形式化技术与软件开发方法学相结合,形成形式化的软件开发方法,试图实现从软件的规格说明、软件的设计到软件的代码实现的自动转换和验证。回顾计算机软件领

9、域研究的发展历史,“子程序”、“模块”、“程序包”、“构件”以及“模板”等概念的提出,几乎都要回答一个问题,即构成软件系统的成分是什么,并为此开展了抽象数据类型、重用技术以及组装工具的研究,以图建立工程科学基础。至今,应该说“对象”这一概念还是比较好地回答了这一问题,一方面使软件重用成为可能,另一方而促进了软件组装工具的研究与实现。CASE的研究关系到软件产业的基础建设,它好比一条“生产线”。美国在世纪之交,十分重视计算机软件,把计算机软件列为国家关键技术之首(美国:国家关键技术1991.3),其中CASE和方法研究是两大主题。在计算机辅助软件工程(CASE)方面的研究美国等一些发达国家比我们

10、要早几年,并已有一些产品,例如SGI公司的“CASEVision系列”以及ID的“Stp”等,然而由于软件本身的属性以及CASE技术等因素,至今还没有形成一定规模。近十年来,国家在计算机软件领域对国内一些单位进行了一定的投入和建设,我国在软件工程学科的研究,尤其在软件开发工具、平台和环境方面的研究已具有国际水平,为我国软件产业的发展奠定了良好的基础。1.2 机器视觉概述1.2.1 机器视觉的发展机器视觉的研究是从20世纪60年代中期美国学者L.R.罗伯兹关于理解多面体组成的积木世界研究开始的。当时运用的预处理、边缘检测、轮廓线构成、对象建模、匹配等技术,后来一直在机器视觉中应用。罗伯兹在图像分

11、析过程中,采用了自底向上的方法。用边缘检测技术来确定轮廓线,用区域分析技术将图像划分为由灰度相近的像素组成的区域,这些技术统称为图像分割。其目的在于用轮廓线和区域对所分析的图像进行描述,以便同机内存储的模型进行比较匹配。实践表明,只用自底向上的分析太困难,必须同时采用自顶向下,即把目标分为若干子目标的分析方法,运用启发式知识对对象进行预测。这同言语理解中采用的自底向上和自顶向下相结合的方法是一致的。在图像理解研究中,A.古兹曼提出运用启发式知识,表明用符号过程来解释轮廓画的方法不必求助于诸如最小二乘法匹配之类的数值计算程序。 70年代,机器视觉形成几个重要研究分支:目标制导的图像处理:图像处理

12、和分析的并行算法;从二维图像提取三维信息;序列图像分析和运动参量求值;视觉知识的表示;视觉系统的知识库等。1.2.2 应用领域机器视觉的应用主要有检测和机器人视觉两个方面:机器视觉的应用主要有检测和机器人视觉两个方面: 1. 检测:又可分为高精度定量检测(例如显微照片的细胞分类、机械零部件的尺寸和位置测量)和不用量器的定性或半定量检测(例如产品的外观检查、装配线上的零部件识别定位、缺陷性检测与装配完全性检测)。 2. 机器人视觉:用于指引机器人在大范围内的操作和行动,如从料斗送出的杂乱工件堆中拣取工件并按一定的方位放在传输带或其他设备上(即料斗拣取问题)。至于小范围内的操作和行动,还需要借助于

13、触觉传感技术。 3. 自动光学检查、人脸侦测、无人驾驶汽车、医学等。1.2.3 机器视觉具有以下特点1. 摄像机的拍照速度自动与被测物的速度相匹配,拍摄到理想的图像; 2. 零件的尺寸范围为2.4mm到12mm,厚度可以不同; 3. 系统根据操作者选择不同尺寸的工件,调用相应视觉程序进行尺寸检测,并输出结果; 4. 针对不同尺寸的零件,排序装置和输送装置可以精确调整料道的宽度,使零件在固定路径上运动并进行视觉检测; 5. 机器视觉系统分辨率达到1600×1200,动态检测精度可以达到0.02mm; 6. 废品漏检率为0; 7. 本系统可通过显示图像监视检测过程,也可通过界面显示的检测

14、数据动态查看检测结果; 8. 具有对错误工件及时准确发出剔除控制信号、剔除废品的功能; 9. 系统能够自检其主要设备的状态是否正常,配有状态指示灯;同时能够设置系统维护人员、使用人员不同的操作权限; 10. 实时显示检测画面,中文界面,可以浏览最近几次不合格品的图像,具有能够存储和实时察看错误工件图像的功能; 11. 能生成错误结果信息文件,包含对应的错误图像,并能打印输出。1.3本文中要开发的机器视觉功能软件在实际生产之中,如加工中的零点对齐,确定一个椭圆零件的中心等,如果采用人工去对准的话会很不精确,而却很复杂,加之恶劣的工作环境更是增加了工作的难度。如果引入机器视觉,这写工作就变得相当的

15、简单了,只需要一个点击,机器视觉的计算系统马上就会给你你满意的结果。这不仅在效率上还是在准确度上就有极大的提高。机器视觉在加工中的引入是是很有意思和价值的。针对机器视觉在工程中的应有及工程要求,我们主要开发了二维图像处理及物体的形状识别功能。二维图像的处理1. 图像的几何变换:主要是对图像的位置和尺度进行变换。图像的位置变换包括图像平移、图像旋转、图像镜像和图像转置等。而图像的尺度变换是对图像进行图像的缩放及插值法算法等。2. 图像的预处理:对图像进行图像增强、灰度化、二值化等处理。3. 物体的定位以及边缘检测:在图像中找出所要识别物体的范围以及边缘检测。1.3.2 物体的形状识别对处理后的图

16、像进行分析和识别,用各种算法(如:最小二乘法)判断它是否是三角形、矩形、圆形、正多边形,还是不规则图形;并且找出其几何中心。二、 需求分析一个成功的软件是它能满足用户的需求、能够实现用户需要的功能、能让一般的用户轻松的操作。软件开发的第一步就是进行软件的需求分析。针对本文中的图像处理系统,做以下的需求分析。2.1系统的综合要求1. 功能需求为满足用户能够在实际生产之中帮助用户提高生产效率,快速获取工件的轮廓形状,识别出工件的几何中心,在对刀时能够快速定位到指定的点,需要实现的功能有:获取工件的图像、对工件图像进行计算处理找出工件的几何中心坐标、对不同形状的工件能够智能的选择几何中心的计算方法、

17、实时获取工件图像、自动的进行对刀、从工件中选出目标工件、控制机械手夹起目标工件、检测已知工件的形状时候合格。其中从工件中找出目标工件、工件几何中心计算与识别、工件的合格行检测为主要的三大功能。2. 性能需求由于加工中是一个实时的过程,因此要求系统对图像的获取时间、计算时间和机构执行时间总和必须小于0.5s。本系统用于一般的WinCE系统,硬件平台是:处理器1.2GHz,内存:200M。3. 可靠性和可用性需求本软件系统应用于长时间的生产之中,要求其具有一定的容错能力和长期运行的稳定性,对内存的管理不能有内存泄露的bug。对异常情况也必须能够做出正确的处理。为工作安全性,此系统必须有边界检测功能

18、和急停功能。4. 接口需求满足用户能够自定义的输入数据的接口。所以硬件系统方面支持USB接口,由于考虑到发展的需要,网络化的系统是必须考虑的,因此还要设计有网络数据传输的接口。5. 约束由本系统的工作环境要求,几何中心的定位精度为0.001mm,在图像处理中的图像处理的精度为单位像素。系统还得支持中英文输入和UI界面提示的切换。2.2 系统的数据要求系统摄像机模块获取的图像大小为800X600像素大小的位图,单位像素对应实际的尺寸大小必须小于精度要求的0.001mm。在工厂生产的产品中有圆形、三角形、矩形、菱形工件,它们在传送带上依次经过一个检测系统;该检测系统运用机器视觉的方式把圆形的,三角

19、形的工件用机械手抓取出来并放入另一个传送带。本软件主要是对摄像机捕获的物体(一个或者多个)进行几何形状的识别,判断它是否为我们所需要的物体,如果是我们所需要的物体则告诉机械手需要抓取。而且用户可以对捕获的各个图像进行查看、放大和缩小;可以人工设定参数值来处理图像已获得最佳的参数方案。首先我们必须对摄像机捕获的图像进行处理。图像处理是对图像的各个像素点进行一系列处理,使它们成为便于计算机处理的数据。为此我们设计了一套对图像处理的流程,为物体形状的识别做好充足的准备。三、 软件设计完成需求分析后,需要对软件开发过程进行整体的规划。机器视觉二维图像处理软件软件是激光切割机工艺控制软件中的一个重要模块

20、,属于成本较低的软件,开发周期预计为两周,实现对工件的图像摄取,并进行一系列的处理,最后识别出我们想要的工件并计算出工件的几何中心和控制机械手定位于目标工件。3.1 结构设计根据软件的需求分析,对软件的结构进行整体设计,包括功能、和任务的管理。结构图如图3-1所示。其主要包括工件图像摄取模块、图像数据传输管理模块、图像格式转换模块、图像处理模块、智能识别模块、计算几何中心模块、数据派送模块。3.2 功能模块设计图像摄取模块:在工业生中,图像的摄取与数据的处理是一个实时的过程,因此摄像机是0.05s/张的高速工业摄像机。由精度的要求图像大小为800x600像素bmp位图。该模块用来处理这些数据的

21、读取,保证数据的不丢失,并且为了满足在传输的过程的实时性和数据的可靠性,应该对数据进行一定的压缩处理。图3-1软件整体结构图图像数据传输模块:即使是压缩后图像数据也很大,这个传输带来巨大的负担,机油可能会使下一帧的数据把上一帧的数据给部分的覆盖掉,这必然会导致数据的失真与错乱。数据传输模块必须保证数据的正确性与可靠性。图像格式转化模块:对获取的图像数据必须进行格式的检测,源数据的格式要与机器视觉数据处理中心所能处理的图像格式相一致才能被数据处理中心所处理。如果源数据格式不能被处理时,就必须对源数据进行格式的转化。这在用户自定义输入的数据更是必须的。图像处理模块:图像处理主要是对图像进行必要的预

22、处理,为计算做好不要的准备。包括图像的几何变换,主要是对图像的位置和尺度进行变换。图像的位置变换,主要是图像平移、图像旋转、图像镜像和图像转置等。而图像的尺度变换是对图像进行图像的缩放及插值法算法等。对图像进行图像增强、灰度化、二值化等处理。物体的定位以及边缘检测,在图像中找出所要识别物体的范围以及边缘检测。智能识别模块:这值此软件系统要完成必须功能之一,其主要用途是从很多工件中找出目标工件,或者是检测已知工件时候是合格的工件。此模块主要的功能是把源数据经过一定的预处理之后与目标数据进行对准,然后进行匹配的一个过程。根据用户的设定值,分别有高、中、底三种精度级的检测。计算几何中心模块:有些工件

23、不仅要识别出工件的类型,还需要计算出去几何中心点,为对刀和定位做准备。几何中心可以根据用户的设置而决定是计算质心还是几何中心。这就需要经过对源数据的预测,拟合出标准的几何体,在求取其中心点。或者与计算出其近似中心点,再检测其时候达到我们的要求,既通过某种方法预测其中心的误差,如果误差在应许范围内,这计算成功,否则根据误差结果再计算。直到得到合格的中心点。数据派送模块:根据计算得到的不同结果,分别把计算结果派送到机关切割系统的不同模块,以实现相应的功能。各个模块之间的关系及处理流程如图3-2.图3-2 软件模块关系图四、 进程规划本软件开发成员共有五位,由于本软件成本小,开发人员规模较小,管理十

24、分方便,因此整个工程的规划也较简易,进程规划如下:1) 需求分析阶段需求分析是软件工程的重要部分,越来越受到软件开发人员的重视,需求分析在很大程度上影响软件的架构设计,因此,本软件小组成员在初期做了完整的需求分析,五位成员首先搜集机器视觉和相关几何计算的相关信息,并对其做详细的分析。确定了机器视觉的图像处理思路,主要为实现工件的合格性检测、从多件工件中找出目标工件和计算工件的几何中心点三大功能。摄像机和用户输入的自定义图像文件的格式是不统一的,而软件的图像处理中心所能处理的图像格式是固定的,能处理图像的灰度等也是有一定的范围,系统的实时性要求对大数据的图片传输加重了负担,因此在这些方面需要做许

25、多的基础准备工作。对用户的习惯性和生产工艺数据的收集,实现数据准确性的测试。需求分析阶段的时间为7天。2) 架构设计阶段根据需求分析的内容,进行软件的整体架构设计,基本流程为:数据摄取(用户自定义输入)数据可靠性的传输数据的格式转化数据预处理智能识别检测、找出、计算几何中心模块嵌入激光切割机工艺软件。本软件才用C+语言进行编写,整体设计思想为C+的面向对象的思想,使模块具有较强的独立性、结构规范和层次清晰。同时也能提高软件的重用性。架构设计由三名名小组成员完成,时间为2天。3) 代码实施与测试完成架构设计后,就进入了具体的代码编写与测试阶段,代码实施分为三个部分:数据摄取解析、数据检验和结果分

26、析三个部分,分别由三个小组成员完成,计划时间为8天。4) 文档编写在软件完成后,根据整个软件的开发流程,进行文档的撰写,包括需求分析、软件的架构、主要代码及注释和软件的维护。由两名小组成员完成,计划时间为4天。5) 软件维护与升级软件的维护和升级是一个相当艰难的问题,也是持续时间最长的一个阶段。占软件投资的大部分资源。五、 开发实施最后进入软件开发的实施阶段,主要内容为编码和测试两部分。本工程在Window 7环境下以Visual Studio2008为平台,用C+语言进行开发。根据架构的流程逐步实现各项功能。开发中的功能流程图如图5-1.5.1 BMP(位图)文件解析位图文件可看成由4个部分

27、组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。1. 位图文件头:位图文件头包含有关于文件类型、文件大小、存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义: typedef struct tagBITMAPFILEHEADER /* bmfh */ UINT bfType; /位图文件类型DWORD bfSize; /位图文件的大小,以字节为单位UINT bfReserved1; /位图文

28、件保留字,必须为0UINT bfReserved2; /位图文件保留字,必须为0DWORD bfOffBits; /位图数据起始位置,相对于文件头的偏移量表示,/以字节为单位 BITMAPFILEHEADER; 其中: bfType说明文件的类型,该值必需是0x4D42,也就是字符'BM'。所以它成为判断一段数据流是否为BMP格式图像时的依据。 图5-1 程序功能流程图2. 位图信息头: 位图信息用BITMAPINFO结构来定义,它由位图信息头(bitmap-information header)和彩色表(color table)组成,前者用BITMAPINFOHEADER结构

29、定义,后者用RGBQUAD结构定义。BITMAPINFO结构具有如下形式: typedef struct tagBITMAPINFO /* bmi */ BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors1; BITMAPINFO;其中: a) bmiHeader: 说明BITMAPINFOHEADER结构,其中包含了有关位图的尺寸及位格式等信息;b) bmiColors:说明彩色表RGBQUAD结构的阵列,其中包含索引图像的真实RGB值;c) BITMAPINFOHEADER结构包含有位图文件的大小、压缩类型和颜色格式,其结构定义为: typedef

30、struct tagBITMAPINFOHEADER /* bmih */ DWORD biSize; /本结构所占用的字节数LONG biWidth; /位图的宽度,以像素为单位LONG biHeight; /位图的高度,以像素为单位WORD biPlanes; /目标设备的级别,必须为一 WORD biBitCount; /每个像素所需的位数 DWORD biCompression; /位图压缩类型 DWORD biSizeImage; /位图大小,以字节为单位 LONG biXPelsPerMeter; /位图水平分辨率,以像素/米为单位 LONG biYPelsPerMeter; /位

31、图垂直分辨率,以像素/米为单位 DWORD biClrUsed; /位图实际使用的颜色表中的颜色数 DWORD biClrImportant; /位图显示过程中重要的颜色数 BITMAPINFOHEADER;5.2 类的设计定义图形信息的基类ImageDib,及对应图形的派生类GrayTrans,GrayStren,BinaryTrans,Triangle, Rectangle,Circle,Diamond。GrayTrans,GrayStren ,BinaryTrans,DataTransMan派生类都有输入图像数据,和输出图像数据。而Triangle, Rectangle,Circle,Diamond类有拟合算法,计算几何中心函数。另外DataTran

温馨提示

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

评论

0/150

提交评论