📜  Pytorch图像识别

📅  最后修改于: 2020-11-11 00:56:12             🧑  作者: Mango

图像识别

图像识别是从给定图像中提取有意义的信息(例如图像内容)的过程。在图像识别中,必须对给定图像中的主要内容进行分类,因此不涉及确定所识别内容的位置和姿势。

术语“图像识别”是针对借助算法和机器学习概念来识别某些动物,物体,人或其他目标对象的计算机技术而引入的。图像识别与计算机视觉有关,计算机视觉是一个综合的标签,可以像人一样看待训练计算机和图像处理的过程。它是对数据进行大量处理的计算机的统称。

有几种方法可以进行图像识别。卷积神经网络的使用是许多识别技术的基础,它通过一系列人工神经元层对图像进行过滤。卷积神经网络是专门为图像识别和类似图像处理而设计的。借助最大合并,填充和跨步配置等技术的组合,CNN过滤器可在图像上工作,以帮助机器学习程序更好地识别图片的主题。

图像识别的挑战

图像识别是当今时代广泛使用的技术之一。由于它的流行和持续使用,它面临许多挑战性的问题。这些问题如下:

1)失真

对象即使变形也不会改变。该系统从原始图像中学习并形成一种感知,即该对象只能处于特定的形状。在现实世界中,形状会发生变化,结果,当系统遇到对象的变形图像时,会发生不准确的情况。

2)班际差异

类中的某些对象更改。它们可以具有不同的大小,形状,但是它们代表相同的类。例如,瓶子,纽扣,袋子,椅子都有不同的尺寸和外观。

3)观点变化

当图像(实体在不同方向上对齐)被馈送到系统时,它会预测不正确的值。系统无法理解更改图像的对齐方式(如左,右,下和上)不会使其与众不同,这是因为它给图像识别带来了挑战。

4)规模变化

如果对象大小发生变化,则对象的分类会受到影响。我们越靠近对象,它的尺寸越大,反之亦然。

5)遮挡

某些对象会阻止图像的完整视图,并导致将不完整的信息提供给系统。有必要开发一种对这些变化敏感并且包含大量数据样本的算法。

PyTorch中的图像分类

PyTorch是最流行的深度学习框架之一。图像分类是有监督的学习问题。图像分类是在预先训练的模型的帮助下完成的。

1)预训练模型

预训练模型是在大型基准数据集(如ImageNet)上训练的神经网络模型。有各种预先训练的模型,例如AlexNet和ResNet101。两种模型都已在ImageNet数据集上训练。预训练这个词意味着,例如,深度学习架构ResNet101和AlexNet已经在某些数据集上进行了训练,并带有结果权重和偏见。 TorchVision同时具有架构和预先训练的模型。

a)模型推断过程

如何使用预训练模型来预测输入类别。其中涉及一个过程,称为模型推断。此过程包括以下步骤:

  • 读取输入图像。
  • 在图像上执行转换。
  • 前传
  • 根据获得的分数显示预测。

b)使用TorchVision加载预先训练的网络

我们可以在TorchVision模块的帮助下轻松使用预先训练的模型。为此,我们必须首先安装torchvision并从torchvision模块导入模型,并在dir(模型)的帮助下查看我们可用的不同模型和体系结构。

pip install torchvision
from torchvision import models
dir(models) 

c)使用AlexNet进行图像分类

当我们使用AlexNet执行图像分类时,我们执行以下步骤:

步骤1:加载经过预先训练的模型步骤2:指定图像转换步骤3:加载输入图像并对其进行预处理步骤4:模型推断

d)使用ResNet进行图像分类

当我们使用AlexNet执行图像分类时,我们执行以下步骤:

步骤1:加载预先训练的模型。步骤2:将模型置于评估模式。第三步:进行模型推断。步骤4:print模型预测的前5类。

在下一个主题中,我们将讨论MNIST数据集以及如何使用深度神经网络来使模型适合图像数据。我们将讨论验证集,该验证集用于验证神经网络并检查其对新数据的推广程度。在训练了最佳的神经网络之后,我们将其用于预测网络中的新图像。