在本文中,将深入探讨Roboflow平台动作,并展示如何利用它们来缩短构建计算机视觉模型所需的时间。通过使用Roboflow的Python包,可以轻松地生成数据集版本、导出数据集,并在Python代码中训练模型。
在Roboflow上训练模型之前,需要创建一个数据集版本。数据集版本允许创建一个模型的检查点,以便以后可以引用。例如,可以创建一个应用了特定增强的数据集版本,使用该版本训练模型,然后使用另一个增强重复此过程。现在,将拥有两个可以比较和评估的检查点。此外,版本确保对数据集所做的更改不会影响之前训练的模型的结果。现在,使用Python几行代码就可以生成数据集版本。
from roboflow import Roboflow
rf = Roboflow(api_key="API_KEY")
project = rf.workspace("YOUR_WORKSPACE").project("YOUR_PROJECT")
new_version = project.generate_version()
可以传递一个包含想要应用的增强和预处理步骤的字典。通过这个更改,可以创建一个系统,让可以轻松地根据本地存储的现有配置创建新项目的版本。考虑一个场景,维护多个航拍图像项目。如果发现一个在某个项目上有效的增强,可以使用Python包为所有其他项目创建一个应用该增强的新版本。
version_info = {"augmentation": {"flip": {"horizontal": True}}}
new_version = project.generate_version(version_info)
这段代码创建了一个数据集版本,其中仅应用了翻转增强。有关增强和预处理选项的完整列表,请参见。当生成一个新版本时,它将显示在Roboflow Web界面中。
新的Python export()方法允许从Roboflow平台导出数据集,只需一行代码。然后可以使用download()将包含数据的文件保存到本地计算机。这在在Roboflow中注释和处理数据并需要在自定义训练管道中使用时非常有用。可以将数据导出为多种支持的格式之一。有关支持格式的完整列表,请参见。
from roboflow import Roboflow
rf = Roboflow(api_key="API_KEY")
project = rf.workspace("YOUR_WORKSPACE").project("YOUR_PROJECT")
version = project.version("v1")
version.export("yolov5pytorch")
version.download("yolov5pytorch")
此代码将模型导出为包含YOLOv5 PyTorch数据的zip文件。此功能支持对象检测、单标签分类、多标签分类、实例分割和语义分割数据集的导出。
训练模型
Roboflow Python包现在允许以两种不同的方式训练模型:使用生成的数据集的特定版本,以及在生成新数据集版本后立即在该数据集上训练模型。这两个新功能意味着,一旦将项目初始化到代码中,现在只需一行代码就可以使用Roboflow平台训练模型。
from roboflow import Roboflow
rf = Roboflow(api_key="API_KEY")
project = rf.workspace("YOUR_WORKSPACE").project("YOUR_PROJECT")
version = project.version("v1")
version.train()
要使用现有版本的数据集训练模型,请使用此代码。
from roboflow import Roboflow
rf = Roboflow(api_key="API_KEY")
project = rf.workspace("YOUR_WORKSPACE").project("YOUR_PROJECT")
project.train()
可以使用train()方法在“项目”对象上生成新的数据集版本。通过这个更改,可以设置新模型版本的自动部署。例如,如果希望每天重新训练模型,因为每天注释许多图像,现在可以在Python包内实现。还可以在注释了一定数量的新图像后设置自动部署。例如,对于注释的每200个新图像,可以生成一个新模型。