您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 边干边学机器视觉-完整版
i目录第1章搭建机器视觉处理平台..................................................................................1 1.1 选择相机.......................................................................................................................1 1.1.1 扫描类型(Scantype)........................................................................................1 1.1.2 相机分辨率(CameraResolution).....................................................................2 1.1.3 相机的图像传输方式.......................................................................................3 1.2 选择图像采集板卡.......................................................................................................5 1.3 选择软件处理平台.......................................................................................................6 1.3.1 超高性价比的学习平台...................................................................................7 1第1章搭建机器视觉处理平台1.1选择相机光源选择好了以后,下一步就是选择相机。通常,在工业相机的说明书上,会出现这样的指标,如图2.1所示。图2.1工业相机指标(来自)下面本文将详述工业相机常见的指标,以帮助大家选择合适的相机。1.1.1扫描类型(Scantype)相机中的成像元件是CCD芯片。如果CCD芯片只有一行感光器件(如图2.2左所示),换句话说,每次只能对物体的一条线进行成像,那么,这种扫描类型成为线扫描(linescan),这样的相机称为线阵相机。如果CCD芯片的感光区是个矩形阵面(如图2.2右所示),换句话说,每次能对物体进行整体成像,那么,这种扫描类型成为面扫描(linescan),这样的相机称为面阵相机。图2.2面阵CCDvs.线阵CCD面阵相机的优点是价格便宜,处理方面,可以直接获得一幅完整的图像。线阵相机的优点是速度快,分辨率高,可以实现运动物体的连续检测,比如传送带上的滤波等带状物体(这种情况下,面阵相机很难检测);其缺点是需要拼接图像的后续处理。图2.3给出了线阵相机的一个成像实例,以帮助大家更好的理解线阵相机的成像过程。2图2.3线阵相机成像实例按照扫描方式不同,面阵相机还可以分为隔行扫描(Interlacedscan)和逐行扫描(ProgressiveScan)。隔行扫描方式下一幅完整图像分两次显示,首先显示奇数场(1、3、5……),再显示偶数场(2、4、6……),如图2.4所示。+=图2.4隔行扫描成像过程隔行扫描相机的优点是价格便宜,但由于隔行扫描方式是先扫奇数场,再扫偶数场,所以隔行扫描相机在拍运动物体的时候容易出现锯齿状边缘或叠影。逐行扫描相机则没有上述的缺点,由于所有行同时曝光,不会分先后,所以在拍摄运动图像画面清晰,失真小。其余参数相似的情况下,逐行扫描相机要比隔行扫描相机贵。1.1.2相机分辨率(CameraResolution)分辨率是影响图像效果的重要因素,我们一般用水平和垂直方向上所能显示的像素数来表示分辨率,例如640×480。该值越大图形文件所占用的磁盘空间也就越多,从而图像的细节表现得更充分。与分辨率联系非常紧密的参数是视场(FieldofView)和特征分辨率(FeatureResolution),如图2.5所示。视场是指能拍摄到的范围,特征分辨率是指能分辨的实际物理尺寸。奇数场偶数场帧3图2.5视场和特征分辨率NIVisionModule中的图像算法要求,物体最小的特征需要两个像素来表示,根据视场和相机分辨率,我们可以计算出特征分辨率。计算特征分辨率的公式为:特征分辨率=视场/分辨率*2例如:相机分辨率为640x480,横向的视场是60mm,那么在横向的特征分辨率为:60/640*2=0.1875mm。1.1.3相机的图像传输方式按照不同的图像传输方式,相机可以大略的分为模拟相机和数字相机。1.模拟相机模拟相机以模拟电平的方式表达视频信号,如图2.6所示。模拟相机现在使用非常广泛,其优点是技术成熟、成本低廉、对应的图像采集卡价格也比较低。8-bit的图像采集卡可以提供256级的灰度,对于大部分的图像应用已经足够了。图2.6模拟视频信号模拟相机有四个非常成熟的标准:PAL、NTSC、CCIR和RS-170,如表2.1所示。里面需要关注的参数有帧率、彩色/黑白、分辨率。表2.1模拟相机标准标准使用地帧率帧/秒彩色/黑白分辨率PAL欧洲25彩色768×676NTSC美国、日本30彩色640×480CCIR欧洲25黑白768×676RS-170美国、日本30黑白640×4804由表2.1可以用看出,不同的标准对应不同的参数,这些参数必须正确告知图像采集卡,才能获得准确的图像。在NIMeasurement&Automation中,可以根据相机模拟图像的输出格式来配置图像采集卡,如图2.7所示。图2.7配置图像采集卡模拟相机也有一些缺点,比如帧率不高,分辨率不高等等。在高速、高精度机器视觉应用中,一般都会考虑数字相机。2.数字相机数字相机先把图像信号数字化后通过数字接口传到电脑中。常见的数字相机接口有Firewire、CameraLink、GigE和USB。CameraLink是一个工业高速串口数据连接标准,它是由NationalInstruments、摄像头供应商和其他图像采集公司在2000年10月联合推出的,它在一开始就对接线、数据格式、触发、相机控制等做了考虑,所以非常方便机器视觉应用。CameraLink的数据传输率可达1Gbits/s,可提供高速率、高分辨率和高数字化率,信噪比也大大改善。CameraLink的标准数据线长3米,最长可达10米。如果您是高速或高分辨率的应用,CameraLink肯定是首选。Firewire即IEEE1394,开始是为数字相机和PC连接设计的,它的特点是速度快(400Mbits/s),通过总线供电和支持热插拔。另外值得一提的是,如果PC上自带Firewire接口,那么不需要为相机额外购买一块图像采集卡了,这在成本上也是一种优势。GigE,即千兆以太网接口,它似乎综合了高速数据传输和远距离的特点,而且电缆便宜(网线)。缺点是支持这种接口的相机型号比较少,选择有限。USB相机较多的用在娱乐上,比如USB摄像头,USB工业相机型号也比较少,在工业中的使用程度不高。但正是因为USB摄像头超级低廉(不到100元人民币),所以本文把USB摄像头作为机器视觉学习的硬件平台,这样可以方便大家以低廉的成本进入机器视觉5领域。1.2选择图像采集板卡一般来说,选好相机后,图像处理板卡也就确定了。生产图像处理板卡的厂家非常多,如果您的应用除了单纯的图像处理外,还包括数据采集、运动控制等要求的话,选择NationalInstruments公司的图像处理板卡是一个不错的选择。因为所有功能都可以在一个统一的软件平台(LabVIEW)和硬件平台(PXI)上完成,方便系统集成。在上提供一个相机选择助手,如图2.8所示。图2.8相机选择助手在相机选择助手选择相应的参数,如供应商、扫描模式、接口类型、分辨率等,就可以查到到相应的应用比较成熟的相机,并且还可以比较同类型的相机。点击到感兴趣的相机页面,不仅可以获得相机相关的信息,还可以得到图像采集卡的推荐,如图2.9所示。推荐的图像采集卡都是经过NI公司验证过的,所以可以把兼容性问题降到最低。6图2.9相机信息页面1.3选择软件处理平台机器视觉处理软件有很多种,比如源代码开放的OpenCV,Mathworks公司的图像处理工具包,Matrox公司的ImagingLibrary,NationalInstruments公司的LabVIEW等等。如果目标是机器视觉算法研究,需要考虑软件的源代码是否开放。如果目标是机器视觉系统的开发,需要考虑的因素有:图像处理函数库是否完备;发布费用是否高昂;使用是否方便;开发平台是否统一;与硬件结合是否容易;公司的售后服务及技术支持是否到位等等。机器视觉系统开发带有很强的试验性质,通常需要多种处理算法混合在一起才能取得目标效果,需要一边尝试一边开发。如果图像处理函数库不够完备,那么开发起来,处理过程将受到很多限制。商业的软件平台通常会收取发布费用,如果产品比较低端,那昂贵的发布费用将占去大部分利润。对于系统开发来说,商品的上市时间是一个重要的因素,大量的时间花在源代码的调试上是一件得不偿失的事情,所以软件的易用程度和学习曲线将是一个重要的考虑因素。7机器视觉系统是一个涵盖机械、图像处理、数据采集和运动控制等的复杂系统,如果开发平台统一,容易集成诸如数据采集和运动控制等功能的话,那比较容易开发出功能更加复杂、附加值更加高的产品。笔者在学生期间曾经做过一套系统,在VC下进行图像采集与处理,用单片机系统实现数据采集,用PLC进行电机控制,然后用RS485进行通信。在这个工程项目中,必须学习VC,KeilC和GXDeveloper三种开发平台,且不说各模块功能的实现,单是设计和开发通讯协议,就在三个平台间辗转反侧,花了很多精力和时间。另外,如果供应商的技术支持很好,比如有免费800电话,工程师现场支持等服务的话,会非常有助于项目的开发。笔者在项目开发时,遇到问题的主要解决途径就是Google和论坛。本文将介绍NationalInstruments公司的LabVIEW开发平台,在这个平台不仅可以学习图像采集、图像处理及机器视觉,学完后还能将所学到的知识和技能直接用于机器视觉系统的开发。1.3.1超高性价比的学习平台前文中提到,USB摄像头常用于家庭娱乐,但由于其价格低廉,非常适合做学习机器视觉的入门级硬件。本节将介绍LabVIEW平台下,如何利用USB摄像头学习机器视觉的方法。1.买一个支持DirectShow的USB摄像头,就是QQ聊天的那种,免驱的。我买的是剑桥A36Pro,不到100元RMB。2.安装LabVIEW7.1以上的版本,参加任何的NI研讨会都可以拿到LabVIEW的试用光盘,也可以到下载3.安装NIVisionDevelopmentModule,参加NI机器视觉研讨会就可以拿到VisionDevelopmentModule的试用光盘,或者到网上去下载,需要注意的是VisionDevelopmentModule的版本号要和LabVIEW对应,比如LabVIEW使用的是8.2,那么VisionDevelopmentModule也要使用8.2。4.到去下载NI-IMAQforUSBCameras,这是在LabVIEW下,支持DirectShow的USBCamera的驱动并安装。5.如果您用的是中文WinXPSP2操作系统,还需要到
本文标题:边干边学机器视觉-完整版
链接地址:https://www.777doc.com/doc-1436705 .html