Roboflow CLI 是一个强大的命令行工具,它可以帮助管理工作空间、项目、上传图片和注释,以及直接从命令行执行推理。以下是如何安装和使用这个工具的详细指南。
要开始使用,需要全局安装这个工具。使用 npm 进行安装:
npm i -g roboflow-cli
安装完成后,应该可以在选择的终端中使用 Roboflow 命令。
安装Roboflow CLI 后,需要授权它访问工作空间。Roboflow 内置了一个授权流程,只需在终端中输入:
roboflow auth
这将打开一个浏览器窗口(或者如果终端不支持打开浏览器,可以将打印出的 URL 复制到浏览器中)。需要登录 Roboflow(如果尚未登录),然后生成一个一次性授权令牌,可以将其粘贴到 CLI 中。如果有多个工作空间,可以选择允许 CLI 访问哪些工作空间。
当将授权令牌粘贴到 CLI 后,将获得 API 密钥和一些基本的工作空间信息。CLI 会将这些信息存储在本地配置文件中:
~/.config/roboflow/config.json
可以通过运行以下命令查看配置存储的位置和配置数据:
roboflow config
如果想要重置 CLI 或从本地系统中删除 API 密钥,可以输入:
roboflow config reset
在本地计算机上处理项目、使用 API 密钥管理它们以及在多个工作空间之间导航可能会很棘手。将 API 密钥本地存储可以简化管理,并且可以让工具根据访问的工作空间或项目来使用正确的 API 密钥。
请记住,API 密钥是直接存储在本地主目录中的,可能不希望在不完全控制的共享帐户或计算机上授权CLI 工具。
现在已经安装了 CLI 并使用 Roboflow 账户对其进行了授权,让探索可以用它做什么。
如果输入:
roboflow open
它将在浏览器中打开默认工作空间。这是在本地处理数据集时访问应用程序的一种方式,例如检查 Roboflow 以获取信息、注释或启动训练作业。
可以访问帮助以查看特定的命令行选项和参数:
roboflow help
将讨论 CLI 当前支持的四个主要子命令:workspace、project、upload、import 和 infer。
工作空间和项目子命令的工作方式类似。可以使用它们列出工作空间或项目:
roboflow workspace list
roboflow project list
请注意,大多数命令将使用默认工作空间来列出项目或进行 API 调用。也可以通过运行:
roboflow select
来使用特定的工作空间;或者可以通过运行:
如果有多个工作空间,这仅适用于已授权的工作空间。如果只有一个工作空间,它将始终是默认的。
可以使用以下命令获取工作空间或项目的完整信息:
roboflow workspace get
roboflow project get <PROJECT ID>
可以获取任何公共项目的信息,例如来自 Roboflow Universe 的项目,或者已授权的私有项目。
这些命令主要将 JSON 打印到命令行,其格式与 REST API 相同;这使得它易于用于自动化任务或可能需要的 CI/CD 集成需求,并且对人类来说也很容易阅读。
假设想要获取此公共宇宙口罩佩戴数据集的详细信息;只需输入:
roboflow project get mask-wearing
这是认为这个工具将特别简化工作流程的地方。如果发现自己的本地系统上有图片或数据集,并且想要将它们上传到 Roboflow,或者已经编写了自定义的上传脚本以使用 API。
假设在当前目录中有一个文件 image.jpg;可以输入:
roboflow upload image1.jpg
这将要求选择要上传的项目,但也可以通过在命令中明确指定项目来跳过这一步,使用 -p 选项。
如果有图片的注释,例如一个名为 image.xml 的文件:
roboflow upload image1.jpg -a image1.xml
如果有很多图片:
roboflow upload *.jpg
如果有很多带有注释的图片:
可以将一个特殊的“[filename]”值传递给 -a 选项,该值将根据图片的名称匹配注释文件的名称。这将上传 image1.jpg 并带有 image1.xml 的注释,以及 image2.jpg 带有 image2.xml 的注释等。
roboflow upload *.jpg -a “[filename].xml”
这只在为每个图片都有一个注释文件时才有效。如果有一个以通用格式存在的整个数据集,例如从 Roboflow Universe 下载的数据集,也可以使用 import 命令。
可以使用 import 子命令从本地文件系统导入整个数据集。这是导入现有的数据集或任何来自 Roboflow Universe 的数据集到 Roboflow 项目的一种方式。
要以 Roboflow Universe 中的示例数据集为例,可以下载 Aerial Maritime Dataset。
假设下载了 COCO 格式的数据集。只需解压缩从 Roboflow Universe 下载的数据集,然后通过指向文件夹的 roboflow import 命令将项目导入到自己的项目之一:
roboflow import ./Aerial\ Maritime.v24i.coco/
这将理解大多数常见的计算机视觉数据集格式,并为上传的图片分配 train/valid/test 分割和注释元数据。
还可以在命令行上对图片运行推理:
roboflow infer -m mask-wearing/18 image.jpg
在这里,-m 选项指定了要拉取的模型版本。这个特定的例子将对最新的公共宇宙面部口罩检测项目的模型运行目标检测。
如果已经训练了自己的自定义模型,可以用自己的模型/版本替换模型/版本。这适用于目标检测、分类、实例分割或语义分割模型。