Yolo V1算法分析 ---网络结构解读 ---损失计算

请添加图片描述

Yolo V1 详解

本节内容

该文章涉及如何选择预选框、YOLOV1的网络结构以及卷积计算、最终的损失计算过程。

如果对于IOU、mAP、recall、precision不了解,请先了解以上指标如何计算的。

检测指标Blog:

如果不懂得卷积计算,可以看我的文章

卷积计算Blog:【卷积计算】-单通道卷积 -深度卷积(多通道卷积) -逐点卷积 -实战YoloV1卷积网络 - 池化计算-CSDN博客

特点

  • 经典的one-stage方法
  • You only look once
  • 检测问题转换为回归问题,一个CNN搞定
  • 可以对视频进行实时检测,应用领域非常广泛

核心思想

每个点,计算的时候存储confidence,设置阈值

每个点存储:

  • 中心点x
  • 中心点y
  • 预选框宽度w
  • 预选框高度h
  • 置信度confidence

如果满足阈值,在两种候选框中,分别计算IOU的值,选择合适的

输入图片

图片大小(448,448,3)

因为卷积层和全连接层的大小是固定的,所以图片大小不可改变,这里要求input图片大小固定(448,448,3)。

  • 在Yolov2之后,取消了fully connected全连接层,图片大小就可以改变了。

通过grid cell分类

图片分割为7 * 7大小的grid cell;在每个grid cell 里面存储30个信息。👇

Our final prediction is a 7 * 7 * 30 tensor,20 types and 2 bounding box with 5 parameter

  • 每个bounding box存储信息(Xt,Yt,Ht,Wt,Confidence)

  • 每个grid cell 存储30个信息

其中Xt和Wt是相对于width的归一化坐标;其中Yt和Ht是相对于High的归一化坐标;

在这里没有anchor的思想,并不是相对于anchor box的相对位移;而是直接预测(x,y,w,h)信息

Define Confidence

在论文中定义confidence的计算
在这里插入图片描述

Pr(Object)=1(如果这个预测框存在目标)or 0 (不存在)

IOU=truth和pred的交集部分/truth和pred的并集部分

所以在这里我们可以理解confidence是IOU

计算类别概率

在这里插入图片描述

最终的类别概率 = bounding box 为该类别的概率 * IOU(truth and pred)

V1网络结构

V1的网络结构借鉴了GoogleNet,采用Conv和Fully connected。

Yolo版本网络结构
YoloV1借鉴googleNet,采用Conv和Fully connected结构
YoloV2借鉴DarkNet19
YoloV3借鉴DarkNet53

下图是YoloV1的网络结构

在这里插入图片描述

卷积池化过程

图中(448,448,3) 经过特征提取得到(7,7,1024)

提取特征的过程是完成以下过程,完成特征提取。

如果不太了解卷积计算请看以下内容,目前已经更新常用的卷积核类型

【卷积计算】-单通道卷积 -深度卷积(多通道卷积) -逐点卷积 -实战YoloV1卷积网络 - 池化计算-CSDN博客

LayerStride,PaddingOutput
input(448,448,3)
Conv (7,7,64)S=2,P=3(224,224,64)
MaxpoolingS=2(112,112,64)
Conv (3,3,192)S=1,P=1(112,112,192)
MaxpoolingS=2(56,56,192)
Conv (1,1,128)S=1,P=1(56,56,128)
Conv (3,3,256)S=1,P=1(56,56,256)
Conv (1,1,256)S=1(56,56,256)
Conv (3,3,512)S=1,P=1(56,56,512)
MaxpoolingS=2(28,28,512)
Conv (1,1,256)S=1(28,28,256)
Conv (3,3,512)S=1,P=1(28,28,512)
Conv (1,1,256)S=1(28,28,256)
Conv (3,3,512)S=1,P=1(28,28,512)
Conv (1,1,256)S=1(28,28,256)
Conv (3,3,512)S=1,P=1(28,28,512)
Conv (1,1,256)S=1(28,28,256)
Conv (3,3,512)S=1,P=1(28,28,512)
Conv (1,1,512)S=1(28,28,512)
Conv (3,3,1024)S=1,P=1(28,28,1024)
MaxpoolingS=2(14,14,1024)
Conv (1,1,512)S=1(14,14,512)
Conv (3,3,1024)S=1,P=1(14,14,1024)
Conv (1,1,512)S=1(14,14,512)
Conv (3,3,1024)S=1,P=1(14,14,1024)
Conv (3,3,1024)S=1,P=1(14,14,1024)
Conv (3,3,1024)S=2,P=1(7,7,1024)
Conv (3,3,1024)S=1,P=1(7,7,1024)
Conv (3,3,1024)S=1,P=1(7,7,1024)

在这里插入图片描述

Transpose

transpose 转置;

  • 并非是每次都会用到的(非深度学习的基础设施)(一种上采样的方法)

特征提取的专职操作通常指的是转置卷积,也称为反卷积或上采样卷积。用于从较小的特征生成较大的特征映射的场景,主要目的是增加数据的空间维度,与传统的卷积操作相反,他是通过零填充来扩大输入特征图的,然后应用到卷积核的,以此生成具有更大空间尺寸的输出特征图。

Flatten

flatten 扁平化

  • 用于将多维度的输入数据转换为一维的数组,通常在卷积神经网络CNN与全连接层Dense Layer使用。
  • 假设有一个三位特征图,使用Flatten操作之后,这个特征图会转换为一维数组,作为全连接层输入,用于后面的分类、回归等后续任务。
  • Flatten本身不改变数据的总量,只是改变数据的形状,使其输入到全连接层中。
全连接层

FC,fully connected

(7,7,1024)Tensor 与 4096个神经元连接,组成全连接层,(7,7,1024)中的所有元素与4096个神经元全部连接。意味着这个层负责将(7,7,49)维的高级表示映射到一个4096更低维度的空间,以满足任务的需要。可以用于包括分类、回归或其他任务

Reshape

因为最后要映射到7 * 7 * 30的Tensor上,所以要进行一次reshape

请添加图片描述

Define Loss Function

损失分为三个部分:在计算boundingbox的损失时,考虑了不同形状的预选框大小对loss的影响

  • bounding box 预选框损失(计算(x,y)的位置误差平方和 + 计算(w,h)形状开根号的误差平方和)(正样本)
  • confidence 损失(confidence的误差平方和)(正样本、负样本)
  • classes 损失(分类概率的误差平方和)(正样本)
    在这里插入图片描述
    在这里插入图片描述

非极大值抑制

选用IOU或概率最大的,非最大的不采用为正样本。

Limitaion

  • 快速简单但是每个cell只能预测一个类别,如果出现重叠无法解决
  • 长宽比可以选择但是比较单一
  • 群体性小目标很难预测(bounding box种类少)
  • 目标出现新的尺寸或者配置
  • 定位不准确(直接预测目标坐标信息的方法导致定位信息不准确)

参考视频:

【3.1 YOLO系列理论合集(YOLOv1~v3)】 https://www.bilibili.com/video/BV1yi4y1g7ro/?p=2&share_source=copy_web&vd_source=a6e29e420e8c019a3e5c4c5485362849

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SpaceSunflower

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

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

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

打赏作者

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

抵扣说明:

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

余额充值