码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)


    文章目录

    • 1.YOLO输入端
      • 1.1 Mosaic数据增强
      • 1.2 自适应锚框计算
      • 1.3 自适应图片缩放
    • 2.YOLO总体架构图
      • 2.1 BackBone
        • 2.1.1 Focus模块
        • 2.1.2 SPP模块
        • 2.1.3 CSP_X模块
      • 2.2 Neck
        • 2.2.1 FPN
        • 2.2.2 PAN
      • 2.3 YOLO输出端
        • 2.3.1 Bounding Box损失函数
        • 2.3.2 NMS非极大值抑制

    1.YOLO输入端

    在这里插入图片描述

    1.1 Mosaic数据增强

    Yolov5的输入端采用了和Yolov4一样的Mosaic数据增强的方式。

    Mosaic数据增强提出的作者也是来自Yolov5团队的成员,不过,随机缩放、随机裁剪、随机排布的方式进行拼接,对于小目标的检测效果还是很不错的。
    在这里插入图片描述

    • 4张图片拼接
    • 随机缩放
    • 随机裁剪
    • 随机排布

    算法优点:

    • 丰富数据集
    • 减少GPU计算

    1.2 自适应锚框计算

    在Yolo算法中,针对不同的数据集,都会有初始设定长宽的锚框。

    在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数。
    在这里插入图片描述

    • Step1:读取训练集中所有图片的w、h以及检测框的w、h

    • Step2:将读取的坐标修正为绝对坐标

    • Step3:使用Kmeans算法对训练集中所有的检测框进行聚类,得到k个anchors

    • Step4:通过遗传算法对得到的anchors进行变异,如果变异后效果好将其保留,否则跳过

    • Step5:将最终得到的最优anchors按照面积返回

    1.3 自适应图片缩放

    在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺寸,再送入检测网络中。
    在这里插入图片描述

    letterbox自适应图片缩放技术尽量保持高宽比,缺的用灰边补齐达到固定的尺寸。

    2.YOLO总体架构图

    在这里插入图片描述

    2.1 BackBone

    主要进行特征提取,将图像中的物体信息通过卷积网络进行提取,用于后面目标检测。
    在这里插入图片描述

    2.1.1 Focus模块

    Focus层原理和PassThrough层很类似。它采用切片操作把高分辨率的图片拆分成多个低分辨率的图片/特征图,即隔列采样+拼接。
    在这里插入图片描述

    2.1.2 SPP模块

    空间金字塔池化,能将任意大小的特征图转换成固定大小的特征向量。
    在这里插入图片描述

    2.1.3 CSP_X模块

    backbone是较深的网络,增加残差结构可以增加层与层之间反向传播的梯度值,避免因为加深而带来的梯度消失,从而可以提取到更细粒度的特征并且不用担心网络退化。
    在这里插入图片描述

    2.2 Neck

    对特征进行混合与组合,增强网络的鲁棒性,加强物体检测能力,并且将这些特征传递给Head层进行预测。
    在这里插入图片描述

    2.2.1 FPN

    在这里插入图片描述

    2.2.2 PAN

    在这里插入图片描述

    2.3 YOLO输出端

    主要进行最终的预测输出。

    2.3.1 Bounding Box损失函数

    真实检测框和模型预测输出框的吻合程度,用于反向传播优化模型。
    在这里插入图片描述

    2.3.2 NMS非极大值抑制

    判断相邻网格识别的是否是同一物体,消除掉多余检测框。
    在这里插入图片描述

  • 相关阅读:
    有一本零基础入门Python的编程书上架!
    2023年度AWS SAP直冲云霄训练营学习分享
    J2L3x 最大的优势:灵活的功能和易于扩展性
    Docker 部署 Firefly III 服务
    氧化石墨烯(GO)掺杂多壁碳纳米管-离子液体(MWCNTs-IL)复合物偶联金纳米粒子(AuNPs)|MWCNTs-IL-GO/AuNPs复合纳米材料
    【云原生 · Kubernetes】部署高可用kube-scheduler集群
    SQL必需掌握的100个重要知识点:过滤数据
    聊聊 K8S:K8S集群搭建实战
    什么是高企认定?高企认定的8个条件!
    1024 Palindromic Number
  • 原文地址:https://blog.csdn.net/m0_47256162/article/details/125544750
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号