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

术语 "图像识别" 是为了表示利用算法和机器学习概念识别特定动物、物体、人物或其他目标主题的计算机技术而引入的。图像识别计算机视觉相关,后者是一个广泛的标签,用于描述使计算机像人类一样看的过程,涉及训练计算机和图像处理。这是一个对在数据上进行密集工作的计算机的总称。

进行图像识别有几种方法。使用 卷积神经网络 位于许多识别技术的顶端,它通过一系列人工神经元层对图像进行过滤。卷积神经网络专为图像识别和类似图像处理而设计。通过结合诸如最大池化、填充和步幅配置等技术,CNN过滤器在图像上工作,帮助机器学习程序更好地识别图片中的主题。

图像识别的挑战

图像识别是当今广泛使用的技术之一。由于其受欢迎程度和持续使用,它面临许多具有挑战性的问题。这些问题包括:

1) 扭曲

对象即使扭曲也不会改变。系统从原始图像中学习,并形成这个对象只能是特定形状的认知。在现实世界中,形状会改变,因此当系统遇到对象的扭曲图像时,会发生不准确的情况。

2) 类间变化

某些对象在类内发生变化。它们可能具有不同的大小、形状,但仍然代表相同的类。例如,瓶子、按钮、包、椅子的大小和外观可能各不相同。

3) 视点变化

当将具有不同方向对齐的图像(实体对齐方式不同)输入系统时,它会预测不准确的值。系统无法理解更改图像的对齐方式(例如左、右、底部和顶部)不会使其不同,这是因为它会对图像识别造成挑战。

4) 尺度变化

如果对象的尺寸发生变化,将影响对对象的分类。我们越近观察对象,它在尺寸上看起来越大,反之亦然。

5) 遮挡

某些对象阻挡图像的完整视图,导致系统获取不完整的信息。需要开发一种对这些变化敏感且包含大量数据样本的算法。

在PyTorch中进行图像分类

PyTorch是深度学习中最流行的框架之一。图像分类是一个监督学习问题。使用预训练模型进行图像分类。

1) 预训练模型

预训练模型是在大型基准数据集(如ImageNet)上训练的神经网络模型。有各种预训练模型,如AlexNetResNet101。这两个模型都在ImageNet数据集上进行了训练。预训练一词表示深度学习架构,例如ResNet101和AlexNet,已经在某些数据集上进行了训练,并携带了相应的权重和偏差。TorchVision包含这两个体系结构和预训练模型。

a) 模型推断过程

如何使用预训练模型来预测输入的类别。这个过程涉及到模型推断,其中包含以下步骤:

  1. 读取输入图像。
  2. 对图像执行转换。
  3. 正向传递。
  4. 基于获得的分数显示预测。

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

我们可以轻松使用TorchVision模块使用预训练模型。为此,我们首先需要安装torchvision并从torchvision模块导入models,然后使用dir(models)查看我们可以使用的不同模型和体系结构。

pip install torchvision  
from torchvision import models  
dir(models)   

c) 使用AlexNet进行图像分类

在使用AlexNet进行图像分类时,需要执行以下步骤:

步骤1: 加载预训练模型。

步骤2: 指定图像转换。

步骤3: 加载输入图像并进行预处理。

步骤4: 模型推断。

d) 使用ResNet进行图像分类

在使用ResNet进行图像分类时,需要执行以下步骤:

步骤1: 加载预训练模型。

步骤2: 将模型置于评估模式。

步骤3: 进行模型推断。

步骤4: 打印模型预测的前5个类别。

在下一个主题中,我们将讨论MNIST数据集以及如何使用深度神经网络使模型适应图像数据。我们将讨论验证集,该集用于验证神经网络并检查其对新数据的泛化效果。在训练出最佳神经网络后,我们将使用它来预测来自网络的新图像。

标签: Pytorch, Pytorch教程, Pytorch安装, Pytorch入门, Pytorch下载, Pytorch指南, Pytorch编程, Pytorch入门教程, Pytorch初级教程, Pytorch进阶, Pytorch高级教程, Pytorch学习, Pytorch库