【RK3588部署yolo】算法篇

简历描述

· 收集并制作军事伪装目标数据集,包含真实与伪装各种类型军事目标共计60余类。其中,包含最新战场充气伪装军事装备30余类,并为每一张图片制作了详细的标注。
· 针对军事伪装目标的特点,在YOLOv8的Backbone与Neck部分分别加入分组动态感知注意力、跨通道信息交互模块,显著提升了军事伪装目标的识别精度。

YOLO

YOLOv1

2016cvpr
作者在v3之后由于军方用不干了,后续由别人开发
在这里插入图片描述

在这里插入图片描述

YOLOv2

在这里插入图片描述

  • 高分辨率如图

在这里插入图片描述

  • 加了BN
  • 引入锚框
    中心点偏移权重来算长宽,让他不全图乱跑
    锚框中心点双重约束使得收敛变快

锚框是针对每个图像网格单元(grid cell)定义的,而不是针对整个图像。具体来说,YOLOv2(以及YOLO系列的其他版本)在训练时,对于每个网格单元,会使用多个锚框来预测目标的边界框。
具体解释:
每个网格单元有多个锚框:在YOLOv2中,目标图像被分成一个S x S的网格,每个网格单元负责检测某个区域内的目标。每个网格单元上会预测多个边界框(通常是5个),这些框的初始形状(宽高)是由预定义的锚框确定的。
锚框的数量与每个网格单元的预测数目:每个网格单元会用5个锚框来做预测,这些锚框是根据训练数据中目标的尺度和宽高比预先确定的(通常通过K-means聚类)。因此,每个网格单元的5个锚框是针对该网格位置的不同尺度和不同宽高比的预测框。
举个例子:
假设你有一个416x416的图像,并且网络将其划分为13x13的网格(即每个网格的大小为32x32像素)。那么:
图像的每个网格单元都有5个锚框(这5个锚框的尺寸是根据聚类或其他方法确定的)。
每个网格单元会预测5个边界框,每个框对应一个锚框。网络会根据实际物体的位置、尺寸以及锚框的预设位置来进行回归调整。
锚框和目标物体匹配:
目标物体与网格单元的锚框之间会根据**IoU(Intersection over Union)**来进行匹配。
对于每个物体,选择与其匹配度最高的锚框。
该锚框会预测物体的边界框。实际预测的边界框会根据锚框的位置、宽高进行调整(回归)。
为什么每个网格单元有多个锚框?
不同的目标物体具有不同的尺寸、形状(宽高比),单一的锚框无法涵盖所有物体的特征。因此,YOLOv2设计了每个网格单元使用多个锚框来应对这些变化。多个锚框可以有效地覆盖不同尺度和不同形状的物体,从而提高目标检测的准确性。
总结:
每个网格单元都有多个锚框(通常是5个)。
这些锚框是根据数据集中的目标物体的尺寸和宽高比来预定义的,目的是帮助模型更好地预测不同尺度和形状的物体。

  • 采用特征融合,A+B,残差连接类似于resnet
  • 把图像缩放不同尺寸输入训练

YOLOv3
在这里插入图片描述

maxpoll换成卷积,加残差连接
在这里插入图片描述

多个检测头,针对大、中、小物体
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

YOLOv4

  • 改进

在这里插入图片描述

  • spp、pan
    在这里插入图片描述

在这里插入图片描述
pan就是一个思想,深层和主干网络的融合
spp就是多感受野一个模块

  • 数据增强

在这里插入图片描述
图示已经很清楚的说明了两个图像增强策略是什么
在这里插入图片描述
相当于在正向的时候给图片加噪声,提升鲁棒性
在这里插入图片描述
改进了归一化方法,这里不赘述
在这里插入图片描述
将标签变成软平滑标签,解决梯度问题
在这里插入图片描述
换了激活函数,如图详细说明了他更平滑
在这里插入图片描述
如图很详细说明了一些原因,不赘述
在这里插入图片描述
如图说明很清楚
在这里插入图片描述
在这里插入图片描述

Iou、GIou、DIou属于不断解决原有loss的问题
CIou(DIou pro)属于在原有的loss上加功能
在这里插入图片描述
在这里插入图片描述

消除网格敏感性:让bx,by的范围变大,然后会出现如下情况
在这里插入图片描述

中心点不再限制在一个格子里,相当于三个格子做预测,又有正样本 阈值去筛选,所以就正样本变多了

YOLOv5

无论文
只有代码
但是代码很具备工业可用性
yolov5 有 n、s、m、l、x不同大小的版本
在这里插入图片描述
在这里插入图片描述

  • 整体概述:
    上来肯定是backbone提取不同层级的这个特征,至于backbone肯定是自己选
    neck就是一个融合的模块罢了,他的策略就是一条贪吃蛇
    先不断下采样再不断上采样,其中不断上采样涉及到解码
    不断下采样也是通过一些模块就行堆叠,这其中可以控制网络深度
    其次就是引入pan思想,也可理解为是一个不同层级特征去进行重组(在neck中融合 的一种方法),其实是很普遍的方法。
  • 数据增强变成用Mixup、另外一个方法还是用Mosaic
  • 加入一些训练策略
    在这里插入图片描述
  • 损失函数
    用的CIoU
  • 同v4有消除网格敏感性,但正样本锚框筛选不用IoU了,用他自己的方法,如下图
    在这里插入图片描述
    在这里插入图片描述
    根据GT的长宽的比例倍数去筛选锚框,不能太大也不能太小

YOLOv8

无论文,只有代码
由Ultralytics公司2023年1.10发布
支持obb任务(无人机图像斜着框如下图,这是我们项目中旋转的重要原因)
在这里插入图片描述yolov8

yolov8创新点

在这里插入图片描述

yolov8结构图与改进思路

在这里插入图片描述
在yolov8.yaml文件中,网络尺寸大小是是和depth_multiple 和width_multiple 参数控制的!
在这里插入图片描述
换neck部分的两个中间的c2f模块为分组动态感知注意力
在backbone里面加入TSC挖掘模块并融合
在这里插入图片描述

yolov8重大特点之解耦头Decoupled Head设计

最后的输出是两个特征图,一个是分类特征图对应着cls_loss,一个是回归特征图box_loss
在这里插入图片描述

yolov8重大特点之Anchor-Free设计

传统的先搞一堆锚框,一个中心点三个,然后生成很多样本去筛选
现在,不撒锚框、不做匹配,模型直接“看图说话”,你在哪、你多大、你是谁,全都由网络自己学。

  • Anchor-Based的Anchor数量:(80x80+40x40+20x20)x3=25200 检测头数量:9个
  • Anchor-Free的预测框数量:80x80+40x40+20x20=8400 (一个grid cell的中心点就对应一个预测框)
    检测头数量:3个

在这里插入图片描述
筛选的话人家自创了一套方法
筛选步骤:
1、获取三个检测头的输出结果(预测框、概率值)
2、将三个检测头的结果映射到同一原图(640x640),同时将(l,t,r,b)坐标转化为左上坐标(X_min ,Y_min)和右下坐标(X_max,Y_max)
3、初筛:所有的grid cell的中心点(anchor point)在GT框内的即为初始正样本
4、提取对应类别的pred_score,计算CIOU计算align_matric=pred_score^0.5 * CIoU^6根据align_matric的值,筛选出top-N作为正样本
5、处理一个中心点可能匹配到多个GT框的情况,仅保留最大的CIoU的值对应的预测框
其中pred_score 是类别特征图中对应的最大类别的概率

yolov8重大特点之DFL LOSS设计

在这里插入图片描述
在这里插入图片描述
主要是为了消除平峰,,得到尖峰

yolov11

主要是网络结构改的比较大
backbone的c2k换成c3k2
sppf后面加了一个c2psa
在这里插入图片描述
在这里插入图片描述

yolov12

中科院改的
创新的融入注意力机制
在这里插入图片描述

  • 网络图

在这里插入图片描述
可见A2C2f被广泛使用,A2C2f是A2组成的
保留部分C3k2

  • A2的思想,FlashAttention是一个常用的库

在这里插入图片描述

  • A2

在这里插入图片描述

  • R-ELAN
    图示说的很清楚了
    在这里插入图片描述
  • backbone对比
    总结就是前面都一样后面变了,C3k2被A2C2f广泛的替换了

在这里插入图片描述

  • 其他的微调

在这里插入图片描述

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

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

相关文章

【Spring Boot 快速入门】一、入门

目录Spring Boot 简介Web 入门Spring Boot 快速入门HTTP 协议概述请求协议响应协议解析协议TomcatSpring Boot 简介 Spring Boot 是由 Pivotal 团队(后被 VMware 收购)开发的基于 Spring 框架的开源项目,于 2014 年首次发布。其核心目标是简…

如何调整服务器的内核参数?-哈尔滨云前沿

调整服务器内核参数是一项较为专业的操作,不同的操作系统调整方式略有不同,以下以常见的 Linux 系统为例,介绍一些调整服务器内核参数的一般步骤和常用参数:一般步骤 备份当前配置:在修改内核参数之前,先备…

C++基础:模拟实现queue和stack。底层:适配器

引言模拟实现queue和stack,理解适配器,实现起来非常简单。一、适配器 适配器是一种能让原本不兼容的接口协同工作的设计模式或者组件。它的主要作用是对一个类的接口进行转换,使其符合另一个类的期望接口,进而实现适配和复用。&am…

OI 杂题

OI 杂题字符串括号匹配例 1:与之前的类似,就是讲一点技巧,但是比较乱,凑合着看吧。 字符串 括号匹配 几何意义:考虑令 ( 为 111 变换,令 ) 为 −1-1−1 变换,然后对这个 1/−11/-11/−1 构成…

【论文阅读】Safety Alignment Should Be Made More Than Just a Few Tokens Deep

Safety Alignment Should Be Made More Than Just a Few Tokens Deep原文摘要问题提出现状与漏洞:当前LLMs的安全对齐机制容易被攻破,即使是简单的攻击(如对抗性后缀攻击)或良性的微调也可能导致模型越狱。核心论点: 作…

Generative AI in Game Development

如有侵权或其他问题,欢迎留言联系更正或删除。 出处:CHI 20241. 一段话总结本研究通过对来自 Reddit 和 Facebook 群组的 3,091 条独立游戏开发者的在线帖子和评论进行定性分析,探讨了他们对生成式 AI在游戏开发中多方面作用的认知与设想。研…

【C++算法】72.队列+宽搜_二叉树的最大宽度

文章目录题目链接:题目描述:解法C 算法代码:题目链接: 662. 二叉树最大宽度 题目描述: 解法 这里的宽度指的是一层的最右边的非空节点到一层的最左边的非空节点,一共的节点数。 解法一:硬来&am…

什么是3DVR?VR技术有哪些应用场景?

VR与3D技术解析及应用在高科技领域,VR和3D是两个常被提及的名词。那么,这两者之间究竟存在着怎样的区别与联系呢?简而来说,VR技术是3D技术的一种高级延展和深化应用。3D技术,即将二维设计图转化为立体、逼真的视觉效果…

栈与队列:数据结构核心解密

栈和队列的基本 栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构。元素的插入和删除操作只能在栈顶进行。常见的操作包括压栈(push)和弹栈(pop)。 队列(Queue)是一种先进先出(FIFO, First In First Out)的数据结构。元素的插入在队尾进行,删除在队…

《C++初阶之STL》【list容器:详解 + 实现】

【list容器:详解 实现】目录前言------------标准接口介绍------------标准模板库中的list容器是什么样的呢?1. 常见的构造2. 迭代器操作std::list::beginstd::list::endstd::list::rbeginstd::list::rend3. 容量的操作std::list::sizestd::list::empty…

【灰度实验】——图像预处理(OpenCV)

目录 1 灰度图 2 最大值法 3 平均值法 4 加权均值法 5 两个极端的灰度值 将彩色图转为灰度图地过程称为灰度化。 灰度图是单通道图像,灰度化本质就是将彩色图的三通道合并成一个通道的过程。三种合并方法:最大值法,平均值法和加权均值法…

【linux驱动开发】编译linux驱动程序报错:ERROR: Kernel configuration is invalid.

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、报错二、解决方法1.先编译linux内核源码2.再重新编译驱动程序一、报错 在编译驱动程序过程中,经常碰到的一个小问题: make -C /home/lu…

Java面试宝典:MySQL中的锁

InnoDB中锁的类型非常多,总体上可以如下分类: 这些锁都是做什么的?具体含义是什么?我们现在来一一学习。 1. 解决并发事务问题 我们已经知道事务并发执行时可能带来的各种问题。最大的一个难点是:一方面要最大程度地利用数据库的并发访问能力,另一方面又要确保每个用户…

设备识别最佳实践:四维交叉验证框架

设备识别最佳实践:四维交叉验证框架 1. MAC地址分析(40%权重) - 设备身份核验 核心方法: # MAC地址标准化(OUI提取) mac"B4:2E:99:FB:9D:78" oui$(echo $mac | tr -d : | cut -c 1-6 | tr a-f A-…

《Java 程序设计》第 9 章 - 内部类、枚举和注解

大家好,今天我们来学习《Java 程序设计》第 9 章的内容 —— 内部类、枚举和注解。这三个知识点是 Java 中提升代码灵活性和可读性的重要工具,在实际开发中非常常用。接下来我们逐一展开讲解,每个知识点都会配上可直接运行的代码示例&#xf…

CTF Misc入门篇

在CTF比赛中,misc方向是必考的一个方向,其中,图形隐写是最最常见的类型。 先从Misc开始入门,一般会借助CTF SHOW解题平台,解题,然后进行技巧总结。 目录 图片篇(基础操作) misc1 misc2 misc3 misc4 …

Vulnhub 02 Breakout靶机

一、信息收集 我是在仅主机模式下扫描的。 以此去访问端口。 80端口是上面的主页,查看一下源代码,发现了如下图所示的注释,翻译过来是:别担心,没有人会来这里,安全地与你分享我的访问权限,它是…

论文阅读:2024 arxiv AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks https://arxiv.org/pdf/2403.04783#page9.14 https://www.doubao.com/chat/14064782214316034 文章目录…

Spring Boot 请求限流实战:基于 IP 的高效防刷策略

前言 互联网流量就像洪水猛兽,来得快去得也快。如果不给接口装个“限速阀”,服务器瞬间被刷爆,宕机成真,根本不稀奇。没有限流机制,系统就像没有刹车的赛车,跑得太快反而翻车。为了保证服务稳定、响应迅速,保护后端资源不被恶意请求掏空,限流成必备武器。 本篇文章将…

机器学习第二课之线性回归的实战技巧

1 线性回归简介 1 线性回归应用场景 线性回归是一种用于分析自变量与连续型因变量之间线性关系的模型,其核心是通过拟合线性方程(y w_1x_1 w_2x_2 ... w_nx_n b)来预测因变量或解释自变量的影响。由于其简单、可解释性强的特点,线性回归…