目标识别
你需要知道的三件事
目标识别与目标检测
目标检测和目标识别是用于识别目标的类似技术,但它们的执行方式不同。目标检测是在图像中查找对象实例的过程。在深度学习的情况下,对象检测是对象识别的一个子集,其中对象不仅被识别,而且还位于图像中。这允许在同一图像中识别和定位多个对象。
目标识别技术
基于深度学习的目标识别
深度学习技术已经成为一种流行的物体识别方法。深度学习模式例如卷积神经网络,或CNNs,用于自动学习对象的固有特征以识别该对象。例如,CNN可以通过分析数千张训练图像并学习使猫和狗与众不同的特征来学习识别猫和狗之间的差异。
使用深度学习执行对象识别有两种方法:
- 从零开始训练一个模特:要从头开始训练深度网络,您需要收集一个非常大的标记数据集,并设计一个网络体系结构,以了解其功能并构建模型。结果可能令人印象深刻,但这种方法需要大量的训练数据,并且需要在CNN中设置层和权重。
- 使用预训练的深度学习模型:大多数深度学习应用程序使用迁移学习方法,包括微调预训练模型的过程。您可以从现有的网络(如AlexNet或GoogLeNet)开始,并输入包含以前未知类的新数据。这种方法耗时较少,并且可以提供更快的结果,因为模型已经在数千或数百万张图像上进行了训练。
深度学习具有较高的准确性,但需要大量数据才能做出准确的预测。
基于机器学习的目标识别
机器学习技术在物体识别中也很流行,它提供了不同于深度学习的方法。机器学习技术的常见示例有:
- 基于支持向量机的猪特征提取机器学习模型
- 文字袋模型具有冲浪和MSER等功能
- 这个Viola-Jones算法,可用于识别各种对象,包括面和上半身
机器学习工作流
要使用标准机器学习方法执行对象识别,请从一组图像(或视频)开始,然后选择每个图像中的相关特征。例如,特征提取算法可能提取可用于区分数据中的类的边或角特征。
这些特征被添加到机器学习模型中,机器学习模型将这些特征分成不同的类别,然后在分析和分类新对象时使用这些信息。
您可以使用各种机器学习算法和特征提取方法,它们提供多种组合来创建精确的对象识别模型。
使用机器学习进行对象识别可以灵活地选择用于学习的特征和分类器的最佳组合。它可以用最少的数据获得准确的结果。
面向对象识别的机器学习与深度学习
确定对象识别的最佳方法取决于您的应用程序和您试图解决的问题。在许多情况下,机器学习是一种有效的技术,特别是如果您知道图像的哪些特征或特征是区分对象类别的最佳特征或特征。
在选择机器学习和深度学习时,需要考虑的主要问题是您是否拥有强大的GPU和大量标记的训练图像。如果这两个问题的答案都是否定的,那么机器学习方法可能是最佳选择。深度学习技术往往能更好地处理更多的图像,而GPU有助于减少训练模型所需的时间。
了解更多
其他物体识别方法
根据应用情况,其他更基本的对象识别方法可能就足够了。
- 模板匹配–使用小图像或模板在较大图像中查找匹配区域
- 图像分割与斑点分析–使用简单的对象属性,如大小、颜色或形状
通常,如果可以使用简单的方法(如图像分割)识别对象,最好从使用更简单的方法开始。这可以提供一个健壮的解决方案,不需要成百上千的训练图像或过于复杂的解决方案。
深度学习与机器学习
只有几行文字MATLAB®代码中,您可以为对象识别构建机器学习和深度学习模型,而无需成为专家。
使用MATLAB进行对象识别可以使您在更短的时间内成功,因为它可以让您:
- 利用您的专业知识,通过MATLAB学习数据科学:
您可以使用MATLAB学习并获得机器学习和深度学习领域的专业知识。MATLAB使学习这些领域变得实用和容易。此外,MATLAB使领域专家能够创建对象识别模型,而不是将任务交给可能不了解您的行业或应用程序的数据科学家。
- 使用应用程序标记数据和构建模型:
MATLAB允许您用最少的代码构建机器学习和深度学习模型。
和分类学习者应用程序,您可以快速构建机器学习模型并比较不同的机器学习算法,而无需编写代码。
使用图像标签应用程序,您可以在图像中以交互方式标记对象,并在视频中自动标记地面真相,以用于培训和测试深度学习模型。这种交互式和自动化的方法可以在更短的时间内产生更好的结果。
- 在单个工作流中集成对象识别:
MATLAB可以在一个工作流中统一多个领域。使用MATLAB,您可以在一个环境中进行思考和编程。它为深度学习和机器学习提供了工具和功能,也为一系列输入这些算法的领域提供了工具和功能,例如机器人学、计算机视觉和数据分析。
MATLAB自动在企业系统、集群、云和嵌入式设备上部署模型。