YOLO物体检测系列3:YOLOV3改进解读

news/2024/7/10 23:01:39 标签: YOLO, 深度学习, 分类, cnn, 物体检测

🎈🎈🎈YOLO 系列教程 总目录

YOLOV1整体解读
YOLOV2整体解读

YOLOV3提出论文:《Yolov3: An incremental improvement》

YOLOV3_6">1、YOLOV3改进

这张图讲道理真的过分了!!!我不是针对谁,在座的各位都是**
在这里插入图片描述
故意将yolov3画到了第二象限

  • 终于到V3了,最大的改进就是网络结构,使其更适合小目标检测
  • 特征做的更细致,融入多持续特征图信息来预测不同规格物体
  • 先验框更丰富了,3种scale,每种3个规格,一共9种
  • softmax改进,预测多标签任务
  1. yolo的思想就是一步预测,速度快,但是一直被质疑效果不好,这次改进了网络结构更加适合小目标检测
  2. yolo主要用的还是cnn,改进的地方还是在cnn
  3. v1 2个框,v2做了一个聚类有5个框,v3 9个框
  4. 一个物体可能有多标签,比如哈士奇既是狗可别也是哈士奇类别

2、多scale方法与特征融合

  • 为了能检测到不同大小的物体,设计了3个scale

在这里插入图片描述
在v2版本中,将不同尺度的特征融合到了一起来满足多尺寸的物体检测,实际上效果并不好,v3版本中,将物体分为了三个尺寸(13,13)、(26,26)、(52,52),代表大、中、小三种尺寸的物体取预测。
(13,13),对应大物体,3个较大的候选框
(26,26),对应中等物体,3个略小的候选框
(52,52),对应小物体,3个较小的候选框

在yolov2中为了应对对小目标检测效果不好的情况,将最后一层卷积的特征图和倒数第二层做了融合,去预测。
在yolov3版本的做法是:

  1. 最后一层卷积的特征图尺寸是(13,13),记为结果A
  2. 倒数第二层卷积的特征图尺寸是(26,26),将结果A进行上采样至(26,26),融合在一起得到结果B
  3. 倒数第三层卷积的特征图尺寸是(52,52),将结果B进行上采样至(52,52),融合在一起得到结果C
  4. 结果A负责预测大物体,结果B负责预测中物体,结果C负责预测小物体

3、残差连接-为了更好的特征

在这里插入图片描述

  • 从今天的角度来看,基本所有网络架构都用上了残差连接的方法
  • V3中也用了resnet的思想,堆叠更多的层来进行特征提取

当年2016年resnet让深度学习真正变得深了起来,因为很多网络在堆叠到一定程度后,效果不仅没有上升反而下降,加上resnet的残差连接的思想,保证了堆叠不会出现效果下降的情况

4、网络架构

在这里插入图片描述

  • 没有池化和全连接层,全部卷积
  • 下采样通过stride为2实现
  • 3种scale,更多先验框
  • 基本上当下经典做法全融入了
  1. 在v2版本中去掉了所有的全连接层,在v3版本中所有的池化层也全部去掉了
  2. 下采样通过卷积步长为2来实现
  3. 红色部分从上到下依次对应小目标、中目标、大目标

整体就是利用残差网络得到三种不同输出的特征图,这三种不同特征图将之前的信息也融入进来
在这里插入图片描述

85的意思就是80+4+1,4是先验框的x、y、w、h,1是confidence判断是前景还是背景,80就是80个类别,这是自己定义的。

5、先验框改进设计

在这里插入图片描述

  • YOLO-V2中选了5个,这回更多了,一共有9种
  • 13*13特征图上:(116x90),(156x198),(373x326)
  • 26*26特征图上:(30x61),(62x45),(59x119)
  • 52*52特征图上:(10x13),(16x30),(33x23)

(116x90),(156x198),(373x326)对应大物体的先验框,用在13*13的特征图上,其他以此类推

6、softmax替代

  • 物体检测任务中可能一个物体有多个标签
  • logistic激活函数来完成,这样就能预测每一个类别是/不是
    在这里插入图片描述
    不管是在检测任务的标注数据集,还是在日常场景中,物体之间的相互覆盖都是不能避免的。因此一个锚点的感受野肯定会有包含两个甚至更多个不同物体的可能,在之前的方法中是选择和锚点IoU最大的Ground Truth作为匹配类别,用softmax作为激活函数。

YOLOv3多标签模型的提出,对于解决覆盖率高的图像的检测问题效果是十分显著的,YOLOv3的效果好很多,不仅检测的更精确,最重要的是被覆盖很多的物体也能很好的在YOLOv3中检测出来。

1、YOLOv3 使用的是logistic 分类器,而不是之前使用的softmax。

2、在YOLOv3 的训练中,便使用了Binary Cross Entropy ( BCE, 二元交叉熵) 来进行类别预测。

原因:
(1)softmax只适用于单目标多分类(甚至类别是互斥的假设),但目标检测任务中可能一个物体有多个标签。(属于多个类并且类别之间有相互关系),比如Person和Women。
(2)logistic激活函数来完成,这样就能预测每一个类别是or不是。

对于原始的输入,在给定的80个类别(假设是80),经过前面的网络提取后,最后的输出经过softmax,得到80个概率值,选取最高的那一个,就是预测结果,如果正确结果有两个(或者更多)

而用BCE来做呢?将所有的结果都进行二分类,即每一个类别都有两个概率值。


http://www.niftyadmin.cn/n/5023946.html

相关文章

算法通关村第十五关——位运算在查找重复元素中的妙用

前言 大部分算法默认给定的数据量都比较小,只有几个或者几十个元素,但是如果将数据量提高到百万甚至几十亿,那么处理逻辑就会发生很大差异。在海量数据中,普通数据结构都无效了,因为内存空间放不下,常规的…

做题(2)

1.command_execution 题目提示: (这道题的名字就叫命令执行漏洞) 发现ping 先rce一下 127.0.0.1 | ls 发现了东西 尝试访问一下 找到了所有的文件 访问var文件夹 发现在var/www/html目录下没找到 去别的地方找找 在home文件夹下找到flag文件 访问 得到flag cyb…

518晚会聚会抽奖软件,可用作游戏随机抽签选人

518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 游戏随机抽签选人 聚会活动做游戏选人&…

Vue3核心语法一

Vue3核心语法一 rectiveshallowReactiverefcomputedwatchwatchEffet 使用Vue3创建项目template中标签可以多个根标签,可以通过setup开启组合式API,组合式API优点可以使相同业务放到一起 rective 定义响应式数据, import { reactive} from "vue";const data reactiv…

NLP机器翻译全景:从基本原理到技术实战全解析

目录 一、机器翻译简介1. 什么是机器翻译 (MT)?2. 源语言和目标语言3. 翻译模型4. 上下文的重要性 二、基于规则的机器翻译 (RBMT)1. 规则的制定2. 词典和词汇选择3. 限制与挑战4. PyTorch实现 三、基于统计的机器翻译 (SMT)1. 数据驱动2. 短语对齐3. 评分和选择4. PyTorch实现…

【新版vscode配置自动补全括号】

vscode新版配置自动补全括号方法 新版配置方法(Pylance) ①设置 -> 扩展 -> Pylance -> 将 python.analysis.completeFunctionParens 下方的选项打勾 ②直接在settings.json中添加"python.analysis.completeFunctionParens": true

帮助企业轻松搭建帮助中心-Baklib

Baklib是一个在线知识管理平台,帮助企业搭建在线产品手册、帮助中心、知识库等,Baklib是一个工具型软件,帮助企业高效快速搭建相关文档内容,轻松进行对外分享。 Baklib起源——目前企业的知识管理现状 存储难 将文档存储在本地与…

词法作用域改变词法作用域

一、词法作用域 1.定义: 为什么叫词法作用域?因为大部分标准语言编译器的第一个工作阶段叫作词法化,词法化的过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义。 简单来说&#xff0…