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