当我们观看照片或视频帧时,我们的大脑能毫不费力地处理场景,识别物体、颜色及其关联。对于人工智能系统而言,要做到类似的处理,它首先需要一种“看”和理解这些视觉信息的方式。这涉及将图像转换为机器能懂的语言:数字。一种主要表示方法是将图像视为一个像素值网格,其中坐标 $(x, y)$ 处的每个像素都具有强度 $I(x,y)$。人工智能系统中的图像数据表示包括像素网格、提取的特征以及底层结构信息等多种方式。图像的原始材料:像素从最基本的层面看,数字图像是像素的集合,像素是“图像元素”的简称。每个像素是图像的最小单元,并包含特定点的颜色或强度信息。灰度图像最简单的图像类型是灰度图像,通常称为黑白图像。在灰度图像中,每个像素由一个数字表示。此数字通常表示光的强度,范围从0(黑色)到255(白色),介于两者之间是各种灰色调。因此,对于宽度为 $W$、高度为 $H$ 的图像,我们可以将其视为一个二维数组或数字矩阵。如果 $I(x,y)$ 是行 $y$ 和列 $x$ 处像素的强度:如果我们写下它的像素值,一个微小的3x3灰度图像可能会是这样:[ [ 10, 30, 50 ], [120, 150, 180 ], [200, 220, 255 ] ]这里,$(0,0)$ 处(左上角)的像素非常暗(10),而 $(2,2)$ 处(右下角)的像素是纯白色(255)。彩色图像彩色图像稍微复杂一些。它们通常使用原色组合来表示完整色谱。最常见的模型是 RGB,代表红、绿、蓝。在RGB模型中,每个像素有三个值,分别代表红、绿、蓝的强度。这些值的范围通常也在0到255之间。因此,彩色像素 $P(x,y)$ 可以表示为三个值:$(R(x,y), G(x,y), B(x,y))$。$(0, 0, 0)$ 将是黑色(无红、无绿、无蓝)。$(255, 255, 255)$ 将是白色。$(255, 0, 0)$ 将是纯红色。$(128, 128, 128)$ 将是中等灰色。一个微小的1x2彩色图像(1像素高,2像素宽)的值可能如下:[ [(255,0,0), (0,255,0)] ] // 第一个像素是红色,第二个像素是绿色可以将彩色图像视为三个独立的灰度图像(每个颜色通道一个)堆叠在一起。图像尺寸图像的尺寸通常描述为 宽度 x 高度 x 通道数。宽度:水平方向的像素数量。高度:垂直方向的像素数量。通道数:每个像素的值的数量。对于灰度图像,这是1。对于RGB彩色图像,这是3。因此,一张640像素宽、480像素高的小彩色照片将由 $640 \times 480 \times 3 = 921,600$ 个数字表示!这对于人工智能模型直接处理来说是大量数据。特征:必要性虽然原始像素值是最基本的表示,但它们并非总是人工智能模型最有效的输入,尤其是对于复杂任务。原因如下:高维度:如上所述,即使是小图像也包含大量数字。这可能导致模型训练缓慢并需要大量数据。敏感性:光线微小变化或物体移动几像素等小改动,都可能大幅改变许多像素值,即使图像内容基本不变。缺乏抽象:像素告知我们某点的颜色/强度,但它们不直接告知我们“物体”、“纹理”或“形状”。为了解决这个问题,我们通常从图像中提取特征。特征是派生得到、更紧凑、且希望能提供更多信息的图像内容表示。示例:颜色直方图颜色直方图是一种简单而实用的特征。它统计图像中有多少像素落在特定颜色范围或“bin”中。例如,它可以告知我们图像中红、绿、蓝的分布,或整体亮度分布。直方图不关心颜色在图像中的位置,只关心每种颜色(或强度)的量有多少。这使得它对物体旋转或平移等变化仍有效。{"layout": {"title": "图像简单颜色分布", "xaxis": {"title": "颜色"}, "yaxis": {"title": "像素比例"}, "bargap": 0.2, "plot_bgcolor": "#e9ecef"}, "data": [{"type": "bar", "x": ["红色调", "绿色调", "蓝色调"], "y": [0.6, 0.15, 0.25], "marker": {"color": ["#f03e3e", "#37b24d", "#1c7ed6"]}}]}一个简化颜色直方图,显示示例图像中主导红、绿、蓝色调的比例。这提供了图像整体色彩风格的概览。其他简单特征(简要说明)可以提取其他类型的特征:边缘:边缘是图像中强度或颜色急剧变化的位置。它们通常对应于物体边界,是重要的视觉线索。算法可以检测并表示这些边缘。纹理:纹理指图像中的视觉模式,如树皮的粗糙度或丝绸的光滑度。可以设计特征来量化这些模式。角点和关键点:图像中“有趣”或在物体不同视角下保持稳定的特定点可以被识别为特征。这些人工设计的特征的目标通常是减少数据量,同时保留甚至强调给定任务的重要信息。结构的重要性像素排列成网格,这种空间排列,即结构,是基本的。相邻像素以及像素组之间的关系定义了形状、物体和整体场景。图像顶部的一组蓝色像素可能代表天空。边缘像素的圆形排列可能表示一个球。尽管颜色直方图等特征舍弃了空间信息,但许多人工智能技术,特别是现代深度学习模型,如卷积神经网络(CNNs),专门设计用于从像素数据或学习到的特征中直接学习并运用这种局部空间结构。理解图像固有的结构,对进一步了解模型如何利用这种结构非常重要。图像嵌入:数字语义捕获在更高级的人工智能中,特别是深度学习,模型可以学习将整个图像(或其部分)转换为密集的数字列表,称为图像嵌入或特征向量。与原始像素相比,这种嵌入是一种相对低维的表示,但它旨在捕获图像的高级语义内容。设想您有一个1000x1000像素的彩色图像。那是300万原始像素值!而一个图像嵌入可能仅用几百个数字来表示同一图像。主要想法是,内容相似的图像(例如,两张不同的猫照片)在此数字空间中将拥有彼此“接近”的嵌入,而内容不同的图像(例如,一只猫和一辆车)将拥有“相距甚远”的嵌入。本入门课程不详细讲解这些嵌入是如何学习的,但知道它们存在是很有用的。它们是表示图像的有效方式,可用于图像搜索、分类等任务,而对多模态人工智能而言,其重要作用在于将图像信息与文本等其他数据类型进行比较和组合。总结来说,为人工智能表示图像从原始像素数据开始。从那里,我们可以提取各种特征以获得更抽象的信息,始终牢记图像固有的结构。为了更精细的理解,人工智能模型可以学习紧凑、富含意义的嵌入。这些不同的表示为人工智能“理解”和处理视觉信息提供了支撑。