学习
实践
活动
工具
TVP
写文章
专栏首页文武兼修ing——机器学习与IC设计YOLOv2与YOLOv3学习笔记基本思路模型训练YOLOv3

YOLOv2与YOLOv3学习笔记基本思路模型训练YOLOv3

基本思路

YOLOv2是YOLO的第二个版本,该物品检测系统仍然只需要“Look Once”,其整体结构如下所示:

yolo_main.png

其主要由两个部分构成:

  • 神经网络:将图片计算为一个13\times 13 \times 125的向量,该向量包含了预测的物品位置和类别信息
  • 检测器:将神经网络输出的向量进行“解码”操作,输出物品的分类和位置信息。

神经网络部分

YOLOv2的神经网络部分使用了一个带跳层的神经网络,具体结构如下所示:

yolo_net.png

神经网络的设计没有太大飞跃性的改变,相对于YOLOv1的神经网络设计主要有以下改变:

  • 每个卷积层后添加了批标准化层,加速了网络的收敛。
  • 在第16层开始分为两条路径,将低层的特征直接连接到高层,可提高模型性能。
  • 移除全连接层,最终的输出向量中保存了原来的位置信息。
  • 输入尺寸变为416\times 416 \times 3,识别更高分辨率的图片。

该网络最终输入图片尺寸为,416\times 416 \times 3输出向量尺寸为13 \times 13 \times 125。

检测器部分

YOLOv2使用了Anchor Box的方法,神经网络输出的向量尺寸是13\times 13 \times 125,其中13 \times 13是将图片划分为13行和13列共169个cell,每个cell有125数据。对于每个cell的125个数据,分解为125 = 5 \times (5+20),即每个cell包括5个anchor box,每个anchor cell包括25个数据,分别为物品存在置信度,物品中心位置(x,y),物品尺寸(w,h)和类别信息(20个)。如下图所示:

yolo_result.png

对于每个cell包括5个anchor box信息,每个anchor box包括25个数据,分别:

  • 为是否有物品(1个)
  • 物品位置(4个)
  • 物品种类(20个)

其中是否有物品的标记conf_{ijk}比较容易理解,表示位于i,jcell的第k个anchor box中有物品的置信度。20个物品种类向量也较好理解,哪一个数据最大即物品为对应的类别。

对于物品位置的四个数据分别为x_{ijk},y_{ijk},w_{ijk},h_{ijk},与物品位置中心点和尺寸的关系为:

$$b_x = f(x_{ijk}) + c_x \\ b_y = f(y_{ijk}) + c_y \\  b_w = p_w e^{w_{ijk}} \\ b_h = p_h e^{h_{ijk}}$$

其中,b_x,b_y为物品中心点的实际坐标,b_w,b_h为物品的尺寸(长宽)。c_x,c_y的为该cell(x行y列)距离图片左上角的像素数,f的含义推测为将范围为0~1的输入值缩放到0~cell长度。p_w和p_h为该anchor box的预设尺寸。如下图所示:

detection.PNG

每个cell包括5个anchor box,这5个anchor box有不同的预设尺寸,该预设尺寸可以手动指定也可以在训练集上训练获得。在YOLOv2中,预设尺寸是通过在测试集上进行类聚获得的。

模型训练

神经网络部分基于模型Darknet-19,该模型的训练部分分为两个部分:预训练和训练部分

  • 预训练:预训练是在ImageNet上按分类的方式进行预训练160轮,使用SGD优化方法,初始学习率0.1,每次下降4倍,到0.0005时终止。除了训练224x224尺寸的图像外,还是用448x448尺寸的图片。
  • 训练:去除Darknet的最后一个卷积层,并将网络结构修改为YOLOv2的网络,在VOC数据集上进行训练。训练使用的代价函数是MSE代价函数。

另外,在训练过程中,还引入了多尺寸训练,由于网络删除了全连接层,所以该网络并不关心图片的具体大小,训练时使用320~608尺寸的图像{320,352,....,608}。

YOLOv3

YOLOv3是YOLO最新的更新,其主要的改进在以下方面:

  • 网络结构改变:网络的结构由Darknet-19变为Darknet-53,跳层的现象越来越普遍。
  • 尾部激活函数改变:尾部的激活函数(类别预测)由softmax改为sigmoid
  • 尺度数量改变:anchor box的数量由5个改为3个

网络

网络结构如下所示:

YOLO3_net.PNG

网络结构明显参考了ResNet的设计,将低层的特征直接连接到高层。同时注意一点,网络可能没有使用pool层,而是使用stride=2的卷积层实现下采样。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.jianshu.com/u/87b0300ace83复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 专栏 | 目标检测算法之YOLOv3及YOLOV3-Tiny

    昨天稍微填上了YOLOv2损失函数的坑,然后我在知乎关注了一个有趣的问题,地址是:https://www.zhihu.com/question/35700517...

    AI研习社
  • 目标检测|YOLOv2原理与实现(附YOLOv3)

    在前面的一篇文章中,我们详细介绍了YOLOv1的原理以及实现过程。这篇文章接着介绍YOLOv2的原理以及实现,YOLOv2的论文全名为YOLO9000: Bet...

    机器学习算法工程师
  • 目标检测算法之YOLOv3及YOLOv3-Tiny

    昨天稍微填上了YOLOv2损失函数的坑,然后我在知乎关注了一个有趣的问题,地址是:https://www.zhihu.com/question/35700517...

    BBuf
  • YOLOv1/v2/v3简述 | 目标检测

      YOLO十分简单,一个网络同时对多个物体进行分类和定位,没有proposal的概念,是one-stage实时检测网络的里程碑,标准版在TitanX达到45...

    VincentLee
  • 目标检测 | 基于统计自适应线性回归的目标尺寸预测

    计算机视觉研究院专栏 作者:Edison_G YOLOv2和YOLOv3是典型的基于深度学习的目标检测算法,它们使用统计自适应指数回归模型设计了网络的最后一层...

    计算机视觉研究院
  • CV岗位面试题:简单说下YOLOv1,v2,v3,v4各自的特点与发展史

    AI算法与图像处理
  • 【目标检测】从YOLOv1到YOLOX(理论梳理)

    YOLO系列应该是目标领域知名度最高的算法,其凭借出色的实时检测性能在不同的领域均有广泛应用。 目前,YOLO共有6个版本,YOLOv1-v5和YOLOX,除...

    zstar
  • Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3

    该库 fork 自 @github/marvis 的 pytorch-yolo2,不过作者没有直接修改或者更新 marvis 的源文件,因为很多文件已经改了文件...

    AI研习社
  • 【转】目标检测之YOLO系列详解

    YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。

    marsggbo
  • 死嗑YOLO系列(三),YOLOv3风月无边

    YOLOv2 的时候,作者在 YOLOv1 的基础上运用了许多有效的 tricks,所以展示了它的 better、faster、stronger 因素,到了 Y...

    Frank909
  • 深度学习: 从YOLOv1到YOLOv3

    从YOLOv1到YOLOv3,YOLO系独树一帜,自成一派,是检测算法领域的一股(朵)清(奇)流(葩)。

    JNingWei
  • 【转】目标检测之YOLO系列详解

    YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。

    marsggbo
  • 【综述】Pytorch YOLO项目推荐 建议收藏学习

    最近一些群友有询问我有没有哪些YOLO的算法推荐,考虑到现在Pytorch是做实验发论文最流行的深度学习框架,所以我就针对Pytorch实现的YOLO项目做了一...

    BBuf
  • 专栏 | 【综述】Pytorch YOLO项目推荐 建议收藏学习

    以下文章来源于GiantPandaCV ,作者BBuf本文来自 @BBuf 的社区专栏 GiantPandaCV

    AI研习社
  • YOLO 系目标检测算法家族全景图!

    YOLO目标检测算法诞生于2015年6月,从出生的那一天起就是“高精度、高效率、高实用性”目标检测算法的代名词。

    CV君
  • YOLO 目标检测实战项目『原理篇』

    在目标检测中,IoU 为预测框 (Prediction) 和真实框 (Ground truth) 的交并比。如下图所示,在关于小猫的目标检测中,紫线边框为预测框...

    机器视觉CV
  • 如何将多目标检测用于建筑平面图? | MixLab智能建筑

    在建筑平面图的分析中,一些复杂的平面图总是会让人感到头晕脑胀,不同的标注方式以及不同的图形符号更难以让普通人去解读。

    mixlab
  • 目标检测(object detection)系列(九) YOLOv3:取百家所长成一家之言

    取百家所长成一家之言是一句书面意思上绝对褒义的话,形容一个论文却有些许的尴尬,但是YOLOv3确实是这样,没什么大的改动和创新点,而是融合借鉴了很多在其他的方案...

    chaibubble
  • YOLO 目标检测从 V1 到 V3 结构详解

    在目标检测中,IoU 为预测框 (Prediction) 和真实框 (Ground truth) 的交并比。如下图所示,在关于小猫的目标检测中,紫线边框为预测框...

    用户3578099

扫码关注腾讯云开发者

领取腾讯云代金券