神经网络与深度学习其三

1. 数据集与评价指标

1.1算法评估相关概念

TP:被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;

FP:被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

TN:被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

混淆矩阵:

P(精确率): 𝑇𝑃/(𝑇𝑃 + 𝐹𝑃),标识“挑剔”的程度。

R(召回率): 𝑇𝑃/(𝑇𝑃 + 𝐹𝑁),召回率越高,准确度越低,标识“通过”的程度。

精度(Accuracy): (𝑇𝑃 + 𝑇𝑁)/(𝑇𝑃 + 𝐹𝑃 + 𝑇𝑁 + 𝐹𝑁)

P-R曲线:

1.2算法评估示例

如图假设一个测试集,其中图片只由大雁和飞机两种图片组成。

则分类结果为:

True positives : 飞机的图片被正确的识别成了飞机。

False positives: 大雁的图片被错误地识别成了飞机。

False negatives: 飞机的图片没有被识别出来,系统错误地认

为它们是大雁。

True negatives: 大雁的图片没有被识别出来,系统正确地认

为它们是大雁。

1.3置信度与准确率

调整阈值可改变准确率或召回值。可以通过改变阈值(也可以看作上下移动蓝色的虚线)来选择让系统识别能出多少个图片,当然阈值的变化会Precision与Recall值发生变化。比如,把蓝色虚线放到第一张图片下面,也就是说让系统只识别出最上面的那张飞机图片,那么Precision的值就是100%,而Recall的值则是20%。如果把蓝色虚线放到第二张图片下面,也就是说让系统只识别出最上面的前两张图片,那么Precision的值还是100%,而Recall的值则增长到是40%。

1.4 AP计算

mAP:均值平均准确率

                          

其中𝑁代表测试集中所有图片的个数,𝑃(𝑘)表示在能识别出𝑘个图片的时候Precision的值,而 Δ𝑟(𝑘)则表示识别图片个数从𝑘 − 1变化到𝑘时(通过调整阈值)Recall值的变化情况。

2. 目标检测与YOLO

2.1目标检测问题

目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。

物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图

片的任何地方,并且物体还可以是多个类别。

2.2目标检测基本思想

2.2.1基本的滑动窗口

(1)滑动窗口的原理

(2)滑动窗口的缺点

➢滑动次数太多,计算太慢;假设图片为𝑤宽,ℎ高,识别一幅图片需要𝑇时间,则需要𝑤 ∗ ℎ ∗ 𝑇的总时间。

➢目标大小不同,每一个滑动位置需要用很多框。

(3)滑动窗口的改进

➢ 一般图片中,大多数位置都不存在目标。

➢ 可以确定那些更有可能出现目标的位置,再有针对性的用CNN进行检测——两步法(Region Proposal)。

➢ 两步法依然很费时。

➢ 进一步减少出现目标的位置,而且将目标分类检测和定位问题合在一个网络里——一步法(YOLO)

2.2.2 YOLO网络结构

YOLO网络结构包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训练,后面4个是随机初始化的卷积层,和2个全连接层。

(1)YOLO网络输入

YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为448 × 448 × 3。实际中如为其它尺寸,需要resize或切割成要求尺寸。

(2)YOLO网络输出

➢输出是一个7×7×30的张量。对应7×7个cell

➢每个cell对应2个包围框(bounding box, bb),预测不同大小和宽高比,对应检测不同目标。每个bb有5个分量,分别是物体的中心位置(𝑥,𝑦)和它的高(ℎ)和宽(𝑤),以及这次预测的置信度。

(3)YOLO模型输出

在上面的例子中,图片被分成了49个框,每个框预测2个bb,因此上面的图中有98个bb。

2.2.3包围框与置信度

我们有s*s个框,每个框的bb个数为𝐵,分类器可以识别出𝐶种不同的物体,那么所有整个ground truth的长度为𝑆×𝑆×(𝐵×5+𝐶)。

YOLO v1中,这个数量是30;

YOLO v2和以后版本使用了自聚类的anchor box为bb, v2版本为𝐵 = 5, v3中𝐵=9。

处理细节:

➢归一化:四个关于位置的值,分别是𝑥, 𝑦, ℎ和𝑤,均为整数,实际预测中收敛慢。因此,需要对数据进行归一化,在0-1之间。

➢置信度计算公式:

其中,Pr(obj)是一个 grid有物体的概率,IOU是预测的bb和真实的物体位置的交并比。

➢训练值:

三个目标中点对应格子为1,其它为0。

2.2.4损失函数

YOLO损失函数(共5项)

2.2.5训练与NMS

NMS算法要点:

1.首先丢弃概率小于预定IOU阈值(例如0.5)的所有边界框;对于剩余的边界框:选择具有最高概率的边界框并将其作为输出预测;

2.计算“作为输出预测的边界框”,与其他边界框的相关联IOU值;舍去IOU大于阈值的边界框;其实就是舍弃与“作为输出预测的边界框”很相近的框。

4.重复步骤2,直到所有边界框都被视为输出预测或被舍弃。

训练:

➢ YOLO先使用ImageNet数据集对前20层卷积网络进行预训练,然后使用完整的网络,在PASCAL VOC数据集上进行对象识别和定位的训练和预测

➢ 训练中采用了drop out和数据增强来防止过拟合。

➢ YOLO的最后一层采用线性激活函数(因为要回归bb位置),其它

层都是采用Leaky ReLU激活函数:

                       

3.语义分割

语义分割(Fully Convolutional Network,FCN)是一种被广泛应用于语义分割任务的基本网络结构。相比传统的卷积神经网络(CNN)只能输出固定大小的特征图,FCN可以接受任意大小的输入,并且输出相应大小的分割结果。

FCN通常由编码器和解码器组成,编码器负责提取图像的高级特征,解码器则负责将这些特征映射回原始图像大小,并对每个像素进行分类。

FCN的基本思想是将传统的全连接层替换为全卷积层,这使得网络能够接受任意尺寸的输入图像,并生成相应尺寸的分割结果。同时,FCN 通过使用上采样或转置卷积(transposed convolution)等技术,将中间层的特征图进行上采样,以恢复到原始输入图像的尺寸,从而实现像素级别的语义分割。

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值