深度学习在自动视觉检测中的血泪史
相信大家都看过Andrew Ng的讲座《人工智能在生产制造业中的实践与应用》,我读了后,很受启发,其中有一页PPT讲了,人工智能在生产制造中的实践与应用: 自动视觉检测该页PPT指明人工智能在视觉检测,尤其是瑕疵检测中的应用方向,读了后,的确信心满满;但实践起来,确是无比痛苦,血泪满眶!先说一下结论:基于深度学习自动化视觉检测项目大约亏损50万人民币近一年的视觉项目中,基于深度学习的两个视觉检测,都没有完成最终验收交付,而其余基于机器算法工具包的项目,比如NI公司的Vision Development Module 或者MVTec公司的Halcon,都能按时完成交付和验收,并收回货款。简单来说,基于深度学习算法的案子就是严重亏损:物料成本、人力成本和客户信心。给大家一个具体的数字:视觉自动检测机设计装配成本(6万)+ 半年人工(15万)+ 客户维护(5万)= 26万投入/项目 * 2 = 52万投入,到现在由于设备始终没有验收,一分钱没有收回。经过这个血泪教训,我们对深度学习的感情,由狂热变得理智!~~ 后来静下心来,认真学习Andrew Ng的Deap learning课程,听到Andrew Ng讲课的时候说了一句“Deep Learning是一个更多偏向于市场宣传的名字...方便媒体报道...方便传播...”。听完这句话后,引起了我深深的共鸣!~当然,这个血泪史不足以影响我对人工智能的信仰,“AI is the new electricity ”。我坚信人工智能将对行业有深刻的影响!~~~ 这个阶段就像当年汽车刚刚发明的时候,还没有马车跑的快,遭到了人们的怀疑和嘲笑,但这并不能影响汽车,这个伟大的发明,就此走向人类的历史。回过头来总结一下为什么基于深度学习的自动化视觉检测项目不能交付。原因1:缺乏一个给客户Easy-to-Use的图形化的人工智能算法工具。自动化视觉检测机的用户,都是产线上,为了量产顺利的作业员或者工程师,当前连BAT巨头都缺AI算法工程师的情况下,指望产线上的作业员或者工程师,能够用Python+Tensorflow去调试AI算法,简直是天方夜谭。所以,一遇到检测不准的问题,用户就停机,要求我们派工程师到现场拍图片、调试;若调试不了,则把图片带回公司,重新训练模型,如此反复,效率极其低下。解决方法:开发一个DLBuilder,一个深度学习图形化工具,类似NI Vision Builder for Automated Inspection (VBAI),让大专学习,懂计算机操作的人,都能通过图形化的工具实现神经网络的配置和训练,就像Windows让普通人都能用上计算机一样。若计算机还是命令行界面,我相信计算机不会如此普及。所以,必须开发一个图形化的深度学习算法工具,让普通人都能方便的设计和训练神经网络。原因2:把深度学习理解为无所不能了。先说一下项目中的结论,我们发现,深度学习的确能把传统视觉算法不能很好识别的问题,识别的很好;但是,传统视觉算法识别的很好的问题,深度学习反而有这样那样的不稳定。当然,这有可能与我们设计和调参水平有关。所以,回过头来,认真学习Andrew Ng的Deap learning课程,认真推导每一个公式,理解里面的本质。但即便是一年后,成为了一个深度学习算法设计还不错的工程师,我认为:深度学习算法要顺利应用在制造业中,做机器视觉自动化检测设备,必须跟传统的机器视觉算法结合起来所谓顺利,是指设计的机器视觉自动化检测设备,要能稳定可靠完成检测任务,要能方便容易供客户使用,要能顺利完成客户验收,要能最终收到设备款项。传统机器视觉算法的开发平台通常是:LabVIEW+ Vision Development Module 或者C# + Halcon。深度学习算法的开发平台通常是:Python+Tensorflow传统机器视觉算法通常处理容易提取,容易量化的特征:颜色、面积、圆度、角度、长度等深度学习算法用于处理很难提取的特征:瑕疵...实现策略:1,凡是能用传统机器视觉算法做稳定的检测,都不需要使用深度学习算法;2,深度学习算法需要依靠传统的图像处理算法,对图像进行预处理,消除由于拍摄、光源、对焦等一系列问题,带来的噪声和影响;增强图像的一致性。具体开发工作:借助LabVIEW图形化开发环境,用Vision Development Module先把训练数据做预处理,增强图像一致性,减少噪声的干扰;再用LabVIEW Python节点,调用Python开发的深度学习算法处理传统视觉算法不好处理的特征提取问题。