概述

图像分类(image classification)是计算机视觉中最基本的一个问题,即给定一张图片,识别图像中的物体是什么。 图像分类通常只考虑最简单的场景,即假设图像中仅有一个物体,且该物体占据图像主要面积。

从算法设计的角度来看,图像分类并不是一个非常直接的问题。 在计算机中,图像表示为像素的数组,这些数值与图像的内容并没有直接的联系。 也正是由于这种复杂的关系,图像分类问题通常在机器学习的框架下解决。 由于我们可以将我们感兴趣的物体收纳在一个有限的集合中,因而图像分类可以被建模成一个监督学习的分类问题。 我们可以借助机器学习的方法,收集数据、训练模型,来完成这项任务。

与更为复杂的视觉任务相比,图像分类是一个相对简单的问题。 图像分类在实际中有一些直接的应用。 但研究图像分类最大的意义在于解决计算机视觉中一项最基本的问题:如何将 在深度学习出现之前,这种联系通常基于手工设计的图像特征。 通过对局部或全局的像素进行计算,得到某种可以在一定程度上描述图像内容的数值表达式。

深度学习采取了一种暴力而有效的方式。 借助深度模型强大的拟合能力,直接拟合一个像素空间到类别空间的映射。 另一方面,基于图像分类训练出的深度模型也可以学习出不同层次的特征。 这些特征可以在不同层次上描述图像的内容,体现不同的语义,因而也可以很好的适应到其他任务上。 使用图像分类预训练的模型进行迁移学习,也成为了计算机视觉领域常用的一套技术模式。

在本教程中,我们会从模型、算法、数据三个角度介绍深度学习方法下的图像分类问题,并结合 PyTorch 和 mmclassification 的代码库在编程方面给予一些讲解。

Last updated