在与很多人交流的过程中,我们发现了一个问题,一直想提出来。可是通常实话都不会那么顺耳,所以总有些犹豫。可再一想,既然大家来此的目的不过是为了了解学习,那么说了也应无妨。这个问题就是:我发现国内很多想搞机器视觉的朋友不知道该如何系统的学习。
这个感觉是从很多论坛上大家所问的问题得出来的。因为,在论坛中看到不少朋友所问的问题一看就是从书本上抄来的,而不是在实际情况下所遇到的。换句话说,很多论坛中的朋友大多只是在纸上谈兵,极少有人真正自已动手开发视觉系统。这样说是因为自己搞开发的人绝对问不出某些奇怪问题来的。往深了说一点,好象国内的朋友们只喜欢啃书本,并不愿意(也可能是懒得)动手。
现在就回到本文的主题上来:到底该如何系统的学习机器视觉?为了说明这个问题,我觉得应该先要简单地说明另一个问题:国内外机器视觉发展的不同。我认为,只有先搞清了两边的不一样,才便于说清如何下手学习。国外机器视觉发展到今天,已经从“一包到底”式的工作程序,发展到了细致分工的阶段了。
一句话,国外机器视觉发展到今天,已经可以清清楚楚分为三个部分:
1,底层开发部分。
2,二次开发部分。
3,最终使用部分。
而从事这一行业的人现在也就可以简单而清楚地分成三种人:
1,底层开发的人(从事底层开发工作的人)。
2,二次开发的人(从事二次开工作的人)。
3,使用及操作机器视觉系统的人(从事最终使用工作的人)。
第一类人。就是我们常说的,开发通用视觉系统(如:维视智造,西门子,欧姆龙等等)的开发人员。
第二类。就是大家所说的OEM用户。是专门用第一类人所开发出的系统,给第三类人搞二次开发,开发各种专为第三类人所用的系统。
第三类人,就是用户(end user)。这类人是真正将机器视觉系统应用到各个领域中的人,他们不仅在各自的行业中使用种种已经开发成型的机器视觉系统。而且负责对各类系统进行测试及评估。
举个实际例子,有不少朋友问过这类问题:如何检测某一工件;检测光盘表面的系统该如何配置CCD相机、镜头及灯源等。问这些问题的朋友应该算是第三类人。他们公司要他们寻找一个系统可以用来检测本公司的产品。但由于第一类人所开发的,只是通用的系统以及视觉系统开发工具的软件包。并没有哪家公司专门开发一套系统来检测光盘或是某种特定的工件。
或许有的朋友会这样说:我虽然是第三类人,但我对机器视觉有兴趣,想自己学习啊!。这就是我想讨论的:到底如何学习机器视觉?我个人认为,应该先确定自己的身份,从自己具体的需要入手来学习。举个例子:大家一定都有学习英文的经验,而且也一定都有同样的感觉—-怎么学也学不好—-我就是这样。我们抛开所谓的语言天分不说,大家学不好的原因其实很简单:没有语言环境。一语中的啊!学而不用,怎么也不会学好。
同样,学习机器视觉,无论你在书本上看了多少理论,你自己若没有实际动手操作、编程的经验也是枉然。还不如从你每天能接触得到的东西开始学习。教游泳的教材随手可得,但为什么并非人人都下得了水呢?!
要成为第一类人,又分硬件及软件两种。要对自己所负责的这个模块非常了解,搞软件要知道算法及运行速度;搞硬件要明白公司所选用芯片的特点等等。同时还要清楚对手公司的优缺点以及机器视觉这一行的种种动态和最新技术。
想成为第二类人,你一定要是个通才。就是说什么都要知道一点。不仅要了解第三类人的要求,而且也要知道各种第一类人(不同品牌的视觉卡及软件包)的水平。
要成为第三类人,不仅要有机器视觉基本的相关知识。而且,要对自己所工作的行业及领域的机器视觉系统非常熟悉。专作你这行的机器视觉公司有哪几家?各有什么优缺点等等。总结一下。
那么到底该如何系统的学习机器视觉呢?
要想学好机器视觉,需要对机器视觉的知识体系有所了解。下面就给大家分享一下机器视觉各个部分需要掌握的知识点。
图像采集:需要对镜头、光源、相机(CCD)的选型有所了解,有经验的工程师说打光是图像采集的关键。图像采集是对我们后续工作的支撑,采集不到好的图像,对图像处理就会难上好几倍甚至几百倍。
图像处理:图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。需要熟知对图像处理的原理以及方式方法。其他的通用的滤波、连通域、腐蚀膨胀等也都需要了解一下。
Halcon:编程和演示界面比较的友好,方便编程人员做二次开发,可生成C/C++文件,很容易嵌入到VC等编译环境下,对于有计算机基础或是有编程基础的同学,还是很容易就能够上手的。
OpenCV:这个软件开源资料会比较多,用C/C++编写,对于学习基础要求也不高,只需要对编程有兴趣或是会基本编程的都可以。
当确定了你的学习身份后,就要进入到机器视觉学习理论上来。通常我们会问到或碰到诸如以下的疑问:
什么是机器视觉系统,常见的机器视觉应用场景有哪些?
机器视觉系统,是如何完成产品外观检测的,实现原理如何?
视觉检测设备、视觉产品有哪些,如何选择合适的产品?
如何对最终的视觉系统产品进行测试、评估?
再比如,对于第二类人,我们通常需要弄清楚:
镜头、相机,光源,应该如何去选择?
如何安装、配置摄像机,如何利用IO卡进行图像采集?
如何实现TCP/IP、串口通讯,进行数据传输?
视觉系统软件框架如何搭建?
如何确定视觉系统算法实现,如何验证?
常用视觉算子工具,功能介绍及实现方式?
视觉系统软件如何生成,如何生成安装包到硬件平台上调试?
… …
对于要学习机器视觉,只会单纯的理论和编程是远远不够的,最好是以项目为基础,从立项开始,一步步完成自己设计的项目目标,从书本上看了多少理论,同样也要自己实际去动手操作,这样才能够快速提升你的能力。
最后,我们再来说说机器视觉到底难不难学,说实在的机器视觉其实并不难,但是要求你有一定的基础。需要你认识到机器视觉是什么技术。其实也不需要你要有大量的知识。但是在你学习的过程中,你就需要有一定的耐心和努力了。因为这里面要学习的东西是非常多的。
维视智造的机器视觉应用案例众多,深受企业用户和各大院校的信赖,维视在发展中注重技术创新和服务,与众多客户建立了良好的合作关系。
维视拥有近十五年的机器视觉行业经验,凭借着优质的团队配置,即涵盖了光学成像专家、项目经理、算法工程师、软件开发人员、方案架构师、项目验证工程师、数据分析师、培训师等人员,共同将人工智能与机器视觉应用到智能生产制造当中。
我们建有大型机器视觉开放实验室,帮助客户进行硬件选型、项目验证、评估等一站式视觉创新解决方案输出。
目前维视教育服务全国超过500家高校、研究所,本科学校200余所,其中985或211学校60余所。涵盖机械、信息工程、电气工程、自动化、计算机、智能制造、人工智能等专业。
版权声明:本文为CSDN博主「Microvision维视智造」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45547190/article/details/102487488
暂无评论