图像识别

什么是图像识别?

你需要知道三件事

图像识别是在图像或视频中识别物体或特征的过程。它被用于许多应用程序,如缺陷检测、医疗成像和安全监视。

为什么图像识别很重要

图像识别可以加快繁琐的工作,处理图像比手工图像检查更快或更准确。图像识别在许多应用中是一项至关重要的技术,也是深度学习应用的主要驱动因素,比如:

  • 目视检查在制造过程中识别出有缺陷或无缺陷的部件,可以在一条装配线上快速检查数千个部件。
  • 图像分类:根据图像内容对图像进行分类。这在电子商务中的图像检索和推荐系统等应用程序中特别有用。
  • 自动驾驶识别图像中的停车标志或行人的能力对自动驾驶应用至关重要。
  • 机器人:图像识别可用于机器人识别物体,并通过识别路径上的位置或物体来增强自主导航。
图像识别在零件缺陷视觉检测中的应用。

图像识别在零件缺陷视觉检测中的应用。

图像识别是这些应用的核心技术。它识别图像中的物体或场景,并使用这些信息作为更大系统的一部分做出决策。图像识别帮助这些系统变得更有意识,通过向系统提供洞察,本质上实现更好的决策。

图像识别vs.目标检测

图像识别和对象检测都是类似的技术,经常一起使用。图像识别识别图像中的物体或场景;对象检测在图像中查找这些对象的实例和位置。

常用的目标检测技术是Faster R-CNN和YOLOv3。

图像识别(左)和物体检测(右)。

图像识别(左)和物体检测(右)。

它是如何工作的

图像识别技术

图像识别有很多方法,包括机器学习和深度学习技术。您使用的技术取决于应用程序,但通常情况下,问题越复杂,您就越有可能想要探索深度学习技术。

使用深度学习的图像识别

图像识别的深度学习方法可以使用卷积神经网络从样本图像中自动学习相关特征,并在新图像中自动识别这些特征。

典型的深度学习图像识别工作流:

prepare-training-data

准备训练数据:从一个图像集合开始,并将它们编译到相关的类别中。这也可能包括任何预处理步骤,以使图像更一致,更准确的模型。

create-deep-learning-model

创建深度学习模型:虽然您可以从头开始构建深度学习模型,但最好从一个预先训练好的模型开始,您可以将其作为应用程序的起点。(了解更多关于pretrained模型).

训练模式

培养模式:模型训练涉及到将测试数据呈现给模型。然后,模型对数据进行多次迭代,自动学习与图像相关的最重要的特征。随着训练的继续,模型将学习到更复杂的特征,直到模型能够准确地在训练集中的图像类之间进行解码。

测试数据

测试数据:对模型以前没有见过的新数据进行测试,看看模型认为图像是什么样子的。如果结果不是您所期望的,迭代这四个步骤,直到精确度更可接受为止。

深度学习技术听起来可能很复杂,但简单的例子是开始学习和更多了解该技术的好方法。

提示:深度学习技术在图像识别中很受欢迎,因为它们能提供高度准确和稳健的结果。深度学习往往在大量训练数据的情况下工作得最好,而像迁移学习这样的技术可以简化图像识别工作流。深度学习工具箱™提供了一个用算法、预训练模型和应用程序设计和实现深度神经网络的框架。

使用机器学习的图像识别

一种用于图像识别的机器学习方法包括从图像中识别和提取关键特征,并将它们作为机器学习模型的输入。

  • 训练数据:您从一个图像集合开始,并将它们编译到相关的类别中。
  • 提取的特征:选择每张图片的相关特征。特征提取算法可以提取边缘或角落特征,用于区分数据中的类。
  • 创建一个机器学习模型:这些特征被添加到机器学习模型中,该模型将这些特征划分为不同的类别,然后在分析和分类新对象时使用这些信息。
机器学习工作流程

用于图像识别的机器学习工作流。

您可以使用各种机器学习算法和特征提取方法,它们提供了许多组合来创建精确的对象识别模型。

SVM classifier.

" data-toggle="lightbox" class="add_margin_0 ">机器学习的例子

机器学习的例子与图像识别分类数字使用HOG特征和支持向量机分类器

提示:使用机器学习进行对象识别提供了选择特征和分类器的最佳组合的灵活性。它可以用最少的数据获得准确的结果。统计和机器学习工具箱™提供用于描述、分析和建模的功能和应用程序数据。

图像识别:深度学习与机器学习

你如何知道什么时候使用深度学习或机器学习进行图像识别?在较高的层次上,区别是用机器学习手动选择特征,还是用深度学习自动学习。

利用传统图像处理技术进行图像识别

除了深度学习和机器学习,许多经典的图像处理方法在某些应用中对图像识别非常有效。图像处理技术往往非常适合“基于像素的”识别应用程序,例如:

  • 基于颜色的图像识别:通常,颜色可以为图像识别提供极好的特征。诸如色相、饱和度和值(HSV)或红、绿、蓝(RGB)等特征可以提供对图像的洞察。
  • 模板匹配该技术使用小图像或模板在大图像中查找匹配区域。
  • 图像分割和blob分析:这使用了简单的对象属性,如大小、颜色或形状。
提示:通常情况下,如果可以使用像图像分割这样的简单方法来识别一个对象,那么最好从这种方法开始。您可能有一个健壮的解决方案,它不需要数百或数千个训练图像或复杂的解决方案。图像处理工具箱™你需要的工具我都有。

MATLAB图像识别

MATLAB®简化了图像识别的困难部分。

  1. 图像标签的应用:干净的预处理数据确保了图像识别的最佳成功机会。与图片标志应用程序,你可以将裁剪和标记图像的过程自动化。
交互式地为图像和视频贴上标签。

交互式地为图像和视频贴上标签。

  1. 探索深度学习和机器学习算法:刚开始的时候,可能不清楚是使用深度学习还是机器学习技术。MATLAB提供了尝试所有方法组合的能力。探索深度学习或机器学习分类算法的预训练模型。

您可以使用ONNX™(开放神经网络交换)的导入和导出功能,从TensorFlow™、Keras、PyTorch和caff2等框架与网络和网络架构进行互操作。

与基于python的框架集成。

  1. 自动生成用于部署的代码:最终,您的算法可能需要存在于桌面环境之外。MATLAB提供了代码生成工具,可以将图像识别算法部署到任何地方:web、嵌入式硬件或生产服务器。
在创建算法之后,您可以使用自动化工作流来生成tensort或CUDA®代码与GPU编码器™为半实物测试。生成的代码可以与现有的项目集成,并可用于验证桌面图形处理器或NVIDIA等嵌入式图形处理器上的对象检测算法®Jetson或NVIDIA Drive平台。

参见:模式识别


了解关于图像识别的更多信息

查看文档中的深度学习示例。
观看此视频,了解如何交互式地创建精确的分类器。
这个例子展示了如何使用定制的功能包工作流创建CBIR系统。
了解如何使用计算机视觉工具箱™功能,通过创建视觉单词包进行图像类别分类。
探索什么是计算机视觉,它是如何工作的,为什么它很重要,以及如何使用MATLAB进行计算机视觉
Baidu
map