基于YOLOv5+C3CBAM+CBAM注意力的海底生物[海参、海胆、扇贝、海星]检测识别分析系统

news2024/11/22 16:33:10

在我前面的一些文章中也有用到过很多次注意力的集成来提升原生检测模型的性能,这里同样是加入了注意力机制,区别在于,这里同时在两处加入了注意力机制,第一处是讲CBAM集成进入原生的C3模块中,在特征提取部分就可以发挥注意力的作用,另一处是在Detect头前面加入CBAM模块,提升特征融合计算表达的能力,话不多说,首先看下效果图:

改进后的模型yaml文件如下:

#Parameters
nc: 4                           # number of classes
depth_multiple: 0.33            # model depth multiple
width_multiple: 0.50            # 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, C3CBAM, [128]],
   [-1, 1, Conv, [256, 3, 2]],        # 3-P3/8
   [-1, 6, C3CBAM, [256]],
   [-1, 1, Conv, [512, 3, 2]],        # 5-P4/16
   [-1, 9, C3CBAM, [512]],
   [-1, 1, Conv, [1024, 3, 2]],       # 7-P5/32
   [-1, 3, C3CBAM, [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, C3CBAM, [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, C3CBAM, [256, False]],               # 17 (P3/8-small)
   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],                  # cat head P4
   [-1, 3, C3CBAM, [512, False]],               # 20 (P4/16-medium)
   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],                  # cat head P5
   [-1, 3, C3CBAM, [1024, False]],              # 23 (P5/32-large)
   [-1, 1, CBAM, [1024]], 

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

这里的改进主要体现在BackBone和Head两部分。

首先是BackBone部分,如下:

其次是Head部分,如下:

这里的改动还是比较多的,不过理清逻辑对照着来处理就行了。

简答看下数据集,如下:

YOLO格式标注数据如下所示:

实例标注内容如下所示:

3 0.754861 0.383951 0.140278 0.180247
2 0.454167 0.150617 0.080556 0.088889
2 0.370139 0.104938 0.068056 0.076543
1 0.7625 0.892593 0.180556 0.214815
1 0.848611 0.785185 0.161111 0.296296
1 0.665278 0.624691 0.144444 0.237037
3 0.578472 0.520988 0.140278 0.182716
3 0.350694 0.497531 0.134722 0.224691
1 0.439583 0.522222 0.101389 0.160494
2 0.416667 0.660494 0.147222 0.22963
0 0.355556 0.897531 0.194444 0.204938
2 0.280556 0.848148 0.127778 0.17037
2 0.284028 0.732099 0.106944 0.17037
2 0.186806 0.781481 0.1125 0.219753
0 0.165278 0.633333 0.113889 0.08642
0 0.194444 0.597531 0.158333 0.128395
2 0.247917 0.490123 0.095833 0.135802
2 0.211111 0.404938 0.127778 0.182716
2 0.215972 0.307407 0.106944 0.106173
2 0.068056 0.191358 0.075 0.081481
2 0.130556 0.237037 0.127778 0.083951
1 0.119444 0.28642 0.088889 0.108642
0 0.029861 0.367901 0.056944 0.148148
0 0.095833 0.407407 0.088889 0.083951
2 0.113194 0.469136 0.123611 0.11358
1 0.053472 0.644444 0.101389 0.330864
1 0.094444 0.782716 0.152778 0.316049

VOC格式标注数据如下:

实例标注内容如下所示:

<annotation>
    <folder>UWA</folder>
    <filename>00b27110-7b71-4c33-aced-a73527a36cd9.jpg</filename>
    <source>
        <database>The UWA Database</database>
        <annotation>UWA</annotation>
        <image>UWA</image>
    </source>
    <owner>
        <name>YSHC</name>
    </owner>    
    <size>
        <width>720</width>
        <height>405</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>0</xmin>
            <ymin>128</ymin>
            <xmax>71</xmax>
            <ymax>248</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>82</xmin>
            <ymin>154</ymin>
            <xmax>160</xmax>
            <ymax>248</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>145</xmin>
            <ymin>186</ymin>
            <xmax>225</xmax>
            <ymax>284</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>70</xmin>
            <ymin>284</ymin>
            <xmax>196</xmax>
            <ymax>406</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>200</xmin>
            <ymin>290</ymin>
            <xmax>280</xmax>
            <ymax>406</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>271</xmin>
            <ymin>287</ymin>
            <xmax>351</xmax>
            <ymax>368</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>324</xmin>
            <ymin>136</ymin>
            <xmax>401</xmax>
            <ymax>219</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>294</xmin>
            <ymin>73</ymin>
            <xmax>360</xmax>
            <ymax>127</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>194</xmin>
            <ymin>71</ymin>
            <xmax>266</xmax>
            <ymax>140</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>186</xmin>
            <ymin>7</ymin>
            <xmax>236</xmax>
            <ymax>68</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>echinus</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>632</xmin>
            <ymin>84</ymin>
            <xmax>694</xmax>
            <ymax>156</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>scallop</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>533</xmin>
            <ymin>220</ymin>
            <xmax>579</xmax>
            <ymax>270</ymax>
        </bndbox>
    </object>
    
    <object>        
        <name>scallop</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>576</xmin>
            <ymin>124</ymin>
            <xmax>625</xmax>
            <ymax>184</ymax>
        </bndbox>
    </object>
    
</annotation>

默认执行100个epoch的迭代计算,日志输出如下:

训练完成,结果目录数据如下所示:

LABEL可视化:

F1值曲线和PR曲线:

混淆矩阵:

batch检测实例:

开发界面实现可视化推理计算,如下:

上传图像:

检测推理:

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

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

相关文章

Microsoft系统漏洞修复

近期收到服务器系统漏洞扫描&#xff0c;发现很多关于Microsoft本身的系统漏洞。 有很多新手不知道怎么去修复系统漏洞&#xff0c;害怕一旦修复出问题&#xff0c;自己要担责。 我这里讲解下怎么准备的去寻找漏洞&#xff0c;并把它修复的过程。 我已下列的漏洞为例&#x…

RK3588平台开发系列讲解(日志篇)syslog介绍

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、syslog介绍二、syslog的架构三、syslog日志组成四、syslog接口说明1、openlog2、syslog3、closelog五、syslog.conf接口说明1、selector2、level3、action4、示例沉淀、分享、成长,让自己和他人都能有所收获!&am…

计算机网络第三章

目录 1.数据链路层 1.数据链路层的基本概述 2.数据链路层的功能概述 3.封装成帧 4.差错控制 1.检错编码 2.纠错编码 5.流量控制 1.停止-等待协议 2.选择重传协议(SR) 3.后退N帧协议(GBN) 6.介质访问控制 1.静态划分信道(信道划分介质访问控制) 2.动态分配信道 7.局域网 8.链路…

【经验分享】美赛报名以及注册方法-以2023年美赛为例

首先点击COMAP的官网链接&#xff1a; https://www.comap.com/ 然后选择Contests目录下的MCM/ICM 选择 Learn More and Register 然后选择 Click here to register for the 2023 MCM/ICM contest 注册分为两个步骤&#xff1a;顾问&#xff08;指导教师&#xff09;注册和填…

uni-app中自定义TabBar

1.由于原生的tabBar不能做到事件的拦截处理所以才自定义 注意点&#xff1a;自定义tabBar后则原生的uni.switchTab(OBJECT)不能再使用了 第一步&#xff1a;需要把原生的tabBar注释掉 第二步&#xff1a;在components下新建TabBar.vue文件&#xff08;那个页面用那个页面引入…

RHCE-Web服务器在linux上的部署,了解hash算法以及常见的加密方式

目录 1.WEB服务器&#xff08;Web Server&#xff09; 浏览器 工作原理 常见状态码&#xff1a; www服务器的基本配置 2.web服务配置样例 3.了解hash算法以及常见的加密方式 hash算法&#xff1a; 常用HASH函数 处理冲突方法 常用hash算法的介绍&#xff1a; ssh协议…

Composition步骤

纲要&#xff1a; SWC属于AUTOSAR的Component文件夹下&#xff0c;而Composition属于Composition文件夹下。 AUTOSAR Project Structure Sample目录 1. Create Software Composition 2. Add SWC into Composition 3. Create AssemblyConnector between SWCs 1. Create Sof…

优化SpringBoot程序启动速度

Spring Boot 程序优化 一、延迟初始化Bean 一般在 SpringBoot 中都拥有很多的耗时任务&#xff0c;比如数据库建立连接、初始线程池的创建等等&#xff0c;我们可以延迟这些操作的初始化&#xff0c;来达到优化启动速度的目的。Spring Boot 2.2 版本后引入 spring.main.lazy-i…

【大数据hadoop】基于centos7搭建haoop与hive

一、前言 hadoop是大数据生态中的基础服务&#xff0c;也是其他大数据框架的基础运行环境&#xff0c;尤其是hdfs&#xff0c;是其他大数据框架的基础存储载体&#xff0c;因此系统学习和掌握hadoop对学习大数据很有必要&#xff1b; 而Hive则是Hadop生态系统中必不可少的一个数…

分布式任务介绍

分布式任务解决方案 Elastic-Job介绍 官网&#xff1a;http://elasticjob.io/index_zh.html 由当当网基于Quartz Zookeeper的二次开放产品 基于Zookeeper分布式锁&#xff0c;保证只有一个服务去执行定时任务。 基于Zookeeper实现了注册中心&#xff0c;自动帮助我们去调度指…

pgCluu 的安装、使用与实践

文章目录前言一、什么是 pgCluu二、pgCluu的安装流程静态模式动态模式三、pgCluu的用法pgCluu 用法pgCluu_collectd 用法&#xff1a;四、pgCluu的实操分享实操示例一&#xff1a;实操示例二&#xff1a;前言 PostgreSQL 的监控方法很多&#xff0c;数量越来越多的 PG 的监控再…

MFC输出普朗克常数

在量子力学中可以计算德布罗意波长&#xff0c;其公式如下&#xff1b; 德布罗意波长 h / (质量 * 速度&#xff09;&#xff1b; 其中h是普朗克常数&#xff1b; 先看一下普朗克常数&#xff1b;6.62 乘以10的负34次方&#xff1b; 输出一下此常数看一下&#xff1b; #de…

SpringCloud之Spring Cloud Config 分布式配置

Spring Cloud Config 分布式配置1. 分布式系统面临的配置文件问题2. Spring Cloud Config 分布式配置中心的概念3. Spring Cloud Config 分布式配置中心的作用4. Spring Cloud Config 分布式配置中心和 GitHub 整合5. 小案例Dalston.RELEASE Spring Cloud Config 为分布式系统…

Web3中文|Web3注定会成为元宇宙的一部分

“Web3”和“元宇宙”或许是2022年最热门的流行语了。在营销行话中、在广告中、在新闻报道中&#xff0c;Web3和元宇宙这两个概念总是被捆绑在一起。 但不得不说&#xff0c;二者经常被混为一谈是有原因的。因为它们都是定义模糊的新技术&#xff0c;都被认为是互联网的未来&a…

20230112在Ubuntu下看笔记本电脑电池的电量

20230112在Ubuntu下看笔记本电脑电池的电量 2023/1/12 17:24 ubuntu20.04 Xshell 7 (Build 0108) Copyright (c) 2020 NetSarang Computer, Inc. All rights reserved. Type help to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.168.186.228:22... Connecti…

知物由学 | 多级建模方法提升汉语语音识别效果,获ISCSLP大赛认可

导读&#xff1a;语音是人类信息沟通的重要途径&#xff0c;同时也是人机交互的重要桥梁&#xff0c;自动语音识别可以表述为通过计算机将人类语音信号转录为书面形式的文字输出的过程。本文分享了网易易盾提出的多级建模单元的端到端汉语语音识别方法及具体的落地实践。 1.语…

什么是虹科weeve边缘计算软件平台?

一、前言 随着越来越多的企业希望进入物联网领域&#xff0c;他们在构建和部署物联网项目时面临着前所未有的挑战。根据思科的一项调查表明&#xff0c;超过60&#xff05;的受访者承认他们严重低估了管理自己的物联网计划的复杂性。更令人震惊的是&#xff0c;同一调查还发现…

MongoDB副本集搭建和读写分离配置

MongoDB副本集&#xff08;Replication Set&#xff09;由一组mongod实例(进程)组成&#xff0c;包含一个Primary节点和多个Secondary节点.客户端数据写入Primary节点。Secondary节点从Primary节点同步数据。以保持副本集内所有成员存储相同的数据集。Primary节点故障时会自动选…

C++ 居然超过了 Python?

很难想象&#xff0c;从 1983 年被正式命名开始算起&#xff0c;已经走过整整四十年光阴的 C&#xff0c;居然力挫 C、Python&#xff0c;摘得了 TIOBE 2022 年度编程语言的桂冠。据 TIOBE 官网显示&#xff0c;在过去一年里&#xff0c;C 因为涨幅最大&#xff0c;为 4.62%&am…

论文投稿指南——中文核心期刊推荐(海洋学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…