社区计算机视觉课程文档

图像

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

图像

在一门计算机视觉课程中,我们要向你解释什么是图像,这听起来可能有点奇怪。想必你之所以来到这里,正是因为你想更多地了解如何处理图像和视频格式。这似乎是件小事,但你将会大吃一惊!当谈到图像时,其内涵远比肉眼所见要丰富得多(一语双关)。

图像的定义

图像是一个物体、一个场景、一个人甚至一个概念的视觉表现。它们可以是照片、绘画、素描、示意图、扫描图等等!更令人惊讶的是,图像也是一个函数。更确切地说,图像是一个 n 维函数。我们首先将其视为二维n=2n=2的情况。我们称之为F(X,Y)F(X,Y),其中,其中是空间坐标。不要被这个花哨的名字迷惑了。空间坐标只是我们用来描述物理空间中物体位置的系统,其中最常见的是二维笛卡尔坐标系。函数 F 在坐标对xi,yix_i, y_i上的振幅是图像在该点的强度或灰度。强度决定了你对明暗的感知。通常,当我们有一个坐标对x1x_1时,我们称之为像素(图像元素)。

图像是离散的,而生成图像的过程是连续的。图像生成过程将在下一章讨论。现在,重要的是FF在特定坐标处的值具有物理意义。该函数F(X,Y)F(X,Y)由两个部分来表征:来自光源的光照量和场景中物体反射的光照量。强度图像的强度也受到限制,因为该函数通常是非负的,并且其值是有限的。

这并不是创建图像的唯一方式。有时,图像是由计算机在有人工智能帮助或没有帮助的情况下生成的。我们有一个专门的章节来讨论那些有人工智能稍加帮助生成的图像。我们在这里介绍的大多数术语仍然适用。

另一种类型的图像是体积图像或 3D 图像。3D 图像的维数等于三。因此,我们有一个F(X,Y,Z)F(X,Y,Z)函数。我们的大部分推理仍然适用,唯一的区别是三元组xi,yi,zix_i,y_i,z_i被称为体素(体积元素)。这些图像可以在 3D 空间中采集;也就是说,这些图像以一种可以在 3D 空间中重建的方式被采集。这类图像的例子包括医学扫描、磁共振和某些类型的显微镜。从 2D 图像重建 3D 图像也是可能的。重建是一项具有挑战性的任务,我们也有一个专门的章节来讨论它。

现在我们已经讨论了空间,我们可以谈谈颜色了。好消息是,你可能也听说过图像通道。你可能不明白它们的意思,但别担心!图像通道就是构成图像的不同颜色分量。参考F(X,Y)F(X,Y),我们将有FF针对每个颜色分量。每种颜色都有其自己的强度级别。对于一个捕捉红色的通道来说,高强度意味着颜色非常红,而低强度意味着其中几乎没有红色。

如果你只看F(x,y)F(x,y)对于一种颜色,其范围从 0 到 255,其中 0 代表没有强度,255 代表最大强度。在不同的颜色系统中,组合这些值的方式可能会有所不同。因此,在解释这些值时,了解你的数据来源非常重要。

有一些特殊类型的图像,其坐标F(xi,yi)F(x_i,y_i)描述的不是强度值,而是给像素打上标签。产生这类图像的最简单操作是分离前景和背景。所有属于前景的像素都被标记为 1,而所有属于背景的像素则被标记为 0。这类图像通常被称为标签图像。当只有两个标签时,就像我们的例子一样,我们称之为二值图像或掩码(mask)。

你可能听说过 4D 甚至 5D 图像。这个术语主要由生物医学领域的人员和显微镜专家使用。同样,别担心!这个命名来自于那些随时间、使用不同通道或不同成像模式(例如照片和 X 射线)对体积数据进行成像的人们。其思想是,每一个新的信息来源都成为一个额外的维度。因此,一个 5D 图像就是一个随时间(4D)并使用不同通道(5D)成像的体积图像(3D)。

但是图像在计算机中是如何表示的呢?最常见的是通过矩阵。将图像想象成一个二维数值数组是很容易的。这是一个优势,因为计算机处理数组非常高效。将矩阵视为图像有助于理解卷积神经网络和图像预处理中的一些过程。我们稍后会看到更多细节。

另外,图像也可以表示为图(graph),其中每个节点是一个坐标,而边是相邻的坐标。花点时间消化一下这个概念。这也意味着用于图的算法和模型也可以用于图像!反之亦然——你可以将一个图转换成一个图像,并像分析图片一样分析它。

到目前为止,我们提出了一个相当灵活的图像定义。这个定义可以容纳获取视觉数据的不同方式,但它们都突出了同一个关键方面:图像是包含大量空间信息的数据点。关键的区别在于空间分辨率(2D 或 3D)、颜色系统(RGB 或其他),以及它们是否附加了时间分量。

图像与其他数据类型的对比

图像与视频的区别

如果你一直有在认真听,你可能已经理解了视频是带有时间分量的图像视觉表现。对于 2D 图像采集,你可以添加一个时间维度,这样F(X,Y,T)F(X,Y,T)就成了你的成像函数。

图像自然可以有一个隐藏的时间分量。毕竟,它们是在一个特定的时间点拍摄的,并且不同的图像在时间上也可能相关。然而,图像和视频在采样这种时间信息的方式上有所不同。图像是在单个时间点的静态表示,而视频是一系列图像以一定的速率播放,从而产生运动的错觉。这个速率就是我们所说的每秒帧数(frames per second)。

这一点非常重要,以至于本课程有一个专门的章节来讨论视频。在那里,我们将讨论处理这个新增维度所需的适应性调整。

图像与表格数据的对比

在表格数据中,维度通常由描述一个数据点的特征(列)数量来定义。在视觉数据中,维度通常指描述你数据的维数。对于一个 2D 图像,我们通常将数字xix_i称为图像大小。

另一个方面是生成描述视觉数据的特征。这些特征可以通过传统的预处理或通过深度学习方法学习得到。我们称之为特征提取。它涉及在特征提取章节中更详细讨论的不同算法。这与表格数据的特征工程形成对比,后者是在现有特征的基础上构建新特征。

表格数据通常需要处理缺失值、编码分类变量和重新缩放数值特征。图像数据的类似过程是图像大小调整和强度值归一化。我们称这些过程为预处理,我们将在“计算机视觉的预处理”一章中更详细地讨论它们。

主要区别

下表总结了不同数据类型的主要方面。

特性 图像 视频 音频 表格数据
1 类型 单个时间点 随时间变化的图像序列 单个时间点 按行和列组织的结构化数据
2 数据表示 通常是二维像素数组 通常是三维帧数组 通常是一维音频样本数组 通常是二维数组,特征为列,单个数据样本为行(例如电子表格、数据库表)
3 文件类型 JPEG、PNG、RAW 等 MP4、AVI、MOV 等 WAV、MP3、FLAC 等 CSV、Excel (.xlsx, .xls)、数据库格式等
4 数据增强 翻转、旋转、裁剪 时间抖动、速度变化、遮挡 添加背景噪音、混响、频谱操纵 ROSE、SMOTE、ADASYN
5 特征提取 边缘、纹理、颜色 边缘、纹理、颜色、光流、轨迹 频谱图、梅尔频率倒谱系数 (MFCCs)、色度特征 统计分析、特征工程、数据聚合
6 学习模型 CNNs RNNs, 3D CNNs CNNs, RNNs 线性回归、决策树、随机森林、梯度提升
7 机器学习任务 图像分类、分割、目标检测 视频动作识别、时序建模、跟踪 语音识别、说话人识别、音乐流派分类 回归、分类、聚类
8 计算成本 成本较低 成本较高 中到高 通常比其他类型成本低
9 应用 用于安全门禁的人脸识别 用于实时通信的手语翻译 语音助手、语音转文本、音乐流派分类 预测建模、欺诈检测、天气预报
< > 在 GitHub 上更新