
CVAT接入第三方模型3步跑通serverless推理【免费下载链接】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/cvatCVAT的serverless机制允许外部模型以独立容器的形式挂载进来模型运行环境与标注平台完全隔离。本文围绕CVAT算法集成展开带你走一遍第三方模型接入的完整路径拉起serverless服务、看懂接口契约、追踪推理调用链路。读完你可以独立完成一次模型挂载并在任务里拿到检测结果。拉起serverless服务serverless层存在的意义是算法隔离每个模型跑在自己的容器里依赖冲突、框架版本差异都不会污染主服务同时同一套函数可以分别以CPU或GPU方式部署只需切换部署脚本和函数配置。从项目根目录执行docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml up -d这会额外拉起nuclio函数编排容器并给cvat服务端注入CVAT_SERVERLESS开关。容器就绪后用nuctl把模型函数部署进去CPU与GPU各有一套脚本CPUserverless/deploy_cpu.shGPUserverless/deploy_gpu.sh模型必须遵守的接口契约前端不直接感知模型部署在哪里、用的什么框架中间隔了一层统一抽象浏览器端由LambdaManager统一收口服务端再路由到具体函数。这层契约让换模型变成换函数UI代码零改动。核心方法签名如下定义在cvat-core/src/lambda-manager.ts// cvat-core/src/lambda-manager.ts签名摘录 async list(): Promise{ models: MLModel[], count: number } async run(taskID: number, model: MLModel, args: any): PromiseSerializedFunctionRequest async call(taskID, model, args): PromiseTrackerResults | InteractorResults | SerializedCollection async listen(requestID: string, callback: (status: RQStatus, progress: number) void)推理结果统一为DetectedShape条目以JSON序列化后通过函数响应返回关键字段只有三个字段含义type形状类型rectangle/polygon/mask/tagslabel类别名需与任务标签映射points/mask边界坐标数组矩形为[x1, y1, x2, y2]或掩码数据一个最小例子见RetinaNet实现serverless/pytorch/facebookresearch/detectron2/retinanet_r101/nuclio/main.py模型元数据名称、类型、版本则声明在同目录的function.yaml里。一次推理的完整链路接口定好之后看一次实际调用怎么流动。从UI点击Annotate开始整条链路是典型的run提交 → listen轮询 → call取结果三段式run把任务ID、函数名和推理参数打包提交listen按请求ID定时查询队列状态并更新UI进度条任务结束后call把结果反序列化成DetectedShape[]落到画布上。 注意坐标系统一为CVAT图像坐标系左上角原点、绝对像素points字段必须可JSON序列化。高频问题速查现象定位思路参考路径模型加载失败先查函数构建日志Docker镜像是否构建成功、权重文件是否已随镜像/卷挂载进容器serverless/deploy_cpu.sh推理延迟高确认是否跑在CPU上调低阈值、缩小ROI或改用GPU版function-gpu.yamlserverless/deploy_gpu.sh坐标/格式不匹配核对type与points是否符合DetectedShape约定坐标须为左上角原点的绝对像素cvat-core/src/lambda-manager.tsGPU未被识别检查Docker是否启用NVIDIA runtime且部署时确实使用了GPU版配置serverless/pytorch/facebookresearch/sam/nuclio/function-gpu.yaml这套函数契约 三段式调用对目标检测、语义分割、姿态估计等任务形态是通用的换一套function.yaml加handler就能接入新模型。进一步的高级配置——自定义函数元数据、GPU参数调优、交互模型spec——建议对照官方文档components/serverless/README.md与cvat-core/src/lambda-manager.ts中的完整实现来做扩展。【免费下载链接】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),仅供参考