Press "Enter" to skip to content

你真的了解图片分类(Image Classification)吗?

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

图片分类是机器学习经典问题,也是深度学习声名鹊起之作。正是2012年AlexNet在图片分类竞赛ImageNet出乎寻常的性能,使得深度学习一夜爆红,方有今天人工智能的井喷之势。

 

由于深度学习在图片分类上极其成功,且代码简单,图片分类便成为深入学习入门学习任务。通常几行代码,就可以调起一个模型训练。由于太简单,导致大家对图片分类缺乏能够整体认识。

 

本文拟从问题定义、图片分类的粒度、常用数据集、评判标准和经典论文等角度,完整充分展现图片分类这个经典问题,让读者有个完整印象。

 

问题定义

 

图片分类的定义如下:

 

输入:一张图片

 

输出:图片类别

 

这里的图片类别是指图片内所包含物体的类别。

 

传统的图片分类中,一张图片只包含一个类别物体的一个或多个实例。多标签图片分类中,一张图片一般包含多个类别物体的一个或多个实例(如多标签猫狗图片分类,大部分照片不但包含猫,还同时包含狗)。

 

我们这里只讲传统的图片分类。以下是几个样例:

输入上述图片,正确的输出应该是猫(图片来自数据集ImageNet)

输入上述图片,正确的输出应该是类别9(图片来自数据集MNIST)

输入上图,正确的输出应该是飞机(图片来自数据集CIFAR10)

 

图片分类的粒度

 

粗粒度分类

 

粗粒度图片分类是指跨物种语义级别的分类,比较常见的包括如猫狗分类、ImageNet的1000个类别的分类、CIFAR10的10个类别的分类等。这样的图像分类,各个类别之间因为属于不同的物种或大类,往往具有较大的类间方差,具有较小的类内方差。

 

下面是cifar10 中的10个类别的示意图,这就是一个典型的例子。

细粒度分类

 

细粒度图像分类,相对于跨物种的图像分类,级别更低一些。它往往是同一个大类中的子类的分类,如不同鸟类的分类,不同狗类的分类,不同车型的分类等。

 

下面是以鸟的子类间分类为例,细粒度分类类间因为较为相似,所以类间方差小,而类内由于姿态、光纤等问题,类内方差大。

实例级分类

 

如果我们要区分不同的个体,而不仅仅是物种类或者子类,那就是一个识别问题,或者说是实例级别的图像分类,最典型的任务就是人脸识别。

常用数据集

上图是经典常用的粗粒度图片分类数据集。

 

MNIST

 

MNIST是手写体数据集,每一张图片是0-9个数字中的一个,图片分辨率28×28,所有图片均是灰度图,因此图片表示为tensor是28x28x1,训练集60000张照片,测试集10000张照片。 以下是16张MNIST中的样本。

Fashion-MNIST

 

Fashion-MNIST的提出是为了方便学者测试算法的有效性,因为MNIST数据集的特征过于简单,导致在MNIST表现好的算法,很难说是算法改进了,还是数据集过于简单。 Fashion-MNIST,除了类别换成了服装和鞋子等,其他与MNIST一模一样,同样分辨率28×28,同样灰度图,训练集同样60000,测试集同样10000。基本上在MNIST测试的算法,不用任何修改,就可以在Fashion-MNIST上测试和训练。 以下是30张Fashion-MNIST中的样本。

CIFAR-10

 

CIFAR-10数据集由10类32×32的彩色图片组成,一共包含60000张图片,每一类包含6000图片。其中50000张图片作为训练集,10000张图片作为测试集。

 

CIFAR-10数据集被划分成了5个训练的batch和1个测试的batch,每个batch均包含10000张图片。测试集batch的图片是从每个类别中随机挑选的1000张图片组成的,训练集batch以随机的顺序包含剩下的50000张图片。不过一些训练集batch可能出现包含某一类图片比其他类的图片数量多的情况。训练集batch包含来自每一类的5000张图片,一共50000张训练图片。

 

以下是数据集中的类,以及来自每个类的10个随机图像:

这些类完全相互排斥。汽车和卡车之间没有重叠。“汽车”包括轿车,SUV,这类东西。“卡车”只包括大卡车。都不包括皮卡车。

 

CIFAR-100

 

CIFAR-100数据集就像CIFAR-10,除了它有100个类,每个类包含600个图像。每类各有500个训练图像和100个测试图像。CIFAR-100中的100个类被分成20个超类。每个图像都带有一个“精细”标签(它所属的类)和一个“”标签(它所属的超类)

 

ImageNet

 

ImageNet数据集本身有约1500万张照片,2.2万个类。基于ImageNet的大规模计算机视觉挑战赛ISLVRC包含5个任务,图像分类(Image Classification)、目标定位(Image Localization)、目标检测(Object Detection)、视频目标检测(Video Object Detection)、场景分类。

 

由于其图像分类任务名声太盛,导致一般提到ImageNet,通常指的就是其图像分类子任务,这个子任务共有1000个类别,训练集有1,281,167张照片,验证机50,000张,测试集100,000张照片,每张图片大小不一,均为彩色图片。

 

性能评判标准

 

图片分类的评判标准比较简单。

 

top1准确率

 

对一个图片,取概率最大值作为预测。统计下预测正确的比率,即为top1准确率。

 

top5准确率

 

对一个图片,如果概率前五中包含正确答案,即认为正确。再统计预测正确的比率,即为top5准确率。

 

经典算法

 

图像分类任务是计算机视觉的基础任务,大量的图像分类经典算法,大幅度推动了计算机视觉的发展。下图是各个经典算法的时间轴,图中都给出了各个经典模型的提出时间点。

上图看起来有点乱,把相同系列的模型放在一起,重新整理如下图:

这里只列出经典算法,后面我会逐一讲解这些经典论文。另外,也建议各位每篇都亲自阅读(除了LeNet),非常经典。

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注