在本指南中,将展示如何使用Vertex AI和Roboflow来标注数据、训练并部署一个用于检测太阳能板的计算机视觉模型。将涵盖以下步骤:
首先,需要在Roboflow中标注数据。Roboflow提供了精确标注图像的工具,这些图像将用于视觉模型。然后,将数据导入Vertex AI,并在其中训练计算机视觉模型。最后,将测试训练好的模型。
Vertex AI支持训练对象检测、分类和分割模型。在本指南中,将专注于对象检测,这是一种任务类型,允许在图像或视频中找到对象的位置。
要使用Vertex AI训练模型,需要一个Google Cloud Platform账户。可以在他们的网站上注册Google Cloud。此外,还需要一个Roboflow账户,将使用它来标注数据。Roboflow是一个计算机视觉平台,使能够为视觉项目找到数据、标注和组织数据、训练模型,并使用开发者友好的SDK部署模型。
通过在Roboflow中标注数据,可以使用强大的标注工具,例如由Segment Anything(SAM)支持的自动标注、协作标注、标注评论等。可以无缝地将数据从Roboflow导出到Vertex(和其他平台)以用于训练模型,而无需平台锁定。
在开始训练模型之前,需要图像来标注。如果需要图像,请查看RoboflowUniverse,这是一个用于训练计算机视觉模型的公共数据社区。可以在Universe上找到超过1.5亿张图像,涵盖20万个数据集。
此外,可以使用Roboflow Collect在边缘收集数据。Roboflow Collect提供了一个智能数据收集解决方案,可以使用它来:
- 收集与提供的文本提示相匹配的图像(例如“汽车”)。
- 收集与已经收集的图像相似的图像。
- 防止收集重复的图像。
当有用于训练模型的图像时,创建一个Roboflow账户并打开Roboflow仪表板。在仪表板上,点击“创建项目”按钮。
在出现的弹出窗口中填写项目名称、想要识别的对象类型以及想要训练的模型类型。(注意:只能在Custom Vision中训练对象检测和分类模型。话虽如此,可以在Roboflow中训练分割模型。)
接下来,将图像和任何注释上传到Roboflow平台。可以在Roboflow中标注未标注的图像,并检查和调整已标注的图像。Roboflow支持超过30种不同的注释格式。
要上传图像,首先将图像文件夹拖到Roboflow web界面中:
# 将图像拖入web界面
drag_and_drop_images_to_roboflow()
一旦将图像拖入web界面,点击“保存并继续”。然后,图像将上传到Roboflow平台。这个过程所需的时间取决于数据集中图像的数量。
上传图像后,可以开始标注数据。点击一个图像开始标注。
要绘制一个边界框,按键盘上的“b”或选择右侧控制面板中的边界框工具。然后,点击想要开始绘制框的位置,并拖动直到完成绘制框。然后,可以创建或选择一个类别分配给该框。
# 绘制边界框
draw_bounding_box(image)
要了解有关Roboflow标注工具的更多信息,请查看。
一旦标注了数据,点击Roboflow产品侧边栏中的“版本”,以生成项目版本。在这里,可以预处理数据并应用增强。了解更多关于预处理和增强的最佳实践。
建议将预处理步骤保留为默认值,以用于第一个模型版本,并阅读关于增强的指导,以评估哪些可能适合正在训练的模型。
在本指南中,将应用一个90度旋转增强。这种增强将帮助模型在不同角度下有效执行,这是在这个指南中使用的示例太阳能板数据集中的关键考虑因素。
# 应用90度旋转增强
apply_rotation_augmentation()
点击页面底部的“生成”以生成数据集。数据集将被生成。将在下一步中回到数据集。
一旦标注了所有数据,打开Google Cloud Platform(GCP)。如果之前没有在GCP账户上使用过Vertex AI,请启用它。为此,请在GCP顶部的搜索栏中搜索Vertex AI,然后点击Vertex AI选项。点击“启用API”以在账户上启用Vertex。
接下来,再次在搜索栏中搜索Vertex AI并选择Vertex AI。这将带到Vertex AI仪表板,将在这里训练模型。
在本指南中,将使用Vertex AI的两个部分:
- 数据集,将在这里存储和管理数据;
- 训练,将在这里训练对象检测模型。
点击侧边栏中的“数据集”链接,然后点击“创建数据集”。将被要求为数据集选择一个名称和一个项目类型。选择一个名称,然后选择“图像对象检测”数据类型。如果正在训练分类或分割模型,请单击要训练的模型的适当选项。
然后,点击“创建”。将被带到一个页面,该页面邀请将数据上传到Vertex。
Roboflow支持将标注数据直接导出到Vertex。选择“从Cloud Storage选择导入文件”选项。
# 选择导入文件
select_import_files_from_cloud_storage()
一旦选择了这个选项,将出现一个表单字段,要求输入导入文件路径:
要检索此表单字段,请返回到刚刚创建的数据集的Roboflow版本页面。在页面上点击“导出数据集”。选择Google Cloud AutoML选项:
将出现一个链接,需要将该链接复制到Vertex AI的“从Cloud Storage选择导入文件”表单字段中。复制链接并粘贴到Vertex中。然后,点击Vertex AI页面底部的“创建”以创建数据集。
数据导入步骤可能需要一些时间。Google Cloud会在数据被导入到平台并准备使用时向发送电子邮件。当数据集准备好后,将能够查看所有的图像和注释。
可以点击每个图像以查看注释。
当准备好训练模型时,点击屏幕左侧的“训练新模型”按钮。将出现一个弹出窗口,其中包含四个步骤,需要完成这些步骤来配置和设置训练作业。
在第一屏上,选择“AutoML”作为模型训练方法。对于部署方法,根据计划部署模型的位置,选择“Edge”或“Cloud”。
# 配置训练作业
configure_training_job()
点击“继续”并按照屏幕上的说明配置其余的训练作业。
完成表单后,点击“开始训练”按钮。训练过程将开始。一旦训练过程完成,将收到一封电子邮件。
可以从与模型相关的模型注册表条目中查看模型性能:
在这个训练作业中,实现了63%的平均精度。
要测试模型,需要首先部署模型。点击顶部导航栏中的“部署和测试”链接。然后,点击“部署到端点”按钮。
将被要求为端点选择一个名称以及端点应该部署的节点数量。对于测试,应该部署一个节点,这是最少的。请注意,将在部署节点时被收费。
# 部署模型
deploy_model_to_endpoint()
完成表单后,将通过一个端点部署模型。这个过程将需要一些时间。一旦端点准备就绪,将出现一个按钮,让可以在浏览器中上传图像以测试模型:
点击按钮并选择一个图像上传。图像将通过模型传递,预测将出现在屏幕上。
模型在图像中识别出了太阳能板。有很多预测的置信度低于0.3,这是不准确的,但可以在后处理中过滤掉这些。
结论:Google的Vertex AI提供了标注数据、训练和部署视觉模型的工具。在本指南中,展示了如何在Roboflow中标注数据、为数据生成增强,并导入数据到Vertex AI中,以用于训练和部署模型。