Chance小组机器视觉图像处理系统文档格式.docx
- 文档编号:21311240
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:11
- 大小:82.66KB
Chance小组机器视觉图像处理系统文档格式.docx
《Chance小组机器视觉图像处理系统文档格式.docx》由会员分享,可在线阅读,更多相关《Chance小组机器视觉图像处理系统文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
1960年代末到1980年代初,主要围绕软件项目,开展了有关开发模型、方法以及支持工具的研究。
其主要成果是,提出了瀑布模型,开发了一些结构化程序设计语言(例如户ASCAL语言等)、结构化方法和支持工具(例如排错工具)。
并且,围绕项目管理出现了一些管理方法(例如费用沽算、文档复审等)和支持工具(例如计划工具)。
这一时期的主要特点是:
前期着重研究系统实现技术,后期强调开发管理及软件质量。
通常,我们把一时期称为“项目时期”。
1970年代初,自“软件工厂”这一概念提出以来,主要围绕软件工程过程,开展了有关软件生产技术和软件生产管理的研究与实践。
其主要成果是,提出了具有广泛应用潜力的面向对象方法以及相关的语言(例如Smalltalk,C++等);
大力开展了计算机辅助软件工程(CASE)的研究与实践(例如我国在“七·
五”、“八·
五”期间,均把这一研究作为国家重点科技攻关课题),各类CASE产品相继问世。
有的文献把这一时期称为“过程时期”。
1.1.2软件工程研究的内容及现状
软件工程的框架可概括为:
目标、过程和原则。
目标是生产具有正确性、可用性以及开销合宜的产品。
这些目标的实现不论在理论上还是在实践中均存在很多问题有待解决,它们形成了对过程、过程模型及工程方法选取的约束。
过程是生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
伴随以上过程的发生,还有管理过程、支持过程、培训过程等。
根据软件工程这一框架,其研究内容主要包括:
软件开发模型,软件设计方法,软件过程,软件工具,软件开发环境,计算机辅助软件工程(CASE)以及软件经济学等。
目前,已提出了很多软件开发模型,例如早期的瀑布模型,以及后来的“演化模型”、“螺旋模型”、“喷泉模型”等。
这些模型从不同角度、或多或少地控制了软件开发的复杂性和软件需求的易变性。
软件设计方法的研究,主要针对需求和设计,提出了各种方法,其中典型的有:
结构化方法、面向数据结构方法和面向对象方法等。
其中,面向对象方法以对象、对象关系来构造软件问题模型。
主要特点为:
①问题结构与模型结构基本一致;
②分析与设计之间“无空隙”,支持“喷泉”开发模型。
面向对象方法已颇受注意,有可能成为1990年代大系统分析与设计的主要方法。
软件过程的研究主要针对软件生产和管理。
1980年于弋以来,计算机辅助软件工程(CASE)或软件_E程环境的研究,作为软件产业的墓础设施建设,一直是软件工程研究的热点。
主要包括CASE工具和CASE环境的研究,旨在应用计算机支持软件开友过程,改进软件开发行为,为开发人员提供软件工具、平台和环境,以提高软件生产率并改善软件产品的质量。
其中,环境机制实现数据和控制集成;
实现工具组合、工具之间的通信和协同工作;
实现用户界面集成,使用户具有一致视感。
支持多种开发模型、设计方法和项日管理。
软件工程的研究已逾二十余年,其间成果纷呈。
这些成果的应用为缓解软件危机起到了很好的作用。
随着软件技术研究的深入,形式化技术与软件开发方法学相结合,形成形式化的软件开发方法,试图实现从软件的规格说明、软件的设计到软件的代码实现的自动转换和验证。
回顾计算机软件领域研究的发展历史,“子程序”、“模块”、“程序包”、“构件”以及“模板”等概念的提出,几乎都要回答一个问题,即构成软件系统的成分是什么,并为此开展了抽象数据类型、重用技术以及组装工具的研究,以图建立工程科学基础。
至今,应该说“对象”这一概念还是比较好地回答了这一问题,一方面使软件重用成为可能,另一方而促进了软件组装工具的研究与实现。
CASE的研究关系到软件产业的基础建设,它好比一条“生产线”。
美国在世纪之交,十分重视计算机软件,把计算机软件列为国家关键技术之首(美国:
国家关键技术1991.3),其中CASE和方法研究是两大主题。
在计算机辅助软件工程(CASE)方面的研究美国等一些发达国家比我们要早几年,并已有一些产品,例如SGI公司的“CASEVision系列”以及ID的“Stp”等,然而由于软件本身的属性以及CASE技术等因素,至今还没有形成一定规模。
近十年来,国家在计算机软件领域对国内一些单位进行了一定的投入和建设,我国在软件工程学科的研究,尤其在软件开发工具、平台和环境方面的研究已具有国际水平,为我国软件产业的发展奠定了良好的基础。
1.2机器视觉概述
1.2.1机器视觉的发展
机器视觉的研究是从20世纪60年代中期美国学者L.R.罗伯兹关于理解多面体组成的积木世界研究开始的。
当时运用的预处理、边缘检测、轮廓线构成、对象建模、匹配等技术,后来一直在机器视觉中应用。
罗伯兹在图像分析过程中,采用了自底向上的方法。
用边缘检测技术来确定轮廓线,用区域分析技术将图像划分为由灰度相近的像素组成的区域,这些技术统称为图像分割。
其目的在于用轮廓线和区域对所分析的图像进行描述,以便同机内存储的模型进行比较匹配。
实践表明,只用自底向上的分析太困难,必须同时采用自顶向下,即把目标分为若干子目标的分析方法,运用启发式知识对对象进行预测。
这同言语理解中采用的自底向上和自顶向下相结合的方法是一致的。
在图像理解研究中,A.古兹曼提出运用启发式知识,表明用符号过程来解释轮廓画的方法不必求助于诸如最小二乘法匹配之类的数值计算程序。
70年代,机器视觉形成几个重要研究分支:
①目标制导的图像处理:
②图像处理和分析的并行算法;
③从二维图像提取三维信息;
④序列图像分析和运动参量求值;
⑤视觉知识的表示;
⑥视觉系统的知识库等。
1.2.2应用领域
机器视觉的应用主要有检测和机器人视觉两个方面:
1.检测:
又可分为高精度定量检测(例如显微照片的细胞分类、机械零部件的尺寸和位置测量)和不用量器的定性或半定量检测(例如产品的外观检查、装配线上的零部件识别定位、缺陷性检测与装配完全性检测)。
2.机器人视觉:
用于指引机器人在大范围内的操作和行动,如从料斗送出的杂乱工件堆中拣取工件并按一定的方位放在传输带或其他设备上(即料斗拣取问题)。
至于小范围内的操作和行动,还需要借助于触觉传感技术。
3.自动光学检查、人脸侦测、无人驾驶汽车、医学等。
1.2.3机器视觉具有以下特点
1.摄像机的拍照速度自动与被测物的速度相匹配,拍摄到理想的图像;
2.零件的尺寸范围为2.4mm到12mm,厚度可以不同;
3.系统根据操作者选择不同尺寸的工件,调用相应视觉程序进行尺寸检测,并输出结果;
4.针对不同尺寸的零件,排序装置和输送装置可以精确调整料道的宽度,使零件在固定路径上运动并进行视觉检测;
5.机器视觉系统分辨率达到1600×
1200,动态检测精度可以达到0.02mm;
6.废品漏检率为0;
7.本系统可通过显示图像监视检测过程,也可通过界面显示的检测数据动态查看检测结果;
8.具有对错误工件及时准确发出剔除控制信号、剔除废品的功能;
9.系统能够自检其主要设备的状态是否正常,配有状态指示灯;
同时能够设置系统维护人员、使用人员不同的操作权限;
10.实时显示检测画面,中文界面,可以浏览最近几次不合格品的图像,具有能够存储和实时察看错误工件图像的功能;
11.能生成错误结果信息文件,包含对应的错误图像,并能打印输出。
1.3本文中要开发的机器视觉功能软件
在实际生产之中,如加工中的零点对齐,确定一个椭圆零件的中心等,如果采用人工去对准的话会很不精确,而却很复杂,加之恶劣的工作环境更是增加了工作的难度。
如果引入机器视觉,这写工作就变得相当的简单了,只需要一个点击,机器视觉的计算系统马上就会给你你满意的结果。
这不仅在效率上还是在准确度上就有极大的提高。
机器视觉在加工中的引入是是很有意思和价值的。
针对机器视觉在工程中的应有及工程要求,我们主要开发了二维图像处理及物体的形状识别功能。
1.3.1二维图像的处理
1.图像的几何变换:
主要是对图像的位置和尺度进行变换。
图像的位置变换包括图像平移、图像旋转、图像镜像和图像转置等。
而图像的尺度变换是对图像进行图像的缩放及插值法算法等。
2.图像的预处理:
对图像进行图像增强、灰度化、二值化等处理。
3.物体的定位以及边缘检测:
在图像中找出所要识别物体的范围以及边缘检测。
1.3.2物体的形状识别
对处理后的图像进行分析和识别,用各种算法(如:
最小二乘法)判断它是否是三角形、矩形、圆形、正多边形,还是不规则图形;
并且找出其几何中心。
二、需求分析
一个成功的软件是它能满足用户的需求、能够实现用户需要的功能、能让一般的用户轻松的操作。
软件开发的第一步就是进行软件的需求分析。
针对本文中的图像处理系统,做以下的需求分析。
2.1系统的综合要求
1.功能需求
为满足用户能够在实际生产之中帮助用户提高生产效率,快速获取工件的轮廓形状,识别出工件的几何中心,在对刀时能够快速定位到指定的点,需要实现的功能有:
获取工件的图像、对工件图像进行计算处理找出工件的几何中心坐标、对不同形状的工件能够智能的选择几何中心的计算方法、实时获取工件图像、自动的进行对刀、从工件中选出目标工件、控制机械手夹起目标工件、检测已知工件的形状时候合格。
其中从工件中找出目标工件、工件几何中心计算与识别、工件的合格行检测为主要的三大功能。
2.性能需求
由于加工中是一个实时的过程,因此要求系统对图像的获取时间、计算时间和机构执行时间总和必须小于0.5s。
本系统用于一般的WinCE系统,硬件平台是:
处理器1.2GHz,内存:
200M。
3.可靠性和可用性需求
本软件系统应用于长时间的生产之中,要求其具有一定的容错能力和长期运行的稳定性,对内存的管理不能有内存泄露的bug。
对异常情况也必须能够做出正确的处理。
为工作安全性,此系统必须有边界检测功能和急停功能。
4.接口需求
满足用户能够自定义的输入数据的接口。
所以硬件系统方面支持USB接口,由于考虑到发展的需要,网络化的系统是必须考虑的,因此还要设计有网络数据传输的接口。
5.约束
由本系统的工作环境要求,几何中心的定位精度为0.001mm,在图像处理中的图像处理的精度为单位像素。
系统还得支持中英文输入和UI界面提示的切换。
2.2系统的数据要求
系统摄像机模块获取的图像大小为800X600像素大小的位图,单位像素对应实际的尺寸大小必须小于精度要求的0.001mm。
在工厂生产的产品中有圆形、三角形、矩形、菱形工件,它们在传送带上依次经过一个检测系统;
该检测系统运用机器视觉的方式把圆形的,三角形的工件用机械手抓取出来并放入另一个传送带。
本软件主要是对摄像机捕获的物体(一个或者多个)进行几何形状的识别,判断它是否为我们所需要的物体,如果是我们所需要的物体则告诉机械手需要抓取。
而且用户可以对捕获的各个图像进行查看、放大和缩小;
可以人工设定参数值来处理图像已获得最佳的参数方案。
首先我们必须对摄像机捕获的图像进行处理。
图像处理是对图像的各个像素点进行一系列处理,使它们成为便于计算机处理的数据。
为此我们设计了一套对图像处理的流程,为物体形状的识别做好充足的准备。
三、软件设计
完成需求分析后,需要对软件开发过程进行整体的规划。
机器视觉二维图像处理软件软件是激光切割机工艺控制软件中的一个重要模块,属于成本较低的软件,开发周期预计为两周,实现对工件的图像摄取,并进行一系列的处理,最后识别出我们想要的工件并计算出工件的几何中心和控制机械手定位于目标工件。
3.1结构设计
根据软件的需求分析,对软件的结构进行整体设计,包括功能、和任务的管理。
结构图如图3-1所示。
其主要包括工件图像摄取模块、图像数据传输管理模块、图像格式转换模块、图像处理模块、智能识别模块、计算几何中心模块、数据派送模块。
3.2功能模块设计
图像摄取模块:
在工业生中,图像的摄取与数据的处理是一个实时的过程,因此摄像机是0.05s/张的高速工业摄像机。
由精度的要求图像大小为800x600像素bmp位图。
该模块用来处理这些数据的读取,保证数据的不丢失,并且为了满足在传输的过程的实时性和数据的可靠性,应该对数据进行一定的压缩处理。
图3-1软件整体结构图
图像数据传输模块:
即使是压缩后图像数据也很大,这个传输带来巨大的负担,机油可能会使下一帧的数据把上一帧的数据给部分的覆盖掉,这必然会导致数据的失真与错乱。
数据传输模块必须保证数据的正确性与可靠性。
图像格式转化模块:
对获取的图像数据必须进行格式的检测,源数据的格式要与机器视觉数据处理中心所能处理的图像格式相一致才能被数据处理中心所处理。
如果源数据格式不能被处理时,就必须对源数据进行格式的转化。
这在用户自定义输入的数据更是必须的。
图像处理模块:
图像处理主要是对图像进行必要的预处理,为计算做好不要的准备。
包括图像的几何变换,主要是对图像的位置和尺度进行变换。
图像的位置变换,主要是图像平移、图像旋转、图像镜像和图像转置等。
物体的定位以及边缘检测,在图像中找出所要识别物体的范围以及边缘检测。
智能识别模块:
这值此软件系统要完成必须功能之一,其主要用途是从很多工件中找出目标工件,或者是检测已知工件时候是合格的工件。
此模块主要的功能是把源数据经过一定的预处理之后与目标数据进行对准,然后进行匹配的一个过程。
根据用户的设定值,分别有高、中、底三种精度级的检测。
计算几何中心模块:
有些工件不仅要识别出工件的类型,还需要计算出去几何中心点,为对刀和定位做准备。
几何中心可以根据用户的设置而决定是计算质心还是几何中心。
这就需要经过对源数据的预测,拟合出标准的几何体,在求取其中心点。
或者与计算出其近似中心点,再检测其时候达到我们的要求,既通过某种方法预测其中心的误差,如果误差在应许范围内,这计算成功,否则根据误差结果再计算。
直到得到合格的中心点。
数据派送模块:
根据计算得到的不同结果,分别把计算结果派送到机关切割系统的不同模块,以实现相应的功能。
各个模块之间的关系及处理流程如图3-2.
图3-2软件模块关系图
四、进程规划
本软件开发成员共有五位,由于本软件成本小,开发人员规模较小,管理十分方便,因此整个工程的规划也较简易,进程规划如下:
1)需求分析阶段
需求分析是软件工程的重要部分,越来越受到软件开发人员的重视,需求分析在很大程度上影响软件的架构设计,因此,本软件小组成员在初期做了完整的需求分析,五位成员首先搜集机器视觉和相关几何计算的相关信息,并对其做详细的分析。
确定了机器视觉的图像处理思路,主要为实现工件的合格性检测、从多件工件中找出目标工件和计算工件的几何中心点三大功能。
摄像机和用户输入的自定义图像文件的格式是不统一的,而软件的图像处理中心所能处理的图像格式是固定的,能处理图像的灰度等也是有一定的范围,系统的实时性要求对大数据的图片传输加重了负担,因此在这些方面需要做许多的基础准备工作。
对用户的习惯性和生产工艺数据的收集,实现数据准确性的测试。
需求分析阶段的时间为7天。
2)架构设计阶段
根据需求分析的内容,进行软件的整体架构设计,基本流程为:
数据摄取(用户自定义输入)→数据可靠性的传输→数据的格式转化→数据预处理→智能识别→检测、找出、计算几何中心→模块嵌入激光切割机工艺软件。
本软件才用C++语言进行编写,整体设计思想为C++的面向对象的思想,使模块具有较强的独立性、结构规范和层次清晰。
同时也能提高软件的重用性。
架构设计由三名名小组成员完成,时间为2天。
3)代码实施与测试
完成架构设计后,就进入了具体的代码编写与测试阶段,代码实施分为三个部分:
数据摄取解析、数据检验和结果分析三个部分,分别由三个小组成员完成,计划时间为8天。
4)文档编写
在软件完成后,根据整个软件的开发流程,进行文档的撰写,包括需求分析、软件的架构、主要代码及注释和软件的维护。
由两名小组成员完成,计划时间为4天。
5)软件维护与升级
软件的维护和升级是一个相当艰难的问题,也是持续时间最长的一个阶段。
占软件投资的大部分资源。
五、开发实施
最后进入软件开发的实施阶段,主要内容为编码和测试两部分。
本工程在Window7环境下以VisualStudio2008为平台,用C++语言进行开发。
根据架构的流程逐步实现各项功能。
开发中的功能流程图如图5-1.
5.1BMP(位图)文件解析
位图文件可看成由4个部分组成:
位图文件头(bitmap-fileheader)、位图信息头(bitmap-informationheader)、彩色表(colortable)和定义位图的字节阵列,它具有如下所示的形式。
1.位图文件头:
位图文件头包含有关于文件类型、文件大小、存放位置等信息,在Windows3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义:
typedefstructtagBITMAPFILEHEADER{/*bmfh*/
UINTbfType;
//位图文件类型
DWORDbfSize;
//位图文件的大小,以字节为单位
UINTbfReserved1;
//位图文件保留字,必须为0
UINTbfReserved2;
DWORDbfOffBits;
//位图数据起始位置,相对于文件头的偏移量表示,
//以字节为单位
}BITMAPFILEHEADER;
其中:
bfType说明文件的类型,该值必需是0x4D42,也就是字符'
BM'
。
所以它成为判断一段数据流是否为BMP格式图像时的依据。
图5-1程序功能流程图
2.位图信息头:
位图信息用BITMAPINFO结构来定义,它由位图信息头(bitmap-informationheader)和彩色表(colortable)组成,前者用BITMAPINFOHEADER结构定义,后者用RGBQUAD结构定义。
BITMAPINFO结构具有如下形式:
typedefstructtagBITMAPINFO{/*bmi*/
BITMAPINFOHEADERbmiHeader;
RGBQUADbmiColors[1];
}BITMAPINFO;
a)bmiHeader:
说明BITMAPINFOHEADER结构,其中包含了有关位图的尺寸及位格式等信息;
b)bmiColors:
说明彩色表RGBQUAD结构的阵列,其中包含索引图像的真实RGB值;
c)BITMAPINFOHEADER结构包含有位图文件的大小、压缩类型和颜色格式,其结构定义为:
typedefstructtagBITMAPINFOHEADER{/*bmih*/
DWORDbiSize;
//本结构所占用的字节数
LONGbiWidth;
//位图的宽度,以像素为单位
LONGbiHeight;
//位图的高度,以像素为单位
WORDbiPlanes;
//目标设备的级别,必须为一
WORDbiBitCount;
//每个像素所需的位数
DWORDbiCompression;
//位图压缩类型
DWORDbiSizeImage;
//位图大小,以字节为单位
LONGbiXPelsPerMeter;
//位图水平分辨率,以像素/米为单位
LONGbiYPelsPerMeter;
//位图垂直分辨率,以像素/米为单位
DWORDbiClrUsed;
//位图实际使用的颜色表中的颜色数
DWORDbiClrImportant;
//位图显示过程中重要的颜色数
}BITMAPINFOHEADER;
5.2类的设计
定义图形信息的基类ImageDib,及对应图形的派生类GrayTrans,GrayStren,BinaryTrans,Triangle,Rectangle,Circle,Diamond。
GrayTrans,GrayStren,BinaryTrans,DataTransMan派生类都有输入图像数据,和输出图像数据。
而Triangle,Rectangle,Circle,Diamond类有拟合算法,计算几何中心函数。
另外DataTransMan起数据缓存和管理作用,防止下一次的数据覆盖掉之前的数据。
模块功能设计
Ø
数据传输管理模块:
对捕获图像进行缓存和传输,实现的类为DataTransMan。
图像格式转换模块:
将非BMP格式的图像转换为BMP格式的图像,实现的类为FormTrans。
图像处理模块:
主要是对图像进行预处理,包括灰度处理,灰度增强和图像二值化。
实现的类为GrayTrans,GrayStren,BinaryTrans。
如果以后需对图像处理功能进行扩充,可以根据所需的功能设计相关的类。
数据点的拟合功能:
对预处理的图像进行各种图形的拟合,实现的类有Triangle,Recta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Chance 小组 机器 视觉 图像 处理 系统