作者丨happy

编辑丨极市平台

导读

百度提出新型移动端实时检测模型PP-PicoDet。本文对anchor-free策略在轻量型检测器中的应用进行了探索;对骨干结构进行了增强并设计了一种轻量Neck部件;同时对SimOTA策略与Loss进行了改进。通过上述改进,所提PP-PicoDet取得了超越其他实时检测模型的性能。

论文链接:https://arxiv.org/abs/2111.00902

代码链接:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/configs/picodet

比YOLOX还要优秀,百度提出新型移动端实时检测模型PP-PicoDet。本文对anchor-free策略在轻量型检测器中的应用进行了探索;对骨干结构进行了增强并设计了一种轻量Neck部件;同时对SimOTA策略与Loss进行了改进。通过上述改进,所提PP-PicoDet取得了超越其他实时检测模型的性能。比如:PicoDet-S仅需0.99M参数即可取得30.6%mAP,比YOLOX-Nano高4.8%同时推理延迟降低55%,比NanoDet指标高7.1%,同时推理速度高达150fps(骁龙865)。

Abstract

更佳的精度-效率均衡已成为目标检测领域极具挑战性问题。本文致力于目标检测的关键技术优化与架构选择以提升其性能与效率。

我们对anchor-free策略在轻量型目标检测模型中的应用进行了探索;我们对骨干结构进行了增强并设计了一种轻量型Neck结构以提升模型的特征提取能力;我们对label assignment策略与损失函数进行了改进以促进更稳定、更高效的训练。通过上述优化,我们构建了一类实时目标检测器PP-PicoDet,它在移动端设备上取得了非常优异的性能。

相比其他主流检测模型,所提方案取得了更好的精度-效率均衡。比如

  • PicoDet-S仅需0.99M参数即可取得30.6%mAP,比YOLOX-Nano高4.8%同时推理延迟降低55%,比NanoDet指标高7.1%;当输入尺寸为320时,在移动端ARM CPU上可以达到123FPS处理速度,推理框架为PaddleLite时,推理速度可达150FPS。

  • PicoDet-M仅需2.15M参数即可取得34.3%mAP指标;

  • PicoDet-L仅需3.3M参数即可取得40.9%mAP,比YOLOv5s高3.7%mAP,推理速度快44%。

  • 如下图所示,所提方案具有最佳的精度-效率均衡。

Contribution

本文贡献主要包含以下几点:

  • 采用CSP架构构建CSP-PAN,它通过卷积对所有分支输入通道进行统一,大幅提升特征提取能力,同时减少了参数量。与此同时,我们将深度卷积从扩展到提升感受野;

  • label assignment是目标检测非常重要的模块。我们在SimOTA的基础上对某些计算细节进行了优化,在不损失效率的同时增强了性能。具体来说,我们采用VarifocalLoss与GIoULoss的加权组合计算损失矩阵

  • ShuffleNetV2在移动端非常高效,我们对其进行了增强并提出一种新的骨干ESNet(Enhanced ShuffleNet, ESNet);

  • 提出一种用于检测的改进版One-Shot NAS方案以寻找最佳的架构。

Method

接下来,我们将首先呈现设计思路与NAS搜索方案,这有助于提升精度、降低推理延迟;然后我们再介绍关于Neck与Head模块的增强策略;最后我们对Label Assignment以及其他提升性能的策略进行介绍。

Better Backbone

实验发现:相比其他模型,ShuffleNetV2在移动端具有更好的鲁棒性 。为提升ShuffleNetV2的性能,我们参考PP-LCNet对其进行了增强并构建一种新的骨干ESNet。

上图给出了ESNet中的ESBlock结构示意图。SE是一种非常棒的提升特征表达能力的操作,故ESBlock中包含了SE模块。SE模块的设计参考了MobileNetV3,即两个激活函数分别为Sigmoid、H-Sigmoid。

通道置换为ShuffleNetV2中的通道提供了信息交换,但它会导致融合特征损失。为解决该问题,当stride=2时,我们添加了depth与point卷积对不同通道信息进行融合(见上图3-a)。

GhostNet中的Ghost模块能够用更少的参数生成更多特征并提升模型的学习能力。因此,当stride=1时,我们在ESBlock中引入Ghost模块以提升其性能(见上图3-b)。

上述部分内容是手工方式的模块设计,文中还用到了NAS技术对ESNet进行搜索以更好的适配检测模型。对该部分内容感兴趣的同学建议查看原文,笔者对此暂时略过。

CSP-PAN and Detector Head

上图给出了PP-PicoDet整体架构示意图。接下来,我们重点关注CSP-PAN与Head部分。CSP结构已被广泛应用于YOLOv4与YOLOX的Neck部分。

在原始CSP-PAN中,每个输出特征的通道数与源自骨干的输入通道数保持相同。大通道数的结构在移动端存在昂贵的计算消耗。我们通过 卷积将输出特征的通道数调整到最小通道数 以解决上述问题。

Top-down与bottom-up两路特征融合通过CSP结构执行。此外,我们还在CSP-PAN的基础上添加了一个特征尺度以检测更多目标(见上图P6分支)。与此同时,除了卷积外,其他卷积均为深度卷积。这种结构设计可以带来可观的性能提升,同时参数量更少。

在检测头部分,我们采用深度分离卷基于卷积提升感受野。深度分离卷积的数量可以设置为2、4或者更多。Neck与Head均具有四个尺度分支,我们保持两者的通道数一致。YOLOX采用更少通道数的“解耦头”提升性能;而PP-PicoDet的“耦合头”具有更好的性能,且无需减少通道数 。该方案的Head与YOLOX的Head具有几乎相同的参数量和推理速度。

Label Assignment Strategy and Loss

正负样本的标签分类对于目标检测器有着非常重要的影响。RetinaNet通过IoU进行正负样本划分;FCOS则将中心点位于GT的anchor视作正样本;YOLOv4与YOLOv5则选择中心点与近邻anchor作为正样本;ATSS则通过统计信息进行正负样本划分;SimOTA则是一种随训练过程而动态变换的标签分配策略,具有更好的性能。因此,我们选择SimOTA作为标签分配方案。

在SimOTA的基础上,我们对其cost矩阵进行优化,采用VarifocalLoss与GIoULoss的加权组合计算。定义如下:

对于分类头,我们采用VarifocalLoss耦合分类预测与质量预测;对于回归头,我们采用GIoU与DistributionFocalLoss。整体损失定义如下:

Other Strategies

近年来,越来越多的激活函数取得了比ReLU更优的性能。其中,H-Swish是一种移动端友好的算子,故我们将检测器中的ReLU替换为H-Swish,性能大幅提升同时推理速度不变

相比线性学习率机制,cosine 学习率机制更为平滑且有益于训练稳定性。

过多的数据增强可以提升增强效应,但会影响轻量型模型的训练难度。因此,我们仅使用RandomFlip, RandomCrop, Multi-scale Resize等数据增广。

Experiments

上表给出了所提方案与其他轻量型检测器的性能对比,从中可以看到:无论是精度还是速度,所提方案均大幅超越了所有YOLO模型 。性能的提升主要源于以下几点改进:

  • Neck部分比其他YOLO模型更轻量,故骨干与Head可以赋予更多计算量;

  • VarifocalLoss的组合可以处理类别不平衡、动态学习样本分类与FOCS的回归方案在轻量模型中表现更佳;

在相同参数量下,PP-PicoDet-S超越了YOLOX-Nano与NanoDet;PP-PicoDet-L的精度与速度均超越了YOLOv5s。此外,由于更高效的卷积优化,PaddleLite的推理速度要比NCNN更快。总而言之,PP-PicoDet在极大程度上领先其他SOTA模型。

Ablation Study

上表给出了PP-PicoDet从基线模型逐步优化而来的性能对比。基线模型类似NanoDet,骨干为ShuffleNetV2-1x,Neck采用了无卷积PAN,损失采用了GFL,标签分配采用ATSS,激活函数为LeakyReLU。从中可以看到:

  • 采用本文所提CSP-PAN可以带来3.8%mAP指标提升,而参数量提升少于50K;

  • 相比QFL,VFL可以带来0.1%mAP指标提升;

  • ATSS与SimOTA具有相同的性能,而改进版SimOTA可以将性能提升到30.0%mAP;

  • 相比LeakyReLU,H-Swish可以带来0.9%mAP指标提升。

上表对比了ShuffleNetV2-1.5x与ESNet-1x的性能,可以看到:ESNet具有更高的性能、更快的推理速度、更少的计算量。

上表对比了人工设计模型与NAS搜索模型的性能,可以看到:搜索到的模型的指标仅下降0.2%mAP,而推理延迟减少41.5% 。因此,我们将基线模型的骨干替换为ESNet-0.75x,参数量减少约200K,而性能仅下降0.3%mAP。

如果觉得有用,就请分享到朋友圈吧!

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群554839127,加入微信群请扫码:

【深度学习】百度:YOLOX和NanoDet都没我优秀!轻量型实时目标检测模型PP-PicoDet开源...相关推荐

  1. 百度:YOLOX和NanoDet都没我优秀!轻量型实时目标检测模型PP-PicoDet开源

    作者丨happy    编辑丨极市平台 导读 百度提出新型移动端实时检测模型PP-PicoDet.本文对anchor-free策略在轻量型检测器中的应用进行了探索:对骨干结构进行了增强并设计了一种轻量 ...

  2. [编译环境]百度深度学习平台PaddlePaddle安装、官方跑通、跑通自己想用的模型(deepLab,swin-transformer哒哒哒)

    前言: 新的学期新的方向,新的学期成功转型--由目标检测成功登陆语义分割.最近一直在研究语义分割领域中的优秀模型,但是部分模型复现还是挺麻烦的,其中最烦的应该得包括安装库文件和看源代码了 一 简介: ...

  3. 深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD

    为什么80%的码农都做不了架构师?>>>    Faster R-CNN.R-FCN 和 SSD 是三种目前最优且应用最广泛的目标检测模型,其他流行的模型通常与这三者类似.本文介绍了 ...

  4. 【深度学习】图像特征提取与通道数问题(基于U型网络)

    [深度学习]图像特征提取与通道数问题(基于U型网络) 1 医学图像特点 2 卷积核与图像特征提取2.1 卷积2.2 图像处理2.3 边缘检测卷积核2.4 图像锐化卷积核2.5 高斯滤波 3 关于图像三 ...

  5. 【深度学习】Transformer 向轻量型迈进!微软与中科院提出两路并行的 Mobile-Former...

    作者丨happy 编辑丨极市平台 导读 本文创造性的将MobileNet与Transformer进行了两路并行设计,穿插着全局与特征的双向融合,同时利用卷积与Transformer两者的优势达到&qu ...

  6. <计算机视觉 六> 深度学习目标检测模型的评估标准

    鼠标点击下载     项目源代码免费下载地址 <计算机视觉一> 使用标定工具标定自己的目标检测 <计算机视觉二> labelme标定的数据转换成yolo训练格式 <计算机 ...

  7. 深度学习目标检测模型综述

    还是学习啊 勿怪勿怪 给自己好保存而已哦 论文地址:https://arxiv.org/pdf/2104.11892.pdf whaosoft aiot http://143ai.com 此分享中调查 ...

  8. 52 个深度学习目标检测模型汇总,论文、源码一应俱全!(附链接)

    来源:AI有道 本文约2000字,建议阅读5分钟 本文给你总结52个深度学习检测模型. 标签:计算机视觉 目标检测作为计算机视觉中的一个重要分支,近些年来随着神经网络理论研究的深入和硬件 GPU 算力 ...

  9. 52 个深度学习目标检测模型汇总,论文、源码一应俱全

    本文约2000字,建议阅读5分钟 本文给你总结52个深度学习检测模型. 标签:计算机视觉 目标检测作为计算机视觉中的一个重要分支,近些年来随着神经网络理论研究的深入和硬件 GPU 算力的大幅度提升,一 ...

最新文章

  1. oracle 时间相关
  2. 【Redis】6.Redis key通用指令以及数据库的通用操作
  3. java模拟单链表环形链表解决约瑟夫问题
  4. 个人作业-Week2
  5. Maven Scope取值的含义
  6. fdisk 分区_【linux】循序渐进学运维-基础篇-分区命令fdisk
  7. linux需要什么基础,学linux需要什么基础?
  8. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
  9. 从Preact了解一个类React的框架是怎么实现的(二): 元素diff
  10. 计算机毕业设计中用java/php/net/pythont物流配送中心管理系统设计
  11. 拓端tecdat|R语言文本主题模型之潜在语义分析(LDA:Latent Dirichlet Allocation)
  12. 环保材料“接棒”汽车电子成主业?路畅科技“等到”金主
  13. springboot+vue房屋租赁系统-求租合同系统java
  14. 物联网卡是什么?物联网卡有哪些功能?
  15. 超级实用案例,Python 提取 PDF 指定内容生成新PDF
  16. 使用Pandas进行数据分析
  17. 乐高机器人EV3的PID巡线控制——附源程序
  18. mysql 原子操作
  19. G-08 魔王语言解释 (20 分)
  20. mysql 慢查询优化_MySQL 性能优化之慢查询

热门文章

  1. DRF的版本控制,认证,权限和频率限制
  2. 抽取随即人员——SqlServer_Proc_Random
  3. DRAM 各项基本参数记录
  4. Linux 常用命令笔记 (持续更新)
  5. INT(M)表示什么意思?
  6. Android中处理崩溃异常 (转)
  7. Oxite移植到ASP.NET MVC2 BETA 笔记(关于Html.RenderPartialFromSkin)
  8. vb+socket 编写入侵监听程序
  9. php网站通过什么联网,PHP通过Ajax调用连接百度效果实现检测网站是否联网的功能...
  10. com 组件调用不起来_一文读懂Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系...