YOLO——算法学习

目录

一、概述

二、YOLO-V1整体思想与网络架构

2.1 YOLO-V1

2.2 位置损失计算

2.3 置信度与优缺点分析

三、YOLO-V2改进细节详解

3.1 基于聚类选择先验框尺寸

3.2 偏移量计算方法

3.3 坐标映射与还原

3.4 感受野的作用

3.5 特征融合改进

四、YOLO-V3核心网络模型

4.1 多scale方法改进与特征融合

4.2 经典变换方法对比分析

4.3 残差连接方法解读

4.4 整体网络模型架构

4.5 先验框设计改进

4.6 softmax层改进

五、项目实战-基于V3版本进行源码解读

5.1 文件了解

5.2 训练参数设置

5.3 数据与标签读取

5.4 标签文件读取与处理

5.5 debug模式介绍

5.6 基于配置文件构建网络模型

5.7 路由层和shortcut层作用

5.8 YOLO层定义解析

5.9 预测结果计算

5.10 网格偏移计算

5.11 模型要计算的损失概述

5.12 标签值格式修改

5.13 坐标相对位置计算

5.14 完成所有损失函数所需计算指标

5.15 模型训练与总结 

5.16 预测效果展示

六、基于YOLO-V3训练自己的数据集与任务

6.1 概述

6.2 数据信息标注

6.3  完成标签制作

七、YOLO V4

7.1 整体概述

7.2  V4版本贡献解读

7.3 数据增强策略分析

7.4 Dropblock与标签平滑方法

7.4.1 SAT

7.4.2 DropBlock

7.4.3 标签平滑

7.5  损失函数遇到的问题

7.5.1 GIOU

7.5.2 DIOU(用的也比较多)

7.6 CIOU(真正使用)

7.7 NMS(非极大抑制)细节改进——DIOU-NMS 

7.7.1 传统NMS 

7.7.2 DIOU-NMS

7.7.3 细节改进

7.8  SPP与CSP网络结构

7.8.1 SPPNet 

7.8.2 CSPNet

7.9 SAM注意机制模块

7.9.1  CBAM

7.9.2 SAM        

7.10 PAN模块解读

7.11 激活函数与整体架构总结

八、YOLO-V5版本项目配置

8.1 整体概述

8.2 训练自己数据集的方法


一、概述

选择 Faster-rcnn之类还是 YOLO 都是根据任务需求来定的 

YOLO一般速度快,一个cnn的回归下来就完事,M-rcnn 一般只有5fps,达不到实时的要求

YOLO也可以自己构建网络,网络越复杂,速度越慢;而网络越简单,速度越快

衡量算法的指标:fps、 mAP

mAP指标:综合衡量检测效果

精度:检测到的东西和实际的框吻不吻合

召回率(recall):有没有一些要检测到的框没检测到

而精度和recall在很多问题上都是矛盾的,一个高了,另一个就低了,所以要用mAP值

IOU: 真实值和预测值的交集 / 真实值和预测值的并集 ,所以IOU越高说明越重合,越好

精度召回率 理解 

FN理解:错误的当作负例,本例中即把女生错误的检测为男生,为0个 

精度归正确的正例 TP / (归正确的正例TP + 当成正例的负例FP) 20 / (20 + 30)

        所有认为是正例中的 正确的正例的占比

召回率归正确的正例 TP / (归正确的正例TP + 当成负例的正例FN) 20 / (20 + 0)

         所有正例中的 正确归类的正例的占比

置信度:检测人脸时,他是人脸的可能性;检测物体时,他是物体的可能性,所以有时设置一个阈值,大于这个阈值的才是我们需要的

PR图指的是:精度Precision 和 召回率Recall 的图

mAP值就是PR图 所围成的 面积

二、YOLO-V1整体思想与网络架构

        主要对视频进行实时的检测

2.1 YOLO-V1

核心思想:点出一个中心点,要检测一个物体,需要 构建一个长宽为(h,w)的框,此时就需要不断微调 h 和 w ,如回归问题一般,找到最合适的 h,w 还有起始位置 x 和 y

与真实值比较,谁的 IOU 大,就微调谁,

每个框要找到4个值:x,y,h,w 和 置信度值

        这里输入图片大小受到了限制,因为卷积层到全连接层的时候的时候,参数的大小无法改变,所以输入图片大小也被限制。中间的卷积网路就是进行的特征提取,这里一代版本就不讲述,后面三代版本在讲述,因为相较于三代版本,这里版本就显得单一

        因为划分了7×7的网格,所以输出7×7×30=1024,前10个每5个代表一个框预测结果,剩下20代表的是类别

2.2 位置损失计算

        输出结果的含义

         损失函数:

        obj那里是选择一个边框与真实框IOU最大的那个

        那么w,h为什么要用根号,比如有两个一大一小两个物体, 预测框都与其相差一个单位,此时针对小物体,影响肯定更大,所以我们要更针对小物体,大物体的相对粗糙一点没问题,加上根号后,就有了侧重,数值小的时候会较为敏感,数值大的时候就没有那么敏感

2.3 置信度与优缺点分析

        置信度要不要分类考虑,前景和背景

        设定一个阈值,Iou大于这个阈值时,表示是需要的前景,此时置信度应该要接近于Iou,若有多个框,选择Iou较大的那个

        背景相对不那么重要,所以前面你加上一个参数,如0.1

          j检测到多个框一起时,选择一个置信度最大的

         YOLO-V1存在的问题就是,第一如果有重叠在一起的,很难都检测出来;小物体和重复标签(比如既是狗有时哈士奇)也不好做

三、YOLO-V2改进细节详解

改进:

dropout是在全连接层使用,使得网络别太过拟合,v2中已经没有全连接层了,

所有卷积层后面都加上 Batch  Normalization(BN)

v2没有全连接层,全连接层容易过拟合且训练慢,所以全是卷积层

所有卷积大小只有3×3和1×1,3×3借鉴了VGG思想,用小的卷积核会使 训练结果较好

3.1 基于聚类选择先验框尺寸

        设定的先验框只是常规形状,不一定更适合数据集,所以采用聚类方法

有了anchor box 可以检测出没有anchor box 时没检测出的框

3.2 偏移量计算方法

        x,,y,w,h是真实框的大小,tx,ty,tw,th是预测框的偏移,我们要将预测框的偏移量加到缘线的预选框中,而偏移量如果过大时,就有可能飘出图像,就不合适了,所以是使用的一个相对的值

        如下,黑色虚线框是先验框,对预测值tx,ty用一个sigmoid,结果都在0-1之间,就是在中心点所在的网格中

3.3 坐标映射与还原

        对原始图像先缩小,除以32,5次maxpooling,一次1/2

3.4 感受野的作用

        提取的特征图大小和使用的卷积核大小有关

        感受野:就是最后的特征图上的一个点相当于原始图像多大的区域,就说它的感受野是多大

        越大的感受野越能考虑的是一个整体,最后的特征图感受野最大,概括的是一个全局的整体

 

        那么感受野当中,我们需要的卷积核大小是要大一点还是小一点呢

        堆叠两个3×3的卷积时,感受野是5×5的,那么为什么要堆叠两个3×3的而不是直接用一个5×5的呢? 

        经过计算发现,堆叠小的卷积核所需的参数更少,而且卷积过程越多,提取的特征就越细致,而且每个卷积核后面都加一个BN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清园暖歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值