AI 入门 101
图像分类是如何工作的?

你的手机如何仅通过拍摄一张照片就能确定物体是什么?社交媒体网站如何自动标记照片中的人员?这是通过人工智能图像识别和分类实现的。
图像的识别和分类使得人工智能实现了许多令人印象深刻的成就。然而,计算机如何学习检测和分类图像?在本文中,我们将介绍计算机用来解释和检测图像的常用方法,然后研究一些最流行的图像分类方法。
像素级别与基于对象的分类
图像分类技术主要分为两类:像素级别分类和基于对象的分类。
像素是图像的基本单位,像素分析是图像分类的主要方法。然而,分类算法可以使用单个像素的光谱信息来分类图像,也可以同时考虑空间信息(附近的像素)和光谱信息。像素级别分类方法仅使用光谱信息(像素的强度),而基于对象的分类方法同时考虑像素的光谱信息和空间信息。
有不同的分类技术用于像素级别分类。这些包括最小距离、最大似然和最小马哈拉诺比斯距离。这些方法需要已知类别的均值和方差,并且它们通过检查类别均值和目标像素之间的“距离”来运作。
像素级别分类方法的局限性在于它们不能使用来自其他附近像素的信息。相比之下,基于对象的分类方法可以包括其他像素,因此它们也使用空间信息来分类物体。注意,“对象”仅指像素的连续区域,而不是该区域内是否包含目标对象。
预处理图像数据用于对象检测
最近和最可靠的图像分类系统主要使用对象级别分类方案,对于这些方法,图像数据必须以特定的方式准备。对象/区域需要被选中和预处理。
在图像和图像中的对象/区域可以被分类之前,图像数据必须被计算机解释。图像需要被预处理和准备好输入分类算法,这是通过对象检测完成的。这是准备数据和训练机器学习分类器的关键部分。
对象检测使用各种方法和技术。首先,图像中是否有多个对象或单个对象会影响图像预处理的方式。如果只有一个对象,图像会经过图像定位。图像中的像素具有数值,这些数值被计算机解释并用于显示正确的颜色和色调。一个称为边界框的对象被绘制在对象周围,这有助于计算机了解图像的哪个部分是重要的以及哪些像素值定义了对象。如果图像中有多个对象,则使用对象检测技术将边界框应用于图像中的所有对象。

图片:Adrian Rosebrock via Wikimedia Commons,CC BY SA 4.0(https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)
另一种预处理方法是图像分割。图像分割通过将整个图像划分为具有相似特征的段来工作。图像的不同区域将具有相似的像素值,与图像的其他区域相比,这些像素被分组到对应于图像中相关对象的形状和边界的图像掩膜中。图像分割有助于计算机隔离图像中将帮助它分类对象的特征,就像边界框一样,但它们提供更准确的像素级标签。
对象检测或图像分割完成后,标签被应用于相关区域。这些标签与组成对象的像素值一起被输入到将学习不同标签相关模式的机器学习算法中。
机器学习算法
数据准备和标记后,数据被输入到机器学习算法中,算法在数据上进行训练。我们将介绍一些最常见的机器学习图像分类算法。
K-最近邻
K-最近邻是一种分类算法,它检查最接近的训练示例并查看它们的标签以确定给定测试示例的最可能标签。对于使用KNN的图像分类,训练图像的特征向量和标签被存储,并且仅在测试期间将特征向量输入算法。然后将训练和测试特征向量相互比较以确定相似性。
KNN基于分类算法非常简单,并且可以轻松处理多个类别。然而,KNN根据所有特征均等计算相似性。这意味着它可能容易出现错误分类,当图像中只有一个子集的特征对于图像分类很重要时。
支持向量机
支持向量机是一种分类方法,它在空间中放置点并在点之间绘制分离线,将对象放在不同类别中,具体取决于点落在哪一侧的分离平面上。支持向量机可以通过使用一种称为核技巧的技术来执行非线性分类。虽然SVM分类器通常非常准确,但SVM分类器的一个重大缺点是它们往往受到大小和速度的限制,随着大小的增加,速度会下降。
多层感知器(神经网络)
多层感知器,也称为神经网络模型,是受人类大脑启发的机器学习算法。多层感知器由多个层组成,这些层彼此连接,就像人类大脑中的神经元一样。神经网络对输入特征与数据类别之间的关系做出假设,并在训练过程中调整这些假设。像多层感知器这样的简单神经网络模型能够学习非线性关系,因此它们可以比其他模型更准确。然而,MLP模型存在一些值得注意的问题,例如非凸损失函数的存在。
深度学习算法(CNN)

图片:APhex34 via Wikimedia Commons,CC BY SA 4.0(https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
最近最常用的图像分类算法是卷积神经网络(CNN)。CNN是定制的神经网络版本,它将多层神经网络与能够提取最重要和最相关的对象分类特征的专用层相结合。CNN可以自动发现、生成和学习图像特征。这大大减少了手动标记和分割图像以准备它们用于机器学习算法的需要。它们还具有比MLP网络更大的优势,因为它们可以处理非凸损失函数。
卷积神经网络之所以被称为“卷积”,是因为它们创建了“卷积”。CNN通过将滤器滑过图像来工作,可以将其视为通过可移动的窗口查看景观的某些部分,仅关注窗口中可见的特征。滤器包含数值,这些数值与像素值本身相乘。结果是一个新帧或矩阵,包含代表原始图像的数字。这个过程对于选择的滤器重复,然后帧被连接到一个新的图像中,新的图像比原始图像小且更简单。池化是一种用于选择图像中最重要值的技术,目标是让卷积层最终提取图像中最显著的部分,这将帮助神经网络识别图像中的对象。
卷积神经网络由两个不同的部分组成。卷积层负责提取图像特征并将它们转换为神经网络层可以解释和学习的格式。早期的卷积层负责提取图像的最基本元素,例如简单的线条和边界。中间的卷积层开始捕获更复杂的形状,例如简单的曲线和角。后期的更深的卷积层提取图像的高级特征,这些特征是输入到CNN的神经网络部分的,并且是分类器学习的内容。简单的线条和边界。中间的卷积层开始捕获更复杂的形状,例如简单的曲线和角。后期的更深的卷积层提取图像的高级特征,这些特征是输入到CNN的神经网络部分的,并且是分类器学习的内容。












