yolov5-pp-lcnet:

GitHub - OutBreak-hui/Yolov5-PP-LCNet

分类网络的,结果还出来:

https://github.com/ngnquan/PP-LCNet

分类网络,有精度:

https://github.com/frotms/PP-LCNet-Pytorch

34m:

PPLCNet_x2_5_ssld 0.8082 0.9533

从上图我们可以看出,PP-LCNet 在同样精度的情况下,速度远超当前所有的骨架网络,最多可以有 2 倍的性能优势!它应用在比如目标检测、语义分割等任务算法上,也可以使原本的网络有大幅度的性能提升。

而这个 PP-LCNet 的论文发布和代码开源后,也着实引来了众多业界开发者的关注,各界大神把 PP-LCNet 应用在 YOLO 系列算法上也真实带来了极其可观的性能收益。

这时候是不是有小伙伴已经按耐不住也想直接上手试试了?!

小编识趣地赶紧送上开源代码的传送门。大家一定要 Star 收藏以免走失,也给开源社区一些认可和鼓励。

地址:https://github.com/PaddlePaddle/PaddleClas

而这个 PP-LCNet 到底是如何设计,从而有这么好的性能的呢?下面小编就带大家来领略一下:

PP-LCNet 核心技术解读

近年来,很多轻量级的骨干网络问世,各种 NAS 搜索出的网络尤其亮眼。但这些算法的优化都脱离了产业最常用的 Intel CPU 设备环境,加速能力也往往不合预期。百度飞桨图像分类套件 PaddleClas 基于这样的产业现状,针对 Intel CPU 及其加速库 MKLDNN 定制了独特的高性能骨干网络 PP-LCNet。比起其他的轻量级 SOTA 模型,该骨干网络可以在不增加推理时间的情况下,进一步提升模型的性能,最终大幅度超越现有的 SOTA 模型。

PP-LCNet 的网络结构整体如上图所示。我们经过大量的实验发现,在基于 Intel CPU 的设备上,尤其当启用 MKLDNN 加速库后,很多看似不太耗时的操作反而会增加延时,比如 elementwise-add 操作、split-concat 结构等。所以最终我们选用了结构尽可能精简、速度尽可能快的 block 组成我们的 BaseNet(类似 MobileNetV1)。基于 BaseNet,我们通过实验,总结出四条几乎不增加延时但又能够提升模型精度的方法,下面将对这四条策略进行详细介绍:

更好的激活函数

自从卷积神经网络使用了 ReLU 激活函数后,网络性能得到了大幅度提升。近些年 ReLU 激活函数的变体也相继出现,如 Leaky-ReLU、P-ReLU、ELU 等。2017 年,谷歌大脑团队通过搜索的方式得到了 swish 激活函数,该激活函数在轻量级网络上表现优异。在 2019 年,MobileNetV3 的作者将该激活函数进一步优化为 H-Swish,该激活函数去除了指数运算,速度更快,网络精度几乎不受影响。我们也经过很多实验发现该激活函数在轻量级网络上有优异的表现。所以在 PP-LCNet 中,我们选用了该激活函数。

合适的位置添加 SE 模块

SE 模块是 SENet 提出的一种通道注意力机制,可以有效提升模型的精度。但是在 Intel CPU 端,该模块同样会带来较大的延时,如何平衡精度和速度是我们要解决的一个问题。虽然在 MobileNetV3 等基于 NAS 搜索的网络中对 SE 模块的位置进行了搜索,但是并没有得出一般的结论。我们通过实验发现,SE 模块越靠近网络的尾部对模型精度的提升越大。下表也展示了我们的一些实验结果:

最终,PP-LCNet 中的 SE 模块的位置选用了表格中第三行的方案。

更大的卷积核

在 MixNet 的论文中,作者分析了卷积核大小对模型性能的影响,结论是在一定范围内大的卷积核可以提升模型的性能,但是超过这个范围会有损模型的性能,所以作者组合了一种 split-concat 范式的 MixConv,这种组合虽然可以提升模型的性能,但是不利于推理。我们通过实验总结了一些更大的卷积核在不同位置的作用,类似 SE 模块的位置,更大的卷积核在网络的中后部作用更明显,下表展示了 5x5 卷积核的位置对精度的影响:

实验表明,更大的卷积核放在网络的中后部即可达到放在所有位置的精度,与此同时,获得更快的推理速度。PP-LCNet 最终选用了表格中第三行的方案。

GAP 后使用更大的 1x1 卷积层

在 GoogLeNet 之后,GAP(Global-Average-Pooling)后往往直接接分类层,但是在轻量级网络中,这样会导致 GAP 后提取的特征没有得到进一步的融合和加工。如果在此后使用一个更大的 1x1 卷积层(等同于 FC 层),GAP 后的特征便不会直接经过分类层,而是先进行了融合,并将融合的特征进行分类。这样可以在不影响模型推理速度的同时大大提升准确率。

BaseNet 经过以上四个方面的改进,得到了 PP-LCNet。下表进一步说明了每个方案对结果的影响:

下游任务性能惊艳提升

图像分类

图像分类我们选用了 ImageNet 数据集,相比目前主流的轻量级网络,PP-LCNet 在相同精度下可以获得更快的推理速度。当使用百度自研的 SSLD 蒸馏策略后,精度进一步提升,在 Intel CPU 端约 5ms 的推理速度下 ImageNet 的 Top-1 Acc 竟然超过了 80%,Amazing!!!

目标检测

目标检测的方法我们选用了百度自研的 PicoDet,该方法主打轻量级目标检测场景。下表展示了在 COCO 数据集上、backbone 选用 PP-LCNet 与 MobileNetV3 的结果的比较。无论在精度还是速度上,PP-LCNet 的优势都非常明显

语义分割

语义分割的方法我们选用了 DeeplabV3+。下表展示了在 Cityscapes 数据集上、backbone 选用 PP-LCNet 与 MobileNetV3 的比较。在精度和速度方面,PP-LCNet 的优势同样明显。

实际拓展应用结果说明

PP-LCNet 在计算机视觉下游任务上表现很出色,那在真实的使用场景如何呢?本节简述其在 PP-OCR v2、PP-ShiTu 上的表现。

在 PP-OCR v2 上,只将识别模型的 backbone 由 MobileNetV3 替换为 PP-LCNet 后,在速度更快的同时,精度可以进一步提升。

在 PP-ShiTu 中,将 Backbone 的 ResNet50_vd 替换为 PP-LCNet-2.5x 后,在 Intel-CPU 端,速度快 3 倍,recall@1 基本和 ResNet50_vd 持平。

PP-LCNet 并不是追求极致的 FLOPs 与 Params,而是着眼于深入技术细节,耐心分析如何添加对 Intel CPU 友好的模块来提升模型的性能来更好地进行准确率和推理时间的平衡,其中的实验结论也很适合其他网络结构设计的研究者,同时也为 NAS 搜索研究者提供了更小的搜索空间和一般结论。

自论文发出以来,PP-LCNet 引起了国内外学术界和产业界的广泛关注,无论是各类版本的复现,还是极具探索意义和实用价值的各类视觉任务应用和技术分析文章层出不穷,将简单模型的实用性优化方案重新带入大家的视野,真正践行技术让 “生活” 更美好的初心,期待 PP-LCNet 在实际落地和应用中的更多表现。

前面提到的论文,链接如下:https://arxiv.org/pdf/2109.15099.pdf

本论文工作的总体研究思路由百度飞桨 PaddleClas 团队提出并实施。PaddleClas 提供全球首个开源通用图像识别系统,并力求为工业界和学术界提供更高效便捷的开发工具,为开发者带来更流畅优质的使用体验,训练出更好的飞桨视觉模型,实现行业场景实现落地应用。

想要获取更多 PaddleClas 相关介绍及教程文档可前往:GitHub: https://github.com/PaddlePaddle/PaddleClas

速度提升2倍,超强悍CPU级骨干网络PP-LCNet相关推荐

  1. 速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世!

    关注公众号,发现CV技术之美 算法速度优化遇到瓶颈,达不到要求?应用环境没有高性能硬件只有CPU?是不是直接戳中了各位开发者的痛点!莫慌,今天小编就来为万千开发者破局~ 这个破局点就是:针对CPU设备 ...

  2. ZippyPoint: 一种基于学习的特征点提取+二进制描述子,速度提升5倍+,为移动平台提供一种ORB的替代方案...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Realcat 来源丨 计算机视觉SLAM 作者来自ETHZ Computer Vision实验 ...

  3. 【云原生AI】Fluid + JindoFS 助力微博海量小文件模型训练速度提升 18 倍

    简介: 深度学习平台在微博社交业务扮演着重要的角色.计算存储分离架构下,微博深度学习平台在数据访问与调度方面存在性能低效的问题.本文将介绍微博内部设计实现的一套全新的基于 Fluid(内含 Jindo ...

  4. 阿里 AI 研究成果入选国际顶会 ICML 2020,AI 推理速度提升 3 倍

    近日,人工智能国际顶会ICML 2020公布了论文收录结果,阿里巴巴7篇论文入选,是入选论文数量最多的中国科技公司.ICML是机器学习领域全球最具影响力的学术会议之一,今年接受率仅为21.8%. 根据 ...

  5. 在Python中文件用Feather格式,与 CSV说再见,速度提升 150 倍!

    转载:再见 CSV,速度提升 150 倍!_菜鸟学Python的博客-CSDN博客 为什么要和CSV再见? 好了说了那么久,来介绍下为什么要和CSV再见.其实也谈不上彻底再见吧,日常还是要用的,这里再 ...

  6. 将端到端文本转语音速度提高38倍,全新语音合成系统FastSpeech 梅尔谱的生成速度提升270倍,微软和浙大联合推出

    将端到端文本转语音速度提高38倍,全新语音合成系统FastSpeech 梅尔谱的生成速度提升270倍,微软和浙大联合推出 目前,基于神经网络的端到端文本到语音合成技术发展迅速,但仍面临不少问题--合成 ...

  7. 优化:一种将grid-search速度提升10倍的方法

    Python 2.7 IDE Pychrm 5.0.3 sci-kit learn 0.18.1 前言 抖了个机灵,不要来打我,这是没有理论依据证明的,只是模型测试出来的确有效,并且等待时间下降(约) ...

  8. 如何将 iOS 工程打包速度提升十倍以上

    如何将 iOS 工程打包速度提升十倍以上 过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费.另一 ...

  9. AI一分钟 | 李开复:AI创业公司估值今年会降20%~30%;谷歌让搜索结果加载速度提升两倍...

    ▌李开复:AI 创业公司估值今年会降 20%~30% 创新工场创始人李开复的新书<AI·未来>昨天正式全球发售,在发布现场,李开复谈到目前国内 AI 创业企业现状时表示,今年国内 AI 创 ...

最新文章

  1. 【Web安全】绕过WAF过滤-利用cookie进行SQL注入
  2. php怎么改标题,PHP – 如何更改包含header.php的页面标题?
  3. mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录
  4. 模式识别之聚类算法k-均值---k-均值聚类算法c实现
  5. 每天CookBook之JavaScript-073
  6. Android 学习之路
  7. HTML设置地址栏收藏夹图标
  8. Linux CentOS 7安装Oracle11g超完美教程
  9. Ubuntu下编译vtk(java版本)【超详细-带过程截图】
  10. QTableView实现冻结行冻结列
  11. @linux下tar解压失败a lone zero解决方法
  12. 从阿里云dms导出mysql无法导入_MySQL数据库怎么导入数据?怎么用DMS导入数据?...
  13. 商标注册流程,山东商标注册去哪好
  14. LQ0116 方格计数【数学计算】
  15. 错误: 对象不支持“attachEvent”属性或方法
  16. 光纤收发器怎么连接?光纤收发器连接方式解析
  17. Nginx那些事儿2
  18. Unity 利用花生壳搭建一个可供外网联机的游戏服务器
  19. PYTHON官方教程:Python3.11中文版文档
  20. vc应用程序——个性化的工具条图标

热门文章

  1. CreateThread、_beginthreadex、AfxBeginThread
  2. java中布局管理器flowlayout,在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型。...
  3. centos设置java环境变量,CentOS设置环境变量
  4. modprobe和insmod区别
  5. java web.xml 监听器_十:JavaWeb中的监听器(一)
  6. dapperpoco mysql_Dapper一个和petapoco差不多的轻量级ORM框架
  7. Linux进程top命令作用是,Linux中top命令起什么作用呢?
  8. golang mysql单元测试_golang test测试使用
  9. java json解析 代码_Java构造和解析Json数据的两种方法详解一
  10. 世界人口钟实时数据_中美面积人口数据对比,2020年8月,值得了解的细节