机器视觉怎么入门?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-03
机器视觉怎么入门?

这个感觉是从论坛上大家所问的问题得出来的。因为。在论坛中看到不少朋友所问的问题,是相当可笑的。说可笑并非指所提问题过于简单幼稚,而是所问的问题一看就是从书本上抄来的,而不是在实际情况下所遇到的。换句话说,论坛中的朋友大多只是在纸上谈兵,极少有人真正自已动手开发视觉系统。这样说是因为自己搞开发的人绝对问不出某些奇怪问题来的。往深了说一点,好象国内的朋友们只喜欢啃书本,并不愿意(也可能是懒得)动手。
一句话,国外机器视觉发展到今天,已经可以清清楚楚分为三个部分: 1,底层开发部分。 2,二次开发部分。
3,最终使用部分。于是在国外,从事这一行业的人现在也就可以简单而清楚地分成三种人: 1,底层开发的人(从事底层开发工作的人)。
2,二次开发的人(从事二次开工作的人)。
3,使用及操作机器视觉系统的人(从事最终使用工作的人)。
第一类人。就是我们常说的,开发通用视觉系统(如:DVT,西门子,欧姆龙,EVISION,COGNEX等等)的开发人员,也就是DVT,COGNEX这些公司开发部的技术职工。
第二类。就是大家所说的OEM用户。是专门用第一类人所开发出的系统,给第三类人搞二次开发,开发各种专为第三类人所用的系统。
第三类人,就是用户(end
user)。这类人是真正将机器视觉系统应用到各个领域中的人,他们不仅在各自的行业中使用种种已经开发成型的机器视觉系统。而且负责对各类系统进行测试及评估。
举个实际例子,这里有不少朋友问过这类问题:如何检测某一工件;检测光盘表面的系统该如何配置CCD相机、镜头及灯源等。问这些问题的朋友应该算是第三类人。他们公司要他们寻找一个系统可以用来检测本公司的产品。但由于第一类人所开发的,只是通用的系统以及视觉系统开发工具的软件包。并没有哪家公司专门开发一套系统来检测光盘或是某种特定的工件。所以,这些朋友就应该来找我,因为我是第二类人。
我的工作就是,专门用DVT,EVISION,COGNEX等的视觉卡,以及视觉系统开发工具软件包为他们专门开发一套他们所需要的光盘检测系统或是工件检测系统。
绕了老大一圈,其实要说的问题就是一个----我所发现的问题:这里80%以上朋友把自己的身分混淆了,越俎代庖。
不客气的说,目前国内搞这行的朋友似乎都有些好高骛远。不少从事第二部分工作朋友(搞二次开发的第二类人)对于机器视觉有关知识的了解,尚不如国外第三类人的知识水平(我是从大家所问的问题感觉到的)。而国内第三类朋友知识水平就更可想而知。
可是奇怪的是,每个人所问的却都是第二类人要问的,有些甚至是一类人才会问的问题。好象,机器视觉是个十分简单的技术,凭大家随便问几个“关键性”的问题,再由所谓的“专家”三言两语的回答一下。大家就一夜之间都可以自己搞底层开发,成第一类人了。
要成为第一类人,又分硬件及软件两种。要对自己所负责的这个模块非常了解,搞软件要知道算法及运行速度;搞硬件要明白公司所选用芯片的特点等等。同时还要清楚对手公司的优缺点以及机器视觉这一行的种种动态和最新技术。
总结一下。这三种人相比,第一类人一定要专业,对机器视觉的某一领域非常非常了解;第二类人虽比不上第一类人那么专业,但更加全面;第三类人更熟悉各个应用系统开发公司(第二类人)的优缺点。
现在大家可以看得出,机器视觉发展到今天,其分工已经越来越细,每个部分的工作其实是很难相互取代的。大家不要以为第三类人就比第一类人低一等,这是一个错误的等级概念。我本人过去曾属于第一类人,现在作的是第二类工作。而我的几个“师弟师妹”(当初曾一起作第一类人时的同事)现在就在干第三类工作。大家别小看第三类工作,以为这是小儿科,你能真作好这一行也不是很容易。毕竟这也是一门行当也是一个饭碗!另外,以我个人来看:以国内现在机器视觉的水平,对于那些想作第一类人的朋友我在这里劝一句:还是算了吧。
国内的机器视觉水平打根子上就差,您还打算搞底层?算法本身都是抄人家的,就只能和对手拼程序的写法了。不过我觉得那更没戏。
这样说我绝没有看不起初学者的意思。我说过:所问的问题再简单,我都不会笑话你。对于每样事物我们都是从无知开始的。但是,对于那些极不实际的好高骛远的问题,我还是要说,希望大家踏实下来,戒浮躁,从最基本地学起----先确定自己的身份。

要回答这个问题,我们可以分解一下机器视觉系统,来逐个分析。一套最简单的机器视觉系统包括
视觉成像部分
图像处理部分
运动控制部分
1. 视觉成像部分
视觉成像又包含几个典型组件: 光源,镜头,工业相机。光源和镜头都需要我们掌握光学知识,不同的打光方式,可以让相机对物体产生完全不同的成像;而镜头的倍率,焦距,视野等的选择不同直接决定了成像的逼真度。对于一名机器视觉工程师来说,掌握如何选择镜头,如何选择光源,如何确定打光方式是最基本的技能。
工业相机需要我们掌握光电知识,掌握相机传感器的区别,掌握图像成像的基本知识如清晰度,动态范围,视场角等等,这样我们才能根据需求和场景选择正确的相机,最快速的掌握这些知识的方法是买一台入门级单反来研究透这些成像参数和成像的关系。
2. 图像处理部分
图像处理我们一般理解是在PC机器上进行的,实际上在工业领域,大部分采用工控机,因为它稳定,加上有成本优势。
近些年的发展,嵌入式硬件也在蓬勃发展,很多工厂对于小的需求比如控制几百台仪表盘的开关和状态监控,完全可以利用树莓派等开源硬件实现。
对于入门者来说,可以优先掌握PC平台,X86平台的开发,在熟悉之后可以延展到嵌入式平台。
在软件部分,大部分应用层采用C#,.net,QT,C++来实现,因此掌握这其中的一门编程语言是必备的;而在图像算法层面,典型的开源算法有opencv,商用的有halcon,visionpro等,建议最开始可以先以halcon入门;如果在算法层面想进一步深入,可以研究一下机器学习,这可能是未来的主要方向。
对于理论方面,更多的是掌握图像处理的基本概念,这本书《机器视觉算法与应用》,值得一看。
3. 运动控制部分
典型的运动控制卡如固高,可以入手研究一下。更为高级一点的PLC,也可以玩起来,这部分的难点在于,精度的矫正,因为很多场景和需求对精度的要求是非常高的。
除了以上三点,整体方案的搭建能力是至关重要的, 因为方案需要把这些部分都串起来,并且能够和现实场景联系起来,满足实际的生产自动化需求。
而整体方案的搭建能力取决于
对生产工艺的深度理解
对所有组成部分之间的衔接,关系有深刻理解
这两点都需要经过多个项目的经验累积,才能给出一套好的方案。关于经验方面可以参考我的其他几篇文章:

机器视觉系统就是利用机器代替人眼来作各种测量和判断。它是计算机学科的一个重要分支,它综合了光学、机械、电子、计算机软硬件等方面的技术,涉及到计算机、图像处理、模式识别、人工智能、信号处理、光机电一体化等多个领域。图像处理和模式识别等技术的快速发展,也大大地推动了机器视觉的发展一个完整的机器视觉系统的主要工作过程如下:1、工件定位检测器探测到物体已经运动至接近摄像系统的视野中心,向图像采集部分发送触发脉冲。2、图像采集部分按照事先设定的程序和延时,分别向摄像机和照明系统发出启动脉冲。3、摄像机停止目前的扫描,重新开始新的一帧扫描,或者摄像机在启动脉冲来到之前处于等待状态,启动脉冲到来后启动一帧扫描。4、摄像机开始新的一帧扫描之前打开曝光机构,曝光时间可以事先设定。5、另一个启动脉冲打开灯光照明,灯光的开启时间应该与摄像机的曝光时间匹配。6、摄像机曝光后,正式开始一帧图像的扫描和输出。7、图像采集部分接收模拟视频信号通过A/D将其数字化,或者是直接接收摄像机数字化后的数字视频数据。8、图像采集部分将数字图像存放在处理器或计算机的内存中。9、处理器对图像进行处理、分析、识别,获得测量结果或逻辑控制值。10、处理结果控制流水线的动作、进行定位、纠正运动的误差等。 从上述的工作流程可以看出,机器视觉是一种比较复杂的系统。因为大多数系统监控对象都是运动物体,系统与运动物体的匹配和协调动作尤为重要,所以给系统各部分的动作时间和处理速度带来了严格的要求。在某些应用领域,例如机器人、飞行物体导制等,对整个系统或者系统的一部分的重量、体积和功耗都会有严格的要求。(良) 清楚了以上机器视觉的原理和过程之后,我建议: 1)人类和动物视觉系统的原理 2)摄像机技术与原理 3)图像识别和处理技术 4)计算机技术5)人工智能

如何学习机器视觉?

机器视觉入门

很多人问机器视觉如何学习?哪里有比较好的学习资料?总结了一下各个方向的学习资源总结,也会不定期在公众号里分享一些机器视觉相关内容,希望对有需要的人有帮助,也希望大家能多多交流讨论,共上一层楼。
如何学习机器视觉?
1、其实机器视觉涵盖的方向非常广泛,想要学习机器视觉而且以后要从事机器视觉相关工作的各位应该弄清楚自己以后想从事的方向,这一点可以先从相关企业招聘哪些岗位以及岗位要求来进行初步了解。然后针对不同岗位对岗位职责的要求进行学习补充。
(1)有哪些机器视觉公司?
可以直接百度搜索机器视觉等关键词,或者进入第三方信息平台:如机器视觉网查看现在的机器视觉公司有哪些
(2)有哪些岗位
根据你所找到的机器视觉公司百度查找 公司名称+招聘网站,比如直接搜索“奥普特+智联招聘”
2、对于机器视觉基本概念的了解是必不可少的,因为从大范围大环境下去了解会非常利于你对其他零散知识的整合,也更容易接纳。比如对机器视觉及机器视觉相关词汇在理论上的认识:机器视觉、机器视觉系统、视觉检测,机器视觉技术等这些是什么?有什么作用?可应用在哪些领域?
3、确定好自己在机器视觉领域的从业方向后,可以分为硬件或软件方向等确认学习目标;
硬件:工业相机、工控机、线缆、镜头、照明(光源)、采集卡、延长器还有图像处理、视觉处理等其他硬件
软件:视觉算法包、软件包,可以先去了解下市场上使用比较多的,还有使用的开发平台、编程工具等
4、知道自己学习的方向并了解如何使用操作是非常重要的!这一点最好有自己动手操作的环境。
视觉检测:能搭配硬件软件自己拍摄调试,了解其主要功能及调试方式。你能有相关条件跟随一个案例从头跟到尾,从客户提出需求-选型-调试-验收这个过程,了解每一步过程,跟了几个案例后自己就应该会比较清楚了。
算法编程:先摸索主要流行软件包的主要框架及功能实现模块,再通过看相关书籍,跟随案例实际操作去熟悉。主要还是多学多问。
以上可能介绍比较粗略,因为不管哪个方向的核心学习方法还是建议去询问在这一方向上比较有经验的人,应该更有成效。再有,可以通过访问国内机器视觉做的比较好的企业,去看看网页或者去了解乃至参与其工作来学习。

先了解机器视觉的基本概念,有何用途等基础知识。再确定好自己想要学习的机器视觉领域和方向,例如:硬件or软件方向?确认学习方向后可以通过网络搜索相关学习资源,如果有条件的话可以通过实习或工作或其他实际使用操作深入学习。

  • Halcon视觉软件应该如何系统学习?
    答:随着技术进步,了解如何与神经网络和深度学习相结合,开发人工智能机器视觉应用。总的来说,系统学习Halcon是一个既理论又实践的过程,通过不断积累经验和深入理解,你将在机器视觉的世界中游刃有余。如果你想深入了解,公众号【涛涛CV】提供了丰富的学习资料,助你一臂之力。现在就踏上这段视觉智能的探索...
  • 机器视觉工程师从入门到熟练
    答:深入探索机器视觉工程师的旅程,从入门到精通,我们首先聚焦于早期的CNN模型,如LeNet-5。这款1998年的里程碑式网络,其7层结构,包括卷积层、激活函数、池化层和全连接层,展现了深度学习在手写数字识别中的威力。通过PyTorch,我们可以看到一个简化示例,展示了如何用MNIST数据集训练它,以及如何在GPU上...
  • 怎么样才能踏入机器视觉这个行业
    答:学习机器视觉专业,就从事这份工作。1.目前机器视觉在国内更多是的工业自动化的应用,另一个用的还比较多一些的是医疗设备。2.机器视觉目前比较成熟的应用还主要集中在定位、尺寸测量、OCR/OCV、特征有无等领域,至于外观缺陷检测是一个有很大检测需求,但是还很难做到批量或者准备的检测应用(主要还是缺陷...
  • 机器视觉技术能自学吗?
    答:可以自学,但是都是理论知识是不够的。真正的专家都是理论加实践双管齐下,缺一不可 建议对机器视觉有兴趣的话,一定要到公司去做项目,边做边学,这样是最快的。
  • 机器视觉好学吗
    答:机器视觉不好学,机器视觉的入门比较难,入门后就好一些了。
  • 机器视觉是什么?
    答:机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取...
  • 图像处理与计算机视觉入门看什么书
    答:图像处理与计算机视觉的书籍推荐photoshop及以下:图像处理,分析与机器视觉 第三版Sonka等著 艾海舟等译 Image Processing, Analysis and Machine Vision 这本书是图像处理与计算机视觉里面比较全的一本书了,几乎涵盖了图像视觉领域的各个方面。中文版的个人感觉也还可以,值得一看。数字图像处理 第三版 ...
  • 机器视觉方面工程师在公司里具体要做哪些事情?需要掌握哪些知识_百度...
    答:看做哪方面的视觉工程师,给别人做视觉系统集成的还是做视觉开发的是不同的。1、要是做视觉系统集成的就是整天按照人家工艺的要求调试你要检测物体的画面,然后给客户的提一些光源的要求还有机械上的要求,还有项目后期要不间断的去现场。2、要是做视觉开发的话就是天天听客户反馈然后无止境的思考算法,...
  • 数字图像处理、机器视觉
    答:上学期刚上完这门课,就我们学校研究生上课的课程来说,推荐主要参考书——张广军,《机器视觉》岗萨雷斯,《 数字图像处理 》章毓晋《图像工程》《计算机视觉——一种现代方法》林学訚等译,《机器视觉算法与应用》杨少荣等译 基础知识——数学:线性代数、概率与统计 计算机科学:软件编程 电子学:信号...
  • 人工智能需要掌握什么才能入门?
    答:当然这算是最本需要掌握的,然后是对于算法原理和技术等等,不同的领域所对应的专业技能知识也是不同的,而对于不同的领域需要学习的知识也是大不相同的,像是机器视觉,指纹识别,人脸识别等等。沙河沙河IT培训认为人工智能是一门学科,包含着众多的领域,而当你来学习人工智能时,你已做好心理准备了吗...