×

学习机器视觉需要掌握哪些知识?

96
豪哥的世界
2018.04.14 14:56 字数 899

要回答这个问题,我们可以分解一下机器视觉系统,来逐个分析。
一套最简单的机器视觉系统包括

  • 视觉成像部分
  • 图像处理部分
  • 运动控制部分

1. 视觉成像部分

视觉成像又包含几个典型组件: 光源,镜头,工业相机。
光源和镜头都需要我们掌握光学知识,不同的打光方式,可以让相机对物体产生完全不同的成像;而镜头的倍率,焦距,视野等的选择不同直接决定了成像的逼真度。对于一名机器视觉工程师来说,掌握如何选择镜头,如何选择光源,如何确定打光方式是最基本的技能。

工业相机需要我们掌握光电知识,掌握相机传感器的区别,掌握图像成像的基本知识如清晰度,动态范围,视场角等等,这样我们才能根据需求和场景选择正确的相机,最快速的掌握这些知识的方法是买一台入门级单反来研究透这些成像参数和成像的关系。

2. 图像处理部分

图像处理我们一般理解是在PC机器上进行的,实际上在工业领域,大部分采用工控机,因为它稳定,加上有成本优势。

近些年的发展,嵌入式硬件也在蓬勃发展,很多工厂对于小的需求比如控制几百台仪表盘的开关和状态监控,完全可以利用树莓派等开源硬件实现。

对于入门者来说,可以优先掌握PC平台,X86平台的开发,在熟悉之后可以延展到嵌入式平台。

在软件部分,大部分应用层采用C#,.net,QT,C++来实现,因此掌握这其中的一门编程语言是必备的;而在图像算法层面,典型的开源算法有opencv,商用的有halcon,visionpro等,建议最开始可以先以halcon入门;如果在算法层面想进一步深入,可以研究一下机器学习,这可能是未来的主要方向。

对于理论方面,更多的是掌握图像处理的基本概念,这本书《机器视觉算法与应用》,值得一看。

3. 运动控制部分

典型的运动控制卡如固高,可以入手研究一下。更为高级一点的PLC,也可以玩起来,这部分的难点在于,精度的矫正,因为很多场景和需求对精度的要求是非常高的。

除了以上三点,整体方案的搭建能力是至关重要的, 因为方案需要把这些部分都串起来,并且能够和现实场景联系起来,满足实际的生产自动化需求。

而整体方案的搭建能力取决于

  • 对生产工艺的深度理解
  • 对所有组成部分之间的衔接,关系有深刻理解

这两点都需要经过多个项目的经验累积,才能给出一套好的方案。关于经验方面可以参考我的其他几篇文章:

https://www.jianshu.com/nb/22655126

机器视觉系统
Web note ad 1