在训练未来版本的模型时,可以实时从应用程序中收集数据,并使用模型的预测作为新训练数据集的标签。这种技术被称为主动学习,它可以帮助通过收集更具代表性的数据来提高模型的性能,并随着时间的推移帮助训练新版本的模型。主动学习还可以帮助防止数据漂移,即随着模型部署的现实世界条件发生变化,模型变得不那么有效。
还可以使用现有的公共模型进行主动学习,以自动标记数据,用于训练新模型。在本指南中,将讨论如何使用Roboflow Workflows构建主动学习工作流。Roboflow Workflows是一个网络应用程序,可以使用可视化编辑器构建计算机视觉工作流。
以下是工作流运行的演示:无需多言,让开始吧!
什么是Roboflow Workflows?Workflows是一个计算机视觉应用程序构建器。使用Workflows,可以在网络界面中构建复杂的计算机视觉应用程序,然后使用Roboflow云、NVIDIA Jetson等边缘设备或任何云提供商(如GCP或AWS)部署Workflows。Workflows为项目提供了广泛的预构建功能,可以在Workflows网络编辑器中测试管道,允许在不编写任何代码的情况下迭代开发逻辑。
在本指南中,将构建一个工作流,以改进一个码头管理模型。当模型运行时,模型的成功预测将被添加回数据集以及相应的图像。然后,可以使用这些数据来训练未来的模型版本。
工作流将运行一个码头管理模型,该模型可以检测货运集装箱、底盘ID和集装箱的其他特征。工作流将选择性地对图像进行采样,并将它们发送回数据集。
以下是最终工作流的样子:
// 第1步:创建一个新的工作流
// 首先,需要在Roboflow中有一个模型。按照Roboflow入门指南了解如何在Roboflow中创建项目和训练模型。
// 一旦有了模型,点击Roboflow仪表板侧边栏中的“工作流”以进入Roboflow Workflows。
// 点击“创建工作流”按钮以创建一个新的工作流:
// 一些示例工作流将出现。选择“智能采样”工作流,然后点击“创建工作流”。
// 将被带到Roboflow Workflows编辑器,可以在其中自定义工作流。
// 第2步:配置模型
// 工作流接受一个图像(或视频帧),运行一个目标检测模型,并返回一个响应。工作流还将一些通过工作流运行的图像保存回数据集。
// 需要配置希望在工作流中使用哪个模型。
// 为此,请单击“目标检测模型”块并设置一个模型:
// 可以选择工作区中的任何模型,或Roboflow Universe上提供的50,000多个开放模型中的任何一个。
// 如果想启动创建一个新模型,使用Roboflow Universe上的模型是理想的。例如,可能看到一个擅长特定任务的模型(例如检测木材缺陷),并使用它来帮助标记自己的个人项目的数据。
// 对于本指南,将使用工作区中的模型,因为已经有想要改进的模型。
// 单击想要使用的模型,然后单击“选择此模型”。
// 第3步:配置数据集
// 接下来,需要配置主动学习设置。这在Roboflow Workflows构建器中称为“Roboflow数据集上传”。
// 要设置主动学习,需要一个数据集,其中图像应该与模型返回的预测一起保存。这称为“目标项目”。
// 如果使用主动学习来改进已经训练的模型,目标项目可能与正在使用的模型相同。如果使用公共或零样本模型(例如YOLO World)来自动标记数据,可能使用一个新项目,其中正在存储用于自己模型的图像。
// 要设置目标项目,请单击Roboflow数据集上传块,然后从目标项目下拉菜单中选择一个项目。
// 对于此示例,使用的是与正在使用的码头模型相关联的数据集,因为希望使用工作流标记的数据来改进码头模型。
// 第4步:添加可视化工具
// 默认情况下,使用的工作流模板没有显示模型结果的可视化块。可以添加一个,以便可以看到模型返回的边界框。
// 点击工作流构建器界面右上角的“添加块”,然后选择“边界框可视化器”:
// 当块在工作流中时,单击它并确保图像引用$inputs.image,预测引用$steps.model.predictions:
// 然后,单击“响应”块。点击块底部的“添加输出”并选择$steps.bounding_box_visualization.image作为引用。这将允许在工作流中返回可视化器的结果。
// 现在可以测试工作流了!
要测试工作流,请点击页面顶部的“运行预览”。要运行预览,将图像拖放到图像输入字段中。然后,点击“运行预览”以运行工作流。工作流将运行并提供两个输出:一个JSON视图,包含配置的工作流返回的所有数据;以及使用包含在工作流中的边界框可视化块绘制的模型预测的可视化。
让在这张货运集装箱的图像上运行工作流。这是工作流的显示可视化输出:模型成功地识别了一个货运集装箱和模型支持的各种类别:标志、底盘ID等。回到Roboflow数据集并点击“注释”选项卡。应该看到一张带有“workflows_data_collector”标签的新图像:这包含工作流保存的图像。点击图像查看模型的结果:可以看到模型的注释,其中包含:一个底盘ID、一个集装箱、两个ID、一个标志。然后,可以将此图像添加到数据集中,然后使用它来训练模型的未来版本。阅读Roboflow文档以了解更多关于将图像添加到数据集的信息。
要部署工作流,请点击工作流构建器中的“部署工作流”。然后,可以选择想要部署工作流的方式。工作流可以运行在单个视频、视频文件、网络摄像头输入或RTSP流上。部署工作流的说明,包括工作流ID,可在工作流标签的工作流部署选项卡中找到。
结论:可以使用Roboflow Workflows在计算机视觉部署中定义主动学习管道。在本指南中,介绍了如何使用Roboflow Workflows部署一个主动学习工作流,这是一个交互式计算机视觉应用程序构建器。使用了一个预先制作的智能采样工作流,并使用自己的模型和数据集进行了配置。然后测试了工作流,并验证了测试结果是否保存在数据集中。要了解更多关于使用Workflows构建计算机视觉应用程序的信息,请参考Roboflow Workflows文档。