当前位置: 首页 > news >正文

物流网站开发系统论文江西做网站的公司有哪些

物流网站开发系统论文,江西做网站的公司有哪些,中国一级爱做电影网站,重庆飘逸科技有限公司yolov5-v6.0详细解读 一、yolov5版本介绍二、网络结构2.1 Backbone特征提取部分2.1.1 ConvBNSiLU模块2.1.2 C3模块2.1.2.1 BottleNeck模块 2.1.3 SPPF模块 2.2 Neck特征融合部分2.2.1 FPN2.2.2 PANet 2.3Head模块 三、目标框回归3.1 yolo标注格式3.2 yolov4目标回归框3.3 yolov… yolov5-v6.0详细解读 一、yolov5版本介绍二、网络结构2.1 Backbone特征提取部分2.1.1 ConvBNSiLU模块2.1.2 C3模块2.1.2.1 BottleNeck模块 2.1.3 SPPF模块 2.2 Neck特征融合部分2.2.1 FPN2.2.2 PANet 2.3Head模块 三、目标框回归3.1 yolo标注格式3.2 yolov4目标回归框3.3 yolov5目标回归框 四、正负样本匹配五、 损失函数5.1 总损失5.2 边界框损失5.3 分类损失5.4 置信度损失 六、训练技巧6.1 Mosaic数据增强6.2 自适应锚框6.3自适应图片缩放6.4 训练预热 Warmup6.5 余弦退火调整学习率6.6 超参数进化 【yolo专题】目标检测评估指标 【yolo专题】yolov1背景介绍与算法精讲 【yolo专题】yolo9000Better, Faster, Stronger的目标检测网络 【yolo专题】YOLOv3算法与论文详细解读 【yolo专题】YOLOV4改进方法详细介绍—看这一篇就够了 一、yolov5版本介绍 YOLOv5目前有YOLOv5n、YOLOv5s、YOLOv5m、YoLOv5l、YOLOv5x五个版本。这五个版本在网络结构上是没有区别的唯一的区别就是网络的宽度和深度不一样在这5个版本的配置文件里面是通过设置不同的depth_multiple和width_multiple来控制网络的大小。其中depth_multiple控制网络的深度BottleneckCSP数width_multiple控制网络的宽度卷积核数量。通过设置这两个不同参数不同复杂度模型数量如下表 当depth_multiple和width_multiple都为1的时候此时的网络结构是没有增加和减少的。我们常用的是版本YOLOv5s此时网络模型的深度(BottleneckCSP数量)是YOLOv5L的1/3宽度(conv)是YOLOv5L的一半。 二、网络结构 yolov5的网络结构如下 图片链接https://github.com/ultralytics/yolov5/issues/6885 2.1 Backbone特征提取部分 YOLOv5-v6.0版本的Backbone主要由ConBNSiLU模块、C3和SPPF模块三部分组成。 Backbone特征提取部分采用的是CSPNet网络结构CSP(Cross Stage Partial Network)跨阶段局部网络它的网络结构图如下使用csp网络有以下优点。 减少计算量和参数数量CSPNet通过将网络分成两个阶段并在两个阶段之间引入CSP模块可以减少整体的计算量和参数数量。CSP模块通过将输入特征图一分为二并将其中一部分直接通过跳跃连接连接到后续的层级有效地减少了后续层级的计算量从而提高了网络的效率。提升信息流动性CSPNet中的CSP模块还能够增强特征图中信息的流动性。通过将特征图分成两部分并在不同部分之间引入交叉连接CSP模块可以更好地促进特征之间的信息传递和交换从而增强了特征图的表达能力。增强特征重用性CSPNet通过引入CSP模块将输入特征图分成两部分并进行交叉连接使得网络可以更充分地利用输入特征图中的信息。这种交叉连接的设计增强了特征的重用性有助于提高网络的泛化能力和分类性能。降低过拟合风险由于CSPNet通过减少参数数量和引入跳跃连接来降低计算量这也有助于减轻过拟合的风险。相比于传统的深度神经网络结构CSPNet具有更好的泛化能力能够更好地适应不同的数据集和任务。保持高性能尽管CSPNet减少了计算量和参数数量但它仍然能够保持较高的分类性能。通过有效地利用输入特征图中的信息并增强特征图之间的交互CSPNet可以在保持高效率的同时实现与传统网络相媲美甚至更好的分类性能。 2.1.1 ConvBNSiLU模块 ConvBNSiLU模块在yolo的配置文件中是以Conv的形式出现的为了方便理解后面都将 ConvBNSiLU理解为CBS模块它主要由以下三个部分组成: YOLOv5在ConvBNSiLU模块中封装了三个功能:普通的卷积(Conv2d)、Batch Normalization和激活函数SiLU(sigmoid linear unit)这里会发现激活函数和yolov5旧版本不太一样旧版本使用的是Leaky ReLU。 SiLU激活函数图像如下相对于ReLU激活函数它在x轴的负半轴有段向下的曲线 正数区域内SiLU 函数的输出与 ReLU 函数的输出相同。在负数区域内SiLU 函数的输出与 sigmoid 函数的输出相同。SiLU 函数在整个定义域内都是可微的这使得在反向传播过程中的梯度计算更加稳定。SiLU函数不是单调递增的而是在x≈−1.28时达到全局最小值−0.28这可以起到一个隐式正则化的作用抑制过大的权重。 2.1.2 C3模块 这里解释一下为什么叫C3模块因为是由三个CBS模块也就是三个卷积层再加上若干个BottleNeck模块构成输入进来的特征分为两个部分一部分特征是只经过CBS模块处理一部分经过CBSBottleNeck处理最后通过concat将两部分特征进行拼接再经过一个CBS层将特征维度进行恢复。 YOLOv5-v6.0版本中使用了C3模块替代了早期的BottleneckCSP模块。这两者结构作用基本相同均为CSP架构只是在修正单元的选择上有所不同C3模块包含了3个标准卷积层以及多个Bottleneck模块与BottleneckCSP模块所不同的是经过Bottleneck模块输出后的Conv模块被去掉了。 2.1.2.1 BottleNeck模块 在C3模块中存在若干个BottleNeck模块该模块其实存在两种形式也就是BottleNeck1和BottleNeck2BottleNeck1是以resnet残差结构连接的该残差结构是由两条路构成其中一路先进行1×1卷积将特征图的通道数减小一半从而减少计算量再通过3×3卷积提取特征并且将通道数加倍其输入与输出的通道数是不发生改变的而另外一路通过shortcut进行残差连接与第一路的输出特征图相加从而实现特征融合BottleNeck2只是经过一次1x1卷积的CBS和一次3x3卷积的CBS。 2.1.3 SPPF模块 YOLOv5-v6.0版本使用了SPPF(Spatial Pyramid Pooling Fast)模块来代替SPP(Spatial Pyramid Pooling)模块。 其中SPP是Spatial Pyramid Pooling的简称即空间金字塔池化YOLOv5借鉴了SPPNet的思想。这里先来看一下SPP结构该结构是何凯明15年在Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition论文中提出来的在RCNN中第一阶段检测出来的候选框大小不一样为了让这些候选框可以变成固定大小送进FC层SPP就可以达到这一目的。 旧版本的yolov5中的SPPfeature map首先经过一个卷积降维然后分别进行kernel size为5, 9, 13的max polling层最后将它们与降维之后的特征concat起来然后再经过一个卷积将channel恢复成原来大小。 SPPF模块采用多个小尺寸池化核级联代替SPP模块中单个大尺寸池化核从而在保留原有功能即融合不同感受野的特征图丰富特征图的表达能力的情况下进一步提高了运行速度。该模块输入的特征图首先经过卷积层进行降维再经过三个kernel size5的卷积核进行最大池化将每次池化后的特征与卷积之后的特征进行concat最后再经过一次卷积将特征图的尺度进行恢复。 2.2 Neck特征融合部分 2.2.1 FPN 论文链接https://arxiv.org/abs/1612.03144 即Feature Pyramid Network(特征金字塔)。原来多数的目标检测算法只是采用顶层特征做预测但我们知道浅层的特征所携带的语义信息较少而位置信息更强深层的特征所携带的语义信息较丰富而位置信息更弱。FPN的思想就是把深层的语义信息传递到浅层从而增强多个尺度上的语义表达。 通俗地说FPN可以比喻成一座金字塔每一层代表不同尺度的特征图。底部的特征图尺寸较大但信息较为粗糙适合检测大的物体而顶部的特征图尺寸较小但信息更加精细适合检测小的物体。FPN通过自上而下的反卷积upsampling和自下而上的跳跃连接skip connection的方式将这些不同尺度的特征图融合在一起形成一个特征金字塔使得网络能够同时关注不同尺度的特征。 FPN的大致结构如上图所示左边是一个自底向上(Bottom-up)的传播路径也就是特征提取部分右边是一个自顶向下(Top-down)的传播路径中间是通过横向连接(lateral connection)进行特征融合。 自底向上(Bottom-up)的过程就是网络的前向传播过程从结构图可以看出取经过第2个C3和第3个C3以及最后一个SPPF模块的Feature map来构成金字塔当输入图片大小是640x640x3的时候该特征金字塔的Feature map分别是80x80x256、40x40x512、20x20x1024组成。 自顶向下(Top-down)的过程是从小尺寸的feature map开始逐个进行1/2降维和2倍上采样(这里的顶表示深层次的网络信息也就是Backbone特征提取网络最后一层20x20x1024的信息)然后与特征金字塔上一层的Feature map进行concat拼接这里的降维操作使用的是1x1的卷积降低特征图通道数最顶层的特征图为20x20x1024大小通过降维和上采样之后变成40x40x512特征图与特征金字塔第二层的Feature map40x40x512进行拼接得到40x40x1024的特征图。 在拼接融合之后还会对每个拼接结果进行C3模块卷积目的是消除上采样的混叠效应(aliasing effect)。然后继续降维上采样与第一层的Feature map进行拼接。 2.2.2 PANet 论文链接https://arxiv.org/abs/1803.01534 FPN通过自顶向下(Top-down)的结构将深层的语义信息传递到浅层但是浅层的位置信息却无法影响到深层特征。同时FPN中顶部信息流需要通过骨干网络(Backbone)逐层地往下传递由于层数相对较多如果使用原路返回的方法计算量比较大。此时想到另外一种方法如果能够将已经经过特征金字塔融合的特征再进行自底向上传递的话就可以解决计算量大的问题而PANet有效地解决了上述这些问题。 (a)FPN骨干。(b)PANet自下而上的路径增强。©自适应特征池。(d)箱形分支。(e)全连接融合。 如上图(b)所示PANet在FPN的基础上又引入了一个自底向上(Bottom-up)的路径。经过自顶向下(Top-down)的特征融合后再进行自底向上(Bottom-up)的特征融合这样底层的位置信息也能够传递到深层从而增强多个尺度上的定位能力。同时与FPN相比(如红色线条所示)PANet中的底层特征传递所需要穿越的feature map数量大大减少(如绿色线条所示)使得底层的位置信息更容易传递到顶部。 经过FPN之后的特征图再进行下采样与特征金字塔中已经融合的特征再进行拼接融合。其中自底向上(Bottom-up)的过程是沿着N2 → N3 → N4 → N5路径逐个stage通过3×3卷积进行2倍下采样然后与FPN中相应大小的feature map进行相加融合(在YOLOv5中采用的是拼接融合)。也就是P2进行下采样之后生成的N2与P3进行拼接成为N3N3在再与P4进行拼接。 2.3Head模块 在YOLOv5中Head模块通过1x1卷积将Neck模块得到的不同尺度的特征图的通道数量扩展扩展后的通道数为(类别数量5)乘以每个检测层上的anchor数量。其中5表示预测框的中心点的横坐标、纵坐标、宽度、高度和置信度。这里的置信度代表了预测框中存在目标的可信度其取值范围在0到1之间值越大表示该预测框中可能存在目标的可能性越高。 在YOLOv5的Head模块中包含了3个检测层分别对应Neck模块中得到的3种不同尺寸的特征图。针对这3种特征图YOLOv5在每个网格上预设了3个不同宽高比的anchor用来预测和回归目标。因此Head模块中扩展后的通道维度可以理解为在特征图的通道维度上保存了所有基于anchor先验框的位置信息和分类信息。 三、目标框回归 3.1 yolo标注格式 在PASCAL VOC中物体在图像中的位置是以左上角坐标和右下角坐标进行确定的yolo物体标记的物体位置则是用相对位置进行标记物体的具体位置是由中心点坐标以及宽、高决定的。那么如何将PASCAL VOC坐标转换为yolo格式的坐标呢假设该物体的坐标由(187,21)、403,627决定此时我们需要计算该目标的中心点坐标x,y再除以图片的宽高就可以得到yolo格式的中心点坐标同理物体相对于该图片的大小也使用该方法计算。 3.2 yolov4目标回归框 先分析一下yolov4的目标框回归公式 首先Anchor给出了目标宽高的初始值需要回归的是目标真实宽高与初始宽高的偏移量 预测边界框中心点相对于对应cell左上角位置的相对偏移值为了将边界框中心点约束在当前cell中使用sigmoid函数处理偏移值使预测偏移值在(0,1)范围内 3.3 yolov5目标回归框 yolov5的tx、tytwth都经过了sigmoid函数处理因为原始的yolo/darknet框方程式存在严重缺陷。宽度和高度完全不受限制因为它们只是out expin这很危险因为它可能导致失控的梯度、不稳定、NaN损失并最终完全失去训练。 对于yolov5确保通过sigmoid所有模型输出来修补此错误同时还要确保中心点保持不变1 fcn0当tx、tytwth偏移量都为0此时预测值都为1此时得到的就是锚框大小。 当前的方程式将锚点的倍数从最小0限制为最大4并且锚点-目标匹配也已更新为基于宽度-高度倍数标称上限阈值超参数为4.0超过这个值就认为bbox和anchor匹配度不高而认为是背景。为什么公式中要取平方运算通过下面这幅实验图可以看出输入和输出的关系。 四、正负样本匹配 YOLOv5的每个检测层上的每个网格都预设了多个anchor先验框但并不是每个网格中都存在目标也并不是每个anchor都适合用来回归当前目标因此需要对这些anchor先验框进行筛选将其划分为正样本和负样本。本文的正负样本指的是预测框而不是Ground Truth(人工标注的真实框)。 与YOLOv3/4不同的是YOLOv5采用的是基于宽高比例的匹配策略它的大致流程如下 对于每一个Ground Truth(人工标注的真实框)分别计算它与9种不同anchor的宽与宽的比值(w1/w2, w2/w1)和高与高的比值(h1/h2, h2/h1)。找到Ground Truth与anchor的宽比(w1/w2, w2/w1)和高比(h1/h2, h2/h1)中的最大值作为该Ground Truth和anchor的比值。若Ground Truth和anchor的比值小于设定的比值阈值(超参数中默认为anchor_t 4.0)那么这个anchor就负责预测这个Ground Truth即这个anchor所回归得到的预测框就被称为正样本剩余所有的预测框都是负样本。 通过上述方法YOLOv5不仅筛选了正负样本同时对于部分Ground Truth在单个尺度上匹配了多个anchor来进行预测总体上增加了一定的正样本数量。除此以外YOLOv5还通过以下几种方法增加正样本的个数从而加快收敛速度。 跨网格扩充 假设某个Ground Truth的中心点落在某个检测层上的某个网格中除了中心点所在的网格之外其左、上、右、下4个邻域的网格中靠近Ground Truth中心点的两个网格中的anchor也会参与预测和回归即一个目标会由3个网格的anchor进行预测。 如果点(xg,yg)在格子的左上角则取左边、上方的两个格子如果点(xg,yg)在格子的右上角则取右边、上方的两个格子如果点(xg,yg)在格子的左下角则取左边、下方的两个格子如果点(xg,yg)在格子的右下角则取右边、上下方的两个格子 跨分支扩充YOLOv5的检测头包含了3个不同尺度的检测层每个检测层上预设了3种不同长宽比的anchor假设一个Ground Truth可以和不同尺度的检测层上的anchor匹配则这3个检测层上所有符合条件的anchor都可以用来预测该Ground Truth即一个目标可以由多个检测层的多个anchor进行预测。 五、 损失函数 5.1 总损失 YOLOv5损失函数包括 classification loss, 分类损失localization loss, 定位损失预测边界框与GT之间的误差confidence loss, 置信度损失框的目标性objectness of the box 把640x640的输入图像划分成NxN通常为80x80、40x40、20x20的网格然后对网格的每个格子都预测三个指标矩形框、置信度、分类概率。 其中 矩形框表征目标的大小以及精确位置。置信度表征所预测矩形框简称预测框的可信程度取值范围0~1值越大说明该矩形框中越可能存在目标。分类概率表征目标的类别 总的损失函数Aclassification loss Blocalization loss C*confidence loss(A,B,C表示每个损失所占的权重大小) 由于yolov5生成的是三个尺寸的特征图所以需要对每一个尺寸的特征图都求损失最后的总损失是每个特征图的分类损失边界框损失置信度损失。 上式中α1、α2、α3为各网格损失函数值的权重系数。考虑到图像中往往小型目标比较多中型目标次之大型目标最少因此通常把8080网格的权重α1设置最大4040网格的权重α2次之20*20网格的权重α3最小使得训练时网络更加专注于数量多的目标。 5.2 边界框损失 YOLOV5使用 CIOU Loss作为bounding box回归的损失。关于CIOU以及GIOU和DIOU的损失计算方法可以参考这篇文章YOLOV4改进方法详细介绍—看这一篇就够了 5.3 分类损失 类别预测大多数分类器假设输出标签是互斥的。 如果输出是互斥的目标类别则确实如此。 因此YOLO应用softmax函数将得分转换为总和为1的概率。 而YOLOv3/v4/v5使用多标签分类。 例如输出标签可以是“行人”和“儿童”它们不是非排他性的。 现在输出的总和可以大于1。YOLOv3/v4/v5用多个独立的逻辑logistic分类器替换softmax函数以计算输入属于特定标签的可能性。在计算分类损失进行训练时YOLOv3/v4/v5对每个标签使用二元交叉熵损失。 这也避免使用softmax函数而降低了计算复杂度。 神经网络对80*80网格的每个格子都预测三个预测框每个预测框的预测信息都包含了N个分类概率。其中N为总类别数比如COCO数据集有80个类别那么N取80。所以对于COCO数据集每个预测框有80个0~1的分类概率那么神经网络总共预测3x80x80x80个分类概率组成预测概率矩阵。 YOLOv5默认使用二元交叉熵函数来计算分类损失。二元交叉熵函数的定义为: 5.4 置信度损失 对于一张图像分割成的80*80的网格神经网络对其中每个格子都预测三个位于该格子附近的矩形框简称预测框每个预测框的预测信息包括中心坐标、宽、高、置信度、分类概率因此神经网络总共输出3x80x80个0~1的预测置信度与3x80x80个预测框一 一对应。每个预测框的置信度表征这个预测框的靠谱程度值越大表示该预测框越可信靠谱也即越接近目标的真实最小包围框。 比如下图中红点A、B、C、D表示检测目标那么每个红点所在格子的三个预测置信度应该比较大甚至接近1而其它格子的预测置信度应该较小甚至接近0。 这样一来标签值的大小与预测框、目标框的重合度有关两框重合度越高则标签值越大。如果CIOU的取值范围是-1.5-1而置信度标签的取值范围是0~1所以需要对CIOU做一个截断处理当CIOU小于0时直接取0值作为标签。 与计算分类损失一样YOLOv5默认使用二元交叉熵函数来计算置信度损失。 六、训练技巧 6.1 Mosaic数据增强 Mosaic数据增强是指将4张图片随即缩放、随机裁剪、随机排布的方式进行拼接成新的图片该方式仅在训练过程中使用。下图就是一个Mosaic数据增强的过程。 丰富数据集随机使用4张图片随机缩放再随机分布进行拼接大大丰富了检测数据集特别是随机缩放增加了很多小目标让网络的鲁棒性更好。减少GPU可能会有人说随机缩放普通的数据增强也可以做但作者考虑到很多人可能只有一个GPU因此Mosaic增强训练时可以直接计算4张图片的数据使得Mini-batch大小并不需要很大一个GPU就可以达到比较好的效果。 6.2 自适应锚框 传统的yolo会先设置初始的锚框这些初始锚框是根据COCO等数据集进行聚类得到的 anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32之前我们学的 YOLOv3、YOLOv4对于不同的数据集都会计算先验框 anchor。然后在训练时网络会在 anchor的基础上进行预测输出预测框再和标签框进行对比最后就进行梯度的反向传播。 在 YOLOv3、YOLOv4 中训练不同的数据集时是使用单独的脚本进行初始锚框的计算在 YOLOv5 中则是将此功能嵌入到整个训练代码里中。所以在每次训练开始之前它都会根据不同的数据集来自适应计算 anchor。 6.3自适应图片缩放 在常用的目标检测算法中不同的图片长宽都不相同因此常用的方式是将原始图片统一缩放到一个标准尺寸再送入检测网络中如下图所示。但是在项目实际使用时很多图片的长宽比不同因此缩放填充后两端的黑边大小都不同而如果填充的比较多则存在信息冗余影响推理速度。因此YOLOv5作者在augmentations.letterbox()中对图像自适应添加最少的灰边代码中添加的是灰边本文以黑边代替。 一般的图片缩放 使用自适应的缩放 训练时没有采用缩减黑边的方式还是采用传统填充的方式即缩放到640*640大小。只是在测试使用模型推理时才采用缩减黑边的方式提高目标检测推理的速度。 6.4 训练预热 Warmup 由于刚开始训练时模型的权重(weights)是随机初始化的此时若选择一个较大的学习率可能带来模型的不稳定振荡选择Warmup预热学习率的方 式可以使得开始训练的几个epoch或者一些step内学习率较小在预热的小学习率下模型可以慢慢趋于稳定等模型相对稳定后在选择预先设置的学习率进行训练使得模型收敛速度变得更快模型效果更佳。 6.5 余弦退火调整学习率 参考论文https://arxiv.org/pdf/1608.03983.pdf 在每一次运行中我们用余弦退火对每个批次的学习率进行衰减如下所示 通过训练学习率曲线和精确度曲线可以看出使用余弦退火的曲线更加平滑。 6.6 超参数进化 超参数进化是一种利用遗传算法进行超参数优化的方法用于优化的算法GA。目前模型提供的默认参数是通过在COCO数据集上使用超参数进化得来的由于超参数进化会耗费大量的资源和时间如果默认参数训练出来的结果能满足你的使用使用默认参数也是不错的选择
http://www.dnsts.com.cn/news/187932.html

相关文章:

  • 做调查问卷能挣钱的网站安阳做网站的公司
  • 网站实现多语言网站logo怎么改
  • 网站开发职业定位怎么宣传自己新开的店铺
  • 网站建设淘宝好评电商网站 建社区
  • 公益网站建设方案企业cms网站建设考试题
  • 做微电网的公司网站网站建设小故事
  • 给网站写文章怎么做wordpress phpstudy
  • 国外平面设计网站大全weui做购物网站的案例
  • 德州网站seo怎么申请公司
  • 怎样建立营销网站免费的微信小程序
  • 一手房发帖网站怎样做wordpress阿里图标库
  • 青岛手机网站建设电话网站运营方案 网站建设
  • 佛山高端网站设计美食网站模版
  • 长安仿做网站施工企业会计核算流程
  • 菏泽厚德网站建设公司怎么样ps网站首页效果图实例
  • 三网合一网站模板外国网站设计风格
  • 推广自己的网站wordpress实现伪静态
  • 如何维护自己公司网站柳州市安全教育平台
  • 同一个公司可以做几个网站吗网站 建设运行情况
  • 西安seo网站公司用jsp做的网站在不同浏览器显示效果差异很大如何解决
  • 网站平台免费威海哪家做网站好
  • 建设网站的工作中国水利教育培训网站
  • 深圳网站定制开发什么免费推广网站好
  • 福建众利建设工程网站我想建设网站
  • 建设网站前的目的原画培训机构排行榜
  • 网站开发常去的论坛营销网站建设网站设计
  • 沈阳创新网站建设报价如何欣赏网站
  • 开源asp学校系统网站室内设计有哪些网站
  • 旅游网站源码下载wordpress留言板自定义
  • 厨具 技术支持东莞网站建设wordpress.播放器代码