轻量检测模型PP-PicoDet解析

Paper:PP-PicoDet: A Better Real-Time Object Detector on Mobile Devices

official implementation:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.7/configs/picodet

Backbone

作者通过实验发现,ShuffleNetV2在移动设备上比其他网络更加鲁棒,为了进一步提升backbone的性能,作者在ShuffleNetV2的基础上借鉴了PP-LCNet(具体介绍见PP-LCNet 原理解析)的一些方法进行改进,构建了一个新的骨干网络Enhanced ShuffleNet (ESNET)。下图描述了ES Block的细节

具体而言,加入了SE module,和MobileNetV3一样,SE module两层激活函数分别为ReLU和H-Sigmoid。channel shuffle提供了通道的信息交换但会导致融合信息的丢失,为了解决这个问题,当stride=2时,加入了深度可分离卷积来整合不同通道的信息。GhostNet(具体介绍见GhostNet(CVPR 2020) 原理与代码解析)提出的Ghost module可以用更少的参数生成更多的特征图以提高网络的学习能力,作者在stride=1的block中加入Ghost module进一步提高ESNet的性能。

Neck

neck部分采用CSP-PAN结构,在原始的CSP-PAN中,每个输出特征图的通道数和从backbone得到的输入是一样的,这对于移动设备来说计算成本太大,本文通过1x1卷积将输入C3~C5的通道数先降到最小的通道数即96。此外本文多添加了一层输出特征即P6来检测更多的对象。同时,除了1x1外的所有卷积都改成深度可分离卷积,并且将卷积核扩大到5x5来增大感受野。完整的结构如图2所示

Head

检测头采用coupled head的形式,卷积也改成5x5的深度可分离卷积。

Label Assignment

标签分配采用SimOTA,原始的SimOTA采用CE loss和IoU loss的加权和来计算cost matrix,为了对齐cost和最终的目标函数,这里用Varifocal loss和GIoU loss的加权和来计算cost matrix,如下,其中加权系数 \(\lambda=6\)。

Loss

分类损失采用Varifocal loss,回归损失采用GIoU loss和Distribution loss,如下

Other strategies

激活函数H-Swish的计算更多对移动设备更友好,ESNet中的所有激活函数都由ReLU改成H-Swish。

与linear step learning rate decay不同,Cosine learning rate使学习率呈指数衰减。余弦学习率平稳下降,有利于训练过程,特别是在batch size较大的情况下,因此本文采用余弦学习了下降策略。

过多的数据增强会增加正则化效果,使轻量级模型的训练更难收敛。因此,本文只使用random flip,random crop和multi-scale resize的数据增强。

PP-PicoDet V2

PaddleDetection中目前是V2版本,但官方没有给出技术报告,具体的改进大概是一下几点

  • backbone由ESNet替换为LCNet

  • neck由CSP-PAN替换为LCPAN

  • 标签分配由SimOTA替换为ATSS+TaskAlignedAssigner

参考

ShuffleNet v2

PP-LCNet 原理解析

SENet: Squeeze-and-Excitation Networks

GhostNet(CVPR 2020) 原理与代码解析

PANet(CVPR 2018)原理与代码解析

OTA: Optimal Transport Assignment for Object Detection 原理与代码解读-CSDN博客

VarifocalNet: An IoU-aware Dense Object Detector(CVPR 2021)原理与代码解析-CSDN博客

Generalized Focal Loss 原理与代码解析_self.reg_max是啥-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/321544.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

显示所有中国城市需要多少个汉字?

显示所有中国城市需要多少个汉字呢? 需要3678个汉字,看看我怎么知道的。 第一步:先找到中国的所有城市的名称 去哪里找到中国的所有城市的名称呢? 进入中国天气网:http://www.weather.com.cn/ 使用 F12 打开浏览器的调…

RK3399平台入门到精通系列讲解(实验篇)信号驱动 IO 实验

🚀返回总目录 文章目录 一、什么是信号驱动IO1.1、信号驱动IO1.2、fcntl 函数介绍二、信号驱动 IO 实验源码2.1、Makefile2.2、驱动部分代码2.3、测试应用代码一、什么是信号驱动IO 1.1、信号驱动IO 信号驱动 IO 不需要应用程序查询设备的状态,一旦设备准备就绪,会触发 SI…

spring 之 事务

1、JdbcTemplate Spring 框架对 JDBC 进行封装&#xff0c;使用 JdbcTemplate 方便实现对数据库操作 1.1 准备工作 ①搭建子模块 搭建子模块&#xff1a;spring-jdbc-tx ②加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency&…

Jetson Orin Nano_初识,关于板载资源

1、开发板上有什么 英伟达Jetson Orin Nano&#xff0c;内存8GB&#xff0c;算力40TOPS&#xff08;CPU&#xff09;固态硬盘128GB&#xff08;系统镜像以及文件存储&#xff09;千兆以太网口、无线网卡&#xff08;用来上网&#xff09;4个USB&#xff08;用来接鼠标键盘&…

机器学习(四) -- 模型评估(2)

系列文章目录 机器学习&#xff08;一&#xff09; -- 概述 机器学习&#xff08;二&#xff09; -- 数据预处理&#xff08;1-3&#xff09; 机器学习&#xff08;三&#xff09; -- 特征工程&#xff08;1-2&#xff09; 机器学习&#xff08;四&#xff09; -- 模型评估…

点餐群里的政财会人员薪资补贴 - 恶意钓鱼软件分析

一、薪资补贴EXE - ICO&#xff1a; 摸鱼日记&#xff1a;今天下午发现一位男士在点餐群里发了一个文件&#xff0c;并提醒称刚刚被远程控制&#xff0c;所以比较好奇的对文件弄了一弄&#xff1a; 下载解压后发现名为密码123_政财会人员薪资补贴调整.exe大小才203KB&#xff…

Apache Doris (六十): Doris - 物化视图

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

正定矩阵在格密码中的应用(知识铺垫)

目录 一. 写在前面 二. 最小值点 三. 二次型结构 四. 正定与非正定讨论 4.1 对参数a的要求 4.2 对参数c的要求 4.3 对参数b的要求 五. 最小值&#xff0c;最大值与奇异值 5.1 正定型&#xff08;positive definite&#xff09; 5.2 负定型&#xff08;negative defin…

Spring见解

1.Spring概述 1.1.Spring介绍 Spring是轻量级Java EE应用开源框架&#xff08;官网&#xff1a; http://spring.io/ &#xff09;&#xff0c;它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面&#xff1f; IOC 解决传统Web开发中硬编…

【机器学习基础】DBSCAN

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…

数据结构第一弹

简述数据结构&#xff0c;抽象数据结构和数据类型之间的异同。 数据结构&#xff0c;抽象数据结构和数据类型本质上来说是同一概念&#xff0c;数据类型是程序设计中实现了的数据结构&#xff0c;而抽象数据结构是数据类型的进一步抽象和发展&#xff0c;借助数据类型可以在程…

[Mac软件]Boxy SVG 4.20.0 矢量图形编辑器

Boxy SVG 是一款入门级矢量图形编辑器&#xff0c;具有全套基本功能、易于学习的选项卡式界面和可自定义的键盘快捷键。有了它&#xff0c;您可以轻松创建横幅、图标、按钮、图形、界面草图&#xff0c;甚至有趣的表情包。 编辑器支持使用多种工具创建和编辑矢量对象&#xff…