机器视觉工程师应该具备哪些技能
随着自动化市场的发展,智能检测的需求越来越多,机器视觉的应用到快速发展,同样,企业对于机器视觉人才的需求急剧上升。
那么对于机器视觉工程师,咱们应该具备哪些方面的技能呢,首先咱们要明确机器视觉方面有些什么样的岗位:
一类,机器视觉调试工程师,主要是基于现成的机器视觉框架软件去调试下基本参数,以及硬件方面的安装等,相对是比较简单。那么对于这类的工程师,主要只需要懂得该公司相应使用的软件,知道怎么应用,以及一些相机硬件等方面的知识储备。
二类,机器视觉开发工程师,这类工程师是基于图像处理软件上进行二次开发,相对来说会比第一类工程师的技能要求要高很多,一般企业也会有些学历方面的门槛,如大专或者本科及以上,当然技能储备必须要有:常用的一些图像处理软件如:Halcon、Visionpro、Opencv等,如果要具备能够独立开发一个视觉软件,那么计算机编程语言也是必须掌握的一门技能,如C#、C++等,以上两种技能中一定要有相应的一门软件技能实力。
三类,机器视觉底层算法工程师,也是最难的一类,要想做底层,首先数学功底一定要非常好,如线性代数、函数、高等数学、矩阵论、傅里叶变换等等,因为图像的底层就是数学,所以数学是基本功,另外数字图像处理、光学及计算机语言C++等等是也是必须具备的,所以如果做底层算法工程师必须要有以上储备知识,所以一般企业对于用人也会有些学历要求,一般都是研究生或以上。
以上是相应岗位所需要掌握的技能实力,当然不同的公司也会根据自身的发展对岗位有一些职责和能力的区分,如初级工程师、中级工程师、高级工程师等都会对技能的储备深度也会有一些知识要求区分,大家可以根据自己的情况及定位及提升相应的技能。
为什么人工智能工程师被戏称为“调参侠”
确实,现在做人工智能方向的工程师,有不少被称为“调参侠”,但也并不全是。
以我自己为例,我做cv方向(计算机视觉)的,调参在我日常工作中占的比例并不大。
在CV这块,除了超参数外,影响模型效果的主要还是要网络结构、数据和损失函数,这三方面确定下来后,调参基本花不了多少时间。
回归正题!
调参侠,到底调什么参?
在人工智能里面,参数大致可分为2大类:
参数(parameters)/模型参数:由模型通过学习得到的变量,比如权重w和偏置b,这个多半是不能调节的,它是由神经网络自己学习出来的。
超参数:在机器学习中,超参数是在神经网络训练之前设置值的参数,而不是通过训练得到的参数数据。常见的有学习率、迭代次数、隐藏层的层数、每层神经元的个数等。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。这一般是根据经验进行设定,影响到权重w和偏置b大小的数值。
为什么会被称为“调参侠”?
主要原因有以下2个:
多半是刚入门的算法工程师做的事情,他们不是很懂神经网络的结构、数据分布等等,只能通过调整超参数,以期望获得较好的结果,这样有时候是可行的;
更重要的原因是,GitHub上开源了很多模型,并附上了预训练参数,如常用的检测、分割、分类等等,这些模型都非常成熟,大部分直接调用就可以,然后根据自己的训练数据,稍加修改,就可以得到非常好的结果。公司只要结果,不要求创新,开源项目已经可以做到这点了,所以大多数只要调参即可。
怎么避免成为“调参侠”目前AI人才竞争越来越激烈,“调参侠”的时代已慢慢过去,这些事情其实根本不需要AI工程师来做,未来的研发工程师就可以承担这些了!几年前如果熟练使用TensorFlow,同时掌握基本的AI算法就可以很容易找到一份高薪的工作,但现在不一样了,AI岗位的要求越来越高,对知识的深度也提出了更高的要求。
要想跟上时代,得武装自己,才能不被淘汰。
对于真正的人工智能工程师而言,他们往往是从数据和特征下手的,同时还需要丰富的行业经验。一定要记住一句行业内的谚语,数据和特征才决定算法的上限,而选择的算法和参数只是决定了已逼近这个上限的速度。
--------------------------------------------------------------------------------------------------------------
人工智能领域,还有一群从业者躲在墙角瑟瑟发抖,那就是大家说的调参师。一个神经网络从理论到落地,有这么几个阶段,一个是模型构建,就是把别人论文里的网络搭建起来。然后是模型训练,把自己需要的数据准备好,然后部署到显卡上去跑,这个过程有很多参数要调,很玄,属于老中医看病,全靠经验,妙,不可言。一名调参师的日常是这样的:
调参师接到需求,第一件事就是去github和各种框架的modelzoo上当搬运工。调参师没有设计网络的能力,如果github上没有,就只能看论文动手撸了,不仅费时费力,出了bug还得到处求人。
模型搭好了,调参师开始彻夜整理数据。你果哥有句话常常挂在嘴上,就是有多少人工,就有多少智能。很多时候大家用的模型是一样的,你牛逼就牛逼在有高质量的标注数据。实在没有?威胁老板买买买啊。
数据准备好了,调参师就开始调参了。嗯,先用默认值来一遍,不行,试试小一点的LR呢?不行,换个initializer试试?艾玛,一不小心过拟合了,快快快,加大正则,加大正则还有救。