PyTorch图像识别实现介绍

本文概述

  • 图像识别的挑战
  • PyTorch中的图像分类
图像识别是从给定图像中提取有意义的信息(例如图像内容)的过程。在图像识别中, 必须对给定图像中的主要内容进行分类, 因此它不涉及确定所识别内容的位置和姿势。
术语” 图像识别” 是为借助算法和机器学习概念识别某些动物, 物体, 人或其他目标对象的计算机技术引入的。图像识别与计算机视觉有关, 计算机视觉是一个完整的标签, 可以像人一样看待训练计算机和图像处理的过程。它是对数据进行大量工作的计算机的统称。
有几种方法可以进行图像识别。卷积神经网络的使用是许多识别技术的基础, 它通过一系列人工神经元层对图像进行过滤。卷积神经网络是专门为图像识别和类似图像处理而设计的。借助最大合并, 填充和跨步配置等技术的组合, CNN过滤器可在图像上工作, 以帮助机器学习程序更好地识别图片的主题。
图像识别的挑战图像识别是当今时代广泛使用的技术之一。由于它的流行和持续使用, 它面临许多挑战性的问题。这些问题如下:
1)失真
对象即使变形也不会改变。系统从原始图像中学习, 并形成一个感知, 即该对象只能处于特定的形状。在现实世界中, 形状会发生变化, 结果, 当系统遇到对象的变形图像时, 会发生不准确的情况。
2)班际差异
类中的某些对象更改。它们可以具有不同的大小, 形状, 但是它们代表相同的类。例如, 瓶子, 纽扣, 袋子, 椅子都有不同的尺寸和外观。
3)观点变化
当图像(其中实体在不同方向上对齐)被馈送到系统时, 它会预测不正确的值。系统无法理解, 更改图像的对齐方式(如左, 右, 下和上)不会使其与众不同, 这是因为它给图像识别带来了挑战。
4)规模变化
如果对象大小发生变化, 则会影响对象的分类。当我们越靠近对象时, 它的尺寸越大, 反之亦然。
5)遮挡
某些对象会阻止图像的完整视图, 并导致将不完整的信息提供给系统。有必要开发一种对这些变化敏感并且包含大量数据样本的算法。
PyTorch中的图像分类PyTorch是最流行的深度学习框架之一。图像分类是有监督的学习问题。图像分类是在预先训练的模型的帮助下完成的。
1)预训练模型
预训练模型是在大型基准数据集(如ImageNet)上训练的神经网络模型。有各种预先训练的模型, 例如AlexNet和ResNet101。两种模型都已在ImageNet数据集上训练。预训练这个词意味着, 例如, 深度学习架构ResNet101和AlexNet已经在某些数据集上进行了训练, 并带有结果权重和偏见。 TorchVision具有架构和预训练模型。
a)模型推断过程
如何使用预训练模型来预测输入类别。其中涉及一个过程, 称为模型推断。此过程包括以下步骤:
  1. 读取输入图像。
  2. 在图像上执行转换。
  3. 前传
  4. 根据获得的分数显示预测。
b)使用TorchVision加载预先训练的网络
我们可以在TorchVision模块的帮助下轻松使用预训练的模型。为此, 我们必须首先安装torchvision并从torchvision模块导入模型, 并在dir(模型)的帮助下查看我们可用的不同模型和体系结构。
pip install torchvisionfrom torchvision import modelsdir(models)

c)使用AlexNet进行图像分类
当我们使用AlexNet执行图像分类时, 我们执行以下步骤:
步骤1:载入预先训练的模型
步骤2:指定图片转换
第三步:加载输入图像并进行预处理
步骤4:模型推断
d)使用ResNet进行图像分类
当我们使用AlexNet执行图像分类时, 我们执行以下步骤:
第一步:加载预训练模型。
步骤2:将模型置于评估模式。
第三步:进行模型推断。
步骤4:打印模型预测的前5类。
【PyTorch图像识别实现介绍】在下一个主题中, 我们将讨论MNIST数据集以及如何使用深度神经网络来使模型适合图像数据。我们将讨论验证集, 该验证集用于验证神经网络并检查其对新数据的推广程度。训练出最佳的神经网络后, 我们再用它来预测网络上的新图像。

    推荐阅读