使用 Viam 部署 Hugging Face 模型:在现实世界的任何机器人上使用模型

社区文章 发布于 2024 年 8 月 14 日

Hugging Face 是机器学习社区的一个活跃中心,提供大量的开源计算机视觉和大型语言模型。这个生态系统使开发人员能够贡献、查找和利用各种模型和数据集,从而使所有人都能使用机器学习。Viam 提供了一个开源平台,用于在机器人、物联网设备和现实世界中的智能机器上配置、控制和部署自定义代码。通过 Viam 的注册表,Viam 开发人员社区可以共享可在物理机器上使用的自定义模块化组件和服务,这与 Hugging Face 的模型和数据共享生态系统非常相似。

计算机视觉使机器人能够感知并与周围环境互动。Viam 的视觉服务支持实时目标检测、分类和 3D 分割等高级功能,使机器人能够理解并动态响应世界。此外,Viam 提供使用 Viam 收集的图像进行自定义模型训练,允许开发人员根据特定应用定制解决方案。但是,Hugging Face 提供了大量数据集和模型,开发人员如何利用这些资源进一步增强机器人功能呢?

为了在 Viam 机器上利用 Hugging Face 模型的强大功能,Viam 社区贡献了自定义视觉服务模块,这些模块将 YOLOv5 和 YOLOv8 推理库集成到注册表中,用于实时检测。在硬件上配置和测试这些模型无需预先编写代码。YOLOv5 模块易于使用,使其成为希望快速部署计算机视觉模型的开发人员的流行选择。另一方面,YOLOv8 模块专为速度和准确性而设计,使其成为需要实时目标检测的应用的理想选择。

两者之间的选择取决于应用程序的具体要求,无论是部署的简易性还是在动态环境中对高性能模型的需求。Viam 注册表上还有其他模块利用了 Huggingface 的其他模型,如 LLM 等,使开发人员可以轻松地在现实世界中利用 Hugging Face 的 AI 模型。

在 Viam 机器上部署 Hugging Face 模型

要使用此模块,首先在Viam 应用程序创建一个机器实例。对于本指南,唯一需要的硬件是一台运行 viam-server 的计算机和一个用于显示所选 Hugging Face 模型的检测或分类的网络摄像头。

根据 Viam 应用程序中“设置您的机器部分”指南中的说明设置机器。机器连接并上线后,转到“配置”选项卡,开始配置网络摄像头和将运行 Hugging Face 模型的视觉服务。

在“构建器”面板中,使用“+”图标添加一个组件。选择“组件”。搜索摄像头模型“webcam”并将其添加到机器配置中。

image/png

接下来,添加一个视觉服务,该服务将利用已配置的摄像头运行检测。使用“+”图标,选择“服务”并搜索“vision / yolov8”模型以添加到机器配置中。YOLO 模块的任一版本都适用于本教程。

image/png

为了将 Hugging Face 模型与 Viam YOLO 模块结合使用,请找到与所选模型推理库兼容的模型。浏览 Hugging Face 模型数据库并选择一个兼容的模型。在GitHub 示例中,使用了用于安全帽检测的模型,该模型可用于为建筑工地设计的安全系统,以确保遵守安全措施。

作为一名运动鞋爱好者,我的衣柜里运动鞋堆积如山,我想使用一个鞋子分类模型来帮助我计算我的运动鞋收藏中各品牌鞋子的百分比,以便帮助我精简(或给我借口买更多)。我从 Hugging Face 模型库中选择由用户 @keremberke 上传的YOLOv8 鞋子分类模型

image/png

将模块添加到机器后,配置视觉服务的自定义属性。模型提供以下属性

名称 类型 包含 描述
model_location 字符串 必需 本地路径或 HuggingFace 模型标识符

因为我使用的是托管在 Hugging Face 上的模型,所以只需要添加 URL slug 之后的路径。

{ "model_location": "keremberke/yolov8n-shoe-classification" }

如果使用本地下载的模型,配置语法如下

{ "model_location": "/path/to/yolov8n.pt" }

image/png

最后一个配置步骤是配置变换相机组件,这是一个用于对输入图像源应用变换的管道。添加一个新组件,搜索“camera / transform”,并按所示配置管道。对于此变换相机,变换将叠加在网络摄像头馈送上,以实时显示分类。指定分类器名称,这将是之前配置的名为“yolov8”的视觉服务。在“取决于”属性字段中添加“webcam”。如果选择了检测器,请按照说明设置变换相机的检测。

image/png

管道设置完成后,就可以在网络摄像头上测试 Hugging Face 模型,实时显示分类。无论您是在计算机上进行测试,还是配置了现实世界中存在的机器,此设置都适用,从而使 AI 功能能够增强机器在许多应用中的性能。

后续步骤

通过利用 Viam 注册表中的 YOLO 模块,开发人员可以模块化地使用最先进的目标检测算法,并最大限度地减少预先编写的代码。这种灵活性允许快速原型制作和部署,适用于从安全系统到仓库自动化,再到整理您的衣柜以进行下一次家居装修项目等广泛应用。在 Viam 机器上测试 Hugging Face 模型后,下一步是使用 Viam 统一的API和不同语言提供的灵活的SDK编写自定义代码。探索Viam 注册表,并通过为机器学习应用程序添加更多功能、模型和集成来为开源生态系统做出贡献。无论是整理您的衣柜还是创建新的家庭安全系统:计算机视觉有许多潜在的应用,今天就使用 Viam开始构建您的下一个原型吧。

社区

注册登录评论