东莞建网站的公司,推广普通话的演讲稿,网站建设 鼠标,织梦dedecms网站简略标题shorttitle的使用方法YOLOV3 论文地址#xff1a;#xff1a;【https://arxiv.org/pdf/1804.02767】 YOLOV3 论文中文翻译地址#xff1a;#xff1a;【YOLO3论文中文版_yolo v3论文 中文版-CSDN博客】 YOLOv3 在实时性和精确性在当时都是做的比较好的#xff0c;并在工业界得到了广泛应用 … YOLOV3 论文地址【https://arxiv.org/pdf/1804.02767】 YOLOV3 论文中文翻译地址【YOLO3论文中文版_yolo v3论文 中文版-CSDN博客】 YOLOv3 在实时性和精确性在当时都是做的比较好的并在工业界得到了广泛应用 YOLOv3 改进网络结构使其更适合小目标检测改进 softmax预测多标签任务 YOLOv3 最显著的改进就是在 3 个尺度上以相同的方式进行目标的检测每种 3 个锚框共 9 个。这使其可以检测到不同规模的目标 1、网络结构
1.1 整体结构 CBLCBLConvolutional Batch Normalization Leaky ReLU是 Yolov3 网络结构中的最小组件组成如下 卷积层Convolutional Layer 批量归一化层Batch Normalization Layer 激活函数Leaky ReLU resunit含有多个 CBL残差模块中含有一个或多个残差单元。输入通过两个 CBL 后再与原输入进行 add这是一种常规的残差单元。残差单元的目的是为了让网络可以提取到更深层的特征同时避免出现梯度消失或爆炸 梯度消失是指在反向传播过程中梯度值变得非常小以至于权重更新几乎停滞不前 梯度爆炸是指在反向传播过程中梯度值变得非常大导致权重更新幅度过大从而使模型的训练不稳定甚至发散 resnresn 是 Yolov3 中的大组件n 表示这个 Res-block 里含有多少个 Res-unit组成如下 一个 padding 一个 CBL N 个残差组件 concat将 Darknet-53 的中间层和后面的某一层的上采样进行张量拼接达到多尺度特征融合的目的。这与残差层的 add 操作是不一样的拼接会扩充张量维度而 add 直接相加不会导致张量维度的改变例如 104×104×128 和 104×104×128 拼接结果是 104×104×256 add张量相加张量直接相加不会扩充维度例如 104×104×128 和 104×104×128 相加结果还是 104×104×128 上采样上采样Upsampling是一个关键的技术用于实现多尺度特征融合从而提高模型对不同尺度目标的检测能力 多尺度特征融合YOLOv3 在多个尺度上进行目标检测通过上采样将低分辨率的特征图放大到高分辨率与更高分辨率的特征图进行融合从而捕捉到更多的细节信息有助于模型更好地检测不同尺度的目标尤其是小目标 255 3 x (4180) 最后面的蓝色立方体表示三种尺度的输出 1.2 主干网络 YOLOV3 主干结构采用 darknet-53没有池化和全连接层尺寸变换是通过 Stride 实现的 整个网络主要包括5组残差块如下 以256x256输入为例首先经过一个3x3x32的卷积层输出为256x256x32 接着经过一个3x3x64 stride2的卷积层输出为128x128x64 接着经过一个残差块输出为128x128x64 再经过一个3x3x128 stride2的卷积层输出为64x64x128 经过2个残差块后输出为64x64x128 接着经过一个3x3x256 stride2的卷积层输出为32x32x256 接着经过8个残差块输出为32x32x256 再经过一个3x3x512 stride2的卷积层输出为16x16x512 接着经过8个残差块后输出为16x16x512 接着经过一个3x3x1024 stride2的卷积层输出为8x8x1024 接着经过4个残差块后输出为8x8x1024 最后经过池化全连接层以及softmax输出 1.3 特征输出 特征图尺寸越小感受野越大他们分别适配不同大小的目标 52 × 52 感受野小更适合检测小型目标 26 X26 感受野中等更适合检测中小型目标 13 × 13 感受野大更适合检测大型目标 1.4 特征融合
1.4.1 FPN思想 在目标检测任务中不同尺度的目标如远处的小人和近处的大车对特征提取的要求不同 大目标需要高层语义信息如类别、整体形状 小目标需要低层细节信息如边缘、纹理 传统的单尺度特征提取网络如 YOLOv2往往只使用最后一层特征图进行预测对小目标检测效果较差 FPNFeature Pyramid Network就是特征金字塔网络目标是融合多尺度特征使每个尺度的特征图都具备丰富的语义信息从而提升对不同尺度目标的检测能力尤其是小目标 FPN 的主要思想如下 特征提取使用骨干网络如 ResNet、Darknet-53 等提取不同尺度的特征图。这些特征图通常有不同的分辨率例如 13x13、26x26 和 52x52 自顶向下路径从最高层的特征图开始逐层进行上采样并与下一层的特征图进行拼接通过 CBL 模块对拼接后的特征图进行进一步处理作用是将高层语义信息“传递”到低层增强低层特征的语义表达能力 横向连接在每个尺度上将自顶向下路径的特征图与同尺度的骨干网络输出特征图进行通道拼接Concatenate作用是融合低层的细节信息 高层的语义信息提升多尺度检测能力 特征融合在每个尺度的横向连接后使用一个 CBL 模块Conv BN Leaky ReLU 或普通卷积层对拼接后的特征图进行进一步处理通常使用 3×3 卷积进行特征融合作用是增强特征表达能力减少信息冗余 观察下面四张图 图 a特征化图像金字塔 当我们要检测不同的尺度目标时需要把图像送入不同的尺度 需要根据不同的尺度图片一次进行预测 需要多少个不同尺度就需要预测多少次效率较低 图 b单特征映射 得到一个特征图并进行预测 特征丢失对于小目标效果不好 图 c金字塔特征层次结构 把图像传给 backbone在传播的过程中分别进行预测 相互之间独立特征没有得到充分利用 图 d特征金字塔网络 不是简单的在不同特征图上进行预测 会对不同的特征图进行融合后再进行预测
1.4.2 FPN融合 和前面描述的一样为了进一步降低模型的复杂度进而提升速度YOLOv3 选择了重用主干网络所提取的不同尺寸的特征图主要是 8 倍、16 倍以及 32 倍下采样的特征图同时采用了 FPN 的设计思想分别对 16 倍、32 倍以及各自上采样后的结果进行了融合但是也对其进行了一定的改进在传统的 FPN 中特征图通常是通过 加法Add 来进行融合的。但在 YOLOv3 中作者选择使用 通道拼接Concatenate 来代替加法操作这是为了 增加特征图的通道数使得模型能够捕捉到更多的信息 避免信息丢失加法操作可能会导致某些重要信息被掩盖而拼接则保留了所有原始信息 1×1 卷积完成通道的一致性 2×up上采样完成尺寸的一致性 1.4.3 上采样融合 特征融合更有利于检测各种尺寸的物体下图是特征融合架构图 2、多尺度预测 如果输入的是 416×416x3 的图像YOLOv3 会产生 3 个尺度的特征图分别为13×13、26×26、52×52也对应着网格个数即总共产生 13×1326×2652×52 个网格。对于每个网格对应 3 个锚框于是最终产生了(13×1326×2652×52)×310647 个预测框利用阈值过滤掉置信度低于阈值的预选框每个网格同样最终只预测一个结果取置信度最大的 在 COCO 数据集上YOLOv3 使用了 9 种不同形状的 Anchor Box这 9 个 Anchor Box 被分配到三个不同的尺度中每个尺度使用其中的 3 个来匹配适合该尺度的目标大小。具体来说 13×13 特征图适用于较大的目标因为这个尺度的特征图感受野较大能够捕捉到更全局的信息 26×26 特征图适用于中等大小的目标 52×52 特征图适用于较小的目标因为这个尺度的特征图分辨率更高能捕捉到更多细节 对于每个网格其都对应一个 85 维度的 Tensor80 5 541中心点坐标、宽、高置信度 8080 个类别的类别概率COCO数据集的类别是80个 3、类别预测 在有的数据集中一个目标可能同时具有多个标签如“女性”和“人”。使用 softmax 会隐式地假设每个边界框只属于一个类别而现实中这种情况并不总是成立。因此多标签分类的方式更符合实际数据分布能够更好地建模多类别共存的场景 YOLOv3 使用独立的逻辑回归分类器代替 softmax采用多标签分类方式处理类别预测这种设计更适合现实场景中目标类别重叠的情况提升了模型对复杂任务的适应能力
4、损失函数 YOLOv3 的损失函数由三个主要部分组成定位损失Localization Loss、置信度损失Confidence Loss和分类损失Classification Loss 定位误差损失对于每一个与真实边界框ground truth匹配的先验框anchor boxYOLOv3 会计算其在位置x, y和尺寸w, h上的预测误差。该部分损失采用均方误差Mean Squared Error, MSE进行计算。需要注意的是YOLOv3 仅对负责预测目标的 anchor box 计算定位损失其余框不参与该部分损失的计算 置信度误差损失YOLOv3 使用二元交叉熵损失Binary Cross Entropy, BCE来计算置信度损失。该损失分为两个部分 对于负责预测目标的 anchor box置信度的目标值为预测框与真实框之间的 IOU 对于不负责预测的 anchor box目标值为 0。 这种设计有助于模型学习区分包含目标与不包含目标的边界框 分类误差损失与早期版本不同YOLOv3 放弃了使用 softmax 的多类分类方式转而采用独立的二元分类器并对每个类别使用二元交叉熵损失Binary Cross-Entropy Loss。这种多标签分类的设计允许一个边界框同时属于多个类别如“女性”和“人”从而更好地建模现实世界中复杂的标签重叠情况
5、性能对比 AP50IoU 阈值为 0.5 时的 AP 测量值 AP75IoU 阈值为 0.75 时的 AP 测量值 APs对于小目标的 AP 值 APm对于中等目标的 AP 值 APL对于大目标的 AP 值