机器视觉系统由许多部件组成,其间包含相机、图画采集卡、照明单元、光学元件与镜头、处理器、软件及显现设备等。简略的机器视觉系统能够辨认2D3D条形码,更杂乱的体系能够保证检测的元件满意特定的容差要求、拼装正确、没有缺点。

许多机器视觉系统装备了选用不同类型图画传感器的相机(如表1所示)。为了断定相机可取得的分辩率,重要的是了解这些传感器能够分辩的每毫米线对数(lp/mm) ,而不是有用的像素点数。
  例如,在一个典型的2588×1958像素、500万像素成像器中,巨细为1.4µm2的像素可供给357lp/mm的分辩率;而一个640×480像素的VGA成像器,其像素巨细为5.7µm2,可完结88lp/mm的分辩率。关于具有相同尺度的成像器而言,像素越小,每毫米中就可分辩更多的线对数。
  假如一个特别的图画传感器包含3µm2的像素,那么依据尼奎斯特采样规律,理论上图画中能够被分辩的最小特性尺度为6µm。可是实践运用中,并不能到达这一最小尺度值,由于每个镜头都会发生必定程度的像差。
灰度图画一般会按每像素8比特存储,然后供给256个不同的灰度渐变。图画中的黑色特性对应更低数值;更亮的像素对应更高数值。这种办法很快捷,由于单一字节对应着单一像素。
  挑选相机
  一般,机器视觉系统中运用的相机,能够经过USB3.0、以太网、FireWireCamera LinkCoaXPress等接口将相机中捕捉到的图画传输到PC体系中。
  现在,集成机器视觉照明、图画捕捉及处理等功用的智能相机,正在为阅览条形码或检测部件是否存在等自动化视觉使命供给经济型解决方案。虽然智能相机的处理器性能或许足以满意这些使命的需求,可是更杂乱或要求更高速度的使命则需求额定的处理才干。
  除了性能外,体系集成商还要决议选用何种支撑软件以及相机怎么衔接到外部设备。虽然许多检测部件是否存在的运用中都选用了智能相机,可是一些其他运用可能需求将相机衔接到显现设备,用以显现捕获到的图画和图画剖析的成果。
许多智能相机的处理器运转专用的操作体系;也有一些智能相机运转LinuxUnix等商业操作体系。当然,这些相机能够运转任何可在PC上运转的软件包。
  照明元件
  经过装备正确的机器视觉照明体系,能以高比照度重复捕捉图画特征。假如照明的装备不正确,机器视觉系统的成功性、可靠性、可重复性和易用性都处于较大的危险中。为了保证机器视觉系统装备正确的照明元件,设计师需求咨询照明制造商,或凭借图画照明实验室检测不同的照明选项。
  LED照明正在开端代替现在常用于机器视觉系统中的荧光灯、光纤卤素灯及氙气闪光灯火源,由于LED照明具有更高的一致性、更长的运用寿命和更好的稳定性。LED照明能够供给各式各样的色彩并能选通发光,这一特性在高速机器视觉运用中十分有用。
  除了照明类型,另一个决议图画成像的重要要素是光照到待测物体上的视点。两种最常用的为物体供给照明的办法是:暗场照明和亮场照明
  Darkfield——暗场
  Brightfield——亮场
  Field of view——视场
  暗场照明从较低视点照明物体,在一个十分滑润的如镜面般的物体外表上,反射的光将超出相机的视界规划。物体的外表将呈现为黑色,而经过相机捕捉到的物体外表发光的部分,就对应着外表的缺点或划痕。
亮场照明与暗场照明相反,亮场照明是在成像物体的上方打光,因而物体反射的光将处于相机的视场规划内。亮场照明装备中,物体外表上任何不接连处反射的光均无法被相机接纳而显现黑色。因而,该技能被用于为漫发射的非反射性物体供给照明。
  色彩效应
  假如某个运用要求运用五颜六色相机,则需求白光照明待检测的元件。假如需求区别待检测元件的色彩,则白光需求在整个波长规划内发生平等光谱(equal spectrum),以便剖析图片中的色彩。
  经过是非单色相机也能够辨认图画中的色彩,这种办法需求挑选适宜的灯火照明图画(如图所示)。图2中上面一行图片是人眼观察到的图画作用,而下面一行的图画则显现了单色相机呈现出的图画作用。
  As seen by the human eye:人眼看到的色彩
  As seen by a B&W vision system:是非视觉体系呈现出的色彩
  Red:红
  White:白
  Green:绿 
  为了照亮图画,运用了三种不同色彩的光:600nm红光(左边)、白光(中心)和520nm绿光(右侧)。为了使该图画呈现出最佳的比照度,最好的办法是运用绿色光,由于绿色是赤色的互补色。这种比照能够被单色相机轻松地辨认出来。假如为了滤掉赤色,则最好选用赤色光照亮物体。假如图片本身是五颜六色的,而且不需求辨认其间的任何一种色彩,那么白光照明则是更适宜的挑选。
  图画处理算法 
  当运用算法处理图画时,请考虑开发人员和终端用户的技能及详细的视觉体系使命要求。
  许多PC和智能相机供货商供给了功用大体相似的图画处理软件包。许多商业软件包供给了图形化集成开发环境(IDE),使体系集成商能够从程序库中拖取设计好的功用,依据本身需求完结定制化视觉算法。
  大都商业软件包要求为每个部署的视觉体系付出版权费,可是经过运用开源成像代码如OpenCV或直接用C++CC#.NET编写运用程序,能够省去这一成本。
  可是,由于OpenCV是一个开源环境,没有制造商为其供给担保或支撑。相比之下,商业软件用户的图画处理东西包将会得到开发商的支撑。
  在挑选软件前,体系集成商需求细心评价本身的才干。虽然挑选一个单一的根据PC的商业机器视觉软件包,需求付出800~2500美元的版权费用,可是开发人员运用C言语从头开端编程,也会很简略耗费掉很多时刻和工程资源。
此外,体系集成商还要认识到,一般一个开发环境并不能适用于一切的机器视觉系统。技能和经济压力意味着要依据不同的运用需求,选用不同的办法进行软件开发。
  在开端断定哪种算法适用于履行某个特定的视觉使命后(如图3所示),需求的体系数量、每个体系的成本和软件开发者的技能,将决议挑选什么样的编程环境。例如,用CC++等高档言语编写图画处理代码等相对更杂乱更长的使命,是工程师开发很多体系时的一个更佳挑选(如图4所示)。
  • Drag  and drop——拖放东西
  • Script programming and web interfacing——脚本编程及网页接口
  • PC development tools such as MS Visual Studio——计算机开发东西,如微软的Visual Studio 
  • C/C++ dode development——C/C++代码开发
  • Ease of development——开发简易性
  算法类别
  图画处理算法能够分为不同的类别,用于满意不同的运用需求。
  经过图画数据的预处理,能够提取出图画的特性。图画阈值是图画切割算法中最简略的办法之一,该办法可用于从灰度图画中生成二进制图画,然后让物体能够从布景中分离出来。
  其他的运算符,如图画滤镜能够令图画锐化、降低图画噪音;而直方图均衡能够增强图画的比照度。预处理同样触及图画切割,以定位图画中具有相似特点的物体或物体边界,如色彩、亮度或原料等。
  更杂乱的算法能够完结特征提取、检测物体边际或物体转角,完结对图画中物体的丈量。连通性东西,如blob剖析算法,则能够丈量图片内涣散物体的有某种一起联系的特性参数。
  关联性与几许查找是别的两个强壮的查找算法,其可用于找到物体的某种特性,或在新的图画中查找同样的特性,可供给相应的方位、某些情况下的尺度和规划、以及新图画是怎么完结歪斜或变换的等信息。
  最终要提及的是能够完结分类及图画破译的算法。其间,最简略的是能够完结简略模板匹配操作的算法,而更杂乱的分类算法可能用到神经网络及SVM等更杂乱的技能。
  算法的运用
  在许多视觉体系中,决议一个元件或元件的某个特性是否存在十分重要。尺度、形状或色彩等特点能够用于辨认元件。比照剖析、blob剖析、模型匹配或几许查找东西能够在图画上辨认元件。
  为了将一个元件从其他元件中区别出来,能够运用相对简略的功用,如边际检测算子。假如需求准确地检测出元件的方位,则需求履行几许查找或blob剖析。
  为了高速检测元件或web上的缺点,需求用到比照剖析或模型图画匹配算子。假如需求将缺点归类并检测,blob剖析或边际剖析能够丈量缺点参数,并将其与已知的正常参数进行比较。
  在一些图画处理运用中,能够运用超过图画规范像素分辩率的精度,丈量图画中的线、点或边际的方位,取得子像素分辩率。这能够经过比照物体边际像素的灰度等级与物体每个边上的像素灰度等级来完结。
  在特别的比如中,能够运用极坐标抽取技能辨认圆形物体的图画,这种办法更易于完结。如图5中心部分所示,blob剖析被用于显现蓝色物体的参数细节。运用此类算子,能够更简略地检测尺度、边界框及物体的中心。
  经过剖析图片中的灰度值,边际检测算法能够检测物体边际、方位、形态或许视点。左下方的直方图显现了某个特别图画的灰度像素值,该值将被进一步剖析,以强化图画中取得的某些特性。
  中心的图画有两组光学特性需求检测,上面的特性被细微削弱。在这个示例中,经过验证能够了解特性的衰减办法。此外,光学特性辨认(OCR)软件能够用于读取衰减特性。
  查找算法从图画中锁定一个方针方针,并存储为模板或几许模型,之后在其他图画中寻觅相似的方针图画,这就是一个能够辨认特定特性的准确东西。
  在着手研制任何机器视觉检测体系前,需求细心评价是公司内部开发仍是将其外包。在策划阶段有时会发现,机器视觉系统可能并非必要的,或许并不可行。
  假如断定机器视觉系统可行,则详细检测进程的一切特性都需细心记载。需求对元件待检测的物理及几许特点,包含色彩、外表抛光及反射特点等进行归类。开端,必需求界说特征用以区别待检测的元件是好是坏。只要了解元件或装配件的特点,体系集成商才干断定哪个图画解决方案是最理想的。
  整个出产进程都需求进行剖析,使体系集成商了解元件是怎么被出产的、以及在检测进程中发生了什么变化。凭借剖析,乃至还能够断定是否应该在出产流程的初级阶段就选用视觉检测。
  当策划阶段完结后,机器视觉组件,包含相机、软件、照明元件、光学元件及镜头等都要断定下来。这一阶段将断定在出产环境中,是否有满足的分辩率或充沛的照明及光学条件,以保证发生所需求的成果。这些要素最好在编写体系说明时完结,而不要等到完结体系时再考虑。                                 
  在体系清晰阶段,应该供给一份陈述,详细列出运用的硬件及软件、体系必需求运转的检测功用、需求满意的容差及体系的吞吐量等。此外,该阶段还要考虑体系怎么与出产厂房中可能存在的其他自动化体系衔接,这些都要记载下来。
在决议是自行研制、仍是与外部体系供货商合作开发时,还需求考虑几个要害的事务问题。从项目一开端,体系集成商就要断定公司内部是否具有支撑项目所需求的技能实力。
  假如公司内部具有这样的技能实力,管理层还要断定详细负责该作业的个人是否有满足的时刻和资源支撑这一项目、是否会遇到意想不到的应战?怎么应对?等等。此外,怎么保护、支撑、效劳及升级该体系也是需求考量的重要要素。