深度学习在很多学术领域,比非深度学习算法往往有20-30%成绩的提高。很多大公司也逐渐开始出手投资这种算法,并成立自己的深度学习团队,其中投入最大的就是谷歌,2008年6月披露了谷歌脑项目。2014年1月谷歌收购DeepMind,然后2016年3月其开发的Alphago算法在围棋挑战赛中,战胜了韩国九段棋手李世石,证明深度学习设计出的算法可以战胜这个世界上最强的选手。
在硬件方面,Nvidia最开始做显示芯片,但从2006及2007年开始主推用GPU芯片进行通用计算,它特别适合深度学习中大量简单重复的计算量。目前很多人选择Nvidia的CUDA工具包进行深度学习软件的开发。
微软从2012年开始,利用深度学习进行机器翻译和中文语音合成工作,其人工智能小娜背后就是一套自然语言处理和语音识别的数据算法。
百度在2013年宣布成立百度研究院,其中最重要的就是百度深度学习研究所,当时招募了著名科学家余凯博士。不过后来余凯离开百度,创立了另一家从事深度学习算法开发的公司地平线。
Facebook和Twitter也都各自进行了深度学习研究,其中前者携手纽约大学教授Yann Lecun,建立了自己的深度学习算法实验室;2015年10月,Facebook宣布开源其深度学习算法框架,即Torch框架。Twitter在2014年7月收购了Madbits,为用户提供高精度的图像检索服务。
前深度学习时代:计算机视觉
互联网巨头看重深度学习当然不是为了学术,主要是它能带来巨大的市场。那为什么在深度学习出来之前,传统算法为什么没有达到深度学习的精度?
在深度学习算法出来之前,对于视觉算法来说,大致可以分为以下5个步骤:特征感知,图像预处理,特征提取,特征筛选,推理预测与识别。早期的机器学习中,占优势的统计机器学习群体中,对特征是不大关心的。
我认为,计算机视觉可以说是机器学习在视觉领域的应用,所以计算机视觉在采用这些机器学习方法的时候,不得不自己设计前面4个部分。
但对任何人来说这都是一个比较难的任务。传统的计算机识别方法把特征提取和分类器设计分开来做,然后在应用时再合在一起,比如如果输入是一个摩托车图像的话,首先要有一个特征表达或者特征提取的过程,然后把表达出来的特征放到学习算法中进行分类的学习。
过去20年中出现了不少优秀的特征算子,比如最著名的SIFT算子,即所谓的对尺度旋转保持不变的算子。它被广泛地应用在图像比对,特别是所谓的structure from motion这些应用中,有一些成功的应用例子。另一个是HoG算子,它可以提取物体,比较鲁棒的物体边缘,在物体检测中扮演着重要的角色。
这些算子还包括Textons,Spin image,RIFT和GLOH,都是在深度学习诞生之前或者深度学习真正的流行起来之前,占领视觉算法的主流。
几个(半)成功例子
这些特征和一些特定的分类器组合取得了一些成功或半成功的例子,基本达到了商业化的要求但还没有完全商业化。
一是八九十年代的指纹识别算法,它已经非常成熟,一般是在指纹的图案上面去寻找一些关键点,寻找具有特殊几何特征的点,然后把两个指纹的关键点进行比对,判断是否匹配。
然后是2001年基于Haar的人脸检测算法,在当时的硬件条件下已经能够达到实时人脸检测,我们现在所有手机相机里的人脸检测,都是基于它或者它的变种。
第三个是基于HoG特征的物体检测,它和所对应的SVM分类器组合起来的就是著名的DPM算法。DPM算法在物体检测上超过了所有的算法,取得了比较不错的成绩。
但这种成功例子太少了,因为手工设计特征需要大量的经验,需要你对这个领域和数据特别了解,然后设计出来特征还需要大量的调试工作。说白了就是需要一点运气。
另一个难点在于,你不只需要手工设计特征,还要在此基础上有一个比较合适的分类器算法。同时设计特征然后选择一个分类器,这两者合并达到最优的效果,几乎是不可能完成的任务。
仿生学角度看深度学习
如果不手动设计特征,不挑选分类器,有没有别的方案呢?能不能同时学习特征和分类器?即输入某一个模型的时候,输入只是图片,输出就是它自己的标签。比如输入一个明星的头像,出来的标签就是一个50维的向量(如果要在50个人里识别的话),其中对应明星的向量是1,其他的位置是0。
这种设定符合人类脑科学的研究成果。
1981年诺贝尔医学生理学奖颁发给了David Hubel,一位神经生物学家。他的主要研究成果是发现了视觉系统信息处理机制,证明大脑的可视皮层是分级的。他的贡献主要有两个,一是他认为人的视觉功能一个是抽象,一个是迭代。抽象就是把非常具体的形象的元素,即原始的光线像素等信息,抽象出来形成有意义的概念。这些有意义的概念又会往上迭代,变成更加抽象,人可以感知到的抽象概念。
像素是没有抽象意义的,但人脑可以把这些像素连接成边缘,边缘相对像素来说就变成了比较抽象的概念;边缘进而形成球形,球形然后到气球,又是一个抽象的过程,大脑最终就知道看到的是一个气球。
模拟人脑识别人脸,也是抽象迭代的过程,从最开始的像素到第二层的边缘,再到人脸的部分,然后到整张人脸,是一个抽象迭代的过程。
再比如看到图片中的摩托车,我们可能在脑子里就几微秒的时间,但是经过了大量的神经元抽象迭代。对计算机来说最开始看到的根本也不是摩托车,而是RGB图像三个通道上不同的数字。
所谓的特征或者视觉特征,就是把这些数值给综合起来用统计或非统计的形式,把摩托车的部件或者整辆摩托车表现出来。深度学习的流行之前,大部分的设计图像特征就是基于此,即把一个区域内的像素级别的信息综合表现出来,利于后面的分类学习。
如果要完全模拟人脑,我们也要模拟抽象和递归迭代的过程,把信息从最细琐的像素级别,抽象到“种类”的概念,让人能够接受。
深度学习工业应用:缺陷检测
1. 应用背景
随着机器视觉,工业自动化的快速发展,工业4.0的概念已经被提上日程。传统很多需要人工来手动操作的工作,渐渐的被机器所替代。这当然也是人类科技进步和发展的必然趋势,工业的进步到头来还是服务于人类,给人类带来高质量的生活体验,而不是整天做着乏味无趣的工作。
这里我要讨论的话题是关于缺陷检测机器自动化方面,先说下现状吧,在富士康,伯恩光学,蓝思,信利等国内几大知名半导体制造厂商的朋友肯定看到过下面的画面。
近几年随着智能手机,平板,各种触摸设备的火速发展,促进了玻璃半导体行业的巨大需求。不乏看看周边的朋友,平均每个人都至少有2部移动设备吧,一部手机,一部平板。但是使用者有没有思考过这些电子产品的构成。我们就拿屏幕和内部芯片来举个例子。
每一台智能触摸设备都会佩戴一块屏幕,其中就有盖板玻璃。盖板玻璃在安装在触摸设备之前,在车间中经过了好几道检测工序, 其中很关键的一道工序就需要无数QC质检的火眼金睛帮我们剔除掉有缺陷的玻璃, 最终来到我们用户手中的玻璃是没有缺陷,或者说基本没有缺陷的。当我们看到车间的情景,是否想用如今的高科技来解救一下他们繁琐无趣的工作。
2. 传统视觉检测
在机器学习,深度学习还没有发展的这么火热之前, 国外几款做的几款非常好的视觉软件业内人士应该都很清楚。比如:NIVISION,Halcon, Visionpro, Cognix, MIL等等都是业内用的比较多,而且比较成功的视觉软件。其中很多模块都有定位,测量,检测等功能。
但是这些传统的方法来做缺陷检测大多都是靠人来特征工程,从形状,颜色, 长度,宽度,长宽比来确定被检测的目标是否符合标准,最终定义出一系列的规则来进行缺陷检测。这样的方法当然在一些简单的case中已经应用的很好, 唯一的缺点是随着被检测物体的变动,所有的规则和算法都要重新设计和开发,即使是同样的产品,不同批次的变化都会造成不能重用的现实。
总结:传统机器视觉算法通常处理容易提取,容易量化的特征:颜色、面积、圆度、角度、长度等。
3. 深度学习检测
随着机器学习, 深度学习的发展,很多人眼很难去直接量化的特征, 深度学习可以搞定, 这就是深度学习带给我们的优点和前所未有的吸引力。很多特征我们通过传统算法无法量化,或者说很难去做到的, 深度学习可以搞定。特别是在图像分类, 目标检测这些问题上取得了显著的提升。下图是近几年来深度学习在图像分类问题上取得的成绩。
下图是近几年来深度学习算法在目标检测问题上的发展。
之所以提出上面的算法, 是因为这些算法给其他领域提供了很多参考和借鉴意义。比如本文讨论的缺陷检测, 上面的很多网络的特点,以及方法都给了我们很多的启发,我们在设计网络结构的时候,配合自己在产线部署的硬件性能,设计适合项目的网络结构。
当然,深度学习的方法用来检测,也有自己的很多缺点。例如:数据量要求大,工业数据收集成本高。但是随着数据增强技术,无监督学习的不断进步,在某些应用场景上,这些缺点渐渐被隐藏了。例如学术界正在研究的,自动网络结构设计,自动数据标注等等。所以作者认为随着技术的发展,这个领域将会得到很大的提升,人工检测终将会被机器检测替代。然后你看到的无人工厂更加会无人化。
深度学习在缺陷检测中的意义
随着自动化技术的快速发展,在工业生产中很多需要人工操作的环节逐渐转由机器完成,工业生产自动化也将越来越多的工人们从枯燥乏味的工作中解放出来,让他们去发挥更大的价值。
产品表面缺陷检测是工业生产中的重要环节,是产品质量把控的关键步骤,借助缺陷检测技术可以有效的提高生产质量和效率。但是由于设备及工艺等因素的影响,产品表面的缺陷类型往往五花八门,比如织物生产中方出现的污点、破损,金属产品上的划痕、裂纹、凹凸不平等各种不同类型的缺陷,如下图所示:
单张图片中的缺陷多样且不同缺陷表现形式的也不相同,给缺陷的自动化检测带来了困难。
下面,我们再讲一下传统算法。
传统的表面缺陷检测算法结构通过图像预处理得到便于检测的图像,随后借助统计机器学习方法来提取图像特征,进而实现缺陷检测的目标。
图像预处理通常包括直方图均衡化、滤波去噪、灰度二值化、再次滤波几部分,以得到前后景分离的简单化图像信息;随后利用数学形态学、傅里叶变换、Gabor 变换等算法以及机器学习模型完成缺陷的标记与检测。
上述传统算法在某些特定的应用中已经取得了较好的效果,但仍然存在许多不足。例如:图像预处理步骤繁多且具有强烈的针对性,鲁棒性差;多种算法计算量惊人且无法精确的检测缺陷的大小和形状。而深度学习可以直接通过学习数据更新参数,避免了人工设计复杂的算法流程,并且有着极高的鲁棒性和精度。
基于深度学习检测的案例及实现
目前,基于深度学习的缺陷检测已经应用于金属固件、布匹丝织物、建筑裂纹、钢筋裂纹等多个领域,并取得了不错的成果。下面将结合具体案例介绍其实现方法。
1. 裂纹缺陷检测
建筑材料(如磁瓦等)的外观变化(如裂纹或腐蚀等)与其建筑结构的安全性密不可分,而依靠检察员视觉检查的效果局限性大,相比之下,基于计算机视觉的结构损伤检测更为可靠便捷。
Fast RCNN的作用为对图像中的缺陷位置进行定位和分类,其结构流程如上图所示。
从输入图像中提取特征图并获得感兴趣区域(ROI);在ROI池中,预先计算的兴趣区域覆盖在特征图上,提取固定大小的特征向量;将所得向量输入全连接层,计算边界框的位置并对框内对象进行分类。
2. 破损缺陷检测
在电气化铁路等工业中,有许多关系着安全的重要固件,这些固件的缺陷检测十分重要。
利用深度卷积神经网络SSD等网络方法构建了一个从粗到细的级联检测网络,包括固件的定位、缺陷检测与分类,其实现流程如下图所示:
(1)紧固件提取
借助在速度和精度方面都表现良好的SSD框架,对图像中的悬臂节点进行定位;
(2)固件缺陷检测与分类
根据第二阶段对紧固件的检测来判断缺陷;具有良好的鲁棒性和自适应性,有利于检测的快速进行,因此本方法在紧固件的缺陷检测和分类中具有良好的应用前景。
3. 斑点缺陷检测
斑点缺陷检测在纺织、木材、瓷砖等许多行业中都很常见,通常利用其纹理的一致性实现检测的目的。近年来,利用深度学习视觉检测技术对相关产业的表面缺陷检测引起了广泛关注。
4. 划痕缺陷检测
划痕缺陷检测通常用于金属类产品的表面缺陷检测中,随着生活质量的提高,人们对产品的外观完整性与美观程度的要求也越来越高,因此精准地检测到产品外观的划痕等缺陷在生产环节十分重要。
总的来说,使用基于深度学习的算法可快速准确地实现的缺陷检测,且适用范围广能够灵活地应用于建筑、金属固件以及布匹丝织物等众多行业的生产过程中。
机器视觉的行业发展现状
(1)就业人员及人才市场现状
目前,深度学习从业人员薪资处于高位,且属于人才紧缺的行业,就业前景广阔。基本上掌握深度学习的视觉工程师,月起薪至少3W元起,纵观近几年,还有逐步上升的趋势。
(2)国家政策扶持,刺激AI行业经济
2017两会“人工智能”首次被列入政府工作报告,随之而来的是人工智能板块领跑大盘涨势,无疑这一切将刺激人工智能在多个领域的全面发展。
2016年,国内人工智能企业约284家获投,获投企业中,A轮(Pre-A、A、A+)企业占比最高,111家企业获得融资,汇顶科技完成IPO上市,募资8.74亿人民币。
(3)技术及企业应用爆发,获得快速发展
目前,我国人工智能企业在图像和语音识别两个类别企业占比相对较高,人脸识别技术水平处于领先地位,各创业公司也从一开始专注研究逐步发展至探索合适的商业模式,从“互联网+”向“人工智能+”过渡。
人工智能爆发的两个重要时间节点:
2011年基于深度学习的人工智能技术陆续在微软、Facebook、百度等顶尖互联网公司获得广泛应用,微软和百度使用的FPGA,基于海量数据训练出的深度学习系统能够完成更快、更精准的判断,同年苹果公司发布语音助手Siri 。
2016年4月,谷歌(Google)首席执行官桑德尔·皮蔡(Sundar Pichai)在一封致股东信中,把机器学习誉为人工智能和计算的真正未来。
这一切,似乎印证了2011年和2016年AI崛起和爆发式增长的原因所在,行业巨头的全面布局同时也带动了国内AI创业型公司的快速发展。
传统视觉及深度学习检测,存在哪些问题?
编者大概汇总了一下,现阶段的机器视觉缺陷检测,仍然存在以下几大行业发展问题,具体如下:
(1)受环境、光照、生产工艺和噪声等多重因素影响,检测系统的信噪比一般较低,微弱信号难以检出或不能与噪声有效区分。如何构建稳定、可靠、鲁棒的检测系统,以适应光照变化、噪声以及其他外界不良环境的干扰,是要解决的问题之一。
(2)由于检测对象多样、表面缺陷种类繁多、形态多样、复杂背景,对于众多缺陷类型产生的机理以及其外在表现形式之间的关系尚不明确,致使对缺陷的描述不充分,缺陷的特征提取有效性不高,缺陷目标分割困难;同时,很难找到“标准”图像作为参照,这给缺陷的检测和分类带来困难,造成识别率尚有待提高。
(3)机器视觉表面缺陷检测,特别是在线检测,其特点是数据量庞大、冗余信息多、特征空间维度高,同时考虑到真正的机器视觉面对的对象和问题的多样性,从海量数据中提取有限缺陷信息的算法能力不足,实时性不高。
(4)与机器视觉表面检测密切相关的人工智能理论虽然得到了很大的发展,但如何模拟人类大脑的信息处理功能去构建智能机器视觉系统还需要理论上的进一步研究,如何更好的基于生物视觉认识、指导机器视觉得检测也是研究人员的难点之一。
(5)从机器视觉表面检测的准确性方面来看,尽管一系列优秀的算法不断出现,但在实际应用中准确率仍然与满足实际应用的需求尚有一定差距,如何解决准确识别与模糊特征之间、实时性与准确性之间的矛盾仍然是目前的难点。
传统算法在某些特定的应用中已经取得了较好的效果,但仍然存在许多不足。例如:图像预处理步骤繁多且具有强烈的针对性,鲁棒性差;多种算法计算量惊人且无法精确的检测缺陷的大小和形状。而深度学习可以直接通过学习数据更新参数,避免了人工设计复杂的算法流程,并且有着极高的鲁棒性和精度。
国内知名企业是如何解决的?
康耐视:一家大型视觉系统供应商,2017年收购了ViDi系统公司,该公司是一家瑞士制造深度学习机器视觉软件,该软件市场售价15万/套。
德国MVTec公司:Halcon视觉软件,自2018年加入了深度学习模块,可以使用CPU进行缺陷检测。
美国NI公司:自2018年在视觉模块中加入深度学习模块,支持TensorFlow相关版本的模型调用。
而由于LabVIEW具备图形化编程、易学、易用的特点,在自动化行业内广受欢迎,而且其TensorFlow模型推理库经过CPU优化编译,能满足工业缺陷检测实际需求。
原文标题:一文追溯机器视觉发展史,深度学习是如何融入产品检测的
文章出处:【微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。
-
芯片
+关注
关注
452文章
50196浏览量
420710 -
深度学习
+关注
关注
73文章
5463浏览量
120876
原文标题:一文追溯机器视觉发展史,深度学习是如何融入产品检测的
文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论