轻量检测模型NanoDet解析

news2024/11/26 14:51:44

官方解读:YOLO之外的另一选择,手机端97FPS的Anchor-Free目标检测模型NanoDet现已开源~ - 知乎

official implementation:

GitHub - RangiLyu/nanodet: NanoDet-Plus⚡Super fast and lightweight anchor-free object detection model. 🔥Only 980 KB(int8) / 1.8MB (fp16) and run 97FPS on cellphone🔥

Backbone 

backbone采用ShuffleNetV2-1.0x,采用stage2、3、4的输出作为neck的输入,下采样倍数分别为为8、16、32。ShuffleNetV2的具体介绍见ShuffleNet v2。

Neck

neck部分采用PAN的结构并进行了一些修改,原始PAN的具体介绍见PANet(CVPR 2018)原理与代码解析。backbone中C2~C4的输出通道数为[116, 232, 464],lateral_conv的输出通道为96。这里的修改主要是将bottom-up path中的下采样方式由stride=2的3x3卷积改成了和top-down path中上采样一样的方式,即双线性插值。

至于官方解读里提到的不同尺度特征融合之前yolo采用的是concatenate,这里采用的是add,原始PAN采用的也是add,因此也不算修改。

Head

head部分的改动比较多。RetinaNet、FCOS中FPN不同层级的输出进入同一个检测头,检测头分为分类、回归两个分支,每个分支首先是4个卷积层,然后分别是分类和回归的输出卷积层。YOLOX中采用的是decoupled head,不同FPN层级的输出接不同的检测头,检测头的内部结构和FCOS是一样的。RTMDet中不同FPN层级的输出共享卷积参数,但BN层独立。即不同层级FPN的输出还是进入不同的检测头,但不同检测头里两个分支的前4个卷积是相同的,但BN层以及最后的分类、回归的输出卷积层是独立的。

最后是nanodet,采用的是和YOLOX一样的decoupled head,但检测头内部不再分为分类和回归两个分支,前面的4个卷积改为2个,最后经过一个输出卷积层,然后沿通道split得到分类和回归的输出。

Label Assignment

标签分配采用的是ATSS,没有做修改,具体介绍见ATSS:Adaptive Training Sample Selection原理与代码解读。

Loss

损失函数采用的是Genreal Focal Loss,具体介绍见Generalized Focal Loss 原理与代码解析。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[LitCTF 2023]这是什么?SQL !注一下 !

[LitCTF 2023]这是什么?SQL !注一下 ! wp 题目描述:为了安全起见多带了几个套罢了o(▽)q 页面内容(往下滑): SQL 语句已给出,无非是更换了闭合方式。 先输个 1 试试: …

<HarmonyOS第一课>1~10课后习题汇总

HarmonyOS第一课 <HarmonyOS主题课>1~3课后习题汇总 1运行Hello World 判断题 main_pages.json存放页面page路径配置信息。(正确)DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。(正确) 单选题…

MS4553S用于开漏模式和推拉模式的 2bit 双向电平转换器,可替代TXS0102/PCA9306等

产品简述 MS4553S 是一款双向电平转换器,可以用作混合电压的数字信 号系统中。其使用两个独立构架的电源供电, A 端供电电压范围是 1.65V 到 5.5V , B 端供电电压范围是 2.3V 到 5.5V 。可用在电压为 1.8V 、 2.5V 、 3.3V 和 5V 的信号转…

vue3 vuedraggable draggable element must have an item slot

vue3vite 看官网使用这种<template #item“{ element }”> <draggablev-model"myArray"start"onStart"end"onEnd":sort"false"item-key"id"draggable".item"handle".mover" ><template…

3-sql注入之Mysql手工注入

文章目录 sql注入之Mysql手工注入sqli-labs数字型注入注入流程注入语句 sql注入之Mysql手工注入 练习靶场为sqli-labs第二关数字型注入 sqli-labs数字型注入 在url中输入id值&#xff0c;执行查询sql语句。即可得到对应数据 less-2源码分析&#xff1a; 浏览器 进行数据提交…

python旅游大数据分析可视化大屏 游客分析+商家分析+舆情分析 计算机毕业设计(附源码)Flask框架✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

关于目标检测任务中,XML(voc格式)标注文件的可视化

1. 前言 最近在弄关于目标检测的任务&#xff0c;因为检测的图片和标签是分开的&#xff0c;可视化效果不明显&#xff0c;也不知道随便下载的数据集&#xff0c;标注信息对不对。网上看了好多代码&#xff0c;代码风格和本人平时不同&#xff0c;看起来麻烦&#xff0c;也不知…

接了一条路由器视频广告

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 2023年7月&#xff0c;松松团队荣幸的承接了“某口袋路由器”的短视频广告。 我们向客户索取了了几个卖点&#xff1a; 1.家用美观不用走线(无线小巧美观) 外出便携(出差、户外直播、露营等&#xff0c;只要充满电…

Spring中的工厂类

目录 1.ApplicationContext 4.2.BeanFactory 1.ApplicationContext ApplicationContext的实现类&#xff0c;如下图&#xff1a; ClassPathXmlApplicationContext&#xff1a;加载类路径下 Spring 的配置文件 FileSystemXmlApplicationContext&#xff1a;加载本地磁盘下 S…

GO语言笔记1-变量与基本数据类型

变量使用步骤 声明赋值使用 package main import "fmt" func main(){var age int //声明一个 int类型的变量叫ageage 18 //给变量用 赋值fmt.Println(age) //使用变量 输出变量的值 } 编译运行输出变量值 变量的四种使用方式 package main import "fmt&q…

Linux系统使用超详细(六)~进程管理

目录 一、认识进程 二、进程号 2.1.进程号概念 2.2.进程号作用 三、进程查看 3.1. ps命令&#xff1a; 3.2. top命令&#xff1a; 3.3. htop命令&#xff1a; 3.4. pstree命令&#xff1a; 3.5. pgrep命令&#xff1a; 四、进程状态 五、进程优先级 六、进程优先…

C# 反射的终点:Type,MethodInfo,PropertyInfo,ParameterInfo,Summry

文章目录 前言反射是什么&#xff1f;常用类型操作SummryPropertyInfoMethodInfo无参函数运行 有参函数运行,获取paramterInfo 总结 前言 我之前写了一篇Attribute特性的介绍&#xff0c;成功拿到了Attribute的属性&#xff0c;但是如果把Attribute玩的溜&#xff0c;那就要彻…

一篇文章带你了解基于 Jenkins 流水线方式部署的好处

在软件开发过程中&#xff0c;部署是将代码从开发环境转移到生产环境的关键步骤。传统的部署方式可能涉及多个手动步骤和容易出错的过程。然而&#xff0c;基于 Jenkins 流水线方式部署可以带来许多好处&#xff0c;包括提高效率、一致性和可靠性。本文将探讨基于 Jenkins 流水…

k_d树, KNN算法学习笔记_1 距离和范数

k_d树, KNN算法学习笔记_1 距离和范数 二维树中最近邻搜索的示例。这里&#xff0c;树已经构建好了&#xff0c;每个节点对应一个矩形&#xff0c;每个矩形被分割成两个相等的子矩形&#xff0c;叶子对应于包含单个点的矩形 From Wikipedia 1&#xff0e; k k k近邻法是基本且简…

使用通用MCU实现无人机飞行任务的快速二次开发

使用通用MCU实现无人机飞行任务的快速二次开发 ---TIDronePilot外部控制offboard模式介绍 无名小哥 2024年1月1日 传统飞控二次开发方法和主要存在的问题简介 通过对前面几讲中《零基础竞赛无人机积木式编程指南》系列开发教程的学习可知&#xff0c;在以往TI电赛真题的学习…

简单多状态dp问题(打家劫舍Ⅱ)

通过分类谈论&#xff0c;将环形的问题&#xff0c;转化成两个线性的 “ 打家劫舍Ⅰ ” 1.状态表示 2.状态转移方程 3.初始化 f[ 0 ] nums[ 0 ] g[ 0 ] 0 4.填表顺序 从左往右填表&#xff0c;两个表一块填 5.返回值 max( f[ n-1 ] , g [ n - 1 ] )

VM安装虚拟机及初始化操作

一、VM下载及暗转 虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统&#xff0c;在实体计算机中能够完成的工作在虚拟机中都能够实现。VMware 是一款功能强大的桌面虚拟计算机软件&#xff0c;提供用户可在单一的桌面上同时运行不同的…

YOLOv8改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv8对小目标检测

一、本文介绍 本文给大家带来的改进机制是Gold-YOLO利用其Neck改进v8的Neck,GoLd-YOLO引入了一种新的机制——信息聚集-分发(Gather-and-Distribute, GD)。这个机制通过全局融合不同层次的特征并将融合后的全局信息注入到各个层级中,从而实现更高效的信息交互和融合。这种…

轻量化网络-MobileNet系列

整理备忘 目录 1. MobileNetV1 1.1 论文 1.2 网络结构 1.3 深度可分离卷积 1.4 计算量下降了 1.5 参数量下降了 2. MobileNetV2 2.1 论文 2.2 网络结构 2.3 效果 3. MobileNetV3 3.1 论文 3.2 网络结构 3.3 效果 1. MobileNetV1 1.1 论文 https://arxiv.org/a…

晨控CK-GW08-EC与欧姆龙PLC工业EtherCAT协议通讯指南

晨控CK-GW08-EC与欧姆龙PLC工业EtherCAT协议通讯指南 晨控CK-GW08系列是一款支持标准工业通讯协议EtherCAT的网关控制器,方便用户集成到PLC等控制系统中。系统还集成了8路读写接口&#xff0c;用户可通过通信接口使用EtherCAT协议对8路读写接口所连接的读卡器进行相对独立的读…