我理解的机器视觉

来源:互联网 发布:袁隆平害了中国人知乎 编辑:程序博客网 时间:2024/05/16 08:33

机器视觉,用电脑来实现人的视觉功能,但又不同于计算机视觉,前者注重广义图像信号(激光、摄像头)与自动化控制(生产线)方面的应用。而后者更多注重(2D、3D)图像信号本身的研究以及和图像相关的交叉学科研究(医学图像分析,地图导航)。

工业4.0的兴起以及智能制造概念的提出,让机器视觉成为了新时代的宠儿。工业应用中,测量、检测、定位以及识别是机器视觉的主要领域。强调实用性与实时性,是其脱胎与计算机视觉的另一个重要区别。目前的很多计算机视觉和图像处理技术仍然难以用于机器视觉,毕竟理论发展的速度始终还是远高于实践。

常用的PC式视觉系统一般由光源、光学镜头、CCD或CMOS相机、图像采集卡、图像处理软件以及PC机构成。即完成三个步骤:图像获取、图像的处理和分析、输出或显示。

机器视觉的工程应用主要分为硬件和软件两大部分。

  • 硬件:工程应用的第一步就是硬件选型,主要是光源、工业相机和镜头的选择。
  • 软件:

1.软件平台:

1)VC:最通用,功能最强大。用户多,和windows搭配,运行性能较好,可以自己写算法,也可以用工具包,而且基本上工具包都支持VC的开发。是大家主要选择的平台。

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

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

4)VB、delphi:用的人越来越少了。

5)其他:java等没有看到人用过。

2.工具包:

1)halcon:出自德国MVTech。底层的功能算法很多,运算性能快,用其开发需要一定软件功底和图像处理理论。

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

3)NI Vision:NI的特点是自动化测试大多数需要的软硬件都有解决方案,有点事软件图形化编程,上手快,开发周期快,缺点是并不是每个软件都非常厉害。视觉工具包的优势是售价比大多数工具包或者算法的天文数字便宜了不少,而且整个工具包一个价格,而不是一个算法一个算法地卖,性能方面在速度和精度没有前两种软件好。
4)MIL:加拿大maxtrox的产品,是Matrox Imaging Library 的简写。早期推广和普及程度不错,当前似乎主要用户还是早期的做激光设备的一些用户在用,所以用于定位的较多。

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

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

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

8)其他:其他还有一些厂家的图像工具包,要么市场影响力不大,要么本人没有用过,不评价。

对机器视觉工程师而言,不仅要有研究数学理论和编写程序的能力,更需要的是光、机、电一体化的综合能力。当然,更重要的是丰富的现场经验。如何实现理想的拍图效果,而不是简单的追求纯自然场景的感知,是成为一名优秀的机器视觉工程师的必经之路,

0 0
原创粉丝点击