基于PaddlePaddle搭建工业级ICNET应用 预测速度超TensorFlow 20%(2)
自ICNET问世以来,各家深度学习架构都快速的推出了相应的模型实现,包括PaddlePaddle,tensorflow和pytorch。以下将主要基于精密零件智能分拣场景对比PaddlePaddle和tensorflow中ICNET网络的应用性能。 PaddlePaddle介绍PaddlePaddle (PArallel Distributed Deep LEarning) 最初由百度深度学习实验室于 2013 年创建,一直被百度内部的研发工程师们所使用。在2016年百度世界大会上对外开放,它是国内第一个开源的机器学习平台。它从一开始就专注于充分利用 GPU 集群的性能,为分布式环境的并行计算进行加速,所以在对大规模数据进行AI训练和应用上要比TensorFlow要快得多。同时,它对国内用户尤其友好,有完善的中文文档支持,它在开发效率和易用性方面有较明显的优势,它可以使用一两行代码实现TensorFlow需要数行代码才能实现的功能,从而使开发者将工作的重点放在构建深度学习模型的高层部分。 PaddlePaddle中ICNET在工业界的应用截至目前, PaddlePaddle已在互联网行业CTR预测、搜索排序、大规模图像分类等数亿级用户量的产品和服务上成功部署使用。当下,传统行业正在进行深度变革,利用AI技术赋能,实现传统行业工作的自动化,智能化,使其工作人员的工作内容技术含量更高、更人性化,从而促进传统行业的现代化转型和产业升级,对工厂经营效率和效益的提高有很大的帮助和意义。 就在最近,领邦智能联合百度PaddlePaddle团队对公司的精密零件质检工作进行了AI赋能升级。在精密零件的人工质检工作中,工人每天需要8~12小时在注意力高度集中亮光的条件下目视检查直径45mm以内零件的质量,工作的强度非常大,对工人视力也有很大的伤害。目前基于PaddlePaddle平台实现的ICNET模型在机器质检的应用上已经达到了人工质检的准确度,从机器代人这个角度进行经济测算,可使工厂生产成本平均降低15%,效益提升15%;由于机器检验水平稳定,大大提高了产品的交付质量,交付投诉率平均降低了30%。由于精密零件质检数据的是保密非公开的,所以我们用公开数据集cityscape来介绍一下如何在PaddlePaddle上训练和应用ICNET实现图像语义分割,整个流程可以仅在几天内完成。 开发环境操作系统:Linux x86_64 CPU版本:Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz GPU版本:Nvidia-P40(运行状况如下图所示) Figure 8 gpu运行状况 数据准备-CityscapesCityscapes( https://www.cityscapes-dataset.com/ )包含从50个城市收集的不同季节的5,000个高质量像素级精细注释图像(定义了19个类别)。各有2975/500/1525张图用于训练/验证/测试。 下载后得到cityscape数据集,下载后的文件结构如下: Figure 9 cityscapes数据集结构 安装PaddlePaddlePaddlePaddle支持Ubuntu 14.04/16.04/18.04;CentOS 7/6;MacOS;Windows7/8/10。具体请参考官方教程,非常详细(http://staging.PaddlePaddle.org/documentation/docs/zh/0.14.0/new_docs/beginners_guide/install/install_doc.html ) 因为PaddlePaddle已经在pip封装了自己的安装包,我这里选择构建虚拟环境,并直接从pip傻瓜式安装。
查看cuda版本
查看cudnn 版本
按照系统的cuda和cudnn版本选择需要安装的PaddlePaddle-gpu版本
构建模型根据ICNET网络结构构建模型,创建不同比例采样的低分辨率图像,再通过CCF融合逐步提高精度: 模型训练利用已经写好的model构建trainer: 执行以下命令进行训练,同时指定checkpoint保存路径:
加载提供的预训练模型可以加快训练进度。(不过这里官方的预训练模型缺少部分参数文件,会导致最终的效果降低) (编辑:ASP站长网) |