前言:
眼前朋友们对“学好算法有什么用”都比较关切,看官们都需要了解一些“学好算法有什么用”的相关资讯。那么小编也在网上收集了一些关于“学好算法有什么用””的相关文章,希望看官们能喜欢,看官们一起来学习一下吧!最近这些年,随着深度学习技术的出现,视觉图像处理变得越来越火热,在各个领域都得到了大量的应用,同时也出现了大量的从业人员。但是,很多人只会用深度学习,并且认为传统的图像处理算法已经没用了,曾经听到有人说,图像处理已经烂大街了,传统的图像处理算法已经过时了,图像处理门槛很低,是个人都可以用。说实话,听到这样的言论,有时候我真的很无语。
今天刚好有点时间,我想来说说这个事情。首先,我们来分析一下,图像处理主要在干什么事情?不管图像处理用在哪个行业,其实现的功能主要有识别、分类、定位、检测、尺寸测量、视觉引导等。
既然总有人说深度学习已经代替了传统的图像处理技术,今天我就给几个具体的案例。看看深度学习应该实现?看看传统的图像处理技术到底有没有用。
首先简单说一下上面提到的视觉主要功能是在什么的。识别和分类有一定关联性。人脸识别、车牌识别、字符识别、条形码/二维码识别、产品类别识别、水果识别等,都是图像识别技术,识别完后有时候直接给出识别结果,有时候还需要进行分类。比如混装产线上的产品识别后,需要进行分类装箱。
定位也有很多种,有时候只需要知道目标大概在什么位置,有时候需要精确定位,从而让机器人自动抓取。检测有目标检测、缺陷检测等。目标检测很多时候只需要知道场景中是否存在该目标,缺陷检测很多时候除了检测是否存在缺陷之外,还需要确定缺陷的大小和类别。
尺寸测量目标很明确,就是通过视觉检测目标对象的某些具体尺寸是否符合要求。视觉引导是结合机器人自动抓取用的,需要精确定位目标位置,同时很多时候还需要定位抓取的具体位置,避免没有抓牢,在机器人移动时抓取对象可能掉下来。
下面我就列举几个具体的案例,看大家用深度学习怎么实现。由于企业并不想把这些图像公之于众,所以下面所有的图我都只截取了其中一小部分,也看不出是什么东西。
下面所有的例子都是企业实际需求,图像也是现场拍的。先来个简单的字符识别。这是一个简单的字符识别,识别要求:判断这些字符是否正确,速度每秒钟20个,预算2万块钱一台视觉系统,100条产线,总共200万。做不做呢?200万已经不小了,可是每台只有2万。做下来有没有利润?上位机识别到字符有错误,需要自动剔除。
简单分析一下,检测速度每秒钟20个,也就是每个产品需要50毫秒之内完成,同时上位机需要给剔除机构发信号,为了发信号稳定,预留20毫秒时间,剩下的30毫秒就是拍照和图像处理时间。想一下深度学习怎么训练?工控机怎么配置?PLC、剔除装置、相机、光源、镜头、机柜以及其它一些小配件多少钱?人工现场调试成本多少?总共成本是多少?
再来一个例子。下面这个图是焊接缺陷检测,焊接缺陷有很多种,曾经有人用了一周时间利用深度学习来训练和检测,然后给我说检测结果很好,过来一个月后来找我说用不起,检测效果很差,大家想想为什么?
再来一个例子,下面这个图是条形码识别,是不是很少见这么不清楚的条形码?请用深度学习识别出来。
再来一个例子,下面的图检测两侧粗细是否一致以及检测表面是否有缺陷。用深度学习怎么做?有人用深度学习在现场调试了半年,最后客户不满意。
下面这个图,要实现机器人自动抓取,需要检测抓取对象倾斜的角度,从而调整机器人位姿,用深度学习怎么做?
下面这个是已经使用过一段时间的弹簧,需要测量弹簧的尺寸,判断是否合格,还有类似的轴承、齿轮、螺纹等参数测量,用深度学习怎么做?
上面的例子只是众多实际案例中的极小一部分,类似的检测层出不穷,比如自动拧螺栓,无序抓取、微米级的精确定位等。然而,遗憾的是,很多人就只会用深度学习,某些人连基本的图像概念都没有搞清楚,就得出结论认为图像处理已经烂大街,深度学习已经代替其他图像处理方法了。多接触点实际案例,就不会说出这样的话来。
很多人用深度学习,以为把图像传进去训练一下就可以了,如果效果不好就增加训练样本,调整下参数,以为就会达到效果,我只能说对图像的理解有点浅。人们最常见的图像应用就是人脸识别、车牌识别等,这种识别用深度学没有什么问题,本身要求也不高,就算识别时间很长,或者识别错误也问题不大,刷脸支付如果识别不出来,还可以手动支付;车牌识别、门禁系统人脸识别不出来还可以手动开门。在全自动的应用场景可不允许出现这样的情况。
产品缺陷检测、分类、识别用深度学习比较多,但是也要分情况。而且,很多时候都不是单纯的只用深度学习训练下就可以的,在训练之前还可能要用到其它的图像处理算法。
有些人拿公开的数据集跑下深度学习模型,写点文章,是没有问题的。但是,要做到应用层面,还有很长的路要走。曾经熟悉的一家企业招聘了不少博士去搞视觉检测,大半年时间没有出来任何结果,被领导大骂了一顿,知道为什么吗?
不可否认,深度学习有它的应用场景,但是,这只是视觉检测中的一部分,还有很多方面的检测深度学习是没法实现的。而且,现在的视觉检测其实也只能完成很多简单场景的应用,很多复杂场景不管采用什么算法,现在根本没法检测,视觉图像处理算法还有很长的路要走。
就算直接用深度学习训练图像,很多时候也不是直接拿原图进行训练,而需要对原图进行一些处理,比如滤波、增强、阈值分割、边缘检测、形态学运算。而还有些时候,是对图像做一些处理之后,直接提取图像特征在进行深度学习训练,很多做视觉的人都明白这个道理。
以前也说过,如果只是想写点论文,往一个方向深入研究就可以了,深入进行理论研究也是有前途的,但是对个人的理论能力要求有点高。如果没有接触过多少实际视觉应用,最好不要提什么图像处理已经烂大街了,别的图像处理算法已经没人用了,深度学习已经代替别的图像处理算法了。
所以,传统的图像处理算法是否还有用?我想这个问题的答案已经很清楚了。如果还有不明白的,请仔细思考下,自己到底接触了多少视觉方面的项目,还有哪些是自己不知道的,自己是否真的明白视觉检测可以做哪些事情,应该怎么去做?很少有哪个视觉检测是借助于某个单一的图像处理算法就实现的。所以,对于应用层面而言,需要熟练掌握各种图像处理算法的使用,需要熟练掌握各种算法的组合应用,才能做到在视觉行业游刃有余。很快就到暑假了,暑假是非常好的学习时间,利用这个假期,利用这个学习平台,快速掌握图像处理相关算法的应用吧。
标签: #学好算法有什么用