您的位置:首页>>业界动态

PaddlePaddle搭建工业级ICNET应用 预测速度超谷歌20%

发布时间:2019-04-19 11:28:59  来源:互联网    背景:

  引言

  提起ICNET,就不得不说说ICNET构建的初衷-解决图像语义分割在实时应用中的挑战。图像语义分割(semantic segmentation)是结合了图像分类和对象检测,对图像中的每个像素实现细粒度的分类,就像下面的图中看到的那样,可以对封闭形状区域进行类别标记!得益于深度学习技术的爆发式发展,图像语义分割也进入高速的发展阶段。

Figure 1 图像语义分割示例

  技术现状

  Fully convolutional network(FCN)

      J. Long et al. (2015) 首先将全卷积网络(FCN)应用于图像分割的端到端训练。FCN修改了VGG6等网络使其具有非固定大小的输入生成具有相同大小的分割图像,同时通过卷积层替换所有完全连接的层。由于网络生成具有小尺寸和密集表示的多个特征映射,因此需要进行上采样以创建相同大小的特征。基本上,它包含于一个步幅不小于1的卷积层。它通常称为反卷积,因为它创建的输出尺寸大于输入。这样的话,整个网络是基于像素点的损失函数进行训练的。此外,J. Long在网络中添加了跳过连接,以将高层级特征映射表示与网络顶层更具体和密集的特征表示相结合。FCN把CNN最后的全连接层换成卷积层,这也是其名字的由来。

Figure 2 FCN网络结构

  ParseNet

  W. Liu et al. (2015) 针对J. Long的FCN模型进行了两步改进,第一步使用模型生成要素图,这些要素图被缩减为具有池化层的单个全局特征向量。使用L2欧几里德范式对该上下文向量进行归一化,并且将其取出(输出是输入的扩展版本)以生成具有与初始值相同的大小的新特征映射。第二步再使用L2 欧几里德范式对整个初始特征映射进行归一化。最后一步连接前两个步骤生成的要素图。规范化有助于缩放连接的要素图值,从而获得更好的性能。

Figure 3 ParseNet网络结构

  Pyramid Scene Parsing Network (PSPNet)

  H. Zhao et al. (2016) 开发了金字塔场景解析网络(PSPNet),以更好地学习场景的全局内容表示。PSPNET使用具有扩张网络策略的特征提取器从输入图像中提取模式。特征提供给金字塔池化模块以区分具有不同比例的模式。它们与四个不同的尺度合并,每个尺度对应于金字塔等级,并由1x1卷积层处理以减小它们的尺寸。这样,每个金字塔等级分析具有不同位置的图像的子区域。金字塔等级的输出被上采样并连接到初始特征图以最终包含局部和全局的上下文信息。然后,它们由卷积层处理以生成逐像素的预测。

Figure 4 PSPNet网络结构

  ICNET

  H. Zhao et al. (2018)针对高清图像的实时语义分割,提出了一个基于PSPNet的图像级联网络(ICNET),它解决了现实应用中的基于像素标签推断需要大量计算的难题。ICNET可以在单块GPU卡上实现实时推断并在Cityscapes,CamVid等数据验证有相对不错的效果。

  当今基于深度学习的各种网络架构不断提升图像语义分割的性能,但是都距离工业界的实际应用有一定距离,像在Cityscapes数据集取得不错效果的ResNet和PSPNet针对1024*1024的图像至少需要1秒钟做出推断,远远不能满足自动驾驶,在线视频处理,甚至移动计算等领域实时的要求,ICNET即是在这样的背景下,在不过多降低预测效果的基础上实现毫秒级相应以满足实时处理的要求。在Cityscapes数据集上,ICNET的响应时间可以达到33ms,处理能力达到30.3fps,准确率达到70.6%的mIoU分数。

Figure 5 在Cityscapes数据集上的结果表

  ICNET的主要贡献在于开发了一种新颖独特的图像级联网络用于实时语义分割,它高效的利用了低分辨率的语义信息和高分辨率图像的细节信息;其中级联特征融合模块与级联标签引导模块能够以较小的计算代价完成语义推断,可以取得5倍的推断加速和5倍的内存缩减。

  ICNET需要级联图像输入(即低,中和高)分辨率图像,采用级联特征融合单元(CFF)并基于级联标签指导进行训练。具有全分辨率的输入图像通过1/2和1/4比例进行下采样,形成特征输入到中分辨率和高分辨率的分支,逐级提高精度。

Figure 6 ICNET架构

  我们使用低分辨率输入得到语义提取,如上图顶部分支所示使用下采样率为8的比例将1/4大小的图像输入PSPNet,得到1/32分辨率的特征。获得高质量的分割,中高分辨率分支有助于恢复并重新处理粗糙的推断;CFF的作用就是引入中分辨率和高分辨率图像的特征,从而逐步提高精度,CFF的结构如下所示。

Figure 7 CFF结构

  这样只有低分辨率的图像经过了最深的网络结构,而其他两个分支经过的层数都逐渐减少,从而提高了网络的速度。

  为了降低网络的复杂度,ICNET采用了修剪网络每层中的内核来实现模型压缩。对于每个过滤器,首先计算内核L1范式的求和,然后降序排列仅保留部分排名靠前的内核。

  ICNET的实现及应用

  自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运行状况

  数据准备-Cityscapes

  Cityscapes( https://www.cityscapes-dataset.com/ )包含从50个城市收集的不同季节的5,000个高质量像素级精细注释图像(定义了19个类别)。各有2975/500/1525张图用于训练/验证/测试。

  下载后得到cityscape数据集,下载后的文件结构如下:

Figure 9 cityscapes数据集结构

  安装PaddlePaddle

  PaddlePaddle支持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傻瓜式安装。

   如果不使用gpu,直接通过pip安装

  pip install PaddlePaddle

   如果是使用gpu,需要先查看系统的cuda和cudnn版本

  查看cuda版本

  cat /usr/local/cuda/version.txt

  查看cudnn 版本

  cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

  按照系统的cuda和cudnn版本选择需要安装的PaddlePaddle-gpu版本

  pip install PaddlePaddle-gpu==1.3.0.post97

  构建模型

  根据ICNET网络结构构建模型,创建不同比例采样的低分辨率图像,再通过CCF融合逐步提高精度:

  模型训练

  利用已经写好的model构建trainer:

  执行以下命令进行训练,同时指定checkpoint保存路径:

  python train.py --batch_size=16 --checkpoint_path="./chkpnt/" --use_gpu=True --random_mirror=True --random_scaling=True

  加载提供的预训练模型可以加快训练进度。(不过这里官方的预训练模型缺少部分参数文件,会导致最终的效果降低)

  执行以下命令加载预训练模型进行训练,同时指定checkpoint保存路径:

  python train.py --batch_size=16 –-init_model=”./model_1000/” --checkpoint_path="./chkpnt/" --use_gpu=True --random_mirror=True --random_scaling=True

Figure 10 训练损失下降图

  测试

  完成模型的训练后, 进行效果测试:

  执行以下命令在cityscape测试数据集上进行测试:

  python eval.py --model_path="./chkpnt/30000/" --use_gpu=True

  在进行30000次迭代后得到的模型在验证数据集上验证的结果为:mean_IoU=67.25%。符合论文中~67%的效果预期,本次实验在p40上完成,完成30000次迭代共耗时近20个小时。

  框架对比

  下表展示了PaddlePaddle1.3和TensorFlow1.12的性能对比,以下对比实验使用的输入数据是1024x2048分辨率的图片,batch size为16:

  小结

  本文介绍了图像语义分割实现的主流技术,并在PaddlePaddle上应用ICNET实现cityscape数据集的语义分析实践。另外,我们已经将PaddlePaddle的ICNET应用于领邦精密零件智能分拣机项目,实现了AI技术在产业落地。即基于PaddlePaddle实现了ICNET模型训练、部署,建立了客户自主数据标注->云端训练模型->下载模型->本地部署的全部流程。对比TensorFlow,在相同精度下我们的预测速度要快20%以上(25ms:33ms)。PaddlePaddle框架,不仅是一个性能优秀的深度学习框架,更能够基于对中国本土企业的深度学习需求的深入发掘,从而能够更好的满足国内企业用户的需求。希望PaddlePaddle在传统行业的AI赋能和现代化转型中贡献更多的力量。

  参考

  1.https://github.com/PaddlePaddle/Paddle

  2.https://github.com/tensorflow/tensorflow

  3.https://github.com/hszhao/ICNet

  4.https://arxiv.org/abs/1704.08545

  5.https://arxiv.org/abs/1411.4038

  6.https://arxiv.org/abs/1506.04579

  7.https://arxiv.org/abs/1612.01105

特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


返回网站首页 本文来源:互联网

本文评论
头号玩咖参展2019世界VR产业大会 国务院副总理刘鹤莅临指导
2019年10月19日-21日, 2019世界VR产业大会在江西南昌举行。在同期举办的2019 VR/AR产品和应用展览...
日期:10-19
世界VR产业大会开幕 玖的揽获「中国VR50强企业」「VR/AR年度创新奖」两大奖项
10月19日,以“VR让世界更精彩——VR+5G开启感知新时代”为主题的第二届世界VR...
日期:10-19
开发者服务起风了:2019极光开发者大会,聚焦开发价值!
2019年10月19日,“2019极光开发者大会”在深圳召开,数千位互联网公司技术领袖、合作伙...
日期:10-19
华为:希望把VR/AR打造成下个智能手机产业
10月19日消息,2019世界VR产业大会在江西省南昌市举行。华为轮值董事长郭平发表了《打造VR/AR信息高...
日期:10-19
华为云受邀参加2019IDC中国数字化转型年度盛典,“5G+云+AI”助力企业数字转型
2019年10月18日,由IDC中国主办的“2019 IDC数字化转型年度盛典暨第四届中国数字化转型领军用...
日期:10-19
语音识别大拿Daniel Povey正式加入小米,将组团队开发下一代Kaldi
10月19日消息 据小米集团副总裁、小米技术委员会主席@崔宝秋-小米 消息,语音识别大拿Daniel Povey...
日期:10-19
蚂蚁金服共享智能平台打破数据孤岛,荣获“2019CCF 科技进步优秀奖”
10月18日,在2019中国计算机大会上,“蚂蚁金服隐私保护共享智能平台”荣获“CCF科...
日期:10-19
我国研发5款自主产权3D显卡:支持国产处理器及操作系统
   继国产处理器获得突破之后,国产GPU/显卡也取得了重大进展。
日期:10-19
华为开发者大会2020将于明年2月11日在深圳召开
10月19日消息 今日上午,据华为中国官方消息,华为开发者大会2020将于2020年2月11日-12日在深圳召开...
日期:10-19
Digitimes:英特尔将在2020年中发布Xe独显,采用10nm工艺
10月19日消息 根据TPU的报道,接近Digitimes的消息人士透露,英特尔将很快推出其首个10纳米独立显卡...
日期:10-19
AMD有望在11月5日发布新款线程撕裂者和TRX40芯片组
10月19日消息 根据VideoCardz的独家爆料,AMD计划发布三款Threadripper 3000处理器,分别是 3960X,...
日期:10-19
英特尔将于月底推出新款超低压处理器:10nm工艺,3D封装
10月19日消息 根据Notebookcheck的报道,英特尔将于2019年10月23日和24日在加州圣克拉拉的凯悦酒店...
日期:10-19
政企智能转型升级正当时 华为云打造西安智慧产业新高地
10月17日,由华为公司主办的“西安·选择不凡 华为云城市峰会2019”在西安如期举行...
日期:10-19
华为云依托5G+云+AI技术 加速政企转型升级
10月17日,“西安·选择不凡 华为云城市峰会2019”如期在西安举行。西安市市长李明...
日期:10-19
西安航天基地华为云人工智能创新中心正式发布
10月17日,西安·选择不凡 华为云城市峰会2019在西安举行,针对Cloud 2.0时代下的政企上云需...
日期:10-19
人才培养正当时,华为云联合7大高校发布西北鲲鹏人才培养计划
  10月17日,西安·选择不凡 华为云城市峰会2019在西安拉开帷幕,着眼西北地区科技创新发展,华...
日期:10-19
爱奇艺创新CDN系统奇速播荣获中国计算机学会 “CCF科学技术奖科技进步杰出奖”
10月17日-19日,由中国计算机学会(CCF)创办的2019中国计算机大会在苏州举办,爱奇艺融合边缘云的新...
日期:10-19
世界互联网大会开幕,UCloud优刻得展示企业上云新科技
10月18日上午,第六届世界互联网大会“互联网之光”博览会在浙江乌镇拉开帷幕。国家互联...
日期:10-19
Breeno语音“万物互融”丰富覆盖渠道,为开发者提供更多品牌精准客群
10月15日「OnePlus 7T 系列新品发布会」在北京举办。此次发布会除了发布了硬件端旗舰级一加手机,也...
日期:10-18
哈弗H6斩获第76个月销冠,不断刷新SUV市场销量记录
进入2019年下半年后,中国汽车市场发生了微妙的变化,轿车相较2018年依旧呈现下跌态势,而SUV异军突起,...
日期:10-18
  专栏介绍
王涵 的专栏
王涵发表的文章
积分:
自我介绍 :