当前位置: 首页 > article >正文

CVAT标注服务

CVAT 是一个交互式的视频和图像标注工具,适用于计算机视觉,是一个典型的现代Web应用架构,可以实现大部分情况的标注工作,可以通过serveless

CVAT-github

cvat文档

下面将就其配置介绍一下几个服务:

1. 核心服务 (Core Services)

这是CVAT能运行起来的基础。

  • cvat_server

    • 镜像: cvat/server:v2.4.2
    • 作用: CVAT的“后台大脑”。这是一个基于Python/Django的应用程序,负责处理所有的核心业务逻辑,包括:用户管理、项目和任务的创建、权限验证、API接口等。您在界面上的所有操作,最终都会由它来处理。
  • cvat_ui

    • 镜像: cvat/ui-v2:2.4.2
    • 作用: CVAT的“前端店面”。这是一个Nginx Web服务器,负责向您的浏览器发送网页的静态文件(HTML, JavaScript, CSS)。您看到的所有按钮、图片和交互界面都由它提供。

2. 数据存储 (Data Storage)

负责存放CVAT的各种数据。

  • cvat_db

    • 镜像: postgres:15-alpine
    • 作用: 主数据库。这是一个PostgreSQL数据库,用于存储CVAT所有的核心数据,比如用户信息、项目配置、任务列表、标注数据等。这是最重要的数据中心。
  • cvat_redis

    • 镜像: redis:4.0-alpine
    • 作用: 内存数据库/缓存/消息队列。Redis速度极快,在这里主要有两个用途:
      1. 作为缓存,存储临时数据以加快cvat_server的响应速度。
      2. 作为消息代理,为下面的后台任务处理系统(Celery)传递任务消息。

3. 后台任务处理 (Background Task Processing)

处理耗时较长的任务,避免阻塞用户界面。

  • cvat_worker_import, cvat_worker_export, cvat_worker_annotation, cvat_worker_webhooks, cvat_utils
    • 镜像: cvat/server:v2.4.2
    • 作用: “任务处理工坊”。这些都是基于Celery框架的“工人”(Worker)。当您执行一些耗时操作时(例如:导入一个大型数据集、导出标注、运行自动标注),cvat_server会把这些任务打包成消息扔给Redis,这些“工人”容器就会从Redis中领取任务,在后台默默执行,执行完再把结果写回数据库。这保证了您在执行耗时操作时,网页不会卡死。

4. Serverless / AI模型 (Serverless / AI Models)

这是负责运行AI模型(如SAM)的独立系统。

  • nuclio

    • 镜像: quay.io/nuclio/dashboard:1.8.14-amd64
    • 作用: Nuclio的“总控制器”。这是Nuclio无服务器平台的控制面板和核心。它负责管理AI模型函数的部署、监控和调用,您通过:8070端口访问的就是它的管理界面。
  • nuclio-nuclio-pth.facebookresearch.sam.vit_h

    • 镜像: cvat.pth.facebookresearch.sam.vit_h:latest
    • 作用: SAM模型“执行者”。这才是真正运行SAM模型的容器。它接收来自CVAT的图片和点位数据,利用GPU进行AI推理计算,然后返回分割结果。
  • nuclio-local-storage-reader

    • 镜像: gcr.io/iguazio/nuclio
    • 作用: Nuclio平台的一个辅助服务,用于支持从本地存储读取数据。

5. 网络与访问控制 (Networking & Access Control)

  • traefik

    • 镜像: traefik:v2.9
    • 作用: 智能“总网关”/反向代理。所有外部对CVAT的访问请求(比如您访问sam.qianyi.ai:18080)首先到达这里。Traefik会根据请求的域名和路径,智能地将请求转发给内部正确的服务(比如cvat_uicvat_server)。
  • cvat_opa

    • 镜像: openpolicyagent/opa:0.45.0-rootless
    • 作用: “权限策略中心” (Open Policy Agent)。CVAT使用它来管理复杂的、细粒度的访问权限。比如定义“只有管理员和项目所有者才能删除任务”这类复杂的规则。

6. 监控与日志 (Monitoring & Logging)

  • cvat_clickhouse

    • 镜像: clickhouse/server:22.3-alpine
    • 作用: 日志和分析数据库。ClickHouse是一个性能极高的列式数据库,专门用于数据分析和日志存储。CVAT用它来收集和存储大量的操作日志和性能指标。
  • cvat_vector

    • 镜像: timberio/vector:0.26.0-alpine
    • 作用: 日志“快递员”。Vector负责从各个容器(如cvat_server)收集日志,然后将它们统一发送到cvat_clickhouse进行存储。
  • cvat_grafana

    • 镜像: grafana/grafana-oss:9.3.6
    • 作用: 数据“可视化仪表盘”。Grafana会连接到cvat_clickhouse数据库,以图表的形式美观地展示各种日志、系统性能和用户行为数据,方便您进行监控和分析。

总结

  • Traefik 作为统一入口。
  • cvat_uicvat_server 构成了前后端分离的核心应用。
  • PostgresRedis 提供数据存储和缓存。
  • Celery Workers(各种cvat_worker_*)处理异步的耗时任务。
  • OPA 提供精细的权限控制。
  • Nuclio 体系作为一个独立的微服务,专门用来运行和管理AI模型。
  • Vector + ClickHouse + Grafana 构成了一套完整的日志收集、存储和可视化监控系统。

问题记录:

  1. 怎么配置服务的IP,在docker-compose.yml文件同级路径下新建一个.env文件,在里面设置IP,如CVAT_HOST=192.168.33.5
  2. 配置serverless服务时前端始终无法显示,用不起来:

        需要先用docker-compose down停止服务,将docker-compose up -d 改成docker-compose -f docker-compose.yml -f docker-compose.serverless.yml up -d,这样会在运行的时候合并两个文件数据,cvat服务才能获取CVAT_SERVERLESS值为1,才会去检查模型的服务,最后显示和应用起来

http://www.lryc.cn/news/2402979.html

相关文章:

  • SpringBoot+Mybatisplus配置多数据源(超级简单!!!!)
  • Git Svn
  • Python爬虫伪装
  • Webpack的基本使用 - babel
  • LLaMA-Factory的5种推理方式总结
  • 链游技术破壁:NFT资产确权与Play-to-Earn经济模型实战
  • 为什么HDI叠孔比错孔设计难生产
  • 数据分析实战2(Tableau)
  • 游戏开发中的CI/CD优化案例:知名游戏公司Gearbox使用TeamCity简化CI/CD流程
  • Linux --TCP协议实现简单的网络通信(中英翻译)
  • LlamaIndex 工作流简介以及基础工作流
  • 如何利用Elastic Stack(ELK)进行安全日志分析
  • 创客匠人:以 AI 利器赋能创始人 IP 打造,加速知识变现新路径
  • Opencv中的copyto函数
  • TeamCity Agent 配置完整教程(配合 Docker Compose 快速部署)
  • 基于深度强化学习的Scrapy-Redis分布式爬虫动态调度策略研究
  • 在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven)
  • Tika Server:企业级文档内容解析的轻量级服务化方案
  • LMG1020YFFR 电子元器件详解
  • 防爆型断链保护器的应用场景有哪些?
  • leetcode_206 反转链表
  • OPenCV CUDA模块光流------高效地执行光流估计的类BroxOpticalFlow
  • 高考:如何合理选择学科、专业以及职业
  • K8S认证|CKS题库+答案| 3. 默认网络策略
  • HTTP、WebSocket、SSE 对比
  • Linux编程:1、文件编程
  • Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁
  • 【Spark征服之路-2.3-Spark运行架构】
  • PART 6 树莓派小车+QT (TCP控制)
  • 软珊瑚成分 CI-A:靶向口腔癌细胞的 “氧化利剑” 与 ERK 密码