目录
目标检测与YOLO
1 YOLO网络结构
YOLO官方的模型结构图
网络结构包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训 练,后面4个是随机初始化的卷积层,和2个全连接层。
2 YOLO基本思想
YOLO网络输入
YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为 448 × 448 × 3。实际中如为其它尺寸,需要resize或切割成 要求尺寸。
YOLO模型处理:𝟕 × 𝟕网格划分
- 将图片分割为 𝑆 2个grid(𝑆 = 7),每 个grid cell的大小都是相等的
- 每个格子都可以检测是否包含目标
- YOLO v1中,每个格子只能检测一种 物体(但可以不同大小)
YOLO网络输出
- 输出是一个7 × 7 × 30的张量。对应 7 × 7个cell
- 每个cell对应2个包围框(bounding box, bb),预测不同大小和宽高比, 对应检测不同目标。每个bb有5个分量, 分别是物体的中心位置(𝑥, 𝑦)和它的高 (ℎ) 和宽 (𝑤) ,以及这次预测的置信度。
YOLO模型输出
在上面的例子中,图片被分成了49个框,每个框预测2个bb,因此上面的图中 有98个bb
包围框与置信度
1 YOLO包围框
我们有 𝑠^2个框,每个框的bb个数为𝐵,分类器可以识别出𝐶种不同的物体, 那么所有整个ground truth的长度为𝑆 × 𝑆 × (𝐵 × 5 + 𝐶) YOLO v1中,这个数量是30 YOLO v2和以后版本使用了自聚类的anchor box为bb, v2版本为𝐵 = 5, v3中 𝐵 =9
处理细节——归一化
四个关于位置的值,分别是𝑥, 𝑦, ℎ和𝑤,均为整数,实际预测中收敛慢 因此,需要对数据进行归一化,在0-1之间。
2 YOLO置信度
处理细节——置信度
Pr(𝑜𝑏𝑗)是一个grid有物体的概率
IOU是预测的bb和真实的物体位置的交并比。
𝐼𝑂𝑈:图中绿框为真实标注,其余五个颜色框为预测值,可计算对应𝐼𝑂𝑈
3 训练值与预测值
Pr 𝑜𝑏𝑗 的ground truth:三个目标中点对应格子为1,其它为0
处理细节——训练数据与网络输出
损失函数
1 YOLO损失函数
训练与NMS
1 非极大值抑制
预训练与训练
保留了这么多边界框,预测中 一个物体可能被多个边界框包 围;实际物体只对应一个边界 框,如何解决个问题呢?NMS
NMS核心思想是:选择得分最高 的作为输出,与该输出重叠的 去掉,不断重复这一过程直到 所有备选处理完。
NMS算法要点
1. 首先丢弃概率小于预定IOU阈值(例如0.5)的所有边界框;对 于剩余的边界框:
2. 选择具有最高概率的边界框并将其作为输出预测;
3. 计算 “作为输出预测的边界框”,与其他边界框的相关联IoU 值;舍去IoU大于阈值的边界框;其实就是舍弃与“作为输出预 测的边界框” 很相近的框框。
4. 重复步骤2,直到所有边界框都被视为输出预测或被舍弃
2 数据集训练
预训练与训练
YOLO先使用ImageNet数据集对前20层卷积网络进行预训练,然 后使用完整的网络,在PASCAL VOC数据集上进行对象识别和定 位的训练和预测
训练中采用了drop out和数据增强来防止过拟合。
YOLO的最后一层采用线性激活函数(因为要回归bb位置),其它 层都是采用Leaky ReLU激活函数
语义分割
1 语义分割
语义分割关注如何将图像分割成属于不同语义类别的区域。值得一提的是, 这些语义区域的标注和预测都是像素级的。下图展示了语义分割中图像有关 狗、猫和背景的标签。可以看到,与目标检测相比,语义分割标注的像素级 的边框显然更加精细。
2 目标
基本思想:滑动窗口
FCN网络结构
FCN具体实现
1 FCN实现结构之卷积部分
2 FCN实现结构之反卷积部分
循环神经网络与NLP
1 数据处理基础
数值特征与类别特征
年龄,是一个数值特征
第2列表示性别,是一个只有一位(0,1)的特征0 -> Male, 1 -> Female
第3列表示国籍,目前有197个国家1 -> US, 2 -> China, …
可以用一个整数来表示,或者用一个独热向量来表示, 如US: [1,0, ….,0]
数值特征不适合表示类别,因此一般使用独热编码
国家编码从1开始,1~197,因为实际国籍有可能不填(对应0)
文本处理
2 文本预处理与词嵌入
文本预处理 一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。 我们将 解析文本的常见预处理步骤。 这些步骤通常包括:
1.将文本作为字符串加载到内存中。
2.将字符串切分为词元(如单词和字符)。
3.建立一个字典,将拆分的词元映射到数字索引。
4.将文本转换为数字索引序列,方便模型操作。
3 RNN模型
4 LSTM模型
LSTM网络模型