YOLOV5融合SE注意力机制和SwinTransformer模块开发实践的中国象棋检测识别分析系统

news2024/11/26 4:23:13

本文紧接前文:

《基于yolov5s实践国际象棋目标检测模型开发》

《yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五子棋检测识别》

首先来看下最终效果:

 在我棋类检测系统开发之——五子棋检测那篇博文写完之后就萌生了想做一下基于目标检测模型实现中国象棋检测的项目,但是后来苦于没有找到合适的数据集一直没法去做,在查资料的时候了解到了还有国际象棋,后面爬取了一部分的国际象棋数据集做了一个基于yolov5s的国际象棋检测模型,数据集本身质量不高且数据量很少所以做出来的效果也很一般。

今天专门花了几个小时来构建数据集,虽说是暂时还没有拿来真实对弈棋盘的中国象棋数据,那个我觉得可以直接去4399之类的游戏网站录屏,然后玩几把游戏,把视频切图即可,后面这个也会找时间做一下看看。今天主要是基于生成的中国象棋类的目标检测数据集来开发构建目标检测模型,一方面是早就想做中国象棋检测了,另一方面也是因为想做一点模型改造融合之类的工作,正好两件事情合并在一起做了。

这里基准模型我选择的是yolov5s系列的模型,在backbone加入了se注意力机制和swintransformer机制,形成新的C3SE模块和C3STR模块,模型完整yaml文件如下所示:

#Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple



#Anchors
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, C3SE, [128]],           #2
   [-1, 1, Conv, [256, 3, 2]],     # 3-P3/8
   [-1, 6, C3SE, [256]],           #4
   [-1, 1, Conv, [512, 3, 2]],     # 5-P4/16
   [-1, 9, C3SE, [512]],           #6
   [-1, 1, Conv, [1024, 3, 2]],    # 7-P5/32
   [-1, 3, C3STR, [1024]],         #8
   [-1, 1, SPPF, [1024, 5]],       # 9
  ]



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

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

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

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

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

接下来看下对应的数据集如下所示:

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

 VOC格式标注数据文件格式如下:

 这里一共创建了2000张样本数据。

完成数据集构建之后就可以启动模型训练了,终端日志输出如下所示:

 默认执行100epoch的计算,可以看到最终的效果还是可以的。

结果数据如下:

 接下来简单看下对应的指标评估可视化,如下所示:

 batch检测实例如下所示:

 

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

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

相关文章

WebDAV之葫芦儿·派盘+BubbleUPnP

BubbleUPnP 支持WebDAV方式连接葫芦儿派盘。 推荐一款投屏神器,它将手机内容分享到电视大屏上与家人好友一起共享,软件还提供了丰富的音乐及影视资源,喜欢的内容在线搜索就能播放。支持连接葫芦儿派盘WebDAV服务站,可以直接播放派盘内的影视资源。 BubbleUPnP是一款支持U…

水文监测系统-水文监测站构成 设备 功能 特点介绍以及案例分享

平升电子水文监测系统实现对江河流域水位、降水量、流量、流速、水质、闸门开启度、墒情等数据的实时采集、报送和处理。为防汛抗旱减灾提供科学依据和有效信息共享,保障人民群众生命财产安全,满足水利和经济社会发展对水文服务的需求。 2022年1月&#…

web前端-javascript-百炼成仙(第1节掌握JavaScript基础1.1-1.21)

文章目录1.1 第一章 初入宗门1.2 第二章 直接量1.3 第三章 数据类型1.4 第四章 数据类型扩展内容:1.5 第五章 基础考核1.6 第六章 何老1.7 第七章 对象数据类型1.8 第八章 对象的取值1.9 第九章 循环遍历的奥妙小结:For 循环1.10 第十章 对象内容的遍历1.11 第十一章…

Linux软件包管理之rpm与yum

Linux软件包管理之rpm与yum1.Linux rpm 命令2.rpm包的管理3.yum包管理(强推)1.Linux rpm 命令 Linux rpm 命令用于管理套件。 rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux…

高端运动耳机哪个品牌最好、最好的运动耳机品牌排行

蓝牙耳机近几年受到市场的欢迎,种类越来越多,各类功能也日益五花八门,消费者很难准确的进行分辨,一不小心可能买到华而不实的产品。现在了解一下值得入手的蓝牙耳机,从多个角度对蓝牙耳机进行评估后,得出以…

android 权限常见错误,onRequestPermissionsResult回调不执行问题

今天在调试一个fragment时,申请到权限,然后在权限回调里面做相应的dialog提示用户,但是发现一直无弹窗。 话不多说,直接上问题代码 private void testRxPermissions() {ActivityCompat.requestPermissions(this.getActivity(), ne…

ajax学习

1.什么是ajax(局部刷新) 2.原生ajax WebServlet("/ajaxServlet") public class AjaxServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException…

基于uniapp的药品商城外卖小程序

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

利用OpenCV的函数warpPerspective()作图像的透视变换

图像的透视变换是指按照物体的成像投影规律进行变换。通过透视变换可以将图像投影到新的成像平面上。 图像的透视变换通常用来解决相机的视线与物体所在平面不垂直的问题。 比如,下面这幅图中,如果相机的视线与正方形是垂直的,那么应该是下面…

改bug神器,ChatGPT分分钟扫描,真香!

最近ChatGPT大火,各大论坛中都会出现它的关键词。 机器和人对话本不是什么新鲜事,而ChatGPT上线仅5天,用户数量就超百万,之所以能在短时间吸引到这么多用户尝鲜,是因为它比“人工智障”的AI前辈们聪明多了~ 玩了一会…

T900------900MHz跳频电台核心模块(兼容P900,远距离)

(咨询申请 - 上海皕科电子有限公司--专注物联网注册后,可以获取详细数据手册和评估工具) 目录 1 概述 2 性能特点 3 硬件说明 4 整机介绍 1 概述 T900 模块使用点对点(PP)、点对多点(PMP&#xff0…

浅析几种常见的诊断数据库——ARXML

分别回忆了常见诊断数据库CDD、ODX文件格式,今天主要介绍另外一种常用的数据库文件格式——ARXML(主要应用于AUTOSAR流程数据交互) AUTOSAR诊断提取模板——ARXML AUTOSAR是汽车开放系统架构,该架构有利于车辆电子系统软件的交互与更新,并为高效管理复杂的车辆电子和软件…

Linux 管理联网 配置静态解析 域名解析

问题引入 # 我们平时在网址栏访问网址的时候, 比如 : 访问 百度 的时候,是怎样访问的 ? >>> 那是不是就是在 地址栏 我们输入 www.baidu.com 随后就跳转到 百度的页面去了~! 但实际是 : >&g…

MySQL-事务

文章目录事务(Transaction)为什么会出现事务ACID四大属性事务提交的方式事务基本操作:事务隔离级别(MVCC)隔离级别:如何理解隔离性?为何要存在隔离级别?一致性读读并发写写并发读写并…

机器学习基础概念篇 | 10大经典算法

“数据算法模型”。 面对具体的问题,选择切合问题的模型进行求解十分重要。有经验的数据科学家根据日常算法的积累,往往能在最短时间内选择更适合该问题的算法,因此构建的模型往往更准确高效。本文归纳了机器学习的10大算法,并分别…

FIX:WIN11客户机完美支持 Eyeshot Fem 最新Crack

概述 将 CAD 功能添加到您的 .NET 应用程序 Eyeshot 是一个基于.NET Framework 的CAD 控件。它允许开发人员快速将 CAD 功能添加到 WinForms 和 WPF 应用程序。Eyeshot 提供了从头开始构建几何体、使用有限元方法对其进行分析并在其上生成刀具路径的工具。还可以使用 CAD 交换…

Ubuntu安装Tango教程

文章目录环境步骤其他指令参考环境 虚拟机:VMware Ubuntun:20.04LTS Tango:9.3.4 步骤 为tango-controls安装: sudo apt-get install g openjdk-8-jdk mariadb-server libmariadb-dev zlib1g-dev libomniorb4-dev libcos4-dev omniidl li…

RPM包制作

如何准备编译制作一个RPM包 编译制作RPM包,主要包含如下几个步骤: 规划好制作一个什么样的RPM包 搜集相关的软件和压缩包、补丁 创建SPEC文件 制作RPM包 测试验证RPM包规划好制作一个什么样的RPM包 一般情况下,有如下几种情况会需要制作RPM包 应用程…

MySQL中Innodb 存储引擎的Buffer Pool详解

MYSQL的InnoDB存储引擎为了提高性能,减少磁盘IO,而设计了缓冲池(Buffer Pool)。结构图如下: Buffer Pool 什么是Buffer Pool Buffer Pool即缓冲池(简称BP),BP以Page页为单位&#x…

详解Lombok 的使用,工作原理,优缺点

文章目录Lombok概述Lombok的安装Lombok的具体使用Lombok工作原理Lombok的优缺点Lombok概述 相信大家对于lombok应该都不陌生,Lombok是一个可以大幅减少java模板代码的工具。通俗一点来说,通过添加注解的方式,不需要为类编写常用几个方法&…