本文是 鲁鹏 教授的《计算机视觉与深度学习》(2022 年)课程的一部分。
前言
计算机视觉简介
计算机视觉是研究如何使计算机能够“看”的学科。它的目标是让计算机能够处理和理解图像和视频数据。
观察人类视觉系统,可发现它存在诸多优势和弊病(此类弊病是为了适应环境而产生的,从进化的角度来说并非弊病)。
计算机视觉的两个主要研究方向是三维重建和语义信息提取(图像理解) 。
本课程介绍
本课程聚焦于视觉识别任务中最基础也最为重要的任务——图像分类。除此之外,还会涉及一些衍生任务,包括目标检测、图像分割、图像描述、图像生成等。
对于这些任务而言,基于卷积神经网络(CNN) 的深度学习方法是目前(21 世纪初)最为有效的解决方案。卷积神经网络始于 1998 年的 LeNet。在 2015 年,在 ImageNet 数据集上的图像分类任务上,计算机的准确率已经胜过人类。
本课程会讲解多种深度网络结构(包括全连接神经网络、卷积神经网络、循环神经网络、变分自编码网络、生成对抗网络等)。
相关课程
- CS131: Computer Vision: Foundations and Applications
- CS231a: Computer Vision: From 3D Reconstruction to Recognition
- CS231n: Convolutional Neural Networks for Visual Recognition
CS131 更倾向于图像理解,CS231a 更倾向于三维重建,而 CS231n 则与本课程相关度最高。
图像分类任务
图像分类任务是根据图像中所反映的不同特征,把不同类别的图像区分开来的任务。更具体地,它需要从已知的类别标签集合中,为给定的输入图像选定一个标签。
基于现实环境,图像识别存在诸多难点:视角、光照、尺度、遮挡、形变与类内形变、背景杂波、运动模糊、类别繁多等。探讨这些难点有助于我们对此类任务进行拆解,并予以解决。
两种解决方法
基于规则的(硬编码的)解决方法;基于数据驱动的(学习的)解决方法。前者所能解决的问题极为有限,下面将主要介绍后者。
数据驱动的解决方法主要包含三个环节:数据集构建,分类器的设计与学习,分类器的决策。
分类器的设计
首先需要将图像转化为模型可以理解的形式,此步骤为图像表示。可以采取像素表示的方法,也可以采取特征表示的方法(如 GIST 等全局特征表示法适用于遮挡不敏感问题,SIFT 等局部特征表示法适用于遮挡敏感问题)。后续主要研究像素表示方法,因为神经网络已经集成了特征提取的功能。
分类器的具体算法,常见的有近邻分类器、贝叶斯分类器、线性分类器、支撑向量机分类器、神经网络分类器、随机森林、Adaboost等。
分类器的学习过程,涉及到损失函数和优化算法。分类器在决策后,需要使用若干评价指标进行进行评价。相关内容将在后续进行介绍。