深度学习(二) 理解yolov3模型

yolov3模型框架

准备选择yolov3自己训练一个物体检测的工程。记录下自己对yolov3模型的理解。方便后续遗忘查看。纯属个人理解,如果有不对的地方希望大家指正!!!
一步一步的实现过程是参照b站视频进行
代码地址github:yolo3
视频学习地址bilibili
在这里插入图片描述
模型框架处理解析:
整个模型框架分为三个部分:
Darknet + FPN + region proposal

Darknet

第一部分:Darknet-53 作为一个backbone。主要完成了特征提取的任务。它的组成为两个部分。分别为卷积层和残差网络层。(2+12+22+82+82+42+1)=53,最后的Connected是全连接层也算卷积层,总共53层卷积层。从yolov2中的Darknet-19进化而来,仿ResNet,加深了网络层数,引入了Resnet中的跨层加和操作。使用了残差网络Residual,残差卷积就是进行一次33、步长为2的卷积,然后保存layer,再进行一次11的卷积和一次33的卷积,并把这个结果加上layer作为最后的结果, 残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。相比于同精度的ResNet,速度更快。
卷积层的作用:
在这里插入图片描述
一个特征提取,特征压缩的过程。计算方法就是卷积核与图片像素对应点乘再相加。
一般有三个固定命名的参数:
Kernel_size,stride,padding+两个不固定命名的输入输出通道数ni, nc,inplanes等
Kernel_size=3:卷积核的大小为3*3
Stride=1:步长为1,每次卷积横竖都只走一格。
过程一般分为三步:convolution, batch_normalization, activate
残差网络层
在这里插入图片描述

残差网络可以分为一个一个的block。每个block都如上图所示的结构,一个通道经过正常的卷积层,另一个通道不进行任何的处理与主通道结果相加得到block结果。
如yolov3框图所示,输入进来的图片进行一个卷积层后,进入五层的残差网络。每层网络定义不同个数的block。进行堆叠传递。我们需要残差网络最后的三个输出作为下一次特征金字塔的输入。Out3为5252通道数为256的特征图。Out4为2626通道数为512的特征图。Out5为13*13通道数为1024的特征图。

FPN

第二部分:进行特征金字塔FPN处理,Yolov3借鉴了金字塔特征图思想,小尺寸特征图用于检测大尺寸物体,而大尺寸特征图检测小尺寸物体。1维预测框置信度,二维物体类别数。Yolov3总共输出3个特征图,第一个特征图下采样32倍,第二个特征图下采样16倍,第三个下采样8倍。输入图像经过Darknet-53(无全连接层),再经过Yoloblock生成的特征图被当作两用,第一用为经过33卷积层、11卷积之后生成特征图一,第二用为经过11卷积层加上采样层,与Darnet-53网络的中间层输出结果进行拼接,产生特征图二。同样的循环之后产生特征图三。
concat操作与加和操作的区别:加和操作来源于ResNet思想,将输入的特征图,与输出特征图对应维度进行相加。而concat操作源于DenseNet网络的设计思路,将特征图按照通道维度直接进行拼接,例如8
816的特征图与8816的特征图拼接后生成8832的特征图。
过程如下:
一、首先将out5输出的特征图再进行五次卷积,然后第一通道将生成的特征图再进行两次卷积生成13
13通道数为75的特征图进行预测和分类。75个特征通道分别对应为3*(4+1+20)三个先验框anchors,四个anchors.(x,y,w,h)先验框中心坐标和宽高+一个判定内部是否包含物体+20个类(VOC数据集)。
二、另一个通道将out5五次卷积后进行一次上采样得到26*26通道数为256的特征图与out4进行堆叠再送入七次卷积进行预测和分类。
三、以此类推一共生成了三个回归预测和分类预测的结果。

region proposal

第三部分:region proposal区域建议网络,在faster RCNN中用到了RPN网络。但是需要不断训练RPN网络,进行候选框的提取。Yolov3中在每个特征点生成三个候选框。进行物体的检测。再使用IOU,置信度等方法提取出最合适的检测框。
每个特征点生成三个先验框anchors。就是再每个特征点上,生成三个不同宽高的anchor,检测目标时,如果某个特征点附近的anchors内存在目标物体。经过调整anchor的宽高和中心位置,得到预测框,在包含物体的预测框中再进行anchor的置信度调整,选择最合适的框,就是说选取目标物体占整个框的区域最大的框输出预测。
在这里插入图片描述
三个anchor中心的那个点就是这三个anchors的特征点。每个特征点都生成对应的三个anchors。

下一阶段

Yolov3框架的网络结构已经结束。接下来就是解码和预测过程。
下一篇将进行代码对应网络模块的分析理解以及预测的实现。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值