传统的都是使用人工质检,这带来一些问题,如人力成本非常高,人们受情绪波动,导致对质检的影响非常大,很难实现自动化等。行业视觉利用人工智能深度学习手段,以及传统的图像处理方法,自动的识别图像中瑕疵和故障,从而起到节省人力,降低成本,提高效率保证产品质量的目的。阿里云内部已经形成相对完整的技术体系来解决行业视觉诊断的问题。客户只要有数据,有需求,投入少量的人力,财力就可以很方便的实现自己的产业升级。
演讲嘉宾简介:
胜巅,阿里云视觉智能算法专家
以下内容根据演讲嘉宾视频分享以及PPT整理而成。
本次的分享主要围绕以下四个方面:
一、什么是行业智能诊断
二、阿里云行业视觉解决方案
三、案例分享
四、行业视觉几点体会
一、什么是行业智能诊断
下图是利用红外摄像设备采集到的一个太阳能电池片的图像,在这个电池片上可能存在着多个因为生产过程中造成的瑕疵。下一个是生产好的蚕丝,也可能出现这样或那样的瑕疵。最后一个图是户外景区,地上堆放了很多杂物垃圾。行业视觉要做的就是利用人工智能深度学习手段,以及传统的图像处理方法,自动的识别图像中瑕疵和故障,从而起到节省人力,降低成本,提高效率保证产品质量的目的。
工人师傅在烈日炎炎之下给火车检修,他们的工作条件非常艰苦。后来条件好一些,可以利用摄像头远程采集需要的数据,传到办公室进行质检。但是很多企业仅仅停留在第一个图中状态的质检,个别的企业实现的信息化好一些,可以实现第二图中模式的工作状态。但是这种状态还是需要大量的人工投入。
另外,人工质检也会带来一些问题。首先,人力成本非常高,长期对着纷繁无趣的工作,人们的情绪很难保持稳定,对质检的影响非常大,这样很难实现自动化。使用智能诊断技术之后,可以节省人力,不受人们情绪影响,质检精度可逐渐稳定可靠,另外还可以促进产线自动化。
二、阿里云行业视觉解决方案
阿里云的技术诊断平台分为几个层次。最底层是最最基础的数据层,在数据层之上我们提供了一系列核心算法,利用核心算法可以支撑多种业务。为了实现这几个抽象的层次,我们建设了一系列技术平台,从数据的存储,到标注,到训练,到优化,再到最后的服务部署,已经形成了一条完整的技术链条。通过这组链条就可以赋能企业,把我们的智能技术应用到各行各业中去。
首先需要做的是可行性分析,当这件事情通过可行性分析之后要进行数据采集,采集的数据进行标注,然后进行算法选型,之后就可以把数据放到模型平台进行训练和模型优化,最后进行服务部署和客户的系统对接,完成项目交付。
可行性分析
当拿到行业问题之后,最重要的问题就是进行可行性分析,也就是说要判断这个问题是否可以用行业视觉的方式诊断求解。
第一种场景,判断螺母是否有松动的现象,第二种场景判断电池上面是否有故障存在,第三种场景查看芯片上的胶是否有超量的现象,这三个场景有个共同的特征,就是故障很容易通过视觉的方式分析清楚,一眼就可以看到是否有故障存在。同样,这类问题的正常样本和故障样本都非常丰富,可以保证训练的数据量,还有一点,这类问题具有一定的容错能力,也就是说即使我们的检测出现了一些漏报现象也不会对最后的结果产生极为恶劣的影响。我们认为这样的业务场景是非常适合使用视觉诊断方法来求解的。
第二组场景,判定组件当中是否有细小的杂物连接,一个拉链的方块上面有一个非常细的断裂的裂纹。这样的场景跟刚才的场景一样很容易就能看出来,这样的场景能不能做呢,在刚开始的时候很难回答清楚,需要具体问题具体分析,甚至需要做很多的先行实验进行验证才能给出一个可靠的结果。
第三种场景,一个高铁隧道,中间有立柱,上面有很多螺丝丁,如果螺丝丁有松动的话会对高铁产生非常大的安全威胁,如栏停没有被发现导致非常严重的脱轨。这类问题的特点是故障样本非常少,如果我们在识别过程中有漏检现象就会造成非常严重的安全事故。我们认为在现有的技术条件下,这一类问题是很难完全替代人工操作的,只能做到一些辅助的作用。
第四个场景,一个轮胎,我们需要判断轮胎的内壁厚度是否满足我们的技术指标。一堆稻壳,我们要评估它的含水量。大家单纯靠图是很难看出相关的指标是否达标,这类问题我们就认为不适合用视觉诊断的方法求解。
数据采集
我们对数据采集有一些基本的额要求,首先要保证图像的清晰可见。为了保证我们的数据能真正落地,我们要求数据要从真正的生产环境中采集,要涵盖各种各样的生产中的case。同时为了保证训练可以充分进行,数据量也是有一定要求。
算法选型
针对不同问题要选择不同的算法。对于类似区域类的瑕疵检测,如黑斑,污点检测等,我们会选择目标检测网络算法模型。对于裂纹,生锈等,我们用目标分割网络。对于非常细小的瑕疵检测,如器件故障,变形等,通常使用目标检测网络定位,然后再用分类网络来判断是不是正常还是故障。对于电池片断栅故障的检测需求,客户不但要知道这个电池上断栅的故障现象,而且要知道断栅的条数,从而判断断栅的严重程度,我们一般选用目标检测网络加上回归网络的方式来检测此类问题。对于养殖业,畜牧业的动物行为分析,选用目标检测加行为分析。
数据标注
算法选型之后就要进行数据标注规则的定义,定义好标注规则之后我们的数据就可以导入标注平台进行标注。为了保证标注结果的正确性,我们的标注要实时的检查,是否有错误的标注,这一点非常重要。
下面截屏是阿里云自主开发的标注引擎,目前这套基本适用所面临的所有标注需求。
数据训练
数据训练首先要划分训练集和测试集,为了保证数据的多样性,数据要进行多种方式的扰动增广。增广数据之后就可以进行CNN网络训练了。通常我们会对效率和性能进行一个平衡,输出一个平衡的数据算法图。
模型优化
训练结束之后要对模型进行优化。一般采取以下几个策略。拿到一个模型之后首先要转化成我们自行优化的高效率的CNN网络,称之为XCNN。随后我们会对模型进行加速和算法加速。在模型定型之后需要进行语言级别的优化。之后再想提高性能的话就需要根据模型部署的硬件平台,进行有针对性的优化。
服务部署
部署服务的原则是尽量不和客户的业务系统有深度的耦合。基本流程如图所示,客户的系统进入标准接口向我们的负载均衡器发出请求,负载均衡器将任务发送给后端的GPU服务器,进行预测,将预测结果返回给客户的业务系统。
现场联调
模型部署之后就需要客户的生产环境进行测试。根据我们的经验,在正式接入客户系统的时候常常会发生各种各样的Fail的情景,我们需要仔细收集Fail的case,把这些case重新分析,重新调优训练的模型,再次接入客户的系统。一般这过程往复多次才能最后达到客户认可的算法结果。
阿里云内部已经形成相对完整的技术体系来解决行业视觉诊断的问题。但我们认为还远远不够,一花独壮不是春,百花开放才是春满园。我们现在要做的就是把这套系统做成产品进行商业化。我们的目标就是广大的客户只要有数据,有需求,投入少量的人力,财力就可以实现自己的产业升级。
首先我们会对客户提供最最基本的数据采集和数据标注能力,在此之上我们会给客户提供非常简单易用的训练平台,这会支撑图像或视频的算法业务,并且支持主流的算法训练框架。同样我们自主开发的经过优化的前向CNN算法网络也会对外开放出去。客户训练好模型之后就可以利用我们的部署方案,可以实现公有云部署,私有云部署,甚至可以实现单机的封装。部署完成之后就可以直接对接自己的业务系统,实现生产效率的提升。
阿里云现在把这个商业化平台命名为“见远”,现在在阿里云官网已经正式对外发布,感兴趣的同僚可以扫描图中二维码,进行进一步了解。
三、案例分享
下图是一个电池片瑕疵检测案例,这个案例有非常广阔的业务前景。裂纹检测是高峰企业非常关注的场景,在做需求调研的时候有些高峰企业竟然打出了不放弃一个裂纹的大字标题,可见这个故障他们非常关注。对于算法来说也是非常难做的,但是通过我们的努力,我们已经达到了故障精度99%以上,而且还在持续的优化过程中。
下图的场景是一个钢铁生产企业,大家可以看到地面上放置很多钢卷,但是很多钢卷不允许被随意调动,很可能产生很严重的安全事故。我们想用视频分析技术给客户解决这一痛点,具体我们采用的而是目标检测的算法加上运动估计算法,给客户做到实时的安全预警。
下图是一个农户的养猪厂,我们利用目标检测算法,实现远程盘点猪只数量,用运动估计加目标跟踪的算法,结合行为分析的业务知识对猪的健康状况做监控。我们的数据可以提供给保险公司,提供给养殖企业,使他们方便的进行风险控制和管理。
四、行业视觉几点体会
首先行业视觉都是比较复杂的,因为每个行业都已经发展多年,把需求搞清楚是最重要的事情。比如做电池片的业务,我们保证一个星期和做电池片的工人师傅交流两次以上。在前期做猪只监控的时候在养殖场一住就是一个月左右的时间。再一个,我们要对数据引起足够的重视,行业数据非常复杂,我们要做到经常看数据,天天看数据才能深入体会到数据背后的意义,才能把这个事情真正的做好。为了使项目真正落地,在实施项目的时候最好最优的方案就是采取非技术手段规避现场的复杂性,使问题尽量简化,这样才有利于算法最终落地。现在的技术发展水平还不足以解决行业中的所有问题。很多问题都是非常复杂的,必须保证创新的的心态,想尽办法解决问题,行业视觉才能逐渐往前发展。
本文由云栖志愿小组董黎明整理