1. 首页
  2. 教育
  3. 深度学习

TensorFlow 在工业图像视觉领域的应用经验

我是一名来自苏州的机器视觉开发者,从事传统的机器视觉算法开发有11年了,从2018年开始,因为一些复杂微弱的瑕疵检测项目遇到的传统算法瓶颈,开始接触到了深度学习,并选择了使用TensorFlow,期间也是不断摸索前进,同时得到了很多行业大佬的指导,TensorFlow优秀的性能和快速的模型训练部署,上手起来感受非常舒适。

我是一名来自苏州的机器视觉开发者,从事传统的机器视觉算法开发有11年了,从2018年开始,因为一些复杂微弱的瑕疵检测项目遇到的传统算法瓶颈,开始接触到了深度学习,并选择了使用TensorFlow,期间也是不断摸索前进,同时得到了很多行业大佬的指导,TensorFlow优秀的性能和快速的模型训练部署,上手起来感受非常舒适。

使用TensorFlow以后,确实提升了生产现场的检查能力,提高了生产产品的品质和生产效率,主要的提升是误报警率的下降、微弱特征的识别率和检查结果分类的精准化。

借此机会,我想总结下个人的关于TensorFlow在工业图像视觉领域的应用经验。

工业CV领域的深度学习应用和互联网行业或者研发类行业,还是有一定差异的,主要在以下几个方面:

1.工业图像的主要特点

工业领域,不管是3C、半导体、面板、SMD、汽车,还是饮料食品、标签、纺织等,不管检测对象是表面瑕疵划痕污染、印刷喷涂异常、组装灌装测量,还是读码和字符识别,都有一个和我们日常手机摄影头拍摄照片不一样的地方。那就是,工业取像使用更稳定的视觉硬件,包括工业相机、工业镜头和工业光源,会尽可能地打造一个稳定的成像环境,图像的背景和目标一般在位置分布和灰度上不会有太多动态的变化,但是不排除复杂的纹理特征和复杂的轮廓边界,而这也是深度学习最契合的应用场景。

因此,基于工业上的图像集的特点,如果有较好推理应用的模成熟型的话,在训练好的模型基础上,做迁移学习,可能会有意外的好效果。

2.负样本严重不足

正常的工业生产中,良品率一般是非常高的(>90%),因此负样本的收集非常困难,有些品质要求严格的产品,可能1个月只会产生10几个不良,这样就对训练集的均衡提出了挑战。

开发者需要自主开发图像预处理算法对样本进行增强,不能局限于TensorFlow或OpenCV自带的的一些传统的图像集样本增强算法。有时候甚至会减少或者取消预测集和测试集,以最大限度地喂给模型训练。

另一方面,生产现场也是允许前期一定的测试成本和评价周期,允许粗糙版本先上线,边生产边优化升级。

3.深度学习如何适配老旧的系统

众所周知,因为设备更新和维护成本非常高,工业设备的迭代速度是很低的,设备稳定性很好。

这也造成一个问题,目前的工业领域的PC系统大多老旧,虽然是很稳定的工控机,抗击恶劣环境和连续工业性能很强,但PC配置大多较低,系统版本也不高。经常会遇到10年前的双核处理器,搭配win2000操作系统,这也给深度学习的部署应用提出了一些难题。

一般的解决方案是通过在设备外部搭建深度学习服务器,和产线设备组成内网文件共享和实时通讯,实时地读取设备内生成的图像进行推理,并将推理结果通过网络反馈设备。

TensorFlow 在工业图像视觉领域的应用经验

4.模型部署推理如何和现有程序集成

工业上使用的检查程序大多数是基于.NET或者C++++,和较流行的Python不同,而且开发者也无法再切换原有程序的语言,因为涉及到PC内很多运动控制、各种板卡和通讯交互等外部依赖的商业类库,更换语言的成本很高,也几乎不可能完成。

目前一般2种方式对应:

通过post通讯,Python上训练和部署,并通过Flask服务和原程序通讯交互;

或者采用C++版本或者.NET版本支持GPU的TensorFlow扩展,直接集成到现在程序中,进行训练和推理,实时内存中共享图像变量和结果。

个人建议采用第2种方式,开发起来更快高效。

5.模型不需要前沿需要稳定高效

工业上的算法应用一般略微落后于前沿技术,以稳定高效为主。

如图像处理方面,一般还是使用一些传统的经典的算法,以深度学习做图像分类为例,简单的项目使用LeNet和AlexNet网络就足够,复杂的项目一般使用到VGGNet就可以。

但也有部分较前沿的技术应用,比如超分算法,对图像进行扩展以增加细节,帮助提升分类精准性。

6.算法落地的配套工具开发量占比高

工业中一个完整项目的落地,需要交付一整套系统,其中生产人员的便捷应用和人性化的交互UI也是比较重要的。

因此,深度学习在工业现场应用,很大一部分开发工作量在于配套的工具。例如:数据集标注制作、模型训练、模型快速部署和训练推理过程的可视化,这些都需要封装成易用稳定的工具,交付客户时可以让无编程经验的客户也能快速开展深度学习的业务。

7.传统算法为主深度学习辅助

虽然现在深度学习技术已经看上去无所不能,但在工业应用上,还是主要以传统算法为主,深度学习辅助的模式。这并非是孰是孰非的问题,而是当前时期,传统视觉算法在兼顾运算速度、像素计算精度和算法开发速度上,还是略微占优势。

而深度学习一般作为补充,弥补传统算法在复杂纹理和复杂特征描述上的不足,将传统算法达到的90%准确率,助推至95%。

以上,是我个人的一些工业应用中的心得,接下来,和大家分享一下我自己学习TensorFlow2.x的一些经验和故事。

最初,我是在B站偶然的看到Google的官方账号的:Google中国(https://space.bilibili.com/64169458),然后在这里学习了一些TensorFlow一手视频资料,同时结合TensorFlow官网的API手册进行边学边用。

然后,在年初的TensorFlowDevSummit2020上,学习了解到了很多东西。包括TensorFlow2.2的新特性,TensorFlow致力打造的生态,TFUG(TensorFlowUserGroups),以及TensorFlowCertificate开发者认证体系等。

在这次开发者大会后,我开始接触并使用TensorFlow2.x,工作中的项目也逐渐从1.x转换至2.x。同时,我也关注了TensorFlow官方微信公众号,加入了TFUG社区成为其中一员。

关注TensorFlow官方公众号真的给我带来了很多一手新鲜的资讯和前沿技术信息。通过这个公众号,我参加了第1期TensorFlow机器学习StudyJam课程,并获得第1批通过在线考试的证书卡片和精美定制背包礼品。之后,我也陆续参加了后续的一系列StudyJam课程,以及关注每一次的视频直播,这让我收获颇丰。

在课程学习中,我发现了GDE李锡涵大佬的“简单粗暴TensorFlow2”的在线系列教程,并注册成为第1批早期论坛会员(tf.wiki),在论坛上和大家积极交流互动。“简单粗暴TensorFlow2”一直是我强烈推荐给身边同事好友的,我认为是快速入门TensorFlow最好的教材,也特别适合一些偏现场应用的攻城狮们,可以低学习成本快速进入深度学习殿堂。

也是在2020年初的TensorFlowDevSummit上,我了解到了TensorFlow开发者认证。在国内和国外一些前几位通过TF认证的大佬们的指导帮助下,我系统地学习了Coursera与deeplearning.ai合作的,由LaurenceMoroney老师录制的著名课程“TensorFlowInPractice专项课程”,并且认真准备全部满分通过了该课程的所有课后练习和考试,顺利拿到了该课程的全部结业认证证书。通过接下来的一个月每天晚上下班后在家的复习备考,我也顺利通过TensorFlowCertificate认证,成为国内前几位拿到证书的开发者。

为了帮助国内更多地了解TF认证,也方便大家交流学习,将大佬们无私指导我的精神传承下去,我利用业余时间翻译了官方的考试手册,整理出中文版认证考试手册方便大家了解,并建立交流群,方便大家交流学习,目前已经有好多群友陆续通过认证。

同时,我也是一位.NET开发者,如何让TensorFlow2.x和.NET框架紧密集成,也是我在工作中遇到的挑战。通过GitHub上查找资源,我认识了SciSharp社区的TensorFlow.Net开发者,并加入SciSharp社区,一起帮忙广大.NET开发者更方便地使用TensorFlow2.x,通过半年多的努力,目前TensorFlow.NET终于绑定升级到TensorFlow2.3,实现了大部分的2.xAPI,可以十分快速地使用C#进行TensorFlow的项目应用。

以上,就是我在2020年学习TensorFlow2的一些经验分享,主要的节点是关注了TesnsorFlow官方公众号,通过上面的新鲜信息资讯,进一步发现了大量优秀的学习资源,大大拓宽了自己的学习视野,也认识了很多大牛们。

以上,是个人的一些学习经历分享,欢迎大家交流指正!

原文标题:社区分享|TensorFlow2学习和工业CV领域应用的心得

文章出处:【微信公众号:TensorFlow】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

免责声明:本站旨在传递信息,不代表有传资讯的观点和立场。本站遵循行业规范,如转载您的文章未标注版权,请联系我们(QQ:78799268)改正。本站的原创文章,如若转载,请注明出处:http://www.ainoline.cn/jiaoyu/shenduxuexi/16505.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:78799268@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code