技术视觉系统原理及学习策略

来源:https://www.munganbana.com 作者:社会 人气:157 发布时间:2019-07-05
摘要:从机器视觉系统字面意思就可看出主要分为三部分:机器、视觉和系统。机器负责的运动和控制;视觉通过光源、工业镜头、工业相机、图像采集卡等来实现;系统主要是指软件,也可

  从机器视觉系统字面意思就可看出主要分为三部分:机器、视觉和系统。机器负责的运动和控制;视觉通过光源、工业镜头、工业相机、图像采集卡等来实现;系统主要是指软件,也可理解为整套的机器视觉设备。

  光源作为机器视觉系统输入的重要部件,它的好坏直接影响输入数据的质量和应用效果。由于没有通用的机器视觉光源设备,所以针对每个特定的应用实例,要选择相应的视觉光源,以达到最佳效果。常见的光源有:LED环形光源、低角度光源、背光源、条形光源、同轴光源、冷光源、点光源、线型光源和平行光源等。

  镜头在机器视觉系统中主要负责光束调制,并完成信号传递。镜头类型包括:标准、远心、广角、近摄和远摄等,选择依据一般是根据相机接口、拍摄物距、拍摄范围、CCD尺寸、畸变允许范围、放大率、焦距和光圈等。

  工业相机在机器视觉系统中最本质功能就是将光信号转变为电信号,与普通相机相比,它具有更高的传输力、抗干扰力以及稳定的成像能力。按照不同标准可有多种分类:按输出信号方式,可分为模拟工业相机和数字工业相机;按芯片类型不同,可分CCD工业相机和CMOS工业相机,这种分类方式最为常见。

  图像采集卡虽然只是完整机器视觉系统的一个部件,但它同样非常重要,直接决定了摄像头的接口:黑白、彩色、模拟、数字等。比较典型的有PCI采集卡、1394采集卡、VGA采集卡和GigE千兆网采集卡。这些采集卡中有的内置多路开关,可以连接多个摄像机,同时抓拍多路信息。

  机器视觉软件是机器视觉系统中自动化处理的关键部件,根据具体应用需求,对软件包进行二次开发,可自动完成对图像采集、显示、存储和处理。在选购机器视觉软件时,一定要注意开发硬件环境、开发操作系统、开发语言等,确保软件运行稳定,方便二次开发。

  机器视觉当前的比较流行的开发模式是“软件平台+工具包”。在实际视觉项目中,软件平台的目的就是为客户做出一个应用程序,让客户一目了然地看到其产品的各项数据,例如:产量、日期、报表、NG/OK量、故障信息、调试信息、设置参数、操作工具、整个视觉控制系统等。当前机器视觉领域主要用的开发平台有:

  最通用,功能最强大。用户多,和windows搭配,运行性能较好,可以自己写算法,也可以用工具包,而且基本上工具包都支持C++++的开发。

  比较容易上手,特别是完成界面等功能比用VC+MFC难度低了很多,已经逐渐成为流行的使用平台了,算法在调用标准的库或者使用C#+C++混合编程。可以看到目前很多相机厂商的SDK都已经开始使用C#做应用程序了。

  开发软件快,特别是做工控行业或者自动化测试行业的很多工程师,由于使用labview进行测试测量的广泛性,所以都有labview的基础,再调用NI的Vision图像工具包开发,开发周期短,维护较为容易。适用人群有一定的限制性。

  软件平台生成的应用程序可以通过控制整个视觉系统来获取对象图像信息,对该图像信息进行信息提取处理就需要一定的功能函数和算子,那么就需要包含大量功能函数的工具包。当前机器视觉领域主要用的工具包有:

  1).halcon:出自德国MVTech,当前首选使用对象。底层的封装功能算法很多,运算性能快,使用方便简单,若有一定软件功底和图像处理理论,使用其开发将会便捷。

  2).VisionPro:美国康耐视的图像处理工具包。性能大多数算法性能都很好,性能上没有和halcon直接对比过。

  3).NI Vision:NI的特点是自动化测试大多数需要的软硬件都有解决方案,有点事软件图形化编程,上手快,开发周期快,缺点是并不是每个软件都非常厉害。视觉工具包的优势是售价比大多数工具包或者算法的天文数字便宜了不少,而且整个工具包一个价格,而不是一个算法一个算法地卖,性能方面在速度和精度没有前两种软件好。

  4).MIL:加拿大maxtrox的产品,是Matrox Imaging Library 的简写。早期推广和普及程度不错,当前似乎主要用户还是早期的做激光设备的一些用户在用,所以用于定位的较多。

  5).CK Vision。创科公司的软件包,相对前面几个工具包来说价格优势比较明显,另外机器视觉需要的功能也基本都有,所以在国内自动化设备特别是批量设备同时需要保护版权的企业而言,用量很大,推广也不错。

  6).迈斯肯:迈斯肯的视觉主要产品还是条码阅读一类,图像工具包没有用过,不了解,不评价。

  7).OpenCV:感觉openCV更多的还是用在计算机视觉领域,在机器视觉领域其实不算太多,应为机器视觉领域当前主要的应用还是定位、测量、外观、OCR/OCV,感觉这几项都不是opencv的专长。

  系统原理:机器视觉系统的目得就是通过机器视觉产品(即光源、镜头、相机、采集卡)将被拍摄的目标转换为图像信号,传送给机器视觉软件(即图像处理系统),来代替人眼的测量、检测和判断。其原理是由计算机、图像处理器以及相关设备来模拟人的视觉行为,完成得到人的视觉系统所得到的信息。随着微型计算机技术、网络技术、大数据融入技术发展,相信未来机器视觉系统将会代替人类完成更多难以完成的工作。

  国外机器视觉发展到今天,已经从“一包到底”式的工作程序,已经可以清清楚楚分为三个部分:

  第一类人。就是我们常说的,开发通用视觉系统开发人员,公司开发部的技术职工。

  第二类。是专门用第一类人所开发出的系统,给第三类人搞二次开发,开发各种专为第三类人所用的系统。

  第三类人,就是用户。这类人是真正将机器视觉系统应用到各个领域中的人,他们不仅在各自的行业中使用种种已经开发成型的机器视觉系统。而且负责对各类系统进行测试及评估。

  举个实际例子,如何检测某一工件;检测光盘表面的系统该如何配置CCD相机、镜头及灯源等。问这些问题的朋友应该算是第三类人。

  他们公司要他们寻找一个系统可以用来检测本公司的产品。但由于第一类人所开发的,只是通用的系统以及视觉系统开发工具的软件包。并没有哪家公司专门开发一套系统来检测光盘或是某种特定的工件。所以,这些朋友就应该来找我,因为我是第二类人。

  我的工作就是,专门用视觉系统开发工具软件包为他们专门开发一套他们所需要的光盘检测系统或是工件检测系统。但是,我在这里所看到奇怪的现象却是,这些第三类的朋友一直问的,都是第二类人所问的问题。如:问应该用哪家公司的开发软件;用什么样的CCD;如何标定等等。我真的不知道如何回答你:你明明是第三类人,要找第二类人帮忙。现在却以第二类人的身份甚至是以第一类人的身份问问题。或许有的朋友会这样说:我虽然是第三类人,但我对机器视觉有兴趣,想自己学习啊!。

  举个例子:大家一定都有学习英文的经验,而且也一定都有同样的感觉----怎么学也学不 好----我就是这样。我们抛开所谓的语言天分不说,大家学不好的原因其实很简单:没有语言环境。一语中的啊!学而不用,怎么也不会学好。同样,学习机器视觉,无论你在书本上看了多少理论,你自己若没有实际动手操作、编程的经验也是枉然。还不如从你每天能接触得到的东西开始学习。教游泳的教材随手可得但为什么并非人人都下得了水呢?

  要成为第一类人,又分硬件及软件两种。要对自己所负责的这个模块非常了解,搞软件要知道算法及运行速度;搞硬件要明白公司所选用芯片的特点等等。同时还要清楚对手公司的优缺点以及机器视觉这一行的种种动态和最新技术。

  想成为第二类人,你一定要是个通才。就是说什么都要知道一点。不仅要了解第三类人的要求,而且也要知道各种第一类人(不同品牌的视觉卡及软件包)的水平。

  要成为第三类人,不仅要有机器视觉基本的相关知识。而且,要对自己所工作的行业及领域的机器视觉系统非常熟悉。专作你这行的机器视觉公司有哪几家?各有什么优缺点等等。

  总结一下。这三种人相比,第一类人一定要专业,对机器视觉的某一领域非常非常了解;第二类人虽比不上第一类人那么专业,但更加全面;第三类人更熟悉各个应用系统开发公司(第二类人)的优缺点。

  所以怎么样学习机器视觉,就请踏实下来,戒浮躁,从最基本地学起。在这里介绍下目前常见的具体学习方式采用VS2010中C++构造MFC应用程序,相信WINDOWS开发的对VC肯定不会不熟,作为一个经典的版本VC6.0可谓很多人的开发工具,从早期一直演变过来的VC6.0除了程序员常用外,作为现在的很多高等学校的教学工具,VC一个履行着它的使命,就是到现在经过VS2008的洗礼后,相信还有很多开发人员还存留着VC6.0,这个版本对于程序员而言有着太多的感慨,然而随着Visual Studio2010的发布,相信这作为一个时代经典的产品也必将开始慢慢的走出人们的视线,让我们开始从VC转向Visual Studio 2010。

  首先当属Visual C++工程及其构建系统,这其中包括了MSBuild、VC__目录、工程依赖性、宏与环境变量等,我们举个简单的例子,现在VC++目录设置位于两个地方,可以使用项目属性页来设置每个项目对应的VC++目录,也可以使用属性管理器和一个属性表来设置全局性的并且使每个配置值对应的VC++目录。

  第三、集成开发环境(IDE)变化。主要变化有改进的错误智能感知支持、#include自动完成特征等。在Visual Studio 2010中,集成开发环境(IDE)支持更好地检测可能导致丢失智能感知支持的错误,并在这些内容下面显示以红色波浪下划线。此外,集成开发环境还支持把智能感知的错误输出到错误列表窗口中。要想观察导致问题的相关代码,你只需要双击错误列表窗口中的错误即可。当然在#include自动完成特征中也有体现。

  言归正传,初学者使用Visual Studio 2010中的C++ MFC开发视觉应用程序,有以下几点优势:

  语法方面:C的语法构造比较少,有限的几种是:struct union enum等类型定义,函数定义,指针和数组派生类型,变量定义,三类(顺序、分支、循环)基本结构构造语句,各种繁多的运算符以及特殊的赋值,其中全局可见的只有类型、变量和函数,函数内部可以拥有除了函数以外的任意构造,但是,对于函数的返回值类型有限制。总之,C是语法简单,一致性较好,相对正交,基本可以任意组合的语言。

  库方面:C语言的标准库很少,除了基本的IO库以外,就是低层次的memory和string操作的库了,还有一些非常基本的数学库。剩下的文件系统相关的(包括ftp,nfs,http,smtp,pop等高层网络协议)库不存在,图形图像处理的库也不存在。控件库,数据库访问库,多媒体编码解码库,安全库,加密库,认证库也都不存在。不过,它们都可以通过非标准C库来获得。另外别的类型的库也都存在,而且跟C语言的结合比较自然,跟C语言以及标准C库的感觉一样,因为它们大都是C写的。总之,C标准库非常少,但是扩展库很全,不至于造成某些壁垒。

  开发工具方面:C语言的语法特征比较少,可以完全记在脑子里,所以编程序的时候不太依赖于辅助工具,当然,能够提供指示库接口的开发工具仍然是受欢迎的。

  第一、MFC类图。MFC为编程人员提供了几大用来构建一个Windows程序的类,在通过VC++创建项目时,IDE会给程序员自动添加这些类。

  第四、Persistence(永久保存)机制。MFC中通过这个机制,将用户输入的数据全部都保存下来,同时也可以打开同类型的文件。

  第五、Message Mapping(消息映射)。MFC程序中系统消息能够传到每个类各自负责的函数、方法中,每个类都能处理属于他独特的消息事件,主要就是通过消息映射来完成的,其实消息映射有点像第二个技术动态创建类的结构关系,而这里只是针对程序中每个类中的消息进行一个动态链表的建立。

  第六、Command Routing(命令传递)。MFC的消息有两类,一类是普通消息,一类是系统消息,普通消息都是从派生类将消息传递到父类中。系统消息先由CFrameWnd类接受消息,并且传递给其父类CWind类,这里CWind类中的消息处理只是做一个消息传递的工作,而CWind类则交给CView类处理,如果没有处理函数这要CView类的父类CWind处理,同样这里CWind类中的消息处理只是做一个消息传递的工作,如果还没有找到,则系统会要求CDocument类处理,如果没有匹配的则又会回到CWind类中,然后在CWind类遍历自己的消息映射表,如果没有对应的处理则表消息处理权流回到CWinApp类中,如果还没有找到则会退回到CWind类中执行DefWindowProc()函数。因此整个消息传递过程就结束了。

  有了应用程序后,那么就能为用户提供实在看得着操作得了的软体界面程序,但仅只有逻辑层面,并没有处理功能模块。也就虚有其表,中看不中用的地步。因此为了满足实际视觉项目需要,学习一门图像处理至关重要。在这里推荐学习HALCON,因为HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境 。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。事实上,这是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算 分析能力来完成工作。应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。HALCON支持Windows,Linux和Mac OS X操作环境,它保证了投资的有效性。整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC1394。

  1.为了让使用者能在最短的时间里开发出视觉系统,HALCON包含了一套交互式的程序设计界面HDevelop,可在其中以HALCON程序代码直接撰写,修 改,执行程序,并且可以查看计算过程中的所有变量,设计完成后,可以直接输出C、C++、VB、C#、vb等程序代码,套入您的程序中。

  HDevelop同时和数百个范例程序链接,除了个别计算功能的说明,您也可以随时依据不同的类别找到应用的范例,方便参考。此外,以问题为导向的手册, 可以让您找到最适切的使用说明以及作业观念。

  2.HALCON不限制取像设备,可以自行挑选合适的设备。原厂已提供了60 余种相机的驱动链接,即使是尚未支持的相机,除了可以透过指标(pointer)轻易的抓取影像,还可以利用HALOCN开放性的架构,自行撰写DLL文件和系统连接。

  3.使用HALOCN,在设计人机接口时没有特别的限制,也不必特别的可视化组件,您可以完全使用开发环境下的程序语言,例如visual studio、Mono等等,架构自己的接口,end user看不到您的开发工具,而且在执行作业的机器上,只需要很小的资源套件。

  最后,机器视觉项目里,我们需要在VC++中编写出应用程序,作为操作平台,用HALCON做出特定图像处理功能模块,混合编程后植入主程序里,最后实现客户需求完成可视化。其中,当做不同的项目时候,很大程度上,主体程序无须重新做,可以在以前做好的程序框架加以修改,减少工作量,只需要重新做新的图像处理,再植入主程序即可。

  文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

  直播主题及亮点本次直播,讲者将结合自己过去16年中在机器视觉领域的研发经验,讲解智能视频分析技术的基本概念、基本方法、以

  完成Pre-A轮融资,Agile Robots AG研发智能机器人大脑

  7月3日,Agile Robots AG,即北京思灵机器人科技有限责任公司(以下简称“思灵机器人”)....

  机器视觉发展到今天已经有二十多年的历史了,它实质上是计算机学科中一个重要的分支。

  机器人视觉系统经历了三代的发展,第一代机器人视觉的功能一般是按规定流程对图像进行处理并输出结果。

  过去十年,我们有幸见证了中国工业机器视觉技术的蓬勃发展以及市场的风起云涌。面对如此重要的十年,非常有....

  伴随着工业发展进程及工业4.0时代的到来,机器智能化也逐渐成为现实。特别是近期工业自动化中机器视觉技....

  本文讨论了基于机器视觉的烟包外观质量的在线检测系统总体方案的设计,同时针对香烟的小包装流水线的具体情....

  移动机器人是机器人学一个重要分支,且随着相关技术的迅速发展,它正向着智能化和多样...

  图像处理中常用到的算子都有哪些? 1. cv::abs()计算矩阵的绝对值 cv::MatExpr cv::abs( cv::InputArray src);cv::MatE...

  机器人视觉伺服系统是机器视觉和机器人控制的有机结合,是一个非线性、强耦合的复杂系统,其内容涉及图象处....

  ActiveVisio专为整合至智能交通系统(ITS)而设计,可配备现有的交通摄像头,无需人工监控就....

  一、环形LED视觉光源 :环形光源是专为机器视觉、工业检测、工业体视显微镜设计的高亮度LED光源,亮....

  机器人可以做出惊人的事情,例如在工厂中与人合作进行作业,在仓库内快速运送包裹,以及探索火星表面。尽管....

  信息和通信技术(ICT)已成为社会基础设施的关键,因此越来越需要能够使其更有效运作的系统。机器视觉(....

  视觉人工智能的应用场景十分丰富,商业化价值巨大,全球40%的AI企业都集中在视觉AI领域。在视觉AI....

  近日,科创板上市委2019年第8次审议会议结果出炉,中国通号、虹软科技通过科创板上市委审议,即将进入....

  机器视觉处理软件:用来完成输入图像数据的处理,通过一定的运算得出结果,这个输出的结果可能是PASS/....

  近日,深圳市南山区博林天瑞喜来登酒店内,高朋满座,掌声雷动。华中科技大学、深圳阜时科技有限公司主办,....

  HALCON 是当今machine vision技术的代表,它总是以最新科技为基础,提供了现今市场中....

  本书系统地介绍了光学设计光学溅最和光学工艺的主要知识。全书内容共分三个部分第一部分是光学设计,介绍了....

  但现在市面上没有这个机器人,那视频里的机器人是怎么做到的?实际是旁边有个人通过一个遥控手柄一点一点地....

  工业4.0 时代,工厂的自动化设备通常只能应对精确位置,不像人工可以处理简单偏差。而机器视觉能缩短这....

  日前,百度纯视觉城市道路闭环解决方案——Apollo Lite在CVPR 2019首次面世。

  药片缺陷检测是药片生产过程中的关键环节,其检测结果的好坏直接影响着药品的质量。常见的人工检测方法:成....

  智能制造已成为全球制造业升级发展的重要方向,未来工厂里将采用越来越来越多的自动化技术,包括机器人、人....

  在过去的一年里,人工智能(AI)、大数据、3D成像和机器人过程自动化等领域在取得了空前的发展。在即将....

  自动化的发展史也是机器逐步取代人力的历史,在制造业转型升级的过程中,机器人开始取代落后的人力劳动。

  电子发烧友总结了以“人工智能”为主题的5月精选干货,今后每月一个主题为一期,希望对各位有所帮助!(点击标题即可进入页面下载...

  智能制造结合了人工智能、大数据、物联网等新一代智能信息技术,贯穿产品全生命周期,实现从了工厂到市场的....

  在基本术语中,机器人视觉涉及使用相机硬件和计算机算法的结合,让机器人处理来自现实世界的视觉数据。例如....

  随着我国汽车工业的发展和人民生活水平的提高,汽车越来越多地进入普通家庭。由于各种突发性道路交通事故与汽车盗...

  近日,SENSORO(北京升哲科技有限公司)继参加 2019 年全国双创周北京会场后,再度携城市级A....

  本文介绍一种无需编程的新型机器视觉系统,针对上述市场现状,其有以下优...

  全球机器视觉市场仍然处在一个稳健快速的成长阶段。根据BCC Research的预测,2018年全球机器视觉市场约为160亿美元,到2023年...

  C位是近年网络上一个比较热门的词,最早来源于DOTA等游戏领域,是核心位置(Carry位)的简称,代....

  随着机器视觉应用的日益广泛,大幅面多相机视觉系统的需求越来越多,主要应用方向为大幅面高精度的定位与测....

  基于计算机视觉与深度学习的人脸检测、人脸识别技术正在从安防、商业、金融、家居等各个领域不断迅速地、广....

  近日,由华中科技大学、深圳阜时科技有限公司主办的“芯时代、芯征程、芯机遇”人工智能与机器视觉高峰论坛....

  电子连接器种类繁多,但制造过程是基本一致的,一般可分为下面四个阶段:冲压(Stamping),电镀(....

  人类和机器人一起工作对工厂和建筑工地等环境有着巨大的潜力,但机器人对人也有着高度的潜在危险,尤其是当....

  机器视觉之于人工智能等同于视觉之于人类,本文系统介绍决定机器视觉的两大要素——视觉算法和芯片,重点介....

  在机器视觉处理中,我们经常要对检测到的物体的方位特征进行评估。比如说,我们要 OCR 识别一个字符串。那么这个字符串与x轴的...

  临时研究了下机器视觉两个基本算法的算法原理 ,可能有理解错误的地方,希望发现了告诉我一下 主要是了解思想,就不写具体的计算...

  本系统搭建了基于单目视觉的SCARA机器人硬件平台,并使用圆形供料盘混合投放多种颜色的保险片,利用CCD摄像机获取保险片...

  一、机器视觉光源照明技术的几个要素 1、方向:选择不同的光源,控制和调节照射到物体上的入射光的方向是机器视觉系统设计的最...

  海康机器人华南区总经理陈少俊在会议上做了《物联赋能智能制造,移动创造价值》为主题的演讲。

  机器视觉之于人工智能等同于视觉之于人类,本文系统介绍决定机器视觉的两大要素——视觉算法和芯片,重点介....

  当我们看到好看的风景,有趣的小东西,可口的菜肴,可爱的小狗,我们喜欢掏出兜里的手机拍一张照。但是对着....

  传统的机器视觉通常包括两个步骤——预处理和物体检测。而沟通二者的桥梁则是图像分割(Image Seg....

  使用新开发的超高速相机和超高速部分亮灯照明,对对象工件进行拍摄。这是一种全新的拍摄方法,它将对多个方....

  改善患者护理并降低成本在过去十年中,RFID已成为医疗保健系统和患者体验中不可或缺的一部分。

  数据显示,2018年人工智能(AI)领域的全球融资高达200亿美元,这不仅是AI领域的历史最高水平,....

https://www.munganbana.com/shehui/114.html

最火资讯