1.常用数据集

1.1 MNIST

        MINIST数据集主要由一些手写数字的图片和对应标签组成,是常用的手写数字识别数据集,图片共有10类,分别对应从0~9;由60000个训练样本和10000个测试样本组成,每个样本都是一张28*28像素的手写灰度数字图片。

        原始的MNIST数据库包含下面4个文件:

        在python,可以通过如下方式调用该数据集 

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()))

1.2 Fashion-MNIST数据集

        Fashion-MNIST数据集是一个替代 MNIST 手写数字集的图像数据集。 它是由 Zalando旗下的研究部门提供,涵盖了来自 10 种类别的共7万个不同商品的正面图片;FashionMNIST 的大小、格式和训练集/测试集划分与原始的 MNIST 完全一致,仍为60000/10000 的训练测试数据划分,28x28 的灰度图片。下图是数据集中的类,以及每个类的十个随机图像:

1.3 CIFAR 10数据集 

         CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每 个类有6000个图像。有50000个训练图像和10000个测试图像,数据集分为五个训练批次和一个测试批次,每个批次有10000 个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。以下是数据集中的类,以及来自每个类的10个随机图像:

1.4 PASCAL VOC数据集

        PASCAL VOC数据集是目标分类(识别)、检测、分割最常用的数据集之一。该数据集包含了20个不同的类别,包括人、动物、车辆、家具等。每个图像都标注了对象的边界框和类别标签。该数据集通常用于训练和评估目标检测和图像分割模型。

1.5 MS COCO数据集

        PASCAL的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集;数据集以scene understanding为目标,主要从复杂的日常场景中截取; 包含目标分类(识别)、检测、分割、语义标注等数据集;ImageNet竞赛停办后,COCO竞赛就成为是当前目标识别、检测等领域的一个最权威、最重要的标杆;官网:http://cocodataset.org

        该数据集提供的标注类别有80 类,有超过33 万张图片,其中20 万张有标注,整个数据集中个体的数目超过150 万个。该数据集实例如下:

1.6  ImageNet数据集与ILSVRC

        ImageNet数据集始于2009年,李飞飞与Google的合作: “ImageNet: A Large-Scale Hierarchical Image Database”,其中总图像数据:14197122;总类别数:21841;带有标记框的图像数:1034908。

         ISLVRC 2012子数据集的训练集:1281167张图片+标签;类别数:1000;验证集:50000张图片+标签;测试集:100000张图片。

 

2. 深度学习视觉应用

2.1 算法评估

2.1.1 算法评估相关概念

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

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

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

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

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

        P-R的关系曲线图,表示了召回率和准确率之间的关系,精度(准确率)越高,召回率越低。

        可以通过改变阈值,来选择让系统识别能出多少个图片,当然阈值的变化会导致Precision与 Recall值发生变化。

2.1.2 AP计算

        mAP:均值平均准确率

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

        AP计算的基本步骤如下:

        对于每个可能的类别或标签,计算精确率-召回率曲线(Precision-Recall Curve)。这通常涉及到对模型的预测结果进行排序,并计算在不同召回率水平下的精确率;
        对于每个类别,计算该曲线下的面积(Area Under Curve, AUC),即AP值。这可以通过对精确率-召回率曲线进行积分来实现;
        如果有多个类别,通常还会计算所有类别的平均AP值(mAP,mean Average Precision),以便对整个模型的性能进行总体评估。

 2.2 目标检测与YOLO

 2.2.1 目标检测

        目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。 物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图 片的任何地方,并且物体还可以是多个类别。

        目标检测的基本思路:滑动窗口,两步法:可以确定那些更有可能出现目标的位置,再有针对性的用CNN进 行检测。但是仍存在费时的问题,进一步减少出现目标的位置,而且将目标分类检测和定位问题合在一个网络里——一步法(YOLO)

 2.2.2  YOLO

        一种实时目标检测算法,由Joseph Redmon等人在2015年提出。YOLO的核心思想是将目标检测任务看作一个回归问题,从而实现了端到端的目标检测,极大地提高了检测速度。

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

       YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为 448 × 448 × 3。实际中如为其它尺寸,需要resize或切割成 要求尺寸。输出结果为 个7 × 7 × 30的张量,对应 7 × 7个cell。每个cell对应2个包围框(bounding box, bb),预测不同大小和宽高比, 对应检测不同目标。每个bb有5个分量, 分别是物体的中心位置(𝑥, 𝑦)和它的高 (ℎ) 和宽 (𝑤) ,以及这次预测的置信度。

Logo

一站式 AI 云服务平台

更多推荐