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的卷积层实现下采样。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术随笔

计算机视觉中 RNN 应用于目标检测

53560
来自专栏智能算法

卷积神经网络工作原理直观解释

其实我们在做线性回归也好,分类(逻辑斯蒂回归)也好,本质上来讲,就是把数据进行映射,要么映射到一个多个离散的标签上,或者是连续的空间里面,一般简单的数据而言,我...

32690
来自专栏程序生活

机器学习(九)梯度下降算法1 梯度2 梯度下降法

1 梯度 1.1 定义 梯度:是一个矢量,其方向上的方向导数最大,其大小正好是此最大方向导数。 关于梯度的更多介绍请看:如何直观形象的理解方向导数与梯度以及...

36770
来自专栏AI研习社

卷积神经网络工作原理直观的解释?

其实我们在做线性回归也好,分类(逻辑斯蒂回归)也好,本质上来讲,就是把数据进行映射,要么映射到一个多个离散的标签上,或者是连续的空间里面,一般简单的数据而言,我...

27550
来自专栏机器学习、深度学习

人脸对齐--Pose-Invariant Face Alignment with a Single CNN

Pose-Invariant Face Alignment with a Single CNN ICCV2017 http://cvlab.cse.ms...

313100
来自专栏云时之间

深度学习与神经网络:BP神经网络

BP神经网络现在来说是一种比较成熟的网络模型了,因为神经网络对于数字图像处理的先天优势,特别是在图像压缩方面更具有先天的优势,因此,我这一段时间在研究神经网络的...

49090
来自专栏智能算法

卷积神经网络工作原理直观解释

其实我们在做线性回归也好,分类(逻辑斯蒂回归)也好,本质上来讲,就是把数据进行映射,要么映射到一个多个离散的标签上,或者是连续的空间里面,一般简单的数据而言,我...

34450
来自专栏云时之间

深度学习与TensorFlow:VGG论文笔记

马毅老师曾说过:”如果你没有看过近30年的经典论文,你是做不出成果的”.现如今深度学习如此火热,一些关键节点发布的文章更应该好好的阅读,因此我想在未来的一段时间...

35250
来自专栏新智元

代码开源 | COCO-16 图像分割冠军:首个全卷积端到端实例分割模型

【新智元导读】清华大学与微软研究院合作,提出了一种新的架构 FCIS,是首个用于图像实例分割任务的全卷积、端到端的解决方案,该架构在 COCO 2016 图像分...

825100
来自专栏ATYUN订阅号

【学术】卷积神经网络教你如何还原被马赛克的文本图像

对人类来说,将带有文字的图像锐化是很容易的。以图1为例。 ? 图1:被锐化的图像 把图1恢复为图2也不是件很困难的事。 ? 图2:原图 然而,我们太懒了的...

38670

扫码关注云+社区

领取腾讯云代金券