融合注意力模块CBAM基于轻量级yolov5n开发共享单车目标检测系统

news2024/11/26 4:25:38

在很多的项目实战中验证分析注意力机制的加入对于模型最终性能的提升发挥着积极正向的作用,在我之前的一些文章里面也做过了一些尝试,这里主要是想基于轻量级的n系列模型来开发构建共享单车检测系统,在模型中加入CBAM模块,以期在轻量化的基础上进一步提升模型的检测性能。首先来看下效果图:

这里数据集的目标对象只有一个就是:bicycle(共享单车)

使用的模型yaml文件如下:

#Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.25  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32


#Backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]


#Head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
   [-1, 1, CBAM, [1024]],

   [[17, 20, 24], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

这里在检测头前面加入了CBAM模块,同时最终的层索引号也要加1处理变成了24。

简单看下数据情况:

都是平时比较场景的路边室外的拍摄素材。

VOC格式标注数据文件:

YOLO格式标注数据文件:

默认设定100次epoch计算,我是在CPU模式下面进行训练的,日志输出如下所示:

结果目录数据如下所示:

标签可视化如下:

F1值曲线和PR曲线:

混淆矩阵:

检测实例如下:

后续使用基于专门的界面实现推理可视化如下所示:

上传图像:

推理检测:

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

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

相关文章

web自动化测试---使用java+selenium+Junit

目录 1.什么是自动化以及为什么要进行自动化 2.为什么选择selenium作为web自动化工具 3.selenium环境部署 4.什么是驱动以及驱动的原理 5.selenium的基础语法和操作 5.1定位元素 5.2元素的操作 5.3等待 5.4信息打印 5.5窗口 5.6导航 5.7弹窗 5.8鼠标、键盘操作 5.…

Python + Appium 自动化操作微信入门

Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语言。 Appium 封装了 Selenium,能够为用户提供所有常见的 JSON 格式的 Selenium 命令以及额外的移动设备相关的控制命令,…

虚拟化技术

虚拟化 虚拟化技术 目前虚拟化技术有软件模拟、全虚拟化(使用二进制翻译)、半虚拟化(操作系统辅助)、硬件辅助虚拟化和容器虚拟化这几种。 (1)软件虚拟化 软件模拟是通过软件完全模拟cpu、芯片组、磁盘、…

Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)

参考链接:https://blog.csdn.net/xiaobai_20190815/article/details/124045768 http://news.558idc.com/290335.html Java 安全-手把手教你SPEL表达式注入_4ct10n的博客-CSDN博客_spel注入 一、漏洞描述 Spring Cloud Gateway 是基于 Spring Framework 和 Spring…

组学新品|“4K”微生态之肠道菌群深度宏基因组

1.“4K”微生态定义 人体微生物群是人体内部与体表所有微生物有机体的总称[1],其组成包括非细胞结构的病毒(包括噬菌体)、原核生物中的真细菌和古细菌,以及真核细胞微生物。与之对应,微生物群可以分为病毒群、细菌群、…

Redis未授权访问漏洞(二)Webshell提权篇

前言 在学习这篇文章之前,请先通过这篇文章Redis未授权访问漏洞(一)先导篇学习一下基础知识,再来学习这篇文章。 webshell提权 环境准备 攻击机: Centos7 IP:192.168.44.130 靶机:Centos7 IP:192.168.44.129 首先我们需要准备好…

QuartzNet的基本使用,Scheduler,Job,Trigger的应用

Quartz.Net的基本使用方法 Quartz.Net的基本使用是比较简单的,主要是对下面三个工具的创建和使用。 Scheduler调度器Job执行的动作Trigger触发器 Scheduler的创建和使用 scheduler的创建有几种不同的方式,但一般可以直接使用其提供的工厂类直接创建 通过工厂类…

分享92个NET源码,总有一款适合您

NET源码 分享92个NET源码,总有一款适合您 92个NET源码下载链接:https://pan.baidu.com/s/1Ya4GMXuHhNbqkLU5b7SPEw?pwd5vpx 提取码:5vpx 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&…

【指针面试题】-还在为学过指针的理论只是不会实践吗??赶紧来看看这里讲解了许多指针的面试题,带你更好掌握指针!!!

🎇作者:小树苗渴望变成参天大树 🧨作者宣言:认真写好每一篇博客 🎊作者gitee:link 🎉指针笔试题详解💥前言💦一、指针和数组面试题解析💨1.1一维数组💢1.2字…

Episode 01 密码技术基础

一、加密和解密&&发送者、接收者和窃听者 发送者:发出消息的人 接收者:接收消息的人 窃听者:恶意获取消息的第三方 加密:发送者将明文转换为密文 解密:接收者将密文还原为明文 破译:接收者以外…

客流统计系统为什么深受门店商户的喜爱?

人数或人群流动信息进行精确的统计分析,而且还可以利用这些高精度的数据,还能获得该区域精确的客流量信息,实现有效合理的组织运营工作,提升工作效益,帮助使用者开展更有成效的组织工作。客流统计系统内置高性能CMOS图…

同源跨域的概念与实现跨域的几种方案

本文将结合周老师的讲义对同源与跨域这一前端经典问题进行系统的总结、整理。一起来坐牢,快! 1. 同源限制 1.1 历史背景 - 含义的转变 1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。 最初&…

【无标题】javaEE初阶---多线程(面试常用)

这篇文章 , 我将主要介绍多线程进阶部分的内容 . 主要涉及到一些在面试中常考的内容。 一:常见的锁策略 1.1乐观锁和悲观锁 乐观锁 : 预测接下来发生锁冲突的可能性不大 , 而进行的一类操作; 悲观锁 : 预测接下来发生锁冲突的可能性很大 , 而进行的一类操作.乐观锁 : 假设数…

ClassIn:如何打造更稳定的Zabbix监控系统

作者简介:罗呈祥。现就职于北京翼鸥教育科技有限公司,负责数据库相关的运维管理和技术支持工作,擅长故障处理和性能优化,对分布式数据库也有深入研究。 近期,OceanBase 社区发布了一篇关于我们公司选型分布式数据库的文…

bilateral_filter 双边滤波器详细用法

一、双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。其输出像素的值依赖于邻域像素的值的加权组合。 从效果来说,双边滤波可产生类似美肤的效果。皮肤上的皱纹和斑,与正常皮肤的差异,远小于黑白眼珠之间的差异…

13种Shell逻辑与算术,能写出5种算你赢!

相较于最初的 Bourne shell,现代 bash 版本的最大改进之一体现在算术方面。早期的 shell 版本没有内建的算术功能,哪怕是给变量加1,也得调用单独的程序来完成。 1、算术方法一: $(( )) 只要都是整数运算,就可以在 $(…

DHT11温湿度传感器初识

目录 一、产品概述 1、接线方式 2、特点 3、数据传送逻辑 二、发送时序检测模块是否存在 1、C51单片机(主机)时序分析 2、编写代码检测模块是否存在 3、读取DHT11数据的时序分析 三、温湿度通过串口传到PC显示 四、温湿度检测小系统——使数据…

Discrete Opinion Tree Induction for Aspect-based Sentiment Analysis 论文阅读笔记

一、作者 Chenhua Chen、Zhiyang Teng、Zhongqing Wang、Yue Zhang School of Engineering, Westlake University, China Institute of Advanced Technology, Westlake Institute for Advanced Study Soochow University 二、背景 如何为每一个方面词定位相应的意见上下文…

反补码运算之 “1 - 1 = - 1 ” ?

我们在研究数据的二进制表示时遇到这样一个问题: 由于计算中的CPU只有加法器,没有减法器,所以在计算机采用原码做减法时对于:1 - 1 0 相当于1 (-1),用二进制表示为:000110011001。…

儿童感染新冠病毒后发高烧如何应对?专家来支招

儿童感染新冠病毒后发热较多,但肺炎发展较少儿童感染新冠病毒后发高烧,是重症吗?徐红梅:从目前的接待情况来看,儿童感染新冠病毒后比成人发烧。超过一半的儿童在感染后有发烧症状,伴有咳嗽、鼻塞、流鼻涕、…