图像识别

什么是图像识别?

你需要知道三件事

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

为什么图像识别很重要

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

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

零件缺陷目视检查应用中的图像识别。

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

图像识别与目标检测

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

常见的目标检测技术是更快的R-CNN和YOLOv3。

图像识别(左)和目标检测(右)。

工作原理

图像识别技术

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

基于深度学习的图像识别

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

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

准备培训数据:从图像集合开始,并将其编译为相关类别。这还可以包括任何预处理步骤,以使图像更加一致,从而获得更精确的模型。

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

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

测试数据:测试模型之前没有看到的新数据,看看模型认为图像是什么。如果结果不是您所期望的,那么重复这四个步骤,直到精确度更容易接受为止。

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

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

基于机器学习的图像识别

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

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

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

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

SVM classifier.

" data-toggle="lightbox">

使用HOG特征和支持向量机分类器

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

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

你如何知道何时使用深度学习或机器学习进行图像识别?在高水平上,区别在于机器学习的手动选择特征或深度学习的自动学习特征。

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

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

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

基于MATLAB的图像识别

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

  1. 图像标签的应用:干净的、预处理的数据确保了图像识别成功的最佳机会。与图片标志应用程序,你可以自动裁剪和标记图像的过程。

以交互方式标记图像和视频。

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

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

与基于python的框架集成。

  1. 为部署自动生成代码:最终,您的算法可能需要生活在桌面环境之外。MATLAB提供了代码生成工具来部署您的图像识别算法的任何地方:web,嵌入式硬件,或生产服务器。
在创建算法之后,您可以使用自动化工作流来生成TensorRT或CUDA®代码与GPU编码器™对于硬件在环测试,生成的代码可以与现有的项目集成,可以用于验证桌面GPU或嵌入式GPU(如英伟达)上的对象检测算法。®Jetson或NVIDIA驱动平台。

参见:模式识别


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

观看这个视频,一步一步地说明如何交互式创建一个准确的分类器。
这个示例展示了如何使用自定义功能包工作流创建CBIR系统。
学习如何使用计算机视觉工具箱™功能,通过创建一个视觉词汇袋的图像分类。