本栏目责任编辑:李桂瑾
人工智能及识别技术
机器视觉技术及其应用概况
陈发东,张晓芳,赵寰宇,张涛,于国英
(河北金牛能源股份有限公司玻纤分公司,河北邢台054001)
摘要:介绍了机器视觉的系统组成及工作原理、相对于人类视觉优势所在,阐述了机器视觉在我国工业、农业、医学、机器人导航、卫星遥感等领域的应用,指出了机器视觉的未来走向。
关键词:机器视觉;应用;图像处理中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)18-31701-02
MachineVisionTechnologyandApplicationProfiles
CHENFa-dong,ZHANGXiao-fang,ZHAOHuan-yu,ZHANGTao,YUGuo-ying
(HebeiJinniuEnergyCo.,Xingtai054001,China)
Abstract:Thepaperintroducedthemachinevisionsystemstructureandworkingprincipleandthesuperioritiescomparedtohumanvision,theapplicationsofmachinevisionareexpoundedinourindustry,agriculture,medical,robotics,navigation,satelliteremotesensingfields,thefu-turedirectionofmachinevisionisstated.
Keywords:Machinevision;Application;Image
Procession
1引言
机器视觉技术是20世纪70年代在遥感图像处理和医学图像处理技术成功应用的基础上逐渐兴起的,并应用于多种领域。在我国,机器视觉仍属新兴行业,但是随着产业化的发展对机器视觉技术的需求必将呈上升趋势。
2机器视觉技术
机器视觉是研究用计算机来模拟生物外显或宏观视觉功能的科学和技术,用图像来创建和恢复现实世界模型,最终用于实
神经生物学、心理物际检测、测量和控制,是一门涉及人工智能、
理学、计算机科学、图像处理及模式识别等多个领域的交叉学科
[1]。
机器视觉系统一般由摄像机、图像采集卡、计算机、光源、光照箱、载物台等组成,如图1所示。
图1机器视觉系统结构示意图
工作原理是:在一定光照条件下,用摄像机把三维场景的被摄取目标图像采集到计算机内部形成原始图像;然后,运用图像处理技术对原始图像进行预处理以改善图像质量,分割图像,提取特征要素,构成对图像的描述;最后,采用模式识别技术进行特征分类,并根据预设条件输出结果。
机器视觉具有与被观测的对象无接触,对被摄物体无损伤,观测过程客观,判别结果可靠性高的特点;同时机器视觉也拓宽了人类视觉范围,在许多人类视觉无法感知的场合,如工业环境下高危险场景的感知、不可见物体感知等等,机器视觉更具优势;而且机器视觉可以快速获取大量信息,而且易于自动处理,也易于实现信息集成,是实现计算机集成制造的基础技术。
2机器视觉技术应用
随着电子技术、计算机软硬件技术、图像处理及与人类视觉相关技术的迅速发展,机器视觉技术在理论和实践上都取得了重大的发展,在我国工业、农业、医学、机器人导航、卫星遥感等领域
的应用越来越广泛,下面就机器视觉技术在这些领域的应用概况
进行阐述。
2.1工业
在大批量工业生产过程中,生产过程的高度自动化和产品质量的日益提高,要求有更有效、更精确和高速度的检测手段,机器视觉技术能够保证工业现场环境下的可靠性,提高生产自动化程度,大大提高生产效率。因此,在现代自动化生产过程中,机器视觉系统被广泛地用于产品测量、检验、质量控制等领域。
机器视觉在工业中的具体应用主要有:汽车整车尺寸测量,零件边缘及平面尺寸检测,螺纹几何参数检测,带钢表面缺陷检测,电机换向片偏移检测,玻璃制品裂纹检测,烟包包装检测,饮料行业的容器质量检测,半导体集成块封装质量检测,印刷电路
流体力学图片的阻力和板疵病检查,弹性力学照片的应力分析、
升力分析,邮政信件的自动分拣等。机器视觉可以在一些有毒、放射性环境内识别工件及物体的形状和排列状态[2]。在制药生产线上,机器视觉技术还可以对药品包装进行检测,以确定是否装入正确数量的药粒。
2.2农业
机器视觉技术在农业机械上的研究与应用始于20世纪70年代末期,主要集中于农产品品质检测与分级的自动检测机械的研究[3]。
农产品的生产过程受到自然和人为等复杂因素的影响,产品品质差异很大,机器视觉技术可以检测农产品的大小、形状、颜色、表面裂纹和表面缺陷及损伤。它的优点是:速度快,信息量大,可一次完成多个品质指标的综合检测,还可完成定量指标的测量,精确度高,能够克服人眼的差异和视觉疲劳,实现无损检测。能够检测的农产品有蔬菜、水果、谷物、烟草、茶叶、禽蛋等,其中部分研究已从理论走向实际应用,并取得了较大的经济效益。其中,计算机图像处理技术发挥了主力军作用。此外,人工神经网络等高新技术也开始引入到机器视觉识别与分级中,应用该技术有利于设计制造自动分级流水线,大大提高工作效率。
随着计算机技术及数字图像处理分析理论的成熟,机器视觉技术也逐渐渗透到农作物长势监测、病虫及草害的监测与防治、
储粮害虫检测等领域。自动化收获,以及农产品加工、
2.3医学
在医学领域,机器视觉的应用也越来越广泛,主要用于医学辅助诊断。首先采集核磁共振、超声波、激光、X射线、γ射线等对
信息融合技术人体检查记录的图像,再利用数字图像处理技术、
收稿日期:2007-09-12
作者简介:陈发东(1978-),男,山东章丘人,助理工程师,学士,主要研究方向:计算机应用。
1701
人工智能及识别技术
对这些医学图像进行分析、描述和识别,最后得出相关信息,对辅助医生诊断人体病源大小、形状和异常,并进行有效治疗发挥了重要的作用。
利用机器视觉技术还可对其它医学影像数据进行统计和分析,如利用数字图像的边缘提取与分割技术,自动统计细胞个数,不仅节省人力,还大大提高了准确率和效率。另外,基于CT图像的内部器官的重建,DSA(数字减影)技术等也是机器视觉技术在医学领域的应用实例。
2.4机器人导航
机器人导航包含道路规划、避免碰撞、自适应位置控制和机器人相对于特定目标在三维空间中精确方位定位。在制造业,机器人被广泛地应用于零件的装配和检验,机器视觉应用于机器人
检验机器人成为可能。工使其柔性大大增加,使大批量使用装配、
业机器人系统是一种基于视觉测量并进行制导和控制的系统,例如机械手在一定范围内抓取和移动工件,摄像机利用动态图像识别与跟踪算法,跟踪被移动工件,始终保持其处于视野的正中位置。相对于室内的工业机器人而言,农业机械的机器视觉导航的工作环境和工作对象更加复杂。
农业机械的自动导航是现代智能农业机械的一个重要组成
收割作业、中部分,有着广阔的发展前景,在自动喷洒农药肥料、
耕除草、插秧耕作等许多方面有着广泛的用途。在农业机械自动
实时性和导航精度导航系统中,采用机器视觉导航除具有灵活、
病虫高等优点外,在采集导航信息的同时还能采集有关农作物、
害以及农田状况的图像,随着以信息化技术为核心的精细农业的兴起,机器视觉导航必然会有更大的发展空间。
2.5卫星遥感
卫星遥感图像信息量大,数据存在多种干扰和误差,处理和分析的工作量、难度都很大。在卫星遥感系统中,机器视觉技术被用于分析各种遥感图像,进行环境监测、地理测量,根据地形、地
本栏目责任编辑:李桂瑾
理解和分类等。貌的图像和图形特征,对地面目标进行自动识别、
具体来说有自动制图,卫星图像与地形图对准,自动测绘地图;对国土资源管理,如森林、水面、土壤的管理等;还可以对环境、火警自动监测。
2.6其它方面
在交通管理系统中,机器视觉技术被用于车辆识别、调度,向交通管理与指挥系统提供相关信息;在闭路电视监控系统中,机器视觉技术被用于增强图像质量,捕捉突发事件,监控复杂场景,鉴别身份,跟踪可疑目标等,它能大幅度地提高监控效率,减少危险事件发生的概率;在航天及军事方面,机器视觉技术被用于卫星照片的自动分析与判读,景物识别,目标检测,识别和定位,目标跟踪,成像精确制导等。
3结束语
综上所述,机器视觉在工业、农业、医学等领域的应用研究得到了广泛开展,但我们应当看到,机器视觉从诞生到今天这短短
发展和应用还远没有达到成熟的三十多年时间中,其相关研究、
程度。在未来的几年内,随着中国加工制造业的发展,对于机器视觉的需求必将逐渐增多,随着机器视觉产品的增多,技术的提高,国内机器视觉的应用状况也将由初期的低端转向高端。实现实时在线、智能化、高精度检测与控制必将成为我国机器视觉的发展趋势。
参考文献:
[1]刘曙光,刘明远.机器视觉及其应用[J].河北科技大学学报,2000,21(4):11-15.
[2]席斌,王振雷,钱锋.机器视觉工业检测系统的应用与发展[J].控制工程,2006,5(13):220-222.
[3]刘中合等.计算机视觉技术在农业机械中的应用[J].农业装备与车辆工程,2005,12(4):37-39.
(上接第1634页)
制作完毕后保存并发布为progress.swf。3.2VC方面的制作与编程
在VC中建立一个基于对话框的应用程序,插入一个Flash控件、两个按钮(开始和停止)。为Flash控件添加一个成员变量CShockwaveFlash类型的m_ctrlFlash和一个整型变量percent,在构造函数中将percent初始化为0.
在对话框的初始化函数BOOLCFlashProgressDlg::OnInitDia-log()中添加代码如下:
GetDlgItem(IDC_BUTTON_START)->EnableWindow(FALSE);}}}
添加定时器函数如下:
voidCFlashProgressDlg::OnTimer(UINTnIDEvent){CStringstrPercent;
strPercent.Format("%d",percent++);
m_ctrlFlash.SetVariable("perLoaded",strPercent);CDialog::OnTimer(nIDEvent);}
为开始和停止按钮添加消息处理函数如下:
chardir[MAX_PATH];charch='\\';
charDirName[MAX_PATH];char*location;
unsignedintLength;
::GetModuleFileName(NULL,dir,MAX_PATH);location=strrchr(dir,ch);Length=location-dir;strncpy(DirName,dir,Length);DirName[Length]='\0';
strcat(DirName,"\\progress.swf");//得到progress.swf的完整路径m_ctrlFlash.LoadMovie(0,DirName);
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON_START)->EnableWindow(TRUE);为Flash控件添加一个消息处理函数如下:
voidCFlashProgressDlg::OnFSCommandShockwaveflash1(LPCT-STRcommand,LPCTSTRargs)
{if(strcmp(command,"progress")==0)
{//如果收到Flash的消息,说明下载成功,弹出对话框if(strcmp(args,"success")==0){this->MessageBox("下载完成!");KillTimer(1);
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(FALSE);
voidCFlashProgressDlg::OnButtonPause(){KillTimer(1);
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON_START)->EnableWindow(TRUE);}voidCFlashProgressDlg::OnButtonStart(){SetTimer(1,100,NULL);
if(percent>100)percent=0;
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON_START)->EnableWindow(FALSE);}以上程序在VC6.0和Flash8.0下调试通过。本文中所涉及的所有源程序均可通过链接http://lyld3618.go1.icpcn.com/download/flashprogress.rar下载。
4结束语
根据以上提供的原理和方法,我们就建立了一种VC和Flash之间双向消息互传机制,需要说明的是这种机制是基于自定义字符串的,可根据实际需要和复杂程度定义多种消息,消息的种类越多,相应的比较判断就越复杂。通过这种方法,就可以把Flash动画应用于我们的程序中,让程序更生动直观也更加精美。
参考文献:
[1]DavidJ.Kruglinski.等.VisualC++6.0技术内幕[M].北京:北京希望电子出版社,2002.
[2]Flash8.0帮助文件.
1702
电脑知识与技术
本栏目责任编辑:李桂瑾
人工智能及识别技术
机器视觉技术及其应用概况
陈发东,张晓芳,赵寰宇,张涛,于国英
(河北金牛能源股份有限公司玻纤分公司,河北邢台054001)
摘要:介绍了机器视觉的系统组成及工作原理、相对于人类视觉优势所在,阐述了机器视觉在我国工业、农业、医学、机器人导航、卫星遥感等领域的应用,指出了机器视觉的未来走向。
关键词:机器视觉;应用;图像处理中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)18-31701-02
MachineVisionTechnologyandApplicationProfiles
CHENFa-dong,ZHANGXiao-fang,ZHAOHuan-yu,ZHANGTao,YUGuo-ying
(HebeiJinniuEnergyCo.,Xingtai054001,China)
Abstract:Thepaperintroducedthemachinevisionsystemstructureandworkingprincipleandthesuperioritiescomparedtohumanvision,theapplicationsofmachinevisionareexpoundedinourindustry,agriculture,medical,robotics,navigation,satelliteremotesensingfields,thefu-turedirectionofmachinevisionisstated.
Keywords:Machinevision;Application;Image
Procession
1引言
机器视觉技术是20世纪70年代在遥感图像处理和医学图像处理技术成功应用的基础上逐渐兴起的,并应用于多种领域。在我国,机器视觉仍属新兴行业,但是随着产业化的发展对机器视觉技术的需求必将呈上升趋势。
2机器视觉技术
机器视觉是研究用计算机来模拟生物外显或宏观视觉功能的科学和技术,用图像来创建和恢复现实世界模型,最终用于实
神经生物学、心理物际检测、测量和控制,是一门涉及人工智能、
理学、计算机科学、图像处理及模式识别等多个领域的交叉学科
[1]。
机器视觉系统一般由摄像机、图像采集卡、计算机、光源、光照箱、载物台等组成,如图1所示。
图1机器视觉系统结构示意图
工作原理是:在一定光照条件下,用摄像机把三维场景的被摄取目标图像采集到计算机内部形成原始图像;然后,运用图像处理技术对原始图像进行预处理以改善图像质量,分割图像,提取特征要素,构成对图像的描述;最后,采用模式识别技术进行特征分类,并根据预设条件输出结果。
机器视觉具有与被观测的对象无接触,对被摄物体无损伤,观测过程客观,判别结果可靠性高的特点;同时机器视觉也拓宽了人类视觉范围,在许多人类视觉无法感知的场合,如工业环境下高危险场景的感知、不可见物体感知等等,机器视觉更具优势;而且机器视觉可以快速获取大量信息,而且易于自动处理,也易于实现信息集成,是实现计算机集成制造的基础技术。
2机器视觉技术应用
随着电子技术、计算机软硬件技术、图像处理及与人类视觉相关技术的迅速发展,机器视觉技术在理论和实践上都取得了重大的发展,在我国工业、农业、医学、机器人导航、卫星遥感等领域
的应用越来越广泛,下面就机器视觉技术在这些领域的应用概况
进行阐述。
2.1工业
在大批量工业生产过程中,生产过程的高度自动化和产品质量的日益提高,要求有更有效、更精确和高速度的检测手段,机器视觉技术能够保证工业现场环境下的可靠性,提高生产自动化程度,大大提高生产效率。因此,在现代自动化生产过程中,机器视觉系统被广泛地用于产品测量、检验、质量控制等领域。
机器视觉在工业中的具体应用主要有:汽车整车尺寸测量,零件边缘及平面尺寸检测,螺纹几何参数检测,带钢表面缺陷检测,电机换向片偏移检测,玻璃制品裂纹检测,烟包包装检测,饮料行业的容器质量检测,半导体集成块封装质量检测,印刷电路
流体力学图片的阻力和板疵病检查,弹性力学照片的应力分析、
升力分析,邮政信件的自动分拣等。机器视觉可以在一些有毒、放射性环境内识别工件及物体的形状和排列状态[2]。在制药生产线上,机器视觉技术还可以对药品包装进行检测,以确定是否装入正确数量的药粒。
2.2农业
机器视觉技术在农业机械上的研究与应用始于20世纪70年代末期,主要集中于农产品品质检测与分级的自动检测机械的研究[3]。
农产品的生产过程受到自然和人为等复杂因素的影响,产品品质差异很大,机器视觉技术可以检测农产品的大小、形状、颜色、表面裂纹和表面缺陷及损伤。它的优点是:速度快,信息量大,可一次完成多个品质指标的综合检测,还可完成定量指标的测量,精确度高,能够克服人眼的差异和视觉疲劳,实现无损检测。能够检测的农产品有蔬菜、水果、谷物、烟草、茶叶、禽蛋等,其中部分研究已从理论走向实际应用,并取得了较大的经济效益。其中,计算机图像处理技术发挥了主力军作用。此外,人工神经网络等高新技术也开始引入到机器视觉识别与分级中,应用该技术有利于设计制造自动分级流水线,大大提高工作效率。
随着计算机技术及数字图像处理分析理论的成熟,机器视觉技术也逐渐渗透到农作物长势监测、病虫及草害的监测与防治、
储粮害虫检测等领域。自动化收获,以及农产品加工、
2.3医学
在医学领域,机器视觉的应用也越来越广泛,主要用于医学辅助诊断。首先采集核磁共振、超声波、激光、X射线、γ射线等对
信息融合技术人体检查记录的图像,再利用数字图像处理技术、
收稿日期:2007-09-12
作者简介:陈发东(1978-),男,山东章丘人,助理工程师,学士,主要研究方向:计算机应用。
1701
人工智能及识别技术
对这些医学图像进行分析、描述和识别,最后得出相关信息,对辅助医生诊断人体病源大小、形状和异常,并进行有效治疗发挥了重要的作用。
利用机器视觉技术还可对其它医学影像数据进行统计和分析,如利用数字图像的边缘提取与分割技术,自动统计细胞个数,不仅节省人力,还大大提高了准确率和效率。另外,基于CT图像的内部器官的重建,DSA(数字减影)技术等也是机器视觉技术在医学领域的应用实例。
2.4机器人导航
机器人导航包含道路规划、避免碰撞、自适应位置控制和机器人相对于特定目标在三维空间中精确方位定位。在制造业,机器人被广泛地应用于零件的装配和检验,机器视觉应用于机器人
检验机器人成为可能。工使其柔性大大增加,使大批量使用装配、
业机器人系统是一种基于视觉测量并进行制导和控制的系统,例如机械手在一定范围内抓取和移动工件,摄像机利用动态图像识别与跟踪算法,跟踪被移动工件,始终保持其处于视野的正中位置。相对于室内的工业机器人而言,农业机械的机器视觉导航的工作环境和工作对象更加复杂。
农业机械的自动导航是现代智能农业机械的一个重要组成
收割作业、中部分,有着广阔的发展前景,在自动喷洒农药肥料、
耕除草、插秧耕作等许多方面有着广泛的用途。在农业机械自动
实时性和导航精度导航系统中,采用机器视觉导航除具有灵活、
病虫高等优点外,在采集导航信息的同时还能采集有关农作物、
害以及农田状况的图像,随着以信息化技术为核心的精细农业的兴起,机器视觉导航必然会有更大的发展空间。
2.5卫星遥感
卫星遥感图像信息量大,数据存在多种干扰和误差,处理和分析的工作量、难度都很大。在卫星遥感系统中,机器视觉技术被用于分析各种遥感图像,进行环境监测、地理测量,根据地形、地
本栏目责任编辑:李桂瑾
理解和分类等。貌的图像和图形特征,对地面目标进行自动识别、
具体来说有自动制图,卫星图像与地形图对准,自动测绘地图;对国土资源管理,如森林、水面、土壤的管理等;还可以对环境、火警自动监测。
2.6其它方面
在交通管理系统中,机器视觉技术被用于车辆识别、调度,向交通管理与指挥系统提供相关信息;在闭路电视监控系统中,机器视觉技术被用于增强图像质量,捕捉突发事件,监控复杂场景,鉴别身份,跟踪可疑目标等,它能大幅度地提高监控效率,减少危险事件发生的概率;在航天及军事方面,机器视觉技术被用于卫星照片的自动分析与判读,景物识别,目标检测,识别和定位,目标跟踪,成像精确制导等。
3结束语
综上所述,机器视觉在工业、农业、医学等领域的应用研究得到了广泛开展,但我们应当看到,机器视觉从诞生到今天这短短
发展和应用还远没有达到成熟的三十多年时间中,其相关研究、
程度。在未来的几年内,随着中国加工制造业的发展,对于机器视觉的需求必将逐渐增多,随着机器视觉产品的增多,技术的提高,国内机器视觉的应用状况也将由初期的低端转向高端。实现实时在线、智能化、高精度检测与控制必将成为我国机器视觉的发展趋势。
参考文献:
[1]刘曙光,刘明远.机器视觉及其应用[J].河北科技大学学报,2000,21(4):11-15.
[2]席斌,王振雷,钱锋.机器视觉工业检测系统的应用与发展[J].控制工程,2006,5(13):220-222.
[3]刘中合等.计算机视觉技术在农业机械中的应用[J].农业装备与车辆工程,2005,12(4):37-39.
(上接第1634页)
制作完毕后保存并发布为progress.swf。3.2VC方面的制作与编程
在VC中建立一个基于对话框的应用程序,插入一个Flash控件、两个按钮(开始和停止)。为Flash控件添加一个成员变量CShockwaveFlash类型的m_ctrlFlash和一个整型变量percent,在构造函数中将percent初始化为0.
在对话框的初始化函数BOOLCFlashProgressDlg::OnInitDia-log()中添加代码如下:
GetDlgItem(IDC_BUTTON_START)->EnableWindow(FALSE);}}}
添加定时器函数如下:
voidCFlashProgressDlg::OnTimer(UINTnIDEvent){CStringstrPercent;
strPercent.Format("%d",percent++);
m_ctrlFlash.SetVariable("perLoaded",strPercent);CDialog::OnTimer(nIDEvent);}
为开始和停止按钮添加消息处理函数如下:
chardir[MAX_PATH];charch='\\';
charDirName[MAX_PATH];char*location;
unsignedintLength;
::GetModuleFileName(NULL,dir,MAX_PATH);location=strrchr(dir,ch);Length=location-dir;strncpy(DirName,dir,Length);DirName[Length]='\0';
strcat(DirName,"\\progress.swf");//得到progress.swf的完整路径m_ctrlFlash.LoadMovie(0,DirName);
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON_START)->EnableWindow(TRUE);为Flash控件添加一个消息处理函数如下:
voidCFlashProgressDlg::OnFSCommandShockwaveflash1(LPCT-STRcommand,LPCTSTRargs)
{if(strcmp(command,"progress")==0)
{//如果收到Flash的消息,说明下载成功,弹出对话框if(strcmp(args,"success")==0){this->MessageBox("下载完成!");KillTimer(1);
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(FALSE);
voidCFlashProgressDlg::OnButtonPause(){KillTimer(1);
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON_START)->EnableWindow(TRUE);}voidCFlashProgressDlg::OnButtonStart(){SetTimer(1,100,NULL);
if(percent>100)percent=0;
GetDlgItem(IDC_BUTTON_PAUSE)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON_START)->EnableWindow(FALSE);}以上程序在VC6.0和Flash8.0下调试通过。本文中所涉及的所有源程序均可通过链接http://lyld3618.go1.icpcn.com/download/flashprogress.rar下载。
4结束语
根据以上提供的原理和方法,我们就建立了一种VC和Flash之间双向消息互传机制,需要说明的是这种机制是基于自定义字符串的,可根据实际需要和复杂程度定义多种消息,消息的种类越多,相应的比较判断就越复杂。通过这种方法,就可以把Flash动画应用于我们的程序中,让程序更生动直观也更加精美。
参考文献:
[1]DavidJ.Kruglinski.等.VisualC++6.0技术内幕[M].北京:北京希望电子出版社,2002.
[2]Flash8.0帮助文件.
1702
电脑知识与技术