Azure 上的图像分类入门
可以使用 Azure AI 服务产品中的 Azure AI 自定义视觉执行图像分类。 与编写自己的模型训练代码相比,这种方法通常更容易、更快捷,并且可以让几乎不具备机器学习专业知识的人员也能创建有效的图像分类解决方案。
Azure AI 自定义视觉的 Azure 资源
使用 Azure AI 自定义视觉创建图像分类解决方案包括两个主要任务。 首先必须使用现有图像训练模型,然后必须发布模型,以供客户端应用程序生成预测。
对于上述每个任务,都需要 Azure 订阅中的资源。 可以使用以下类型的资源:
- 自定义视觉:自定义视觉服务的专用资源,可以是训练资源、预测资源或两者。
- Azure AI 服务:通用资源,包括 Azure AI 自定义视觉以及许多其他 Azure AI 服务。 可将此类资源用于训练、预测或同时用于两者。
如果希望从使用模型预测图像分类的客户端应用程序单独跟踪模型训练的资源使用情况,可以将训练资源和预测资源分开。 但是,这会让图像分类解决方案的开发变得有点混乱。
最简单的方法是将常规 Azure AI 服务资源用于训练和预测。 这意味着只需要关心一个终结点(托管服务的 HTTP 地址)和密钥(客户端应用程序用来验证自身身份的机密值)。
如果你选择创建自定义视觉资源,系统将提示你选择“训练”、“预测”或“两者”。需要特别注意的是,如果选择“两者”,则会创建“两种”资源 - 一种用于训练,另一种用于预测。
也可以采用混合搭配的方法,即将专用的自定义视觉资源用于训练,但将模型部署到 Azure AI 服务资源以用于预测。 为此,必须在同一区域创建训练和预测资源。
模型训练
若要训练分类模型,必须将图像上传到训练资源,并使用适当的类标签对其进行标记。 然后,你必须训练模型并评估训练结果。
可在自定义视觉门户执行这些任务;或者如果你具有必要的编码经验,则可使用特定于 Azure AI 自定义视觉服务编程语言的软件开发工具包 (SDK)。
在使用图像进行分类时,一个关键的注意事项是确保拥有相关对象的足量图像,并且这些图像应该属于对象的多个不同角度。
模型评估
模型训练过程是一个迭代过程,其中 Azure AI 自定义视觉服务使用一些数据重复训练模型,但又保留一些数据来评估模型。 在训练过程结束时,训练模型的性能由以下评估指标表示:
- 精准率:该模型正确做出的类预测的百分比是多少? 例如,如果模型预测 10 张图像是橘子,实际上其中 8 张是橘子,那么精准率为 0.8 (80%)。
- 召回率:该模型正确识别的类预测的百分比是多少? 例如,如果有 10 张苹果的图像,而模型找到了其中 7 张,那么召回率为 0.7 (70%)。
- 平均精准率 (AP):总体指标,同时考虑精准率和召回率。
使用模型进行预测
在对模型进行训练并对其评估性能满意之后,可以将模型发布到预测资源中。 发布模型时,可为其指定一个名称(默认名称为“IterationX”,其中 X 是训练模型的次数)。
若要使用你的模型,客户端应用程序开发人员需要以下信息:
- 项目 ID:你为训练模型而创建的自定义视觉项目的唯一 ID。
- 模型名称:在发布期间分配给模型的名称。
- 预测终结点:用来发布模型的预测资源(而非训练资源)的终结点的 HTTP 地址。
- 预测密钥:用来发布模型的预测资源(而非训练资源)的身份验证密钥。