文章中图片缺失,可下载WORD文档观看
基于HALCON的机器视觉系统的研究与实现 摘要 近年来,机器视觉系统以其高效率、高可靠、低成本的特点在国外取得了广泛的应用。机器视觉系统适用于众多领域,例如工业自动化、医药业、制造业、农业等,弥补了人类视觉的很多不足。本文采用德国MVTec公司的专业机器视觉软件HALCON来开发机器视觉系统,提出了相关机器视觉实现方法,并且在机器视觉实验平台上完成了一个弹簧片检测任务。
目前关注较多的是机器视觉系统的硬件部分,而机器视觉软件部分关注较少,一个先进的机器视觉系统除了具有高性能的硬件外,还需要有高性能的软件,虽然说许多常见的开发软件例如Mircosoft的VisualStudio、NI的LabWindows\CVI等等都可以开发机器视觉系统,但是开发周期比较长,针对性较弱,程序的复杂程度较高。而采用HALCON作为机器视觉和图像处理核心软件,不仅大大缩短了开发周期,降低了开发难度,而且可以参考HALCON提供的众多机器视觉和图像处理例程来针对具体的任务做具体开发。 文章的第一章研究了机器视觉系统的组成、应用现状和发展,并且对机器视觉软件HALCON做了概述。第二章根据相关要求,选择合适的硬件单元,设计和搭建了VS-ZM1200机器视觉实验平台。第三章研究了机器视觉中常用的一些图像处理技术,重点讨论了在弹簧片检测任务中所采用的图像处理技术和算法,如图像的增强,分割,边缘检测等。第四章研究了机器视觉软件,重点研究了HALCON,并且对在VisualC++开发环境下如何使用HALCON编写的程序做了讨论。第五章介绍了在VS-ZM1200机器视觉实验平台上,使用HALCON和Visual C++开发的一套弹簧片检测系统,该系统完成关于弹簧片的尺寸参数测量和外观参数判别。
第一章:绪论1.1机器视觉概述人类在征服自然、改造自然和推动社会进步的过程中,为了克服自身能力、能量的局限性,发明和创造了许多机器来辅助或代替人类完成任务。这类机器,我们通常称为智能机器,它能模拟人类的功能,能感知外部世界并有效地解决人所希望解决的问题。人类感知外部世界主要是通过视觉、触觉、听觉和嗅觉等感觉器官,而视觉,是人类最重要的感觉功能。视,就是看;觉,就是感觉、感知。通过看来感知外部世界丰富多采的信息。“百闻不如一见”,这句话生动地说明了视觉对获得客观世界信息的重要性。据统计,人所感知的外界信息有80%以上是由视觉得到的[1],通过视觉,我们可以感受到物体的位置,亮度以及物体之间的相互关系等。因此,对于智能机器来说,赋予机器人类的视觉功能对发展智能机器是极其重要的,由此形成了
一门新的学科———机器视觉。
机器视觉,就是用机器(通常是数字计算机)代替人眼来做测量及判断,对图像进行自动处理并报告“图像中有什么”的过程。美国制造工程师协会(SME Society of Manufacturing Engineers)机器视觉分会和美国机器人工业协会(RIA Robotic Industries Association)的自动化视觉分会对机器视觉下的定义为:“机器视觉是通过光学的装置和非接触的传感器自动地接收和处理一个真实物体的图像,以获得所需信息或用于控制机器人运动的装置”。具体来讲,是指通过镜头将被测目标转化为图像信号,投射至影像接受器件(一般为 CCD 元件)上再通过数字计算机进行分析处理。CCD是英文(Charge Coupling Device)的缩写,其中文含义为电荷耦合组件。当不同强度的光线照射在CCD表面,CCD即发生光电效应,产生对应分布的电荷量。通过模数转换即可得到对应的数字量。由于一般均采用8位模数转换,则最低强度光线(黑)到最高强度光线(白)分成256等分(0~255),专业术语称之为灰阶或灰度
随着信息时代的到来,用计算机处理各种信息的需求越来越多。多媒体信息处理技术已经成为日常生活各个领域的迫切需要,而人们就更希望能用计算机来处理视觉问题,例如利用人脸、虹膜、指纹等识别技术来处理与个人有关的一切事务。利用自动识别技术帮助盲人,利用视觉自动监控系统监视环境中发生的非常事件,如陌生人的侵入、老年人的异常行动等。在如智能交通管理系统、视频检索、用于军事目的的自动目标检测等,都需要应用机器视觉技术来解决问题。正如视觉是人类在自然环境与社会环境生存不可缺少的最重要感知器官,机器视觉技术也是信息技术中一门不可缺少的技术,因此它成为计算机学科中不可或缺的一们学科。
1.1.1 机器视觉组成
图1-1 机器视觉系统的组成框图
图1-1用图的方式表示了一个机器视觉系统在最基本层次上的组成。首先对未知物体进行度量,并确定一组特征的度量值。在工业应用中,这些特征包括被度量零件在图像中的长,宽和面积。一旦特征经过度量后,其数值就被送到一个实现决策规则的过程中去。这种决策的规则一般用一个子程序实现。它对度量值进行计算,并根据所度量的值确定物体最可能属于的类别。
典型的机器视觉系统一般包括:光源,光学镜头,摄像机,传感器,图像分析处理软件,通讯接口等组成的。
图1-2:机器视觉基本结构 如图1-2所示
光源:在目前的机器视觉应用系统中,好的光源与照明方案往往是整个系统成败的关键,光源与照明方案的配合应尽可能地突出物体特征量,在物体需要检测的部分与那些不重要部份之间应尽可能地产生明显的区别。其中 LED 光源凭借其诸多的优点在现代机器视觉系统中得到越来越多的应用
光学镜头:光学镜头相当于人眼的晶状体,在机器视觉系统中非常重要。镜头的主要性能指标有焦距、光阑系数、倍率、接口等。
相机:相机是机器视觉系统获取原始信息的最主要部分,目前主要使用的CMOS相机和CCD相机。目前 CCD 摄像机以其小巧、可靠、清晰度高等特点在商用与工业领域都得到了广泛地使用。
图像采集卡:在基于 PC 机的机器视觉系统中,图像采集卡是控制摄像机拍照,完成图像采集与数字化,协调整个系统的重要设备。
视觉传感器:基于 PC 机的机器视觉系统结构没有模块化,安装不方便,可移植性差,特别是与工业广泛使用的PLC 接口比较麻烦。从软件和硬件开发两个方面来考虑,都需要一种更适合工业需求的机器视觉组件。目前国外已经开发出了一种叫做视觉传感器的模块化部件,图 2 为实物图。这种视觉传感器集成了光源、摄像头、图像处理器、标准的控制与通讯接口,自成为一个智能图像采集与处理单元,内部程序存储器可存储图像处理算法,并能使用 PC 机,利用专用组态软件编制各种算法下载到视觉传感器的程序存储器中。视觉传感器将 PC 的灵活性,PLC 的可靠性、分布式网络技术结合在一起。用这样的视觉传感器和PLC 可以更容易地构成机器视觉系统
1.1.2 机器视觉应用机器视觉被称为自动化的眼睛,在国民经济、科学研究及国防建设等领域都有着广泛的应用。视觉的最大优点是与被观测的对象无接触,因此对观测与被观测者都不会产生任何损伤,十分安全可靠,这是其他感觉方式无法比拟的。另外,视觉方式所能检测的对象十分广泛,可以说对对象是不加选择的。理论上,人眼观察不到的范围计算机视觉也可以观察。例如红外线、微波、超声波等人类就观察不到,而机器视觉则可以利用这方面的敏感器件形成红外线、微波、超声波等图像。因此可以说机器视觉扩展了人类的视觉范围。另外,人无法长时间地观察对象,计算机视觉则不知疲劳,始终如一地观测,所以机器视觉可以广泛地用于
长时间恶劣的工作环境。下面列举一些已取得的应用成果[10-14]:
检测技术是现代制造业的基础技术之一,是保证产品质量的关键。近年来,随着市场竞争的不断加剧,对产品质量的要求几乎近于苛刻,产品在线100%检测、控制和管理已成为企业不可缺少的技术装备,并可通过网络与制造业信息化系统连接,实现产品质量管理。随着现代制造业的发展,许多传统的检测技术已不能满足其需要,表现在:现代制造产品种类有很大的扩充,现代制造强调实时、在线、非接触检测,现代产品的制造精度大大提高;现代制造业的进步需要研究新型的产品检测技术,视觉检测技术具有非接触、速度快、精度合适、现场抗干扰能力强等突出的优点,能很好地满足现代制造业的需求,在实际中显示出广阔的应用前景。机器视觉检测系统正是适应以上要求而发展起来的一门学科。机器视觉检测系统是建立在计算机视觉研究基础上的一门新兴检测技术,可用于工业领域的很多方面,如零件检验与尺寸测量、零件的缺陷检查、零件装配、机器人的引导和零件的识别等。
在现代制造业自动化生产中,涉及到各种各样的检查、测量和零件识别应用。这类加工生产的共同特点是连续大批量生产、对尺寸精确度的要求非常高。这种带有高度重复性和智能性判断的工作一般只能靠人手工检测来完成,我们经常在一些工厂的现代化流水线后面看到数以百计甚至逾千的检测工人来执行这道工序,在给工厂增加巨大的人工成本和管理成本的同时,仍然不能保证100%的检验合格率,而当今企业之间的竞争,已经不允许哪怕是0.1%的缺陷存在。有些时候,如微小尺寸的精确快速测量,形状匹配,颜色辨识等,用人眼根本无法连续稳定地进行,其它物理量传感器也难有用武之地。以铸件而言,它的形状不规则导致难以测量,而钣金件也是千变万化。这时,计算机的快速性、可靠性、结果的可重复性,与人类视觉的高度智能化和抽象能力相结合,使机器视觉在工业检测中的应用越来越广泛。机器视觉的特点是自动化、客观、非接触和高精度,与一般意义上的图像处理系统相比,机器视觉强调的是精度和速度,以及工业现场环境下的可靠性。
机器视觉系统形式多样,在不同的场景中应用所采用摄像装置也是不同的。主要区分为,线阵和面阵两类。工业视觉大多数使用线阵系统。下面列出部分使用线阵和面阵视觉系统的应用。
(1)纺织与服装
断纱检测;
织染检测;
布料、皮革形状检测。
(2)食品与粮食
粮食异物检测、分拣与色选;
饮料液位检测;
生产日期、保质期字符识别;
灌装线上空瓶的破损、洁净检测。
(3)特种检验
缆绳磨损与破损检测;
容器与管道探伤;
游乐设施速度检测;
危险装备的在线状态检测。
(4)包装
外观完整性检测;
条码识别;
唆头、密封性检测。
(5)机械制造
零部件外形尺寸检测;
装配完整性检测;
部件的定位与姿态识别;
零件、发动机、底盘等编号的同色凹字符识别。
(6)邮政分拣
邮政编码识别;
包裹物品检测。
(7)海关与口岸
指纹、掌纹、虹膜与人脸识别;
货物识别;
安检危险物品检测。
此外,机器视觉还广泛应用于集成电路检测、航空航天、军事国防、消防和公路交通等。
1.1.3 机器视觉的现状和发展机器视觉自七步发展到现在,已有接近15年的历史。应该说机器视觉作为一个应用系统,其功能特点是随着工业自动化的发展而逐渐完善和发展的。
据不完全统计,目前全球整个视觉市场总量大概在70亿美元这个规模,并且按照每年8.8%的速度在增长。而在中国,由于工业自动化成都还没有达到国外的先进水平,所以机器视觉在中国的应用还处于起步阶段,但是随着制造业对自动化的需求以及对生产质量和管理水平的不断提高,中国对机器视觉的需求将会不断上升。
目前机器视觉朝着两个大方向在发展,一个是嵌入式,如传感器和智能相机,另一个是基于PC的采集板卡和SDK的解决方案。两者不能说孰优孰劣,他们都有各自的适用场合和适用时期。
基于PC的采用板卡和SDK的产品有比较悠久的历史,它是机器视觉在作为一个产业发展之前以图像处理的概念在工业控制领域萌芽时期就存在的,一直延续到今日。她需要用户有比较好的编程基础和对现场应用有比较丰富的经验。
按照国外的发展经验,这类产品加上开发费用一般价格都比较昂贵,所以一般只在一些要求高速度、高精度的场合如半导体行业等应用。
随着IC产业的发展以及图像处理算法技术的不断成熟,过去很多需要定制开发的软件应用现在都可以做成嵌入式的固定模块化产品。这类产品适用于被检测产品大多具有比较规则的形状、简单的检测项目等一类的常规应用。
目前,在很多中低端的应用场合,传感器和智能相机得到了很大的发展。因为其易于使用,容易学习,特别对于系统集成商来说,对于其快速进行系统集成项目非常有利。
然而,随着终端客户对产品从外观、内部结构、产品质量到功能的多样化等需求的不断增长,给生产制造环节提出了更高的要求,使得生产制造环节从制造到管理都必须符合新形式的需求。客户需要更多的灵活应用的产品。嵌入式系统以及基于PC的系统都在向前发展。
嵌入式系统产品在应用高速器件之后的处理速度和精度越来越高,基本上可以满足高端应用场合,这使得嵌入式产品已经可以覆盖高中低端的需求,从而不断的抢占原来基于PC的采用板卡和SDK的产品市场。
而基于PC的采用板卡和SDK的产品,其SDK也变得越来越易用和开放。他们把机器视觉的底层算法进行模块化封装,对机器视觉的处理过程进行流程化的设计,使得整个机器视觉设计犹如“搭积木”一样,在易用性和灵活性方面取得平衡,既方便非专业用户进行设计,又不会使得机器视觉只局限于某集中特定的应用。
它除了含有最一般的图像处理常用方法如滤波、图像增强等外,还还有机器视觉领域很多处理模块如尺寸测量肌酸、边缘检测、Blob分析等,同时配合系统仿真处理环境,利用这些处理模块,配合不同的行业应用面而是用相应的处理流程,是可以在很短的时间内为用户开发出性价比很高的行业解决方案。硬件方面,新的系统都整合有图像采集、图像处理、在线显示、标准的I/O包括串口、并口、鼠标键盘、网络接口等。同时还集成有与外部工业控制设备连接的数据I/O、运动控制、PLC等接口。
因为机器视觉必须与工业自动化设备配合使用,所以这些扩展接口被整合到图像处理装置里,同时配合模块化的图像处理软件,为用户提供一体化的图像解决方案,并能与外部的工业控制设备实现无缝对接。
同时,随着制造行业对管理的要求越来越高,信息管理系统在制造过程越来越重要,而机器视觉系统本质上是属于一个质量检测环节,它需要与制造环节的MES系统以及上层管理环节的ERP系统进行数据交换,故此,图像处理装置的用户二次开发应用环境和外部接口就显得更为重要。
显然,中国的工业自动化的发展较欧美日等工业发达的国家相差不少距离。在中国目前的机器视觉的产业环境中,终端用户和系统集成商都比较偏好于使用嵌入式的视觉系统如传感器和智能相机。这类系统只需要经过一段短时间的培训即可让用户应用,比较快速地解决问题。
然而随着实际应用的深入,不少用户开始觉得固定式的嵌入式应用灵活性不足,于是,基于PC的产品依然有存在市场的合理性。
按照国外的发展经验,一般来说,嵌入式传感器类的视觉产品大多定位于中低端的应用,基于PC的这类开放式的产品因为其需要一定量的二次开发,能够灵活地适应多种需求,因此大多定位于中高端的产品应用基于PC的机器视觉系统。
当然,在中国的产业发展环境,由于人力成本的差异等因素,不一定会完全按照国外的发展路线和模式。例如,在本土市场,有系统集成商采用各种低廉的产品组件可以开发出性能与嵌入式产品一致但价格较为低廉的视觉系统。
随着工业自动化应用在中国各行各业的纵深发展,按照未来产业的发展趋势,嵌入式的产品与基于PC的产品会在市场上长期并存,嵌入式的产品会集成更多的功能和更加灵活的应用,市场份额会越来越大,而基于PC的产品其开发难度也会随着软件包的易用性的不断增强而减少,其应用会在一些高速和高精度场合得到保留。
机器视觉的研究、发展和应用还远没有达到成熟的程度。机器视觉从诞生到今天才只有短短的三十多年时间,在机器视觉中承担“大脑”作用的图像分析处理、图像理解和模式识别理论和技术基础还非常不完善4[]。甚至,机器视觉的图像获取系统也存在许多局限,比如高速图像采集实现困难、价格过高,图像分辨率、灵敏度等不高,敏感元件的制造困难,视觉系统的体积较大,自适应的图像获取无法实现等。本文从这几个方面介绍机器视觉的最新发展情况:图像获取、图像处理与模式识别理论。
1,图像获取技术的最新发展
图像获取技术的发展迅猛,CCD、CMOS等固体器件已经变成成熟应用的技术。首先来看,线阵图像敏感器件,像元尺寸不断减小,阵列像元数量不断增加,像元电荷传输速率得到极大提高。如表1所示,为一种高性能线阵CCD器件的参数5[。]从中可以看到,目前的线阵器件的性能和参数发生了根本的变化,主要表现在像元数和数据率得极大提高,而且器件设计集成了新的功能,具有可编程能力,如增益调整、曝光时间选择、速率调节,以及维护等。在机器视觉中,高速器件应用的场合在不断拓展,如高速扫描图像获取,在集成电路检查、零件姿态识别、快速原型中的逆向工程、纺织、色选等,都是高速器件的用武之地
在线阵器件性能提高的同时,高速面阵图像器件性能也在快速提高。某种超高速面阵CCD器件,允许的最大分辨率达1280×1024像 素,最大帧率1MHz时可采集4帧图像,且像素灵敏度达1 2bits。在提高诸如分辨率、速率、灵敏度等性能的同时,也在发展一些用途和使用场合特殊的器件,如对红外敏感的或微光摄像机,对其他射线和超声波敏感的器件等。
此外,其他类型的图像获取器件的研究也展露头角,比如,光纤视觉传感器,结合其他光电技术,以及构成阵列器件已经有报道。作为图像获取装置的组成部分,嵌入式系统、DSP对图像获取起着图像采集与时序控制的作用。大量的工业图像处理系统中采用嵌入式系统或DSP,也有部分系统采用工业PC机作为主控机器,完成图像采集、处理和识别,并完成控制的功能。嵌入式系统或嵌入式微控制器(Embedded MCU)芯片技术发展迅速,主要的工业应用采用8位、16位芯片,高端应用已经采用32位芯片。在高精度的运动检测和控制领域,32位嵌入式微控制器应用报道也不鲜见。在机器视觉系统中,对嵌入式系统性能的要求比一般的工业控制、机器人控制等场合要高。如,某种32位嵌入式微控制器芯片,内嵌大容量的Flash ROM和SRAM,其主频达到700MHz,带丰富的DSP指令系统,高速并行接口、通信接口齐备,提供可视化编程,支持汇编、ANSIC以及V isualC++等语言编程,支持在线仿真和调试等,使得开发应用的周期大大缩短。
2.,图像处理、图像理解与模式识别理论研究及最新发展
前面已经述及,机器视觉是针对工业应用领域。但作为视觉系统,所采用的图像处理、图像理解与模式识别的基础理论和技术是相同的。数字图像处理、图像理解与模式识别,这是当今计算机视觉研究的热点。这既表明,图像处理与模式识别在现代信息技术中的重要作用,同时也说明,该研究领域仍然存在大量没有解决的研究难题。
图像的增强、图像的平滑、图像的数据编码和传输、边缘锐化、图像的分割等在不同的研究目标和应用中会采取不同的方法,也在不断出现新的研究成果,本文不述及。作为机
器视觉能否得到应用,关键在于图像的识别。图像的模式识别过程实际上可以看作是一个标记过程,即利用识别算法来辨别景物中已分割好的各个物体,给这些物体赋予特定的标记,它是机器视觉系统必须完成的一个任务。什么是模式和模式识别?广义地说,存在于时间和空间中可观察的事物,如果可以区别它们是否相同或相似,都可以称之为模式;狭义地说,模式是通过对具体的个别事物进行观测所得到的具有时间和空间分布的信息;把模式所属的类别或同一类中模式的总体称为模式类(或简称为类)。而“模式识别”则是在某些一定量度或观测基础上把待识模式划分到各自的模式类中去6[。]模式识别的方法,即数据聚类、神经网络、统计分类和结构(句法)模式识别方法。用于图像识别的方法主要分为决策理论和结构方法。决策理论方法的基础是决策函数,利用它对模式向量进行分类识别,是以定时描述(如统计纹理)为基础的;结构方法的核心是将物体分解成了模式或模式基元,而
不同的物体结构有不同的基元串(或称字符串),通过对未知物体利用给定的模式基元求出编码边界,得到字符串,再根据字符串判断它的属类。这是一种依赖于符号描述被测物体之
间关系的方法。广泛应用于统计模式识别中密度估计的方法之一是基于混合密度模型的。根据期望最大(EM)算法得到了这些模型中有效的训练过程。按照共享核函数可以得出条件密度估计的更一般的模型,类条件密度可以用一些对所有类的条件密度估计产生作用的核函数表示。提出了一个模型,该模型对经典径向基函数(RBF)网络进行了修改,其输出表示类条件密度。与其相反的是独二混合模型的万法,其中每个类的密度采用独二混合密度进行估计。提出了一个更一般的模型,共享核函数模型是这个模型的特殊情况。
在20世纪70年代,波兰学者Pawlak Z和一些波兰的逻辑学家们一起从事关于信息系统逻辑特性的研究。粗糙集理论就是在这些研究的基础上产生的。1982年,Pawlak Z发表了经典论又Rough Sets,宣告了粗糙集理论的诞生。此后,粗糙集理论引起了许多科学家、逻辑学家和计算机研究人员的兴趣,他们在粗糙集的理论和应用万面作了大量的研究工作。1991年,Pawlak Z的专著和1992年应用专集的出版,对这一段时期理论和实践工作的成果作了较好的总结,同时促进了粗糙集在各个领域的应用。此后召开的与粗糙集有关的国际会议进一步推动了粗糙集的发展。越来越多的科技人员开始了解并准备从事该领域的研究。目前,粗糙集已成为人工智能领域中一个较新的学术热点,在模式识别、机器学习、知识获取、决策分析、过程控制等许多领域得到了广泛的应用。
参考又献f71提出了一种模式识别理论的新模型,它是基于“认识”事物而不是基于“区分”事物为目的。与传统以“最佳划分”为目标的统计模式识别相比,它更接近于人类“认识”事物的特性,故称为“仿生模式识别”。它的数学万法在于研究特征空间中同类样本的连续性(不能分裂成两个彼此不邻接的部分)特性。又中用“仿生模式识别”理论及其“高维空间复杂几何形体覆盖神经网络”识别万法,对地平面刚性目标全万位识别问题作了实验。对各种形状相像的动物及车辆模型作全万位8 800次识别,结果正确识别率为99.75,错误识别率与拒识率分别为0与0.25%。
在特征生成上,发展出许多新的技术,包括基于小波、小波包、分形的特征,以及独二分量分析。其他研究,也都取得了长足的进展,诸如关子支持向量机,变形模板匹配,线性以及非线性分类器的设计,包括贝叶斯分类器、多层感知器,决策树和RBF网络,独二于上下又的分类,包括动态规划和隐马尔科夫建模技术。
2.3 机器视觅领域应用的拓展
机器视觉的应用研究,已经拓展到几乎每个可能的工业领域。最主要的应用行业,为汽车、制药、电子与电气、制造、包装/食品/饮料、医学等。在现代工业自动化生产中,涉及到各种各样的检查、测量和零件识别应用,例如汽车零配件尺寸检查和自动装配的完整性检查、电子装配线的元件自动定位、饮料瓶盖的印刷质量检查、产品包装上的条码和字符识别等。这类应用的共同特点是连续大批量生产、对外观质量的要求非常高。这种带有高度重复性和智能性的工作,过去是靠人工检测来完成。人工执行这些工序,在给工厂增加巨大的人工成本和管理成本的同时,仍然不能保证100%的检验合格率(即“零缺陷" )0 0.1%的缺陷的存在,对企业在币场上的竞争也是极为不利的。有些时候,如微小尺寸的精确快速测量、形状匹配、颜色辨识等,用人眼根本无法连续稳定地进行。机器视觉的引入,代替传统的人工检测万法,避免了人眼的视觉疲劳。由于机器视觉系统可以快速获取大量信息,而且易于自动处理,也易于同设计信息以及加工控制信息集成,因此,在现代自动化生产过程中,机器视觉系统广泛地应用于工况监视、成品检验和质量控制等领域。机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合人工作业的危险工作环境或人工视
觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。而且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术,极大地提高了投放币场的产品质量,提高了生产效率。典型的线径的在线检测与控制,如被加工工件的直径测量、铜线的拉线线径测量与控制,传统的接触式测量方法存在缺陷,人工在线测量是不可能的。采用线阵CCD线径测量方法,是较早期机器视觉成功应用的例证。机器视觉的特点是自动化、客观、非接触和高精度,与一般意义上的图像处理系统相比,机器视觉强调的是精度和速度,以及工业现场环境下的可靠性。机器视觉极适用于大批量生产过程中的测量、检查和辨识。线阵CCD在连续、扫描在线测量中的应用非常具有优势,如面积测量‘”,,不仅得到的结果准确,而且实时、快捷。再如,零件装配完整性、装配尺寸精度、零件加工精度、位置/角度测量、零件识别、特性/字符识别等。在零售业界,POS的终端设备,如条码识读机,也是线阵CCD在机器视觉上的典型应用。连续流动流体测量,如,透明管道水的澄清度、异物测量,为自来水、工业污水水质测量与控制,江河污染监测;此外,如在线食用油品油质监测,为保证生产出合格的油品提供保障。
随着图像处理和模式识别理论研究的进展,采用二维图像的机器视觉系统在最近几年得到了成功应用。如指纹、掌纹、虹膜和人脸等食物特征识别的机器视觉系统,已经在机场、车
站安检、考勤、门禁认证、海关通关等场合使用;在恐怖主义威胁下,不仅对人的识别更加重视,货物运输中也逐步考虑使用更加先进的机器视觉系统,如,采用计算机断层扫描技术的货物安检和成分识别研究正在开展。
在医学诊疗过程中,病症的识别离不开机器视觉系统的使用。如,超声波、CT.磁共振、基于CCD的内窥镜等装备,在大、中型医院已经获得普遍推广。
目前,国际上视觉系统的应用方兴未艾,国内,机器视觉系统也进入应用的快速发展期,主要的视觉系统采用进口,不同类型的应用,均可以采取购买成熟系统的方法。国内形成产品的视觉系统主要有,用于粮食的色选机、线径测量系统等。
1.2 HALCON概述德国MVtec公司的图像处理软件HALCON,是世界公认具有最佳效能的机器视觉软件。它发源自学术界,有别于市面一些商用软件包。事实上,这是一套图像处理库,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波、色彩分析以及几何、数学变换、形态学计算分析、校正、分类、辨识、形状搜索等等基本的几何以及图像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算分析能力来完成工作。应用范围几乎没有限制,涵盖医学、遥感探测、监拎、及工业上的各类自动化检测。近年来,由于机器视觉技术的发展,这种可以”取
代人眼”,对重复工作不会疲劳,精度高且稳定的特质,促进了高科技业的发展,例如电子业产量的大幅提升。而MVTec公司更是不断的与学术界合作,并且将最新的学术研究成果纳入其中,不但使自己的技术处于业界领导地位,同时也将机器视觉技术推向更高的境界。
机器视觉软件HALCON在世界范围内被广泛的使用,用户可以利用其开放式结构快速开发图像处理和机器视觉应用。
一个专业的图像处理工具不只包含一个图像处理函数库。图像处理任务的解决只是整个机器视觉解决方案的一部分,还包括处理控件和或者数据库连接等软件部分,图像获取及其照明等硬件部分。因此,图像处理系统简单易用,并且能活嵌入到开发项目中是非常重要的。Halcon充分考虑到这些方面,它有如下的特点:
1. HALCON包含了一套交互式的程序设计接口HDevelop,可在其中以HALCON程序代码直接编写、修改、执行程序,并且可以查看计算过程中的所有变量,设计完成后,可以直接输出C/ C++,或是COM(visualbasic)程序代码,嵌入到应用程序程序中。
2, HALCON不限制取像设备,可以自行挑选合适的设备。原厂己提供了4 0余种相机的驱动,即使是尚未支持的相机,除了可以透过指针(pointer)轻易的抓取影像,还可以利用HALOCN开放性的架构,自行编写DLL文件和系统连接。
3、使用HALCON有最好的投资效益。这套软件支持的操作系统除了微软的NT/XP/2000,还有Linux,Solaris7, 181X6. 5, "1'ru64 UN1X5.1等等,当需要开发出一套系统,就可以轻易转换作业平台,以符合需求。为了加快速度,还可以使用多处理器的计算机,所编写的程序不必更动。
4.使用HALOCN,在设计人机接口时没有特别的限制,也不需要特别的可视化组件,可以完全使用开发环境下的程序语言,例如Mircosoft Visual Studio等等,架构自己的接口,最终用户看不到开发工具,而且在执行软件的机器上,只需要很少的资源。
1.3论文主要工作及结构本文在分析机器视觉发展和应用现状,从教学实验,工业机器视觉检测等方面的需要上进行考虑,搭建了一个机器视觉实验平台,该平台核心为机器视觉软件HALCON。该实验平台可以进行多种机器视觉相关实验的设计和研究,并在该实验平台上设计完成了一个弹簧片检测任务,本论文完成了以下主要内容
据项目要求和实验要求选择机器视觉系统的硬件,设计集成方案,组建一个实验平台。
采用德国MVTec公司的机器视觉软件HALCON作为系统软件的处理核心,降低了机器视觉任务软件设计的难度和开发周期。
针对弹簧片工件,选择相关算法,对其进行尺寸测量和合格判断。
对IC芯片表面字符进行识别
基于字符全局特征和局部特征,设计了利用多级分类器并且基于特征点特征识别字符的特征匹配法,完成大写英文字母和阿拉伯数字的混和识别。
利用上述结果对IC表面标识进行识别应用。
第二章:ZM-VS1200机器视觉实验平台硬件设计典型的机器视觉系统从组成结构来分,可以分为个人计算机(PC)式机器视觉系统和嵌入式机器视觉系统。嵌入式机器视觉系统也称为智能相机,具有易学、易用、易维护、易安装等特点。嵌入式机器视觉使用厂家提供的软件开发工具和函数来编制需要的机器视觉系统程序,通过相机中嵌入的处理系统来执行程序判别、被检测目标的特征,并输出结果。使用嵌入式机器视觉系统可以在短时期内构建机器视觉系统,但是这类系统成本高,提供的函数也有限,同时其功能也受到限制,很难满足多种机器视觉实验和测量的需求。基于PC的机器视觉系统相对来讲较大、结构复杂,开发周期也比较长,但是可以使用的通用软件也比较多,编制其软件平台的选择性也多,本系统采用的是德国MVTec公司提供的HALCON机器视觉软件作为其核心处理程序,同时用Mircosoft Visual Studio来完成整体软件系统集成。该机器视觉平台软件算法更加灵活多样,而且能够完成功能复杂和智能化程序高的任务。
2.1系统功能及技术要求根据目前机器视觉教学和相关项目的需求,设计一套整体的系统解决方案,考虑到能够具有以下的功能和要求:
1,高性能处理功能,可满足复杂处理过程和实时在线监测功能;
2,多路视频输入功能,多路I/O,满足多路测控任务;
3,支持USB数字相机,满足高分辨率问题的处理要求;
4,支持Mircosoft Windows XP Embedded专业嵌入式操作系统;
5,适用各种有形物体的视觉检测问题;
6,可编程内部隔离输入输出端口,更贴近工业现场;
7,固态存储,外观优美,安装方便,完全模拟工业现场的测控环境;
8,USB2.0接口,千兆以太网接口,RS232串行接口,适用联网数据采集;
2.2系统硬件组成本文根据系统要求进行分析,选择硬件选型,包括光源,相机,图像采集卡等。并且独立设计机器视觉系统的主机部分,将其连接成一个完整机器视觉平台。该机器视觉平台如下图所示
数字相机:数字相机是在内部集成A/D转换电路,可以直接将模拟量的图像信号转换成数字信号,不仅有效避免了传输线路的干扰问题,而且优于摆脱了标准视频信号格式的制约,对外的信号输出使用更加高速和灵活的数字信号传输协议,可以做成各种分辨率的形式。
常见的数字相机图像输出标准有:IEEE1394,USB2.0,DCOM3,RS-644LVDS,ChannelLink LVDS,Camera Link LVDS,千兆网。
按照像素元排列方式划分可以分为面阵相机和线阵相机:
面阵相机:面阵相机是最常见的形式,其像素元是按行列整齐排列的,每个像素元对应图像上的一个像素点。
线阵相机:是一种比较特殊的相机,其像素元是一堆线状排列的,即只有一行像素元,每次只能采集一行的图像数据,只有当摄像机与被摄物体在纵向相对运动时才能得到我们平常看到的二维图像。所以适用于被测物体连续运动的场合,尤其适用于运动速度较快,分辨率要求较高的情况。
根据相机采集图像色彩不同,可以分为黑白相机和彩色相机。彩色相机适用于需要提取场景中的颜色信息进行检测和识别的场合,黑白相机只能生成灰度图像。相对于相同精度的彩色相机来讲黑白相机价格低、数据量小、速度快、也能够体现场景中的亮度信息。
2.3.2.2相机的分类
相机的选择要根据系统的要求综合考虑镜头和图像采集卡的情况来选择相机的参数。通常相机根据其参数的不同进行分类,下面是常用的分类方法:
根据相机采集图像色彩不同,可以分为黑白相机和彩色相机。彩色相机适用于需要提取场景中的颜色信息进行检测和识别的场合,黑白相机只能生成灰度图像。相对于相同精度的彩色相机来讲黑白相机价格低、数据量小、速度快、也能够体现场景中的亮度信息。
根据信号传输方式的不同相机分为模拟信号相机和数字信号相机,模拟信号
相机成本低,在成像质量、速度、分辨率方面不如数字相机性能好。
根据图像传感器的不同相机可以分为CCD相机和CMOS相机。其中,CCD
是目前比较成熟的成像器件,已经广泛的被应用于各种成像和光学探测领域中,
CCD相机也成为图像传感器的主流产品。
对于CCD相机来说,按照传感器的像素几何排列不同可分为线阵和面阵两种。面阵相机的像素几何排列是二维平面,一般为矩形;线阵相机的像素按一维直线排列。面阵相机一次可以采集到一定视野范围内的全部图像信息;线阵相机一次只能观察物体的一个条状部分,摄像头和物体必须有相对运动来完成扫描,把每次采集的图像进行拼接得到图像。线阵相机的成像质量不如面阵相机,但是线阵相机分辨率高,速度快,对于运动物体的连续检测(例如:连续运动的纸张)有着自身的优势。
相机的选择除了考虑选择黑白/彩色、数字/模拟、面陶线阵、精度、速度外,还要考虑的因素有:相机与图像采集卡之间的数据输出接口、相机与镜头之间的联接接口等。数据输出接口主要有视频制式模拟信号、CameraLink, LIDS ,IEEE1394. USB等。在系统的硬件选择时要注意相机和图像采集卡之间的接口的类型,尽量选用相同接口,如果接口不同要考虑相机和图像采集卡之间的接口转换问题;根据相机和镜头间的联接支座的螺纹的不同可以分为C接口和CS接口。 目前工业用相机主要有CCD和CMOS两种。CMOS相机起步较晚,所摄取的画面质量也不是很好,所以主要用在图像品质要求不是很高的产品上,而工业上应用较为普遍的是CCD相机。CCD(Charge Coupled Device)是美国人Boyle发明的一种半导体光学器件。该器件具有光电转换、信息存储和延时等功能,并且集成度高、能耗小,故一出现就在固体图像传感、信息存储和处理等方面得到广泛应用iii。在选择相机时,主要有以下几个方面的问题要考虑
(1)相机的扫描方式相机按照扫描方式可以分为面扫描和线扫描相机。顾名思义,线扫描相机是指对物体进行行扫描的相机,线扫描相机又可分为隔行扫描和逐行扫描。线扫描相机适用于以下情况①对固定的物体做一维的测量②对象物体处于运动状态;③需处理可旋转圆柱体的边缘图像濡要对象物体的高分辨率图像,而又要考虑价格因素等,其他情况下可以考虑使用面扫描相机‘“’。线扫描相机的特点是运动平稳、速度跟踪精度高、光源强度要求高。目前,线扫描相机的分辨率已经达到几千,检测速率也达到61秒甚至更高。面扫描相机一次只能拍摄一副图像。由于面扫描相机的自身局限性,使其不适于动态目标连续无遗漏的高精度检测。但是,针对其工作原理,采用以下技术:①选用祯传送或行间传送CC}②采用高速快门(电子快门}③采用单场技术;④选用高频光源等,是完全可以进行动态图像的实时采集的,完全可以满足工业在线检测的要求‘3,。
(2)相机的颜色标准相机按颜色可以分为黑白和彩色相机。其中,黑白相机比彩色相机的分辨率高,而且数据采集速度快。随着相机制造技术的不断发展,现在,彩色相机也越来越多的得到了应用。这是因为过去的彩色相机系统要由三台相机组成,这三台相机分别对应R(红色).G(绿色).B(蓝色)波长,而现在则出现了单((O彩色相机。彩色相机可以提供更强的观察和区别能力,因此在医学、生物学以及一些工业过程控制方面发挥了重要作用。
(3)相机的输出接口形式相机输出接口形式有RS422.RS644. USB. IEEE1394以及Cameralink等,在选择图像处理卡时应注意其是否支持所选用相机的输出形式。
现在世界上有很多公司都在生产CCD相机,这其中比较者名的有德国的B asler公司、丹麦的7AI公司、加拿大的Da1sa公司等
本文采用的模拟相机为WAT-902B型高清晰超低照度黑白CCD摄像机,其参数为:
传感器类型
| 逐行扫描CCD
| 分辨率
| NTSC:768(H)X494(V)PAL:752(H)X582V()
| 像素尺寸
| EIA: 8.4um(H)*9.8um(V) CCIR: 8.6um(H)*8.3um(V)
| 扫描方式
| 2:1隔行扫描
| 同步方式
| 外触发
| 视频输出
| composite video,1.0Vp-p,75欧姆Unbalanced | Resolution (Horizontal)线素
| 570line 570行
| Minimum Illumination最低照度
| 0.0003 lux., F1.4(AGC High) / 0.002 lx., F1.4(AGC Low)
| 相机校正
| 0.45
| 自动增益控制
| High:5~50dB, Low: 5~32dB | 信噪比
| 46dB(AGC off)
| 自动电子快门
| EIA: OFF=1/60,1/60~1/100,000sec. CCIR: OFF=1/50,1/50~1/100,000sec
| 背光补偿
| 开启
| 镜头接口
| CS-mount/C-mount(30CMA-R)
| 自动光圈镜头
| Video | 供电电压
| DC+12V (-+10%)
| 供电电流
| max.160mA | 运行温度
| -10°~+40°C
| 保存温度
| -30°~+70°C
| 尺寸
| 35.5(w)*36.0(h)*58.0(d)
| 最大重量
| 90克
| 本文同时使用了USB相机,采用的是北京微视新纪元科技公司的MVC-II-1M相机
其性能参数如下:
彩色/黑白
| 彩色
| 有效像素
| 1.3Megapixels
| 像元尺寸
| 5.2μm×5.2μm
| 动态范围
| 62dB
| 帧率
| 1280×1024 14fps
| 清晰度
| 水平:600线
垂直:550线
| 信噪比
| > 45dB
| 工作温度
| 0~50℃
| 感光芯片
| 1/2-inch,逐行扫描
| 白平衡
| 自动/手动白平衡
| 曝光
| 手动/自动曝光操作,曝光时间可调(1~500ms)
| 扩展功能
| 闪光灯控制输出
| 镜头接口
| C_MOUNT 标准镜头及用户定制镜头
| 供电方式
| 即插即用和自动电源控制,通过USB2.0接口供电,USB2.0电缆可长达5米
| 功能
| 支持TWAIN接口,支持WIN2K,WINXP操作系统。提供完整的SDK开发包
|
2.2.3 镜头 镜头选择要根据相机的传感器尺寸、支座接口形式以及被测量的零件尺寸等进行综合考虑。镜头的成像应能够完全覆盖镜头的传感器表面;镜头和相机的联接接口形式应该尽量相同;镜头的视场和景深应该满足被测量的零件的尺寸要求。
下面是镜头几个主要参数的解释:
视场:视场就是整个系统能够观察的物体的尺寸范围,也就是与图像传感器上所成图像对应的场景的大小。
工作距离:工作距离就是物距,即:物体到镜头的距离。
分辨率:分辨率描述的是光学系统能够分辨的最小物体的距离一般用成对的黑白相间线来标定镜头的分辨率,即:每毫米多少线对(lp/mm) 。
景深:沿光轴方向上物体的尺寸或运动在一定范围内所成的图像是清晰的,也就是说,这个范围称为景深。
光圈:光学系统中光线经过折射、反射等最后到达像面,在这个传输过程中,并不是所有进入系统的光线最后都能通过,而是有一部分被阻挡。为了能够调节透过的光强度,一般镜头中都设置了光圈,也就是一个多叶片的机械装置组成的直径可变的圆孔,调整时这个孔的直径可以连续变化,从而改变镜头的有效孔径。
镜头光圈的大小一般用F数来表示。
F数:假定光学系统的有效孔径是d,焦距是f,那么,F=f/d。这个参数描述了光学系统的采光能力。有效孔径越大,能收集到和通过的光线越多,而焦距越短,这些光线能到达像面的可能性越大。
本文选用了性价比较高的COMPUTAR公司的M2514-MP百万像素固定焦距镜头(如图2-5所示),其主要性能参数见表2-3所示。该镜头采用C型接口与可以相机配套使用。成像尺寸满足相机的CCD传感器尺寸要求。另外,该镜头分辨率较高,适合高精度的尺寸检测。手动的光圈和焦距调节可以满足本课题的要求。
相机的镜头相当于人眼的晶状体。如果没有晶状体,人眼看不到任何物体;如果没有镜头,相机就无法输出图像。在机器视觉系统中,镜头的主要作用是将成像目标聚焦在图像传感器的光敏面上。镜头的质量直接影响到机器视觉系统的整体性能,合理选择并安装镜头,是机器视觉系统设计的重要环节。
一般情况下,机器视觉系统中的镜头可进行如下分类:
按焦距分类:广角镜头、标准镜头、长焦镜头等;
按调焦方式分类:手动调焦、自动调焦等;
按光圈分类:手动光圈、自动光圈。
2. 4. 1镜头的基本结构
机器视觉系统中采用的镜头一般由一组透镜和光阑组成。
透镜一般分为凸透镜和凹透镜。其中,凸透镜对光线具有汇聚作用,也称为汇聚透镜或正透镜;凹透镜对光线具有发散作用,也称为发散透镜或负透镜。由于正负透镜具有相反的特性,所以镜头设计中常常将两者配合使用,以校正像差和其他各类失真。由于变焦镜头既要使镜头的焦距在较大范围内可调,又要保证将成像目标聚焦在图像传感器的光敏面上,因而变焦镜头一般由多组正、负透镜组成。
进入镜头的光束大小一般由透镜框及其它机械结构决定。通常,在镜头中设置带孔的
金属薄片以限制光束的大小,称为光阑。
2. 4. 2镜头的接口
在机器视觉中,光学镜头常用的接口为C型和CS型。C型和CS型接口均是国际标
准接口,其旋合长度、制造精度、靠面尺寸及后截距(即安装基准面至像面的空气光程)
公差均应符合相关要求。
C型和CS型接口均为1英寸一32LJN英制螺纹连接口。具有CS接口的相机可以与具有C型或CS型接口的镜头连接。但C型接口镜头需加装一个接圈才能与具有CS接口的相
机连接。具有C型接口的相机只能与具有C型接口的镜头连接,而不能与具有CS接口的
镜头连接,否则不但不能良好聚焦,还有可能损坏图像传感器。
2. 4. 3镜头的性能指标
镜头主要有以下几个性能指标:[39]
1、焦距
焦距是光学镜头的重要参数,通常用f来表示。镜头的焦距决定了成像目标在图像传感器上图像的大小。当采用不同焦距的光学镜头对同一目标成像时,镜头的焦距越大,所得到的像也就越大;另一方面,焦距直接与镜头的视场角相关。一般短焦距镜头具有较大的视场角,长焦距镜头的视场角较小。
2、分辨率
镜头的分辨率一般用镜头对黑白相间的线条密度的分辨极限来描述,即:以单位长度内可以分辨的线条数N来表示。
3、视场角
镜头的视场角决定了图像传感器成像的空间范围,它与光学镜头的焦距有关。当CCD器件尺寸一定时,焦距越长,其视场角越小。
4、光谱特性
光学镜头的光谱特性主要指镜头对各波段光线的透过率特性。在部分机器视觉应用系统中,要求图像的颜色应与成像目标的颜色具有较高的一致性。因此希望各波段透过光学镜头时,除总强度有一定损失外,其光谱组成并不发生改变。
影响光学镜头光谱特性的主要因素为:膜层的干涉特性和玻璃材料的吸收特性。在机器视觉系统中,为了充分利用镜头的分辨率,镜头的光谱特性应与使用条件相匹配。即:要求镜头最高分辨率的光线应与照明波长、CCD器件接受波长相匹配,并使光学镜头对该波长的光线透过率尽可能的提高。
USB相机采用的镜头为:
日本精工AVENIR CCTV LNES 16mm F1.6
型号:SE1616
手动光圈定焦镜头,适合CCD尺寸为2/3"或1/2"或1/3"的摄像机
功能特性:
焦距:16.0mm
光圈孔径:F1.6-C
接口类型:C
Φ38.0mm×26.5mm 净重:63.0g 2.2.4 主机系统主机部分如下图所示:
其中为增强前的图像,为增强后的图像,表示增强操作。
频域处理是在图象的某种变换域内对图象变换值进行运算。如先对图象进行傅立叶变换,再对图象的频率进行滤波处理,最后将滤波处理后的图象变换值反变换到空间域,从而获得增强后的图象。其算法可以表示为:
进行傅立叶变换得到;
进行滤波,得到;
进行傅立叶反变换得到;
在这里面,是给定的(所以也是可以通过变换得到的),唯一需要确定的就是滤波,选择不同的,所得到的增强值是不同的。
3.1.1灰度变换法灰度变换法是空域增强处理的一种。基于点操作的增强方法叫做灰度变换。灰度变换可以使图像动态范围加大,图像对比度扩展,图像清晰,特征明显,是图像增强的重要手段。灰度变换可以使线性变换,又可以是非线性变换。
1,线性变换
在曝光不足或者过度的情况下,图像恢复可能汇聚现在一个很小的范围内。这时得到的图像可能是一个模糊不清,似乎没有灰度层次的图像。用一个线性单值函数,对图像中的每一个像素做线性扩展,将有效改善图像的视觉效果。
原始图像的灰度范围为,线性变换后图像的灰度范围为,其中和之间存在如下关系:
另一种情况,图像中大部分像素的灰度级在范围内,少部分像素分布在范围外,可用下式做变换:
这种两端“截取式”的变换使小于灰度级和大于灰度级的像素强行压缩为和,将会造成一部分信息的丢失。不过有时为了某种需要,做这种“牺牲”是值得的。
还可以根据需要,拉伸图像的一些灰度细节,相对抑制不感兴趣的部分。这可以通过分段线性变换得到:
如果将,,,则是扩展第一区间,压缩第二区间,维持第三区间,得到灰度级被增强的图像。如果,则可得灰度级被增强的图像。
2,非线性变换
原始图像的灰度范围为,可以通过自然对数变换到区间上,从而得到图像:
这一变换扩展输入图像中低灰度的对比度,而压缩高灰度值。此变换常与指数变换并用,如在同态滤波中,对输入图像做对数变换后,在输出端必须进行指数变换,以获得整个系统合一的传递函数。
3.1.2 均值滤波均值滤波又称作邻域平均法,其主要思想是将图像中每一像素的灰度值用这一像素及其周围一定大小邻域内所有像素的平均值来代替。因为图像噪声多半是随机性的,影响某一像素点的原因,我们都可以认为是鼓励的。因此,和邻近各点相比,该点的灰度值将有显著的不同。
一副个像素的图像经过均值滤波后输出一幅图像,其表达式为:
其中:
:为中心的的邻域的集合;
:邻域内像素的总数;
在实际应用中一般采取的模板,而且还可以对邻域中各个像素乘以不同的权重后在平均,由此得到不同的加权矩阵,以下为几个常用的几个加权矩阵:
,,,
邻域平均法存在着边缘模糊效应,其模糊程度与邻域半径成正比。本来不是噪声的边缘处,应该保留原有的灰度差,而邻域平均法使边缘处的灰度趋向均匀。为了减少模糊效应可以采用“超限邻域平均法”(即阀值法)。
超限邻域平均法以某个灰度值作为阈值,如果某个像素的灰度大于其邻近像素的平均值,并超过阈值,才使用平均灰度置换这个像素灰度,它的数学表达式:
此式表明,若某点值与其邻域平均值相差超过,用均值代替,进行平均处理,可去除噪声;否则还保留原值,不进行平均处理,从而减少模糊。这种算法对抑制椒盐噪声比较有效,同时也能较好地保护仅有微小灰度差的图像细节
3.1.3 中值滤波均值滤波算法相当一个低通滤波器,但是由于图像边缘轮廓含有大量的高频信息,所以使用均值滤波进行过滤噪声时,必然使边界变模糊。而中值滤波则抑制图像噪音的同时,还较好的保存了图像边缘的轮廓信息。
中值滤波的思想是将图像中的每一个像素的灰度值用该点的邻域中的所有像素的灰度值的中值来代替。中值滤波在一定的条件下,可以克服线性滤波器如最小均方滤波、平均值滤波等所带来的图像细节模糊,而且对滤波脉冲干扰及图像扫描噪声最为有效。特别适合用在有很强的椒盐噪声或脉冲式的干扰时,因为这些干扰值与其邻近像素的灰度值有很大的差异,因此经排序后取中值的结果是强迫将此干扰变成与其邻近的某些像素的灰度值一样,达到去除干扰的效果。在实际运算过程中并不需要图像的统计特性,这也带来不少方便,但是对一些细节特别多,特别是点、线、尖顶细节多的图像不宜采用中值滤波方法。(霍宏涛,数字图像处理}h-t},北京:北京理工大学出版社,2002. 9)。
中值运算定义如下:
一组数,按照大小按照大小排序如下:
y成为序列()的中值。
对于图像,经过中值滤波后的输出为:
:为中心的邻域的集合;
中值滤波一般采用(通常为奇数)的滑动窗口,用该窗口的各点的灰度值来代替指定点的灰度值。窗口形状和尺寸设计对滤波的效果影响较大,不同的图像内容和不同的应用要求,往往采用不同的形状和尺寸。常用的二维中值滤波窗口有线状、方形、圆形、十字形及圆环形等,窗口尺寸一般先用 3,再取 5,逐点增大,直到其滤波效果满意为止。就一般经验来讲,对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜,对于包含有尖顶角的图像,适宜用十字形窗口。滤波窗口大小的选择,一般以不超过图像中最小的有效物体的尺寸为宜。
同邻域平均法一样,也存在“超限中值滤波”(阀值法),即如果某个像素的灰度值大于其邻域像素的中间值,且达到了一定的水平,则判断该像素为噪声,用该点邻域像素的中间值代替该点的像素灰度值;否则还是保持原来的灰度值。
数学描述如下:
中值滤波是非线性滤波,尖峰性干扰效果好,即保持边缘的陡度又去掉干扰,而对高斯分布噪声效果差。
3.2 边缘检测图象的边缘信息对人或对机器视觉来说,都是非常重要的。由于边缘具有能勾画区域的形状,且能被局部定义以及能传递大部分图象信息等许多优点,因此,边缘检测可看作是处理许多复杂问题的关键,是图象分析和理解的第一步,检测出边缘的图象就可以进行特征提取和形状分析。由于边缘是灰度值不连续的结果,这种不连续常可以利用求导数方便的检测到,一般选择一阶和二阶导数来检测边缘。在机器视觉检测中,常常借助空域微分算子(实际上是微分算子的差分近似)利用卷积来实现。常用的微分算子有梯度算子和拉普拉斯算子。
边缘检测可以借助空域微分算子通过卷积完成。实际上数字图像处理中求导数是利用差分近似微分来进行的。常用的微分算子有梯度算子和拉普拉斯算子。
边缘检测算法的基本步骤如下:(贾云得,机器视觉,北京:科学出版社,2000.4) 1,滤波:边缘检测算法主要是基于图象强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。
2、增强:增强边缘的基础是确定图象各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。
3、检测:在图象中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。常采用梯度幅值Ill值判据。
4、定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子象素分辨率上来估计,边缘的方位也可以被估计出来。
在用机器视觉进行尺寸测量时,这四步必不可少,尤其必须指出边缘的精确位置和方位。
3.2.1 梯度算子梯度对应一阶导数,梯度算子就是一阶导数算子。对于一个连续函数,它在位置的梯度可以表示为:
梯度是一个矢量,其幅度(也常直接称为梯度)和方向角分别为:
梯度的近似表达式为:
通常,为了减少计算量,常用绝对值近似梯度幅值来计算
在实际应用中常用小区域模板卷积来近似计算。对和各用1个模板,所以需要2个模板组合起来以构成1个梯度算子。根据模板大小,其中元素(系数)值的不同,人们提出了许多不同的算子。常用的的有Robert算子、Prewitt算子和Sobel算子。
(1)Roberts算子
Robe算子近似的计算边缘点连续梯度的幅值,它的卷积模板为:
(2)Sobel算子
Sobel算子避免了Robert算子在像素之间内插值点上计算梯度的不足。这一算子重点放在接近于模板中心的像素点上,其水平和垂直方向上的梯度模板分别为:
(3)Prewitt算子
Prewitt算子与Sobel算子的不同在于其没有把重点放在模板中心像素点上,其两个方向上的梯度模板为:
3.2.2 拉普拉斯算子两阶微分算子是根据图像边缘处灰度值的二阶导数为零而提取边缘的。拉普拉斯算子是典型的两阶微分算子。对一个连续函数,它在位置的拉普拉斯值定义如下:
假设对应方向,对应方向,使用差分方程对和方向的二阶偏导数近似如下:
将上式的中心点移到点可以得到二阶导数的近似式为:
同理可得:
根据上式可以得到两个方向上的近似拉普拉斯算子的模板:
除以上的模板以外,还有其他的拉普拉斯算子模板,但是对模板有一个基本要求:模板中心的系数为正,其余相邻系数为负,所有系数的和为零。
由于拉普拉斯算子是一种二阶导数算子所以对图像中的噪声相当敏感。另外它常产生双像素宽的边缘,而且也不能提供边缘方向信息。因此,拉普拉斯算子很少直接用于检测边缘,而主要用于已知边缘像素后确定该像素是在图像的暗区或者明区一边。
3.2.3 LOG算子由于拉普拉斯边缘检测对噪声敏感,无法在实际中应用。Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG C Laplacian of Gaussian)算子。这一算法的原理是:首先将图像与高斯滤波模板进行卷积来平滑图像降低噪声,然后使用拉普拉斯算子近似的找出图像二阶导数的零交叉点,从而实现对图像的边缘检测。为了避免检测出一些非显著的边缘,一般选择一阶导数大于一定数值的零交叉点作为边缘点。
LOG算子典型的模板为:
3.3 图像分割在对图像的研究和应用中,人们往往仅对各幅图像中的某些部分感兴趣。这些部分常称为目标或前景(其他部分称为背景),它们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将这些有关区域分离提取出来,在此基础上才有可能对目标进一步利用,如进行特征提取和测量。图像分割就是指把图像分成各具特性的区域并提取出感兴趣的目标的技术和过程。(章毓晋.图像工程上册:图像处理和分析.清华大学出版社,1999)
图像分割是由图像处理进入到图像分析的关键步骤,也是进一步图像理解的基础。(章毓晋 图像分割 科学出版社 2001) 图像处理的高级应用中,比如:目标分离和跟踪、图像测量、特征提取等都与图像分割密切相关。多年来,图像分割技术一直得到人们的高度重视,至今,已经提出了上千种分割算法,而且现在每年都还有大量的相关的研究报道发表。
图像分割可以借助集合概念来定义:
令集合代表整个图像区域,对的分割可以看做将分成个满足以下五个条件的非空子集(子区域):
①;
②对所有的和,,有;
③对,有;
④对,有;
⑤对,是连通区域。
其中是对所有在集合中元素的逻辑谓词,代表空集。
条件①表示在对一幅图像的分割结果中全部子区域的总和(并集)应能够包括图像中所有像素(就是原图像),或者说分割应该将图像中的每个像素都分到某个子区域中。条件②指出在分割结果中各个子区域是互不重叠的,或者说在分割结果中一个像素不能同时属于两个区域。条件③指出在分割结果中每个子区域都有独特的特性,或者说属于同一个区域中的像素应该具有某些相同特性。条件④指出在分割结果中,不同的子区域具有不同的特性,没有公共元素,或者说属于不同的区域的像素应该具有一些不同的特性。条件⑤要求分割结果哦中同一个子区域的像素应该是连通的,即同一子区域内的任两个像素在该子区域内相互连通,或者说分割得到区域是一个连通组元。
在实际应用中,图像分割不仅要把一幅图像分成满足上面五个条件的各具特性的区域而且需要把其中感兴趣的目标区域提取出来。这样才才算真正完成图像分割的任务。
3.3.1 阀值化分割 图象阐值分割是一种广泛使用的图象分割技术,它利用了图象中要提取的目标物与其背景在灰度特性上的差异,把图象视为具有不同灰度级的两类区域(目标和背景)的组合,选取一个合适的闽值,以确定图象中每一个象素点应该应该属于目标还是背景区域,从而相应的二值图象。阐值分割不仅可以大量压缩数据,减少存储容量,而且大大简化在其后的分析和处理步骤。
阀值化分割算法主要有两个步骤:(章毓晋 图像分割 科学出版社 2001)
①确定需要分割的阀值;
②将分割阀值与像素值比较以划分像素。
设原始图像,取灰度值T作为阀值进行分割:
这样得到的是一幅二值图像,它相当于把原始图像用空间占有数组来进行表达。
在一般多阀值分割情况下,取阀值分割的图像可以表示为:
如
选取合适的阀值是阀值化算法的关键问题,阀值一般可以写成如下形式:
其中代表像素点处的灰度值,代表在该点邻域的某种 局部性质。换句话说,阀值在一般情况下可以是,,的函数。
借助上面阀值的表达式,可以将阀值分割方法分为如下三类,其中阀值分别成为:
①基于各像素值的阀值。阀值仅根据来选取,所得到的阀值仅与全图各像素的本身性质(像素值)有关;
②基于区域性质的阀值。阀值是根据和来选取,所得到的阀值与区域性质(区域内各像素的值,相邻像素值的关系等)有关;
③基于坐标位置的阀值。阀值除了跟和有关外,还与有关,即阀值要考虑位置来确定。
3.3.2分水岭算法分水岭算法是与自适应阂值化有关的一个算法。如图1所小说明了这种方法的工作原理。假定图中的物体灰度值低,而背景的灰度值高。在图中,显小了沿一条扫描线的灰度分布,该线穿过两个靠得很近的物体。
分水岭算法不是简中地将图像在最佳灰度级进行阂值处理,而是从一个偏低但仍然能正确分割各个物体的阂值开始。然后随着阂值逐渐上升到最佳值,使各个物体不会被合并。这个方法可以解决那些由于物体靠得太近而不能用全局阂值解决的问题。
最初和最终的阂值灰度级都必须很好地选取。如果初始的阂值太低,那么低对比度的物体开始时会被丢弃,然后随着阂值的增加就会和相邻的物体合并。如果初始阂值太高,物体一开始便会合并。最终的阂值决定了最后的边界与实际物体的吻合程度。
分水岭算法就是将梯度图像看成是假想的地形表而,而每个像素的梯度值则代表该点的海拔高度。因为一般待分割图像的边缘像素通常有较大的梯度值,故它对应于地表上的“分水岭线”,而每个区域的内部像素通常有较小的梯度值,故可对应于地表上的“集水盆地”。这种“分水岭线”将梯度图像分割成若干个不同的“集水盆地”,这些“集水盆地”则分别对应于待分割图像中的均匀一致区域。([ 3]罗慧韬.章毓晋.一个图像分割评价事例及讨论[[ J]数据采集与处理]., 1997, 12 (1): 18 22.) 3.4 图像匹配匹配是指降观察到的图像与模型进行匹配,以及图像之间的匹配。匹配的结果表示对景物的一种解释,也就是说它将两种表达式对应起来,具有如下特征:
(1)两种表达可以是同一种类型的。例如,相关计算将观察到的图像与模板进行匹配。与此类似,子图同构将一个区域邻接图与模型图的子图进行匹配。
(2)两种表达也可以是不同形式的。例如一幅图像与描述某件事的一段话匹配。
3.4.1 模板匹配模板是图像(或其子图)的一种表达方式,它本身仍然是一幅图像。一般情况下,模板在目标图像中来回移动,直到找到使某个匹配函数值达到最大的位置为止。如下图所示:
现在可以比较模板和子图的内容。若两者一致,则和子图之差为零,所以可以用下列的函数来衡量和的相似程度:
其中,模板尺寸是,上式对模板与子图在坐标处图像之间匹配程度提供了度量。
将上式展开可以得到:
第一项是图像中所关注点(邻域)亮度的平方和(又称子图的能量),它与图像与模板之间的匹配与否无关。
第三项是模板中元素平方和(又称模板能量),是一个常数,与模板处在图像什么未知无关;
第二项是匹配与否的关键,该项就是表示相关性的计算。
在模板匹配中,一个基本问题就是对模板尺寸大小的选择问题。如果模板选择过小,就难以估计图像的变化,以至于无法做出准确的估计。如果模板太大,则窗口中覆盖的面积太大,就无法实现匹配。除此之外,在匹配时要考虑对怎样的目标函数实现最小化。
用上述的灰度互相关法求匹配的计算量很大,因为模板整幅图像上对相关位置做计算,其中除一点以外都是在非匹配点上做无用功,因此在实际应用中,很少直接采用这种方法,而是对互相关模板匹配进行改进。
3.5 数学形态学 形态学一般指生物学中研究动物和植物结构的一个分支。人们后来用数学形态学(也成为图像代数表示以形态为基础对图像进行分析的数学工具。它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形态以达到对图像分析和识别的目的。
数学形态学主要有二值形态学和灰度形态学,其中二值形态学中的运算对象是集合,一般设为图像集合,为结构元素,数学形态学运算是用对进行操作。而灰度形态学的运算对象是图像函数,设是输入图像,是结构元素,用对进行操作。本文主要使用的是灰度形态学的运算。
3.5.1 膨胀与腐蚀用结构元素对输入图像进行灰度膨胀记为,定义为:
其中和分别是和的定义域。这里限制在的定义域内。
膨胀的肌酸是在由结构元素确定的领域中选取的最大值,所以对灰度图像的膨胀操作有两类效果:
对输入图像进行灰度腐蚀记为,定义为:
其中和分别是和的定义域。这里限制在的定义域内。
腐蚀计算是在由结构元素确定的领域中选取的最小值,所以对灰度图像的腐蚀操作有两类结果:
1,如果结构元素的值都为正,则输出图像会比输入图像暗;
2,如果输入图中亮细节的尺寸比结构元素小,则其影响会被减弱,减弱的程度取决于这些亮细节周围的灰度值和机构元素形状和幅值。
膨胀运算在数学形态学中的作用是把目标图像周围的背景点合并到物体中。如果两个物体之间距离比较近,那么膨胀运算会使这两个物体连通在一起。膨胀对填充图像分割后物体中的空洞很有用处。腐蚀在数学形态学运算中的作用是消除目标图像边界点。腐蚀可以把小于结构元素的物体去除,选取不同大小的结构元素,就可以去掉不同大小的物体。如果两个物体之间有细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开。
3.5.3 开运算与闭运算用灰度对进行开运算定义为:
用灰度对进行闭运算定义为:
开运算是采用相同的结构元素对图像进行先腐蚀再膨胀的运算,起到磨光边缘的作用,即可以使图像中一些伸向背景的尖角转化为背景,用开运算处理图像,可以剔除细节,使边界平滑,消除尖峰、凸缘、切断狭细连接。
闭运算是采用相同的结构元素对图像进行先膨胀后腐蚀的运算。闭运算对图像的外部作滤波,会磨光凸向图像内部的尖角。闭运算可以填满一些小洞,并将两个临近的目标连接起来。
3.6 本章小节本章详细介绍了机器视觉中使用的几种图像处理算法,为后面的具体应用奠定了基础。
第四章:机器视觉试验平台软件 前面完成了机器视觉实验平台的的硬件设计和一些图像处理算法选择,接下来就是要选择合适的软件来实现。本文采用的是德国Mvtec公司的机器视觉软件HALCON和美国Mircosoft公司VisualC++作为整体软件设计的。
4.1机器视觉软件HALCON机器视觉软件HALCON所包含以下下内容:
1,各类滤波、色彩分析以及几何、数学变换、形态学计算分析、校正、分类、辨识、形状搜索等基本的几何以及图像计算功能。
2,HALCON包含Blob分析,形态学,模式识别,测量、3维摄像机定标,双目立体视觉等性能杰出的算法。
由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算分析能力来完成工作,应用范围几乎没有限制。
HALCON应用范围非常广泛,可以用在医学、监控、遥感探测、工业上的各种自动化检测等。
第一章已经概述了机器视觉软件HALCON,本系统选择HALCON作为处理核心,因为机器视觉软件HALCON有如下几方面的优点:
1,机器视觉系统开发周期短
HALCON包含了一套交互式的程序设计接口HDevelop,可在其中以HALCON程序代码直接编写、修改、执行程序,并且可以查看计算过程中的所有变量,设计完成后,可以直接输出C,C++,或是COM(visual basic)程序代码,嵌入程序中。
HDevelop同时和数百个范例程序连结,除了个别计算功能的说明,还可以随时依据不同的类别找到应用的范例,方便参考。
此外,以问题为导向的手册,可以让您找到最适合的使用说明以及开发方法。
2,HALCON不限制取像设备,可以自行挑选合适的设备
软件自带已经提供了40余种相机的驱动,即使是尚未支持的相机,除了可以透过指针(pointer)轻易的抓取影像,还可以利用HALOCN开放性的架构,自行编写DLL文件和系统连接。
根据系统软件组织结构图可以看出,由图像采集模块动态采集一幅图像,然后将图像送入图像分析处理模块进行分析和处理,在图像分析和处理模块中,根据相关要求来使用的HALCON编写图像处理和分析程序,同时将在显示输出模块将运行结果输出。
5.1.1 图像采集模块图像采集是用相机来完成的,在图像采集之前,首先要对相机进行初始化,本文采用的是采用的是北京微视新纪元科技公司的MVC-II-1M相机。对于相机的初始化、释放、开始连续图像采集和停止都是调用北京微视新纪元科技公司提供的MVCROVIEW MVC-II-1M CAMERA SDK进行的。
在使用SDK前,需要将MVParm.dll、MVCAPI.lib、MVCAPI.dll、MVCAPI.h三个文件添加到源文件中。
函数BOOL CTestVideoCapDlg::OnInitDialog( ):对相机进行初始值设定;
函数voidCTestVideoCapDlg::OnBtread( ):打开相机,显示图片;
5.1.2 单帧图像保存和读取模块在整个系统软件设计中,都是针对单帧图像进行处理,所以在系统软件的整体设计里面,图像的单帧保存和读取至关重要。
在该模块中,使用函数voidCTestVideoCapDlg::OnOnCapture( )对图像进行单帧保存,在单帧保存函数中调用相机SDK中的MV_Usb2SaveFrameAsBmp()将单帧图像保存在C盘,文件名为Capture.bmp。
调用voidCTestVideoCapDlg::ShowBmpInStaic( )将保存的单帧图像Capture.bmp单独在软件界面的另外一个窗口进行显示。
5.1.3 图像处理模块图象处理模块:完成图象的点运算功能(如缩放、灰度拉伸、图象反色、灰度均衡等);图象增强功能(如图象平滑、中值滤波、梯度锐化、拉普拉斯锐化等);图象分析功能(如图象的闽值分割等)、图象的边缘和轮廓检测功能(如四种常用的边缘检测方法、轮廓提取、轮廓跟踪等)。
在整个机器视觉系统软件设计中,图像处理模块所包含的内容众多,、范围广泛。根据具体的要求设计相应的算法和程序。在本文中,图像处理模块是使用机器视觉软件HALCON,在其开发环境Hdevelop中编制对应的程序,然后输出C++代码,并将输出的C++代码文件放到VisualC++环境下进一步发展和完善。 由于弹簧片的图像比较复杂,要求精度较高针对其要求的不同进行分块程序设计,大概可以分为两个部分,第一部分是设计尺寸测量的HALCON程序,其中包括测量外圆半径、中心圆孔半径、连结点间距和双耳之间外切圆半径。第二部分是针对弹簧片的外观进行检测,是否有毛刺和蚀坑。设计其尺寸测量部分的HALCON程序,流程图如下:
用CCD相机拍摄出的弹簧片图像为:
用CCD相机拍摄的原始弹簧片图片:
file:///C:/Users/baikhgmv/AppData/Local/Temp/msohtmlclip1/01/clip_image300.jpg
5.1.4 显示输出模块其中显示输出模块是使用Visual C++中的控件完成。主要是用的是eidt控件,显示测量相关尺寸大小和是否有毛刺和蚀坑。在图象处理模块中,将待测弹簧片的相关尺寸大小值和是否有毛刺坑蚀的结果,同标准弹簧片模版相比较,如果在允许的误差范围内,判定为合格,并在主界面上画一个绿色的实心圆,同时在实心圆下方显示“合格”;如果超过允许的误差范围,判定为不合格,并在主界面上画一个红色的实心圆,同时在实心圆下方显示“不合格”。
5.2 系统处理结果在HALCON的开发环境HDevelop中做初次开发,其Variable Watch窗口输出相关处理和分析结果,并将该结果保存在HTuple型参数中。使用HALCON测量的尺寸大小实际上是像素值,可以精确到小数点后面九位。
HALCON输出的C++源码中添加如下代码:
dOut_ed= Radius1[0]; //两耳之间大圆的半径
dOut_Circle = R3[0]; //外周的半径
dCollection=D2[0]; //连接点间距
dIn_Circle=R4[0]; //中心圆孔的半径
其中在HALCON输出的C++源码中,Radius1、R3、D2、R4都是Htuple型数据。这种类型的数据是HALCON特有的,有些近似于C++中的数组。Htuple型数据的第一个元素是测量的结果,用像素值来表示。但是Htuple型数据不能直接在VisualC++下调用,必须先将其包含的目标值传给设定的double型参数,然后在调用这些设定的double型参数进处理和分析。
5.3本章小结本章主要利用ZM-VS1200机器视觉实验平台作为机器视觉检测硬件部分,用HALCON开发核心处理程序,然后在Visual C++中进行系统软件的二次开发。
该系统对弹簧片的几个尺寸目标进行了测量,并且对弹簧片是否存在毛刺和蚀坑做出判断,并在系统界面上做出显示。
第六章:系统实验与结果分析6.1系统运行界面6.2 实验结果分析第七章:总结与展望
|