首页 > 其他分享 >经典重塑-yolov3的网络结构的故事

经典重塑-yolov3的网络结构的故事

时间:2022-09-23 22:11:34浏览次数:60  
标签:采样 box 26 yolov3 16 检测 重塑 网络结构 104

由浅入深,由总体到局部的讲解

先上个结构概览

目前根据现有的知识理解,我列出以下几个关键点

backbone:darknet-53,为什么是53层

neck:fpn(特征金字塔),上采样+concat

head:

上图三个蓝色方框内表示Yolov3的三个基本组件:

  1. CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数三者组成。
  2. Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
  3. ResX:由一个CBL和X个残差组件构成,是Yolov3中的大组件。每个Res模块前面的CBL都起到下采样的作用,因此经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小。

其他基础操作:

  1. Concat:张量拼接,会扩充两个张量的维度,例如26*26*256和26*26*512两个张量拼接,结果是26*26*768。Concat和cfg文件中的route功能一样。
  2. add:张量相加,张量直接相加,不会扩充维度,例如104*104*128和104*104*128相加,结果还是104*104*128。add和cfg文件中的shortcut功能一样。

每个ResX中包含1+2*X个卷积层,因此整个主干网络Backbone中一共包含1+(1+2*1)+(1+2*2)+(1+2*8)+(1+2*8)+(1+2*4)=52,再加上一个FC全连接层,即可以组成一个Darknet53分类网络。不过在目标检测Yolov3中,去掉FC层,不过为了方便称呼,仍然把Yolov3的主干网络叫做Darknet53结构。

为了达到更好的分类效果,作者自己设计训练了darknet-53。作者在ImageNet上实验发现这个darknet-53,的确很强,相对于ResNet-152和ResNet-101,darknet-53不仅在分类精度上差不多,计算速度还比ResNet-152和ResNet-101强多了,网络层数也比他们少。

为了降低池化带来的梯度负面效果,作者直接摒弃了POOLing,用conv的stride来实现降采样。在这个网络结构中,使用的是步长为2的卷积来进行降采样

作者在3条预测支路采用的也是全卷积的结构,其中最后一个卷积层的卷积核个数是255,是针对COCO数据集的80类:3*(80+4+1)=255,3表示一个grid cell包含3个bounding box,4表示框的4个坐标信息,1表示objectness score。

网络中作者进行了三次检测,分别是在32倍降采样,16倍降采样,8倍降采样时进行检测,这样在多尺度的feature map上检测跟SSD有点像。在网络中使用up-sample(上采样)的原因:网络越深的特征表达效果越好,比如在进行16倍降采样检测,如果直接使用第四次下采样的特征来检测,这样就使用了浅层特征,这样效果一般并不好。如果想使用32倍降采样后的特征,但深层特征的大小太小,因此yolo_v3使用了步长为2的up-sample(上采样),把32倍降采样得到的feature map的大小提升一倍,也就成了16倍降采样后的维度。同理8倍采样也是对16倍降采样的特征进行步长为2的上采样,这样就可以使用深层特征进行detection

feature map中的每一个cell都会预测3个边界框(bounding box) ,每个bounding box都会预测三个东西:(1)每个框的位置(4个值,中心坐标tx和ty,,框的高度bh和宽度bw)这里在模型中输出的是offset,需要再次解码才能得到真实的中心坐标和高宽,(2)一个objectness prediction ,(3)N个类别,coco数据集80类,voc20类。

三次检测,每次对应的感受野不同,32倍降采样的感受野最大,适合检测大的目标,所以在输入为416×416时,每个cell的三个anchor box为(116 ,90); (156 ,198); (373 ,326)。16倍适合一般大小的物体,anchor box为(30,61); (62,45); (59,119)。8倍的感受野最小,适合检测小目标,因此anchor box为(10,13); (16,30); (33,23)。所以当输入为416×416时,实际总共有(52×52+26×26+13×13)×3=10647个proposal box。

 

这里注意bounding box 与anchor box的区别:

Bounding box它输出的是框的位置(中心坐标与宽高),confidence以及N个类别。anchor box只是一个尺度即只有宽高。

 

标签:采样,box,26,yolov3,16,检测,重塑,网络结构,104
From: https://www.cnblogs.com/chentiao/p/16724509.html

相关文章

  • Yolov3模型训练并转化为onnx
    下载yolov3代码,github上下载,https://github.com/ultralytics/yolov3我下载的v9.5.0版本 数据集划分,分为train,val,test#将图片和标注数据按比例切分为训练集和测试......
  • R语言学习丨数据重塑、拆分与组合基础知识,merge、melt、cast函数介绍
    今天学习R语言中数据重塑相关基础知识,主要有merge、melt、cast函数用法示例。公众号:生信分析笔记合并数据框merge()函数能够以一列为参考合并两个不同数据框,相当于数学中......
  • 重塑儿童尸检
    重塑儿童尸检公元前300年左右,亚历山大医生Herophilus和Erasistratus进行了第一次解剖以研究疾病,但在公元2世纪后期,第一次将患者的症状与检查死者的发现联系起来......
  • 关于ppo中针对MLP和RNN两种不同网络结构的数据处理与采样方法
    在RL中,需要对数据进行采样,因此如何构造可采样的数据或数据块,则是需要关注的问题: ifself.actor_critic.is_recurrent:data_generator=rollouts.recurrent_generat......
  • ModelBox开发体验:使用YOLOv3做口罩检测
    摘要:本案例将在ModelBox中使用YOLOv3模型,实现一个简单的口罩检测应用本文分享自华为云社区《ModelBox开发体验Day05开发案例-使用YOLOv3做口罩检测》,作者:孙小北。本案......
  • 打碎自己,理解自己,重塑自己
    我不得不去打碎自己,对着掉落的碎片一点一点地去发现身上的问题,然后一块块地去解决,或者去接受,要么改正自己的缺点,要么接受自己的缺点。关于爱情。ztt为什么拉黑你。......
  • 深度学习几种基本的网络结构
    一个生物神经元细胞的功能比较简单,而人工神经元只是生物神经细胞的理想化和简单实现,功能更加简单.要想模拟人脑的能力,单一的神经元是远远不够的,需要通过很多神经元一起协......