写在前面:
每一段成长之路不可能按部就班的完成。忘我的投入过程中必定伴随着巨大的付出甚至是痛苦和对选择的坚持。然而在这段沉寂时光过后你将迎来一个脱胎换骨的全新的自己。
我的故事:
走到而立之年,翻看往事,竟满是坎坷。今年刚好是我出来的第十个年头,从最开始的一名工厂普工到技术员, PE 工程师,测试工程师等。这一路有道不尽的辛酸,迷茫和无助。
直到前几年通过朋友指点我接触到 PLC 并通过学习顺利进入一家上市公司成为一名电气工程师。也是在这份工作中接触到了机器视觉,知道了 CCD,镜头,光源这些视觉硬件系统。而且它们居然可以替代人眼完成一些测量检测工作,还可以引导机械手进行定位完成组装贴合等功能,号称机器之眼。当时就对它产生了浓厚的兴趣。我想做机器视觉开发才是我一直向往的那种工作。
于是在网上找资料,视频开始自学,几年又过去了,别说做视觉项目,语言这一关都过不了,视觉更是一知半解。网上的资料很难系统的学习。刚好那时一个朋友从超人视觉培训班毕业已经成为视觉工程师并且做了好几个项目。这让我动心了,经过半年的对比和挣扎,我毅然辞掉了工作,全身心投入到超人视觉培训班,通过五个月的学习顺利毕业并工作。
如今我已经是深圳一家大厂的视觉工程师,主要从事机器视觉和上位机开发工作,月收入达到 25K+,五天八小时不用出差的工作让我比以前更自由,有更多的时间学习和陪伴家人。三十而立,立的是什么?立的是你将来要奋斗的方向。而我将朝着视觉这个方向努力和沉淀!
写到这里不禁感叹,良师可遇不可求啊。庆幸自己在人生的转折点遇到了超人视觉罗老师,传道授业解惑,带我进入到自己喜欢的机器视觉领域,确立了我的奋斗方向。
学习心得:
1.学习前的心态调整,放空自己,归零心态。简单地说就是忘记自己之前的一切,包括工作经验,学习的技能,游戏,社交,朋友圈等等统统放下。给自己腾出五个月的寂静时光,这五个月你将把所有的精力放在学习上。所谓空才能装下更多的东西。这一点很重要,这将决定你是否能够坚持下去并取得学习效果的首要条件。为什么我会强调这方面呢?首先,视觉的学习不是那么容易,这里的课程内容量很大,强度也很大,不能有别的因素干扰你,每一天的课都不能错过。其次,课程是完全按照 0 基础设计的,循序渐进,放空自己才能没有选择性的从 0 开始接受学习,如果觉得自己某方面之前学过懂一点而选择性的学习,那可能形成懒惰习惯简历表格模板删不掉行,从而错过某些内容或是理解不深,随着课程深入可能会跟不上影响学习效果。
2.合理应用逆向思维。在学习的过程中难免一些你理解不了的某个小知识点,你花时间练习了,思考了,请教老师了还是不理解,这个时候有些同学难免陷入死胡同,钻牛角尖里面出不来,有时候为了某个概念的东西纠结到底,弄得自己很痛苦,实在没有必要。这个时候合理使用逆向思维解决问题,简单的说就是以结果为导向,比如这个函数内部的算法我看不懂,但我可以知道他怎么用,在项目中可以完成什么功能,先用起来解决当下问题就可以了。跟高人学习的优点在于,你可以站在高人的肩膀上往前走。你先灵活运用学到的模式和框架,等做几个项目再回头思考,你对当时的问题理解又不一样了,你的认知又提升了一个层次。所以学习不要钻牛角尖。
3. 这里的视觉培训课程总体分为 C#上位机开发+halcon 视觉+C#联合 halcon 设备项目开发三大内容。关于 C#语言的学习,没有太多的技巧,多敲多练熟能生巧,至少把每次学的内容敲三遍以上。老师每次讲课都会把代码现场敲一遍,然后讲解,这个过程最好跟上。课后安排练习内容一定要做完。课堂上没跟上的部分,下课后必须敲完,练习也要做完。然后理解,然后再敲两遍。理解不了的部分马上请教辅导老师或是同学讨论。C#比较难理解的部分比如面向对象,封装继承多态,委托,泛型,多线程,Task,界面设计,TCP,串口通讯,框架设计等等老师都会反复举例讲解和应用,这部分内容课堂上不要急于敲代码,先跟上老师的节奏理解其中的思路。课后再反复敲代码加以理解加深。如果有的代码敲了多遍,也请教了老师,还是理解不了简历表格模板删不掉行,那千万不要纠结,先把这段代码记下来,知道用它可以完成什么功能,学会使用它就可以,等工作了用到时直接拿来用,然后回头再想想说不定就可以理解。总之 C#学习不难,也没有捷径,能吃苦多练习敲代码就能学会。学习 C#阶段是最需要吃苦下功夫打基础的时候,敲代码的过程有时候重复而乏味,那是为了在工作后不需要做那么多重复而乏味的工作,你在学习时偷的懒,都会在工作后还给你。
4.C#学习中老师会教一些通用的模式,也就是你今后工作可以直接用到的部分代码,一定要封装成方法或者类保存起来,这是你工作后能快速完成项目的知识库。我当时封装过一些比如:文件操作相关的类(INI,TXT,EXCEL,CSV,XML),LOG 追溯类,SQL 增删查改类,DataGridView 表格增改删,ListBox 项目上下移动增改删,ListView 日志通用模板,SDK 集合,工厂反射模式,右下角弹窗模式,事件案例,多线程框架,轴参数示教保存读取模块,第三方控件库,通讯模式,四轴机框架,机械手引导定位贴合和上下相机纠偏框架,多工位转盘分选机框架等。
5.halcon 的学习就比较核心了,除了要继续保持 C#学习的下苦功夫的方法外,更重要的是要领会视觉图像处理和视觉项目开发的思路。先建立思路和认知,再反复实操练习那就没什么问题。在课程前期,老师会反复讲解思路流程,比如常规的定位测量类视觉项目的大致流程为,采集图像》》图像处理》》定位识别》》仿射变换》》测量》》计算》》显示结果等。当然视觉项目开发没有固定的流程,只有整体的思路,这也是视觉学习的难点。这需要跟着老师的讲解体会其中思路,再拿相机和实物进行测试练习。每天的课程内容和作业都要完成和消化,不懂先跟着写,写三遍理解就会加深,一定不要只看不做,没有捷径可走。
6. halcon 学习的内容有图像处理,定位,测量,缺陷检测,OCR/一二维码,深度学习这么几大板块内容。这里面又包含常规,提高,和深入三方面的内容,学习期间一定要掌握常规内容,这是出去工作项目一定会接触到的,至于提高和深入部分如果无法理解和掌握也不用灰心,这部分内容工作中极少遇到,等掌握了常规内容出去工作做几个项目后确实需要用到更深入的知识时再回头学习也是没问题的。
7.在学习 halcon 期间,视觉算子的底层原理的数学公式,比如矩阵求解,傅里叶变换等等,老师都会从头推导一遍,这部分内容学懂需要足够的数学知识,能听懂自然最好,不懂那也不要影响学习的信心,你可以只学会视觉算子的用法和参数配置也是毫不影响做视觉项目的。
8.学习 halcon 也是一样,你做过的案例都分门别类的做好备份,那是出去工作和将来继续学习的宝贵的知识库。上课老师敲得笔记你也要跟着做好记录,这个过程可以加深你的理解。
9.进入设备课学习主要包括 C#联合 halcon 视觉开发,运动控制,机械手控制,各种标定,项目框架设计等等。这个时候的状态就是人困马乏之时,也是整个学习过程强度最大的时候,但是还是得咬牙坚持。100 步你已经走了 60 步了,坚持就是胜利。设备课中老师会把设备的完整代码从无到有的敲出来,并调试出来让设备按照工艺流程运行。在敲代码的过程中老师会伴随讲解每一行,每一个方法,每一个类,每一个业务层,和整体逻辑关系以及框架设计的思想,课堂上这个时候一定要重在理解思路,课后再把老师的代码跟着敲一遍,等这台设备讲完,代码敲完就可以上设备调试了。有的设备代码要敲好几天,调试也要好几天。到这个阶段就是你前面学习的检验了,能不能进入视觉行业的大门,就看你能不能把设备代码写出来并调试出来运行。这个阶段一定不要放松,要有必胜的心态,一定要拿下。记得我练习设备时一周至少通宵三次,每天练习到凌晨一两点那是常事。现在回想起来感觉那段时光特别珍贵,毕竟在生命中能那样专注去做一件事的日子真的不多。
问题回答:
作为一名从超人视觉毕业的学员,从我个人讲我是非常肯定这里的。我想为还在犹豫和考虑的想学习视觉进入这个行业发展的朋友所关心的一些问题做一个回答。曾经的我也像某些朋友一样迷茫,渴望进步而又找不到方向?如果你真心想学习视觉,那希望我的一些分享能给你指一条路,至少不会让你误入歧途!
问题 1:超人视觉培训质量怎么样?讲课风格如何?老师专业吗?
从我自学那几年和来超人视觉之前对比其他家机构,以及我学完的切身感受来看。我认为至少深圳找不出第二家适合我们这种刚需学员的视觉培训班,这里的课程从 C#,到halcon 到设备课,整套下来学的知识系统全面而又紧贴企业的项目需求。是能让小白学完也可以做视觉项目开发的。目前市面上我了解到很多培训视觉的都是拿一套通用视觉软件来吸引眼球,他只教你他那套软件的使用,那是纯应用的视觉培训,学完可能工作都找不到,出去别的公司也不一定用那套软件。那样的通用软件本身也由于局限性不可能满足复杂大型项目的需求,复杂项目一定是定制开发,那样的通用软件适合售后调试人员入门启蒙学习。而你想真正成为视觉工程师做视觉项目开发,那一定离不开:C#,C++, halcon,opencv 等主流的语言和算法工具。
超人视觉罗老师完全称得上视觉超人,他的简历网上可看到。他对视觉的热爱和投入钻研近乎发狂的地步,白天讲课,晚上还在研究视觉到半夜,这么多年一直如此。他对视觉不仅是停留在视觉工具 halcon 的应用上,他是能深入底层用 C++语言自行开发算法的专家。现有视觉算子和图像处理的底层数学原理能从 0 推导其公式。讲课方面他自成一派,从来不用 ppt 不需要课件,任何代码都是从无到有一敲即来,这样的专业程度国内少有人能及。在知识传授方面也有深度思考,课堂上气氛活跃,笑声赞叹声从没断过。这个不需要我过多的描述,描述不完,只需要来试听一次课你就知道。
问题 2:我能学得会吗?需要英语基础吗?需要数学基础吗?
能不能学会,第一步是你能不能先战胜自己下定决心学习,学这个确实有难度,课程强度是很大的,虽然是从 0 基础开始讲课,但需要全身心投入心无旁骛。只要你真心想学习视觉,决心想从事这行,又能抽出时间,那学会能做项目是没问题的。没有英语基础也是可以学会的。但是坦白讲,C#编程和 halcon 算法开发都是要敲英文的,但都是常用一些关键字英文,你天天练,每天和它打交道也就自然熟练了,不会有太大的阻碍。至于数学你精通的话可以学习更深入的底层算法公式推导和算法开发。但是只会简单的加减乘除也是可以学会视觉算子的应用从事视觉项目开发不成问题。
问题 3:学完好找工作吗?能做哪些项目?出差多吗?
机器视觉最近这些年兴起发展的,目前市场人才需求特别大,很吃香。工作随便找,但要找到称心的工作,这和你学习时下多大功夫和掌握程度有关。拿我个人说,我学完并把学校设备都练习了一遍,出去面试了五家公司,有四家是上市公司,没有一家被拒绝的。我们同班同学也都先后走上了机器视觉工程师的岗位。只要你学习下功夫,工作不用愁。学完这里课程可以选择做基于 halcon 纯视觉算法开发工程师,也可以做 C#联合halcon 的自动化设备项目开发,包括,测量定位,机械手引导定位,贴合,上下相机纠偏贴合。缺陷检测,深度学习等项目,也可以做工业上位机软件工程师,还可以做自动化运动控制软件工程师。但个人建议还是做视觉方向的开发前景更好。出不出差取决于你去什么样的公司工作和什么岗位,非标自动化设备公司一般需要出差,如果去做产品的公司,那一般不用出差。还有些视觉算法开发岗位也不出差。
问题 4:做机器视觉工程师待遇怎么样?学历要求严格吗?
目前机器视觉岗位是热门岗位,待遇还是不错的。随便打开一个招聘网站搜索该岗位,就可以看到待遇,有一万多的也有两三万往上的,只要你把学校项目做完,挑战高薪一点问也没有。做机器视觉入门相对较高,有大专学历以上会选择更多。当然有些学员没有学历,通过不断努力找工作凭借能力也走上了机器视觉工程师岗位,当然过程会曲折一点,既然你想学习了,那最好就报考一个学历,以备不时之需。
---来自一位电气工程师的转型自述。