目标识别

你需要知道的三件事

什么是物体识别?

目标识别是一种计算机视觉技术,用于识别图像或视频中的目标。目标识别是深度学习和机器学习算法的关键输出。当人类看照片或视频时,我们可以很容易地发现人、物体、场景和视觉细节。我们的目标是教计算机做人类天生的事情:对图像的内容有一定程度的理解。

图1。使用对象识别来识别不同类别的对象。

物体识别是无人驾驶汽车后面的一项关键技术,使无人驾驶汽车能够识别停车标志或区分行人和路灯杆。它在生物成像、工业检测和机器人视觉等多种应用中也很有用。

目标识别与目标检测

目标检测和目标识别是用于识别目标的相似技术,但它们的执行方式各不相同。检测对象是在图像找到对象的实例的过程。在深学习的情况下,对象检测是对象识别,其中,所述对象不仅确定,但也位于图像中的一个子集。这使得被识别并处于同一个图像中的多个对象。

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

对象识别的工作原理

您可以使用各种不同的物体识别方法。近日,在技术机器学习深度学习已经成为解决对象识别问题的流行方法。这两种技术都学习识别图像中的对象,但它们的执行方式不同。

图3:用于对象识别的机器学习和深度学习技术。

下一节将解释机器学习和深度学习在对象识别中的区别,并说明如何实现这两种技术。

目标识别技术

基于深度学习的目标识别

深度学习技术已经成为一种流行的对象识别方法。深度学习模型如卷积神经网络,或CNN公司,用于自动学习对象的固有特征以识别该对象。例如,CNN可以通过分析数千张训练图片,学习使猫和狗不同的特征,来识别猫和狗之间的差异。

使用深度学习执行对象识别有两种方法:

  • 从头开始训练模特:要从头开始训练一个深度网络,您需要收集一个非常大的标记数据集,并设计一个网络体系结构来学习这些特性并构建模型。结果可能令人印象深刻,但这种方法需要大量的训练数据,您需要在CNN中设置层和权重。
  • 使用预先训练的深度学习模型:大多数深度学习应用程序使用迁移学习方法,一个包括微调预训练模型的过程。从现有网络(如AlexNet或GoogLeNet)开始,输入包含以前未知类的新数据。这种方法耗时较少,而且能够提供更快的结果,因为该模型已经在数千或数百万张图像上进行了训练。

深度学习提供了高水平的准确性,但需要大量数据才能做出准确的预测。

图4:显示餐厅食物对象识别的深度学习应用程序。

基于机器学习的目标识别

机器学习技术对于目标识别也很流行,并且提供了不同于深度学习的方法。机器学习技术的常见例子有:

机器学习工作流

要使用标准的机器学习方法执行对象识别,可以从图像(或视频)集合开始,并在每个图像中选择相关特征。例如,特征提取算法可以提取边缘或角点特征,这些特征可用于区分数据中的类。

这些特征被添加到机器学习模型中,机器学习模型将这些特征分成不同的类别,然后在分析和分类新对象时使用这些信息。

您可以使用各种机器学习算法和特征提取方法,它提供了多种组合,建立一个准确的目标识别模型。

图5:对象识别的机器学习工作流。

利用机器学习进行目标识别,可以灵活地选择特征和分类器的最佳组合进行学习。它可以用最少的数据获得准确的结果。

面向对象识别的机器学习与深度学习

确定物体识别的最佳方法取决于你的应用程序,你要解决的问题。在许多情况下,机器学习可以是一个有效的技术,特别是如果你知道哪些功能或图像的特征是用于区分对象类的最好的。

在选择机器学习和深度学习时,要记住的主要问题是你是否有一个强大的GPU和大量标记的训练图像。如果这两个问题的答案都是否定的,那么机器学习方法可能是最好的选择。深度学习技术倾向于更好地处理更多的图像,GPU有助于减少训练模型所需的时间。

图6:选择深度学习和机器学习的关键因素。

了解更多

其他目标识别方法

根据应用的不同,其他更基本的对象识别方法可能就足够了。

  • 模板匹配–使用小图像或模板在大图像中查找匹配区域
  • 图像分割和斑点分析- 它使用简单对象属性,例如大小,颜色,形状或

一般来说,如果一个物体可以用一种简单的方法识别,比如图像分割,最好从简单的方法开始。这可以提供一个健壮的解决方案,不需要成百上千的训练图像或过于复杂的解决方案。

基于MATLAB的目标识别

深度学习与机器学习

只有几行MATLAB软件®代码中,您可以为对象识别构建机器学习和深入学习模型,而无需成为专家。

使用MATLAB进行对象识别可以使您在更短的时间内获得成功,因为它允许您:

  1. 使用您的领域专业知识并使用MATLAB学习数据科学:

    您可以使用MATLAB学习并获得机器学习和深度学习领域的专业知识。MATLAB使学习这些领域变得实用和容易。此外,MATLAB使领域专家能够创建对象识别模型,而不是将任务交给可能不了解您的行业或应用程序的数据科学家。

  2. 使用应用程序标记数据并生成模型:

    MATLAB允许您用最少的代码构建机器学习和深度学习模型。

    分类学习应用,您可以快速构建机器学习模型,而无需编写代码比较不同的机器学习算法。

    使用图片标注应用,您可以在图像中交互式地标记对象,并在视频中自动地标记地面真相,以用于培训和测试深度学习模型。这种交互式和自动化的方法可以在更短的时间内获得更好的结果。

  3. 在单个工作流中集成对象识别:

    MATLAB可以在一个工作流中统一多个域。使用MATLAB,您可以在一个环境中进行思考和编程。它为深度学习和机器学习提供了工具和功能,也为这些算法提供了一系列领域,例如机器人学,计算机视觉和数据分析。

MATLAB自动在企业系统、集群、云和嵌入式设备上部署模型。

免费试用

30天的指尖探索。