神经网络和深度学习——第三周总结
深度学习视觉应用
一、数据集
1、MNIST
NIST数据集是由0〜9手写数字图片和数字标签所组成的,由60000个训练样本和10000个测试样
本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。


MNIST数据集加载
def load_data_fashion_mnist(batch_size, resize=None): #@save
"""下载Fashion-MNIST数据集,然后将其加载到内存中。"""
trans = [transforms.ToTensor()]
if resize:
trans.insert(0, transforms.Resize(resize))
trans = transforms.Compose(trans)
mnist_train = torchvision.datasets.FashionMNIST(
root="../data", train=True, transform=trans, download=True)
mnist_test = torchvision.datasets.FashionMNIST(
root="../data", train=False, transform=trans, download=True)
return (data.DataLoader(mnist_train, batch_size, shuffle=True,
num_workers=get_dataloader_workers()),
data.DataLoader(mnist_test, batch_size, shuffle=False,
num_workers=get_dataloader_workers()))
2、Fashion-MNIST数据集
➢ FashionMNIST 是一个替代 MNIST 手写数字集 的图像数据集。它是由 Zalando旗下的研究部门提供,涵盖了来自 10 种类别的共 7 万个不同商品的正面图片。
➢ FashionMNIST 的大小、格式和训练集/测试集划分与原始的MNIST 完全一致。60000/10000 的训练测试数据划分,28x28的灰度图片。你可以直接用它来测试你的机器学习和深度学习算法性能,且不需要改动任何的代码。
3、CIFAR-10数据集
➢ CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。
➢ 数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。
4、PASCAL VOC数据集
➢ PASCAL的全称是Pattern Analysis, Statistical Modelling and Computational Learning
➢ VOC的全称是Visual Object Classes
➢ 目标分类(识别)、检测、分割最常用的数据集之一
➢ 第一届PASCAL VOC举办于2005年,2012年终止。常用的是PASCAL 2012
文件格式:

5、MS COCO数据集
➢ MS COCO的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集
➢ 数据集以scene understanding为目标,主要从复杂的日常场景中截取
➢ 包含目标分类(识别)、检测、分割、语义标注等数据集
➢ ImageNet竞赛停办后,COCO竞赛就成为是当前目标识别、检测等领域的一个最权威、最重要的标杆
➢ 官网:http://cocodataset.org
6、ImageNet数据集
➢ 始于2009年,李飞飞与Google的合作:“ImageNet: A Large-Scale Hierarchical Image Database”
➢ 总图像数据:14,197,122
➢ 总类别数:21841
➢ 带有标记框的图像数:1,034,90
7、谷歌JFT-300M
➢ JFT-300M 是用于训练图像分类模型的内部 Google 数据集
➢ 3 亿张图像产生超过 10 亿个标签(单个图像可以有多个标签)
➢ 在十亿个图像标签中,大约有 3.75 亿个是通过算法选择的,
该算法旨在最大限度地提高所选图像的标签精度
二、评价指标
1、算法评估相关概念
TP: 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数
FP: 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数
FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数
TN: 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数
混淆矩阵:

P(精确率):,标识“挑剔”的程度
R(召回率): 。召回率越高,准确度越低 ,标识“通过”的程度
精度(Accuracy):
P-R的关系曲线图:
表示了召回率和准确率之间的关系

精度(准确率)越高,召回率越低
AP计算
➢ AP:平均准确率
其中代表测试集中所有图片的个数,
表示在能识别出
个图片的时候Precision的值,而
则表示识别图片个数从
变化到
时(通过调整阈值)Recall值的变化情况。
三、目标检测与YOLO
1、目标检测问题
目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,并且物体还可以是多个类别。
2、YOLO
核心理念 (You Only Look Once)
单阶段检测器: 与两阶段检测器(如 R-CNN 系列)不同,YOLO 将目标检测视为一个单一的回归问题。
端到端学习: 输入图像,直接输出边界框坐标、类别概率和置信度分数。
核心思想: 将输入图像划分为 S x S 的网格。每个网格单元负责预测以该单元为中心的物体(如果存在)。
速度优势: 最大的优势在于实时性。由于其简洁的架构和单次前向传播特性,YOLO 系列通常能达到非常高的帧率(FPS)。
核心工作流程
输入图像: 将图像缩放到固定尺寸(如 416x416, 640x640)。
卷积神经网络 (CNN) 提取特征: 使用一个高效的骨干网络(如 Darknet, CSPDarknet)提取深层次特征。
特征图预测:网络输出的特征图尺寸通常小于输入尺寸(如 13x13, 20x20, 40x40)。特征图上的每个“单元格”对应原图上的一片区域。每个单元格预测固定数量(B)的边界框。
边界框预测 (Bounding Box Prediction):
·坐标 (x, y, w, h):
(x, y):预测框中心相对于其所属网格单元左上角的偏移量(通常在 0-1 之间)。
(w, h):预测框的宽度和高度相对于整张图像宽度和高度的比例(通常在 0-1 之间)。
置信度得分 (Confidence Score):表示该预测框包含一个物体的概率 * 预测框与真实框的交并比(IoU)。Confidence = Pr(Object) * IoU(pred, truth)。如果网格中没有物体,置信度应接近 0;如果有物体,置信度应接近 IoU。
类别概率 (Class Probability): 表示预测框内物体属于每个类别的概率(条件概率)。Pr(Class_i | Object)。
最终输出张量: 每个单元格输出一个向量:[x, y, w, h, confidence, Pr(class1), Pr(class2), ..., Pr(classN)] * B。整个特征图的输出是一个 S x S x (B * 5 + N) 的张量(5 指 x, y, w, h, confidence;N 是类别数)。
后处理 (Post-processing):
·置信度过滤: 移除置信度低于设定阈值(如 0.5)的预测框。
·非极大值抑制 (NMS): 解决同一物体被多个预测框检测到的问题。保留置信度最高的框,抑制与其 IoU 超过设定阈值的其他框(通常基于类别进行)。
更多推荐


所有评论(0)