【YOLO改进】换遍MMDET主干网络之MobileNetv2(基于MMYOLO)

MobileNetv2

MobileNetV2是一种专为移动和嵌入式视觉应用设计的轻量化网络结构。它在MobileNetV1的基础上引入了两个主要的创新点:反转残差结构(Inverted Residuals)和线性瓶颈层(Linear Bottlenecks)。

  1. 反转残差结构:与传统的残差块结构不同,MobileNetV2的反转残差结构首先通过1×1的卷积操作增加特征通道数(即“扩张”),然后再通过一个轻量级的深度卷积(Depthwise Convolution)进行特征提取,最后通过1×1的卷积操作减少特征通道数(即“压缩”)。这种设计可以在保持模型轻量级的同时,提高特征的表征能力。
  2. 线性瓶颈层:在残差块的最后一个1×1卷积之后,为了避免ReLU激活函数对特征的破坏,MobileNetV2使用了线性激活函数。这样可以更好地保留特征的信息,有助于提高模型的性能。

MobileNetV2作为YOLO主干网络的可行性分析

  1. 性能优势:MobileNetV2作为一种轻量级的网络结构,具有较小的模型大小和较快的推理速度,这使得它非常适合作为实时目标检测任务中YOLO的主干网络。同时,由于其优秀的特征表征能力,MobileNetV2可以提取到丰富的图像特征信息,有助于提高目标检测的精度和效率。
  2. 兼容性:YOLO算法本身是基于卷积神经网络的,而MobileNetV2也是一种基于卷积神经网络的模型。因此,将MobileNetV2作为YOLO的主干网络具有很好的兼容性。通过合理地设计网络结构和参数设置,可以将MobileNetV2与YOLO的检测头进行有效地融合,形成完整的目标检测模型。
  3. 优化与改进:虽然MobileNetV2已经具有很好的性能表现,但在实际应用中还可以根据具体任务需求进行进一步的优化和改进。例如,可以通过调整网络深度、宽度和卷积核大小等参数来平衡模型的性能和速度;也可以采用一些先进的优化技术(如剪枝、量化等)来减小模型的参数量和计算量,进一步提高模型的实时性和部署能力。

替换MobileNetV2(基于MMYOLO)

OpenMMLab 2.0 体系中 MMYOLO、MMDetection、MMClassification、MMSelfsup 中的模型注册表都继承自 MMEngine 中的根注册表,允许这些 OpenMMLab 开源库直接使用彼此已经实现的模块。 因此用户可以在 MMYOLO 中使用来自 MMDetection、MMClassification、MMSelfsup 的主干网络,而无需重新实现。

假设想将MobileNetV2''作为 'yolov5' 的主干网络,则配置文件如下:

_base_ = './yolov5_s-v61_syncbn_8xb16-300e_coco.py'deepen_factor = _base_.deepen_factor
widen_factor = 1.0
channels = [32, 96, 320]model = dict(backbone=dict(_delete_=True, # 将 _base_ 中关于 backbone 的字段删除type='mmdet.MobileNetV2',# 使用 mmdet 中的 MobileNetV2out_indices=(2, 4, 6),act_cfg=dict(type='LeakyReLU', negative_slope=0.1),init_cfg=dict(type='Pretrained', checkpoint='open-mmlab://mmdet/mobilenet_v2')),neck=dict(type='YOLOv5PAFPN',deepen_factor=deepen_factor,widen_factor=widen_factor,in_channels=channels, # 注意:MobileNetV2 输出的3个通道是 [32, 96, 320],和原先的 yolov5-s neck 不匹配,需要更改out_channels=channels),bbox_head=dict(type='YOLOv5Head',head_module=dict(type='YOLOv5HeadModule',in_channels=channels, # head 部分输入通道也要做相应更改widen_factor=widen_factor))
)

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

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

相关文章

Linux fsck.ext2命令教程:如何检查和修复ext2文件系统(附实例详解和注意事项)

Linux fsck.ext2命令介绍 fsck.ext2是一个用于检查和(可选)修复Linux ext2/ext3/ext4文件系统的命令。当ext2文件系统发生错误时,可以使用fsck.ext2命令尝试进行修复。 Linux fsck.ext2命令适用的Linux版本 fsck.ext2命令在大多数Linux发行…

yolov8任务之目标检测

对象检测 对象检测是一项涉及识别图像或视频流中对象的位置和类别的任务。对象检测器的输出是一组包围图像中对象的边界框,以及每个框的类标签和置信度分数。当您需要识别场景中感兴趣的对象,但不需要确切知道对象在哪里或其确切形状时,对象检…

我独自升级崛起账号注册 我独自升级怎么注册账号

近期,《我独自升级》这部动画凭借爆棚的人气,在各大平台上掀起了一阵观看热潮,其影响力不容小觑。借此时机,韩国游戏巨头网石集团敏捷响应,顺势推出了同名游戏《我独自升级:ARISE》,为粉丝们搭建…

SLAM种的回环检测

SLAM,即同步定位与建图,是一种在未知环境中,通过传感器(如相机、激光雷达等)进行自身定位与环境地图构建的技术。其中,回环检测是SLAM中的一个重要环节。 回环检测的主要目的是识别机器人是否回到了之前访…

webpack配置、插件使用案例

概念 本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个 bundles&…

关闭vscode保存自动格式化的功能

1 首先打开设置 搜索:editor.formatOnSave 取消勾选框 2 再打开 settings.json 搜索 editor 找到 settings.json 设置: "editor.formatOnSave": false

Java并发控制:深入解析Java BlockingQueue的用法与实践

1.BlockingQueue概述 1.1 BlockingQueue的定义与用途 BlockingQueue是一个支持两个附加操作的Queue,即在队列为空时获取元素的线程会等待队列变为非空,当队列满时存储元素的线程会等待队列可用。这主要用于生产者-消费者场景,其中生产者不能…

算法day02

1、202. 快乐数 如上题所述: 在该题意规则下,所有的数字变化会有两种情况,其一最后是有的会变化成恒为1的数;其二是有的数会变化会呈现成有规律的环,分别如下图所示: 可以近似的理解为图一就是一个环&#…

态、势、感、知四部分的注意力模型的融合

态、势、感、知在抢占注意力时往往是通过自身具有吸引力、引发情感共鸣或启发思考等方式来引起人们的注意和关注。态、势、感、知在抢占注意力方面的作用可以分别描述如下: 态:人们通常会被某种特定的姿态或面部表情所吸引,因为姿态能够传达出…

JVM堆内存分析

jmap工具查看堆内存 jmap:全称JVM Memory Map 是一个可以输出所有内存中对象的工具,可以将JVM中的heap(堆),以二进制输出成文本,打印出Java进程对应的内存 找到pid jmap -heap 19792 Attaching to process ID 19792…

(十五)Java 之方法

目录 一. 前言 二. Java 方法 2.1. 什么是方法 2.2. 方法的定义 2.3. 方法的调用 2.4. void 关键字 2.5. 通过值传递参数 2.6. 方法的重载 2.7. 变量作用域 2.8. 命令行参数的使用 2.9. 构造方法 2.10. 可变参数 2.11. finalize() 方法 三. 课后习题 一. 前言 方…

[Redis] 使用布隆过滤器和分布式锁实现用户注册

布隆过滤器(Bloom Filter)是一种数据结构,用于快速判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和一个位数组来表示一个集合,当一个元素被加入到集合时,通过哈希函数计算出多个哈希值,并…

windows10鼠标右键添加idea打开文件

在Windows系统中,你可以通过修改注册表来为鼠标右键菜单添加新的打开方式,比如IDEA。以下是具体的操作步骤: 打开注册表编辑器:按下WinR键,输入regedit并回车,即可打开注册表编辑器。定位到指定路径&#…

怎么清理服务器的C盘?

有时候我们经常会遇到C盘被占满的情况,C盘被占满的原因有很多,下面我们就来分析下有可能导致C盘占满的原因: 第一种情况:中毒 打开服务器任务管理器选择进程,并且勾选显示所有用户的进程,我们可以点击映像…

docker安装部署FastGPT

一:FastGPT介绍 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! 官网地址:https://fastgpt.in/zh …

【力扣】143. 重排链表

143. 重排链表 题目描述 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要…

python列表相关命令

在我们的一生中,没有人会为你等待,没有机遇会为你停留,成功也需要速度。 Python中的列表(List)是一种非常灵活且常用的数据结构,它可以容纳任意数量的元素,并且支持混合类型。下面让我来介绍一下…

Fastgpt知识库接入oneapi和自定义大模型

本期教程教大家训练自己的知识库回答chatgpt回答不了的问题 FastGPT 是一个知识库问答系统,可以通过调用大模型和知识库回答特定的问题 可以做成专属 AI 客服集成到现有的APP或者网站内当作智能客服支持网络爬虫学习互联网上的很多知识可以通过flow可视化进行工作流程编排 本期…

【spark】win10 pyspark3.5.1 安装超级简单

下载地址:https://spark.apache.org/downloads.html 下载完成: 复制文件到自己的路径下,路径最好不要有中文、空格; 解压tgz文件: 修改环境变量: 创建SPARK_HOME: D:\software_download\spar…

Facebook之道:探索社交媒体领域的未来

随着科技的不断发展,社交媒体已经成为我们日常生活中不可或缺的一部分。而在这个领域中,Facebook一直是引领者和领头羊。然而,随着时间的推移,社交媒体领域正在发生着翻天覆地的变化,而Facebook又将何去何从&#xff1…