联系我们

AI 101

图像分类如何工作?

mm

更新

 on

您的手机如何仅通过拍照来确定什么是物体?社交媒体网站如何自动标记照片中的人物?这是通过AI驱动的图像识别和分类来完成的。

图像的识别和分类是实现人工智能的许多最令人印象深刻的成就的原因。但是计算机如何学习检测和分类图像?在本文中,我们将介绍计算机用来解释和检测图像的一般方法,然后介绍一些对这些图像进行分类的最受欢迎的方法。

像素级与基于对象的分类

图像分类技术主要可以分为两类: 基于像素的分类基于对象的分类。

像素是图像的基本单位,而像素分析是完成图像分类的主要方式。但是,分类算法既可以仅使用单个像素内的光谱信息对图像进行分类,也可以与光谱信息一起检查空间信息(附近的像素)。基于像素的分类方法仅利用光谱信息(像素的强度),而基于对象的分类方法同时考虑了像素光谱信息和空间信息。

有多种不同的分类技术可用于基于像素的分类。这些包括平均距离最小,最大似然性和最小马哈拉诺比斯距离。这些方法要求知道类别的均值和方差,并且它们都通过检查类别均值与目标像素之间的“距离”来进行操作。

基于像素的分类方法受到限制,因为它们不能使用附近其他像素的信息。相反,基于对象的分类方法可以包括其他像素,因此它们也使用空间信息对项目进行分类。注意,“对象”仅是指像素的连续区域,而不是指在该像素区域内是否存在目标对象。

预处理图像数据以进行目标检测

最新和可靠的图像分类系统主要使用对象级分类方案,对于这些方法,必须以特定方式准备图像数据。需要选择对象/区域并进行预处理。

在可以对图像以及该图像内的对象/区域进行分类之前,必须由计算机解释构成该图像的数据。需要对图像进行预处理和准备,以输入到分类算法中,这是通过对象检测完成的。这是准备数据和准备图像以训练图像的关键部分。 机器学习 分类器。

对象检测完成 多种方法和技术。 首先,是否存在多个感兴趣的对象或单个感兴趣的对象会影响图像预处理的处理方式。如果只有一个感兴趣的对象,则对图像进行图像定位。组成图像的像素具有由计算机解释并用于显示适当的颜色和色调的数值。在感兴趣的对象周围绘制一个称为边界框的对象,这有助于计算机知道图像的哪个部分很重要以及哪些像素值定义了该对象。如果图像中有多个感兴趣的对象,则使用一种称为对象检测的技术将这些边界框应用于图像中的所有对象。

Photo: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (//commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

预处理的另一种方法是图像分割。图像分割功能是基于相似特征将整个图像分为多个部分。与图像的其他区域相比,图像的不同区域将具有相似的像素值,因此这些像素被分组在一起,成为与图像中相关对象的形状和边界相对应的图像蒙版。图像分割可以帮助计算机隔离图像的特征,这将有助于对对象进行分类,就像边界框一样,但是它们提供了更加准确的像素级标签。

在完成对象检测或图像分割之后,将标签应用于所讨论的区域。这些标签与组成对象的像素值一起被馈送到机器学习算法中,该算法将学习与不同标签相关的图案。

机器学习算法

一旦准备好数据并对其进行了标记,就将数据输入到机器学习算法中,对算法进行训练。我们将介绍一些最常见的机器学习 图像分类算法 下面。

K最近邻居

“ K最近邻”是一种分类算法,用于检查最接近的训练示例并查看其标签,以确定给定测试示例的最可能标签。在使用KNN进行图像分类时,将存储训练图像的特征向量和标签,并且在测试过程中仅将特征向量传递到算法中。然后将训练和测试特征向量相互比较是否相似。

基于KNN的分类算法非常简单,并且可以轻松处理多个类。但是,KNN会根据所有特征平均计算相似度。这意味着当提供图像时,其中只有一部分特征对于图像的分类很重要,因此易于分类错误。

支持向量机

支持向量机是一种分类方法,将点放置在空间中,然后在点之间绘制分隔线,根据点落在分隔平面的哪一侧,将对象放置在不同的类别中。支持向量机能够通过使用称为内核技巧的技术进行非线性分类。尽管SVM分类器通常非常准确,但是SVM分类器的主要缺点是它们往往受大小和速度的限制,随着大小的增加,速度会受到影响。

多层感知器(神经网络)

多层感知器(也称为神经网络模型)是受人脑启发的机器学习算法。多层感知器由彼此连接在一起的各个层组成,就像人脑中的神经元链接在一起一样。神经网络对输入要素与数据类别之间的关系进行了假设,并且这些假设会在训练过程中进行调整。诸如多层感知器之类的简单神经网络模型能够学习非线性关系,因此,它们可以比其他模型更加准确。但是,MLP模型存在一些显着问题,例如存在非凸损失函数。

深度学习算法(CNN)

Photo: APhex34 via Wikimedia Commons, CC BY SA 4.0 (//commons.wikimedia.org/wiki/File:Typical_cnn.png)

最近最常用的图像分类算法是 卷积神经网络 (CNN)。 CNN是神经网络的定制版本,将多层神经网络与专门的层组合在一起,这些特定的层能够提取与对象分类最重要和最相关的特征。 CNN可以自动发现,生成和学习图像特征。这大大减少了手动标记和分割图像以将其准备用于机器学习算法的需求。与MLP网络相比,它们还具有优势,因为它们可以处理非凸丢失功能。

卷积神经网络因其创建“卷积”这一事实而得名。 CNN通过拍摄滤镜并在图像上滑动来进行操作。您可以将其视为通过可移动窗口查看景观的各个部分,而仅关注可随时通过窗口查看的要素。过滤器包含与像素本身的值相乘的数值。结果是一个新的框架或矩阵,其中充满了代表原始图像的数字。对选定数量的滤镜重复此过程,然后将帧连接在一起,形成一个新图像,该图像比原始图像要小一些且复杂一些。一种称为池化的技术用于仅选择图像中最重要的值,而卷积层的目标是最终仅提取图像中最显着的部分,这将有助于神经网络识别图像中的对象。

卷积神经网络 由两个不同的部分组成。 卷积层提取图像的特征并将其转换为神经网络层可以解释和学习的格式。早期的卷积层负责提取图像的最基本元素,例如简单的线条和边界。中间的卷积层开始捕获更复杂的形状,例如简单的曲线和拐角。后面的更深的卷积层提取图像的高级特征,这些特征将传递到CNN的神经网络部分,并且是分类器学习的内容。

专门从事以下工作的Blogger和程序员 机器学习 深度学习 话题。 Daniel希望帮助他人将AI的力量用于社会公益。