ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

CVAT Segment Anything 2 Tracker 使用指南:Nuclio 与 AI Agent 两种部署形态的完整实践

CVAT Segment Anything 2 Tracker 使用指南:Nuclio 与 AI Agent 两种部署形态的完整实践 CVAT Segment Anything 2 Tracker 使用指南Nuclio 与 AI Agent 两种部署形态的完整实践【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat导读本文以 CVAT 官方文档 Segment Anything 2 Tracker 为核心系统讲解 CVAT 中基于 SAM2Segment Anything 2模型实现视频对象跟踪的两条技术路线面向 Enterprise 的Nuclio SAM2 Tracker服务端 serverless 函数与面向 CVAT Online / Enterprise 的AI Agent SAM2 Tracker用户侧代理 自动标注函数。读完本文你将掌握两种实现各自的适用场景、Docker / Kubernetes / Docker Compose 三种部署方式、.env关键环境变量配置、交互式跟踪与批量跟踪的操作流程以及参数、局限性与版本要求等实战细节。概述SAM2 跟踪为何与众不同Segment Anything 2SAM2是 Meta 推出的统一图像与视频分割模型能够在视频或图像中快速、精准地选择任意对象。CVAT 将其封装为Tracker类型的 AI 函数用于加速视频标注中的对象跟踪环节。与常规跟踪模型不同SAM2 Tracker 的两种实现有一个共同的设计特点它不是从零开始创建跟踪目标而是作用于已存在的对象多边形 Polygon 与掩膜 Mask将其向前跟踪指定的帧数。这意味着典型的工作流是先用交互工具例如 SAM2 Interactor在某一帧绘制出对象形状再调用 SAM2 Tracker 让该形状自动跟随对象移动。CVAT 提供两种 SAM2 Tracker 实现Nuclio SAM2 Tracker仅限 Enterprise 版本以 Nuclio 框架部署的 serverless 函数形式运行在 CVAT 服务端。AI Agent SAM2 Tracker面向 CVAT Online 与 Enterprise通过运行在用户侧硬件上的自动标注AA函数驱动为此前无法使用该功能的 CVAT Online 用户带来了 SAM2 跟踪能力。从 CVAT 的模型部署体系看见 AI models 文档前者属于Nuclio 函数后者属于Native 函数AI Agent。两种函数的kind均为tracker由 CVAT UI 根据函数支持的形状类型将其路由到 Trackers 标签页或 annotation actions 中。另据 CHANGELOG.md从 CVAT 2.59.0 起仓库正式加入了用于运行 SAM2 agent 的 Docker Compose 编排文件。硬件建议官方强烈建议使用GPU部署模型。虽然存在基于 CPU 的版本但 CPU 推理速度明显更慢通常只适合处理单个并行请求。AI Agent 变体的优势在于它运行在用户自己的硬件上无需任何服务器端 GPU / Nuclio 配置即可灵活利用用户侧 GPU 资源。如何安装请根据平台与部署需求选择安装方式。两种实现均要求enhanced actions UI 插件该插件默认启用通常无需额外配置。注意Nuclio SAM2 Tracker 仅存在于 Enterprise 版本AI Agent 变体则将 SAM2 跟踪能力带给 CVAT Online 与 Enterprise。Nuclio SAM2 TrackerCVAT EnterpriseNuclio 形态适合已部署 CVAT Enterprise并希望由服务端统一管理模型推理的场景。Docker 部署仓库的serverless目录提供了现成的部署脚本deploy_cpu.sh与deploy_gpu.sh仓库中的实际脚本见 serverless/deploy_cpu.sh 与 serverless/deploy_gpu.sh。部署 SAM2 函数只需执行./serverless/deploy_gpu.sh path/to/the/function其中 path/to/the/function 指向该 serverless 函数的目录包含function.yaml等定义文件。脚本会依据函数定义完成构建、推送与 Nuclio 部署。Kubernetes 部署在 Kubernetes 环境中需要手动部署 Nuclio 函数。注意该函数需要一个Redis 存储来保存跟踪状态可以直接复用cvat_redis_ondisk所使用的存储实例。执行nuclio deploy时必须提供以下参数最小化命令如下nuctl deploy path/to/the/function \ --env CVAT_FUNCTIONS_REDIS_HOSTredis_host \ --env CVAT_FUNCTIONS_REDIS_PORTredis_port \ --env CVAT_FUNCTIONS_REDIS_PASSWORDredis_password # 如适用这三个环境变量分别指定跟踪状态所存放的 Redis 主机、端口与密码。跟踪状态持久化在 Redis 中意味着跟踪过程可以跨请求维持对象的状态上下文。AI Agent SAM2 TrackerCVAT Online EnterpriseAI Agent 实现让 SAM2 跟踪能力同时覆盖 CVAT Online 与 Enterprise并为企业客户提供了一种替代部署路径模型通过自动标注AA函数运行在用户自己的硬件上。使用 Docker Compose 配合预构建镜像即可快速完成部署。前置条件Docker 与 Docker ComposeCVAT Online 账号或 Enterprise 实例可选支持 CUDA 的 NVIDIA GPU用于加速推理环境配置.env 关键变量进入 SAM2 agent 目录后需要创建或更新.env文件。核心配置变量如下表完整说明见 Docker Compose agent guide变量含义默认值 / 说明CVAT_BASE_URLCVAT 实例地址agent 将连接该实例默认为https://app.cvat.aiCVAT_ACCESS_TOKEN用于 cvat-cli 认证的访问令牌可在 CVAT UI 的个人设置中获取必填FUNCTION_NAME在 CVAT 中注册的函数名如SAM2必填会显示在/models页面与标注动作列表中IMAGE_URLagent 使用的镜像地址GPUcvat/sam2_agent:latest_GPUCPUcvat/sam2_agent:latestAGENTS_COUNT运行的 agent 副本数取决于模型ORG_SLUG组织 slug若要在组织内共享函数则需设置可选COMPOSE_PROFILES使用 CPU 还是 GPU 运行GPUgpu需 Linux NVIDIA GPU 驱动 NVIDIA Container ToolkitCPUcpuMODEL_CONFIG_PARAMS传给 adapter 函数的模型参数因模型而异Docker Compose 部署步骤# 1. 克隆 CVAT 仓库并进入 SAM2 agent 目录 git clone https://github.com/cvat-ai/cvat.git cd cvat/ai-models/agents_deployment/sam2 # 2. 配置 .env见上表例如 GPU 部署 # IMAGE_URLcvat/sam2_agent:latest_GPU # COMPOSE_PROFILESgpu # CVAT_BASE_URL... # CVAT_ACCESS_TOKEN... # FUNCTION_NAME... # 3. 启动 agent拉取镜像并启动容器 docker compose up # 4. 验证在 CVAT 界面的 /models 页面与标注动作列表中应能看到名为 FUNCTION_NAME 的新函数 # 5. 停止与清理注意顺序先注销函数再删除卷 docker compose run --rm cvat-function-deregister # 从 CVAT 注销函数必须在删除卷之前执行 docker compose down -v # 停止 agent 并移除卷也可以在 CVAT 界面中直接移除该函数无需执行注销命令。cvat-function-deregister服务是 Compose 编排中预置的一次性任务它会调用 cvat-cli 的function delete完成注销同时清理由共享卷中的函数注册信息。提示Enterprise 用户若使用 Kubernetes 部署可参考 Docker Compose agent guide 中关于 Kubernetes 部署与容器编排示例的说明使用 Helm 的方式详见 Helm agents userguide。Agent 行为与韧性AI agent 以常驻进程的形式运行在你的硬件上带来三点优势硬件独立性Hardware Independence运行在 CVAT 服务器之外无需服务器端安装 GPU / Nuclio 即可实现跟踪隔离性Isolationagent 崩溃不会影响服务器请求会被自动重试或重新分配资源可控Resource Control跟踪所用的计算资源CPU/GPU完全由你掌控。重要请保持 agent 进程持续运行以处理跟踪请求。若 agent 停止进行中的跟踪操作将失败并需要重新发起。版本要求实现版本要求AI Agent SAM2 TrackerCVAT2.42.0 或更高版本Classic SAM2 TrackerNuclio所有 Enterprise 版本可用GPU 支持两种实现均可选但强烈推荐使用交互式跟踪单个对象两种 SAM2 Tracker 实现提供相似的用户体验仅在 UI 标签上略有差异。运行 Nuclio SAM2 TrackerNuclio 形态的 tracker 可应用于任意多边形与掩膜。在对象上运行 tracker 的步骤在标注视图中打开对象菜单右键对象点击Run annotation action运行标注动作在弹出的模态框中于 Select action选择动作列表里选择Segment Anything 2: Tracker指定目标帧并点击Run。也可以使用快捷键选中对象后按Ctrl E默认快捷键直接打开动作模态框。运行 AI Agent SAM2 Tracker注册并运行 SAM2 AI agent 后视频形状跟踪的标注 UI 中会出现名为AI Tracker: SAM2的动作。使用流程从视频文件或视频式图像序列所有图像尺寸必须一致创建或打开一个 CVAT 任务打开任务中的某个 job在目标对象周围绘制掩膜或多边形右键对象并选择 Run annotation action在动作列表中选择AI Tracker: SAM2指定目标帧并点击Run。整体使用流程与既有 annotation action 界面平行区别仅在于后端由远程 AI agent 提供服务而非内置的 serverless 函数。跟踪过程指定目标帧Target frame——即对象需要被跟踪到的帧号然后点击Run开始跟踪。整个过程可能需要一些时间耗时取决于推理设备CPU / GPU以及对象被跟踪的帧数。完成后模态框自动关闭即可检查跟踪结果。如果发现跟踪形状在某帧之后质量退化deteriorate可以手动修正该帧的对象坐标然后从该帧重新运行 tracker实现修正—续跟的迭代标注。使用批量跟踪多个对象无需逐个对象单独跟踪可以同时跟踪多个对象在标注视图中点击Menu按钮选择Run Actions选项或在未选中任何对象时直接按Ctrl E此时 tracker 将应用于当前帧中所有可见的、类型合适的对象多边形与掩膜在打开的动作模态框中根据实现选择Segment Anything 2: TrackerNuclio 实现AI Tracker: SAM2AI Agent 实现指定目标帧点击Run开始批量跟踪。耗时取决于推理设备、同时跟踪的对象数量以及被跟踪的帧数。完成后可关闭模态框并检查结果若形状退化同样可以调整坐标后从该帧重新跟踪单个或多个对象均可。Tracker 参数Target frame目标帧对象将被跟踪到该帧。取值必须大于当前帧。Convert polygon shapes to tracks将多边形形状转换为轨道启用后当前帧中所有可见的多边形形状会在跟踪开始前被转换为 tracks。当你最终需要以 tracks 形式输出但当前只有由交互器例如 SAM2 或其他交互模型产出的 shapes 时请使用该选项。局限性与注意事项AI Agent 实现的限制使用 AI Agent 实现时需注意以下几点单 Agent 约束任意给定跟踪函数同时只能运行一个 agent。运行多个 agent 会因争抢跟踪状态而导致随机失败。基于内存的状态跟踪状态保存在 agent 内存中。若 agent 崩溃或被关闭所有跟踪状态都会丢失进行中的跟踪进程将失败。仅限 Agent 使用跟踪函数只能通过 agent 使用不存在对应的cvat-cli task auto-annotate命令。矩形限制在使用 AI Tools 对话框侧边栏时只有支持矩形的跟踪函数可选。SAM2 tracker 支持多边形与掩膜但不支持矩形。骨架跟踪两种实现目前均不支持骨架skeleton对象的跟踪。通用注意跟踪质量受目标帧距离、对象外观变化、遮挡等因素影响建议通过修正—续跟方式保证最终标注质量Nuclio 形态依赖服务端 Redis 保存跟踪状态Kubernetes 部署时务必正确配置 Redis 环境变量AI Agent 形态依赖常驻进程与网络连通性agent 停止会导致跟踪失败详见 Agent 行为与韧性。关联资源SAM2 AI Agent 跟踪的详细实现与背景信息可参考 CVAT 官方博客SAM2 Object Tracking via AI Agent2025 年 7 月 31 日发布自定义跟踪函数的参考实现见 Auto-annotation Functions 文档CVAT CLI 的function create-native、function run-agent等子命令的更多用法示例见 CVAT CLI Examples模型部署方法全景Nuclio / 第三方 / Native 函数见 AI models 文档Docker Compose 部署细节与故障排查见 Docker Compose agent guideHelm / Kubernetes 部署见 Helm agents userguide。【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表