深度学习与计算机视觉(一)图像分类与KNN

1、图像分类与KNN

1.1 图像分类

对于一张输入的图像,判定其属于哪个类别,图像分类是计算机视觉的核心问题之一,且是很多高层视觉任务的基础。

1.1.2 图像识别的难点:类内形变+类间相似**

  • 视角不同,每个事物旋转或者侧视最后的构图都完全不同
  • 尺寸大小不统一,相同内容的图片也可大可小
  • 变形,很多东西处于特殊的情形下,会有特殊的摆放和形状
  • 光影等干扰/幻象
  • 背景干扰
  • 同类内的差异(比如椅子有靠椅/吧椅/餐椅/躺椅…)

深度学习与计算机视觉(一)图像分类与KNN

1.1.3 图像识别的途径

就是对于每个类别,我们都找一定量的图片数据,『喂』给计算机,让它自己去『学习和总结』每一类的图片的特点。

深度学习与计算机视觉(一)图像分类与KNN

1.1.4 机器学习解决图像分类的流程

简单来说,分为三步:

  • 输入:我们的给定K个类别的N张图片,作为计算机学习的训练集
  • 学习:让计算机逐张图片地『观察』和『学习』
  • 评估:就像我们上学学了东西要考试检测一样,我们也得考考计算机学得如何,于是我们给定一些计算机不知道类别的图片让它判别,然后再比对我们已知的正确答案。

1.2 最近邻分类器(Nearest Neighbor Classifier)

只是为了从基础推进而已,和卷积网络无关。

1.2.1 CIFAR-10

CIFAR-10是一个非常常用的图像分类数据集。数据集包含60000张32*32像素的小图片,每张图片都有一个类别标注(总共有10类),分成了50000张的训练集和10000张的测试集。如下是一些图片示例:
深度学习与计算机视觉(一)图像分类与KNN

左图是是个类别和对应的图像示例,右图是给定一张图像之后,根据像素距离计算出来的最近的10张图像。

1.2.2 基于最近邻的简单图像类别判定

最近邻的思想:

根据输入图像的像素值,计算其和训练集中的图像的距离,找到最近的图像的类别作为预测的类别即可。

最近邻的缺点:

用于图像分类时效果很差。

距离度量方式:

L1距离,L2距离,余弦距离等等(scipy

1.3 k近邻分类器

将最近邻扩展为最近的N个临近点,然后统计出现类别最多的那一类作为预测的类别。

1.3.1 交叉验证与参数选择

哪些因素会影响KNN最后的识别结果:

  • 距离度量方式
  • k值的选取

当数据总量不大的时候,可以选择k折交叉验证,也就是将原始数据分为k份,轮流使用其中k-1份作为训练数据,剩下的1份作为交叉验证数据,我们可以得到k个准确率,取均值作为预测准确率。

1.3.2 kNN算法的优缺点

优点:

思路简单,不需训练

缺点:

  • 计算准确率过程很耗时,因为要和全部训练集中的图像都对比一遍;
  • 分类器必须记住全部的训练数据,因为要遍历找近邻,而任何实际的图像训练集上,数据量很可能非常大,那么一次性载入内存,不管是对速度还是对硬件的要求,都是一个极大的挑战。

重要的是:我们不是很在乎训练时间,训练时间长的话,只有后续识别的时候速度快,效果好即可,但是kNN测试过程很漫长,后续的深度神经网络就是为了解决该问题,其训练时间长,但是识别过程很快。

这里写链接内容