当前位置: 首页 > news >正文

【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.dtcms.com/a/304659.html

相关文章:

  • StackingClassifier参数详解与示例
  • 博创软件数智通OA平台:高效协同,安全办公新选择
  • 深度学习 目标检测常见指标和yolov1分析
  • Xilinx高性能低延时PCIe-DMA控制器IP,SGDMA,QDMA,RDMA,CDMA,V4L2驱动,视频采集、AD采集
  • ubuntu:运行gcfsd-admin守护进程需要认证,解决方法
  • Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法
  • python中的 @dataclass
  • Java函数式接口深度解析与应用
  • 机器学习笔记(四)——聚类算法KNN、Kmeans、Dbscan
  • 苏州工作机会:迈为股份子公司宸微半导体设备招聘技术文档工程师
  • 2025年AI大模型产业化技术突破,AI 大模型成本骤降 95%?
  • vulhub 02-Breakout靶场攻略
  • Android系统开发 在Android10版本的Framework中添加系统服务
  • 高级机器学习
  • Android 中 实现折线图自定义控件
  • BGP高级特性之ORF
  • spring 使用三级缓存解决循环依赖详解
  • 09 RK3568 Debian11 ES8388 模拟音频输出
  • 【腾讯云】EdgeOne免费版实现网站加速与安全防护
  • AI定义2025世界人工智能大会,腾讯/微美全息立足浪潮催生开源模型生态产业
  • 飞书 —— 多维表格 —— AI生成
  • 【术语扫盲】MCU与MPU
  • Spring框架中自定义标签的解析过程
  • 关于“高帧率放大了模型对位置噪声的敏感性”的理解
  • Kubernetes 全面解析:从基础设施变革到核心架构详解
  • Dify 从入门到精通(2/100 篇):Dify 的核心组件 —— 从节点到 RAG 管道
  • 利用 C# 实现 Word 文档多维度统计(字数、字符数、页数、段落数、行数)
  • 当 AI 重构审计流程,CISA 认证为何成为破局关键
  • 计算机视觉-图像基础处理
  • 双引擎驱动智能检索:混合搜索如何重构RAG系统底层逻辑