yolo系列学习

news2025/2/2 23:49:15

文章目录

  • 理论基础
  • YOLO-V1
  • YOLO-V2
  • YOLOV3

教学视频

理论基础

  1. 不同阶段算法优缺点分析
  • two-stage (两阶段) :Faster-rcnn、Mask-Rcnn ,多了预选框操作RPN
  • One-stage (单阶段):YOLO
  1. 指标分析
  • 精度 Precision 查准率预测为正且实际为正预测为正的比例
  • 召回率 Recall 查全率预测为正且实际为正总体正样本的比例
  • 准确度 Accuracy预测为正且实际为正和预测为负且实际负总样本的比例
  • F1 Score 是Precision与Recall的调和平均(harmonic mean),是综合Precision与Recall的评估指标,避免Precision或Recall的单一极大值,用于综合反映整体的指标。
  • AP 在一组不同IOU阈值下,某一类别PR曲线(横轴为Recall,纵轴为Precision)下的面积。bilibili视频、 AP与mAP的详解、指标评估 —— AP & mAP 详细解读、mAP定义及计算方式
    • IOU阈值设置从低到高,分别获取不同阈值下的Precision和Recall,以横轴为Recall,纵轴为Precision,即可获取PR曲线,一般情况下,Recall和Precision是矛盾的两个目标,Recall跟IOU是单调递减关系,Precision跟IOU是单调递增关系。不同任务对应的AP计算方式不一样。COCO挑战赛定义了12种mAP计算方式
  • mAP 各类别AP的平均值。
    在这里插入图片描述
    在这里插入图片描述

YOLO-V1

  • 经典的one-stage 方法;把检测问题转化为回归问题,一个CNN搞定,可以进行实时检测;

    • 回归问题:即建模和分析变量之间的关系 ,多用来预测一个具体的数值,yolo中就是用来预测[x,y,w,h]
  • 核心思想
    在这里插入图片描述

    • 输出为7x7x30,7x7表示最终图片分为7x7的网格(grid size),30代表5+5+20,前两个5代表两种检测框的[x,y,w,h,c],20代表20分类。(SxS)x(Bx5+C)
    • 输入图片固定为448x448x3,因为有全连接层
  • 损失函数在这里插入图片描述

    • 位置误差中加根号 是为了解决小目标时偏移量不敏感的问题,同样的像素对不同目标占比不同(1/2与1/20)。因为根号的求导是非线性,越小斜率越大。该方法只能改善,并没有解决问题。
    • 不含object的加权重 λ n o o b j \lambda_{noobj} λnoobj 是因为图片中大部分都是背景(负样本),只有少部分前景(正样本),为了保证样本均衡,保证正样本被有效学习,所以需要减小背景的权重。
  • 优缺点

    • 优点:快速,简单
    • 缺点:
      ① 每个cell只能预测一个类别,无法解决多标签任务;
      ② 小物体检测效果一般,长宽比可选(两种检测框)但单一;
      ③ 重叠目标无法检测。

在这里插入图片描述

YOLO-V2

在这里插入图片描述

  • YOLO-V2-Batch-Normalization

    • 舍弃Dropout,卷积后全部加入Batch Normalization,可以使得每一层的输入都具有相似的均值和方差,从而使得网络的训练更加稳定
    • 网络的每一层输入都做了归一化,收敛相对容易
    • 经过Batch-Normalization处理后的网络回提升2% 的mAP
    • 从现在的角度来看,Batch-Normalization 已经成为网络必备处理。
  • YOLO-V2 使用更大的分辨率

    • V1训练时用的是224x224,测试时使用的时448x448
    • 为了优化上述问题,V2训练时额外又进行了10次448x448的微调
    • 使用高分辨率分类器后,YOLO-V2的mAP提升了约4%
  • YOLO-V2-新网络结构

    • DarkNet19(借鉴VGG 和ResNet),网络更深,但参数量更小,输入为416x416
    • VGG中提出使用小的卷积核代替大的卷积核,可以提升感受野并减少参数量
    • 剔除全连接(FC)层,经过5次降采样,最终为13x13
    • 引入1x1卷积,节省了很多参数,只修改通道数
      在这里插入图片描述
  • YOLO-V2-使用聚类提取先验框

    • faster-rcnn系列选择的先验比例都是常规的,不一定完全适应数据集
    • K-means聚类中的距离: d ( b o x , c e n t r o i d s ) = 1 − I O U ( b o x , c e n t r o i d s ) d_{(box,centroids)}=1-IOU(box,centroids) d(box,centroids)=1IOU(box,centroids) ,是根据IOU设置的距离参数,而不是常规的欧式距离。
    • 聚类数K=5在这里插入图片描述
  • YOLO-V2-Anchor Box

    • 通过引入anchor boxes,使得预测的box数量更多(13 x13xn),来解决YOLOv1中物体大小和比例变化较大的问题。
    • 锚框是预先定义好的一些矩形框,它们被放置在图像的不同位置和大小。每个锚框预测一组边界框和类别概率。YOLOv2使用k-means算法来自动计算出合适的锚框。
  • YOLO-V2-直接预测相对位置

    • 在V1中,直接预测的位置偏移值,因此中心值加偏移值才是真实预测值
      ① bbox:中心为(xp,yp);宽和高为(wp,hp),则 x = x p + w p ∗ t x { x=x_{p} + w_{p}*t_{x}} x=xp+wptx ; y = y p + h p ∗ t y { y=y_{p} + h_{p}*t_{y} } y=yp+hpty.
      t x t_{x} tx=1,则讲bbox在x轴向右移动 w p w_{p} wp t x t_{x} tx=-1,则讲bbox在x轴向左移动 w p w_{p} wp
      ③ 这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候,权重参数和偏移参数是随机初始化,可能会使中心位置偏移出真实标注框,出现在图片任意位置。
    • V2没有直接使用偏移量,而是选择相对grid cell的偏移量
      在这里插入图片描述
      σ ( t x ) \sigma(tx) σ(tx)表示sigmoid函数,其函数值取值范围永远在(0,1)之间。使得 b x b_{x} bx永远在 [ c x , c x + 1 ] [c_x,c_x+1] [cx,cx+1]之间, b y b_{y} by同理,即预测的中心位置永远在网格内,不会偏移到其他网格。
  • YOLO-V2-PassThrough 层
    DarkNet还进行了深浅层特征的融合,具体方法是将浅层26×26×512的特征变换为13×13×2048,这样就可以直接与深层13×13×1024的特征进行通道拼接。这种特征融合有利于小物体的检测,也为模型带来了1%的性能提升

  • YOLO-V2-多尺度训练

    • 移除了全连接层,因此YOLO v2可以接受任意尺寸的输入图片
    • 每10次迭代后,输入图片大小更改一次输入图片的尺度[320,352,…,608]

YOLOV3

论文名称:YOLOv3: An Incremental Improvement
论文下载地址: https://arxiv.org/abs/1804.02767
在这里插入图片描述

  • V3 对网络结构进行较大改进,backbone使用DarkNet53,使其更适合小目标检测
  • 多scale 先验框更丰富,3中scale,每种3个规格,共9种
  • 使用Logistic代替softmax进行改进,可以预测多标签任务

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

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

相关文章

亚马逊、lazada店铺销售策略揭秘:如何利用测评自养号突破瓶颈?

在跨境平台上,想要取得突破性的销售成绩并不容易。随着竞争的日益激烈,商家们需要采取有效的销售策略来突破销售瓶颈。本文将揭示三种结合测评自养号的销售策略,帮助卖家在跨境平台上取得更好的销售业绩。 一、建立完善的自养号评价体系 自…

git rebase (合并代码和整理提交记录)图文详解

git rebase详解,附带操作过程命令,运行图片 合并代码初始代码分支结构merge合并代码rebase合并代码 整理提交记录背景-整理提交记录步骤-图文详解 建议在看这篇文章之前一定要看完:git reset 命令详解 git revert命令详解。 看完上面的文章后…

基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件

系列文章目录 基于scrcpy的远程调试方案 基于scrcpy的Android群控项目重构 基于scrcpy的Android群控项目重构 进阶版 基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件(视频) 基于scrcpy的Android群控项目重构…

struct详解

导入 我们有没有这种情况,总想有一个数组,其中可以有int,double,char。。。各种类型,但是对于内置的数据类型显然是做不到的,于是就有了结构体类型 结构体是将多种不同的结构打包在一起,形成全新的类型进行使用 stru…

Spring的两种事务管理机制,面试这样答当场入职!

前言: 博主在最近的几次面试中,大中小厂都问到了Spring的事务相关问题,这块知识确实是面试中的重点内容,因此结合所看的书籍,在这篇文章中总结下。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读,感…

刻录到光盘功能看不见怎么办

刻录到光盘功能看不见怎么办 1、 打开组策略 同时按键WINR,打开运行对话框,输入gpedit.msc,打开组策略(如果发现输入gpedit.msc后无法打开组策略,请参照文件后面的方法进行操作) 2 、查找“删除CD刻录…

Java开发基础系列(五):对象方法参数

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: Java开发基础系列(五):对象方法参数 ⏱️ 创作时间&#x…

Pycharm 搭建 Django 项目,看完这一篇就够了

1. 安装需求 在使用 python 框架 Django 需要注意下面事项 Pycharm 版本是专业版而不是社区版本Pycharm 配置好了 python 解释器 (一般我们现在用的都是python3)我自己使用的是 Pycharm 版本是2020.1.2 2. 准备工作 2.1 新建项目 首先我们打开 Pycharm …

opencv -10 基础运算之 图像加权和(图像融合图像修复视频合成)

什么是图像加权和? 所谓图像加权和,就是在计算两幅图像的像素值之和时,将每幅图像的权重考虑进来,可以用公式表示为: dst saturate(src1 𝛼 src2 𝛽 𝛾)式中,satu…

无缝集成:基于FastAPI实现AI模型服务与nacos的完美融合

1 场景介绍 当我们使用python构建AI模型算法的过程中,经常会遇到如下的问题: 这个模型如何提供给其他微服务调用(比如JAVA构建的微服务)?这个模型如何做到多个服务节点的负载均衡?这个模型如何做到服务的…

Python高光谱遥感数据处理与高光谱遥感机器学习方法深度应用

提供一套基于Python编程工具的高光谱数据处理方法和应用案例。 本文涵盖高光谱遥感的基础、方法和实践。基础篇,用通俗易懂的语言解释高光谱的基本概念和理论,深入理解科学原理。方法篇结合Python编程工具,专注于解决高频技术难题&#xff0c…

工欲善其事,必先利其器之—react-native-debugger调试react native应用

调试react应用通常利用chrome的inspector的功能和两个最常用的扩展 1、React Developer Tools (主要用于debug组件结构) 2、Redux DevTools (主要用于debug redux store的数据) 对于react native应用,我们一般就使用react-nativ…

C++无锁编程——无锁队列

C无锁编程——无锁队列 贺志国 2023.7.11 上一篇博客给出了最简单的C数据结构——堆栈的几种无锁实现方法。队列的挑战与栈的有些不同,因为Push()和Pop()函数在队列中操作的不是同一个地方。因此同步的需求就不一样。需要保证对一端的修改是正确的,且对…

TCP/IP网络编程 第十二章:I/O复用

基于I/O复用的服务器端 多进程服务器端的缺点和解决方法 为了构建并发服务器,只要有客户端连接请求就会创建新进程。这的确是实际操作中采用的种方案,但并非十全十美,因为创建进程时需要付出极大代价。这需要大量的运算和内存空间&#xff…

Vue列表排序

开始前先回顾一下sort排序用法&#xff1a; 定义一串数组arr&#xff0c;使用sort排序&#xff0c;会收到前后两个数据项设置两个参数a&#xff0c;b。 注意&#xff1a;a-b 是升序 b-a 是降序 a-b升序&#xff1a; <script>let arr [12,11,2,5,76,33]arr.sort((a,b…

家居商城小程序:打造舒适家居生活的优选平台

随着人们对家居生活品质的追求&#xff0c;家居商城小程序成为提供便捷购物和个性化服务的不可或缺的工具。通过家居商城小程序&#xff0c;用户可以浏览并购买各类家居商品&#xff0c;如家具、装饰品、家纺等。同时&#xff0c;家居商城小程序能提供热销商品推荐、客户评价和…

浅析高校用电问题及智慧电力监管平台的构建 安科瑞 许敏

摘 要&#xff1a;介绍了当前高校用电存在的问题&#xff0c;进行了原因分析&#xff0c;由此提出建立高校用电智慧监管平台。对高校用电智慧监管平台的构架进行设计&#xff0c;运用物联网技术&#xff0c;实现各回路实时自主控制&#xff0c;并细化管理权限&#xff0c;实现…

Swift 周报 第三十三期

文章目录 前言新闻和社区App 内购买项目和订阅即将实行价格与税率调整为家庭提供安全的 App 体验 提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组自主整理周报的第二十四期&#xff0c;每个模块已初步成型。各位读者如果有好的提议&#xff…

公网访问的Linux CentOS本地Web站点搭建指南

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道&#xff0c;指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…

常规函数和箭头函数之间的主要区别

常规函数和箭头函数之间的主要区别 在 JavaScript 中&#xff0c;函数是设计用于执行特定任务的代码块。函数允许使用函数将大型程序分解为多个更小、更易于管理的组件。因此&#xff0c;我们就不再需要重复编写相同的代码。 JavaScript中有两种类型的函数 常规函数箭头函数…