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速度极快,在这里主要有两个用途:
- 作为缓存,存储临时数据以加快
cvat_server
的响应速度。 - 作为消息代理,为下面的后台任务处理系统(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_ui
或cvat_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_ui
和cvat_server
构成了前后端分离的核心应用。- Postgres 和 Redis 提供数据存储和缓存。
- Celery Workers(各种
cvat_worker_*
)处理异步的耗时任务。 - OPA 提供精细的权限控制。
- Nuclio 体系作为一个独立的微服务,专门用来运行和管理AI模型。
- Vector + ClickHouse + Grafana 构成了一套完整的日志收集、存储和可视化监控系统。
问题记录:
- 怎么配置服务的IP,在docker-compose.yml文件同级路径下新建一个.env文件,在里面设置IP,如CVAT_HOST=192.168.33.5
- 配置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,才会去检查模型的服务,最后显示和应用起来
相关文章:
CVAT标注服务
CVAT 是一个交互式的视频和图像标注工具,适用于计算机视觉,是一个典型的现代Web应用架构,可以实现大部分情况的标注工作,可以通过serveless CVAT-github cvat文档 下面将就其配置介绍一下几个服务: 1. 核心服务 (C…...
SpringBoot+Mybatisplus配置多数据源(超级简单!!!!)
今天分享配置多数据源的另外一种方式,SpringBoMybatisplus配置多数据源,此种方式配置相对简单,都是苞米豆封装好的,配置容易;此篇分享比较简单的方式配置数据源,多个固定的数据源,通过注解选择使…...
Git Svn
github一般需要科学上网,通过SourceTree通过URL克隆,会提示无效URL或者SLL Timeout之类,如果电脑开启了VPN,在系统设置-网络-DNS查看代理端口,如:127.0.0.1:7890 手动配置git代理 git config --global ht…...

Python爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

Webpack的基本使用 - babel
Mode配置 Mode配置选项可以告知Webpack使用相应模式的内置优化 默认值是production(什么都不设置的情况下) 可选值有:none | development | production; 这几个选项有什么区别呢? 认识source-map 我们的代码通常运行在浏览器…...
LLaMA-Factory的5种推理方式总结
LLaMA-Factory 作为一款开源的大语言模型微调与推理框架,提供了 5 种核心推理方式,覆盖从本地调试到生产部署的全流程需求。以下是具体方式及示例: 1. 交互式命令行推理 适用场景:快速测试模型效果或进行简单对话。 示例命令&am…...

链游技术破壁:NFT资产确权与Play-to-Earn经济模型实战
链游技术破壁:NFT资产确权与Play-to-Earn经济模型实战 ——从「投机泡沫」到「可持续生态」的技术重构 一、NFT确权技术革新:从链上存证到动态赋权 跨链确权架构 全链互操作协议:采用LayerZero协议实现以太坊装备与Solana土地的跨链组合&…...

为什么HDI叠孔比错孔设计难生产
摘要:本文深入探讨了HDI(高密度互连)技术中叠孔与错孔设计在生产难度上的差异。通过对两种设计在对位精度、制程复杂性、可靠性挑战等方面进行详细分析,阐述了叠孔设计在生产过程中面临的一系列难题,旨在为HDI产品的设…...

数据分析实战2(Tableau)
1、Tableau功能 数据赋能(让业务一线也可以轻松使用最新数据) 分析师可以直接将数据看板发布到线上自动更新看板自由下载数据线上修改图表邮箱发送数据设置数据预警 数据探索(通过统计分析和数据可视化,从数据发现问题…...

游戏开发中的CI/CD优化案例:知名游戏公司Gearbox使用TeamCity简化CI/CD流程
案例背景 关于Gearbox: Gearbox 是一家美国电子游戏公司,总部位于德克萨斯州弗里斯科,靠近达拉斯。Gearbox 成立于1999年,推出过多款史上最具代表性的视频游戏,包括《半衰期》、《战火兄弟连》以及《无主之地》。 团队…...

Linux --TCP协议实现简单的网络通信(中英翻译)
一、什么是TCP协议 1.1 、TCP是传输层的协议,TCP需要连接,TCP是一种可靠性传输协议,TCP是面向字节流的传输协议; 二、TCPserver端的搭建 2.1、我们最终好实现的效果是 客户端在任何时候都能连接到服务端,然后向服务…...

LlamaIndex 工作流简介以及基础工作流
什么是工作流? 工作流是一种由事件驱动、基于步骤的应用程序执行流程控制方式。 你的应用程序被划分为多个称为“步骤(Steps)”的部分,这些步骤由“事件(Events)”触发,并且它们自身也会发出事…...

如何利用Elastic Stack(ELK)进行安全日志分析
在以下文章中,我将解释如何使用Elastic Stack(ELK)进行安全日志分析,以提高安全性和监控网络活动。ELK是一个功能强大的开源日志管理和分析平台,由Elasticsearch、Logstash和Kibana组成,适用于各种用例&…...

创客匠人:以 AI 利器赋能创始人 IP 打造,加速知识变现新路径
在知识付费与个人 IP 崛起的时代,创客匠人作为行业领先的技术服务商,正通过 AI 工具重构创始人 IP 打造与知识变现的生态。其推出的三大 AI 利器 ——AI 销售信、免训数字人、AI 智能客服,精准解决 IP 运营中的核心痛点。 以 AI 销售信为例&…...

Opencv中的copyto函数
一.OpenCV中copyto函数详解 copyto()是 OpenCV 中用于图像复制和融合的核心函数,支持灵活的数据复制和掩模(Mask)操作,其功能和使用方法如下: 1. 核心功能 基础复制:将源图像&…...
TeamCity Agent 配置完整教程(配合 Docker Compose 快速部署)
在《使用 Docker Compose 从零部署 TeamCity PostgreSQL(详细新手教程)》中,我们成功部署了 TeamCity Server 和数据库服务。但要真正运行构建任务,还需要至少一个 Build Agent(构建代理)。 本教程将继续…...

基于深度强化学习的Scrapy-Redis分布式爬虫动态调度策略研究
在大数据时代,网络数据的采集与分析变得至关重要,分布式爬虫作为高效获取海量数据的工具,被广泛应用于各类场景。然而,传统的爬虫调度策略在面对复杂多变的网络环境和动态的抓取需求时,往往存在效率低下、资源浪费等问…...

在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven)
在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven) Jenkins 是一款开源的持续集成和持续交付(CI/CD)工具,在 DevOps 实践中有着广泛的应用。本文将手把手带你在 Ubuntu 24.04 LTS 系统中完成 Jenkins 的安装,并配置所需的全局工具:Git、JDK 和 Maven…...
Tika Server:企业级文档内容解析的轻量级服务化方案
目录 Tika Server:企业级文档内容解析的轻量级服务化方案 一、什么是 Tika Server? 二、Tika Server 的功能特点 1. 多种文档格式支持 2. 提取结构化信息 3. RESTful 接口设计 三、是否开源?是否支持私有化部署? 四、部署…...
LMG1020YFFR 电子元器件详解
LMG1020YFFR 电子元器件详解 基本概述 LMG1020YFFR是德州仪器(TI)生产的一款高性能、低侧栅极驱动器,属于其GaN(氮化镓)功率器件驱动产品系列。 主要功能特性 驱动能力: 峰值输出电流:5A/-5A 可驱动GaN FETs、SiC MOSFETs和高速硅MOSFETs…...

防爆型断链保护器的应用场景有哪些?
防爆型断链保护器是一种用于防止链条断裂导致设备损坏或安全事故的装置,尤其适用于存在爆炸风险的工业环境。以下是其主要应用场景: 1.石油化工行业 在石油化工厂、炼油厂等场所,防爆型断链保护器可用于保护输送设备…...
leetcode_206 反转链表
1. 题意 原地反转链表,非常经典的一道题。 2. 解决 2.1 非递归 非递归的比较好理解;链表需要维护前驱和后继两个信息,当我们要更改后继时,先要把原来的后继先存起来。 /*** Definition for singly-linked list.* struct List…...

OPenCV CUDA模块光流------高效地执行光流估计的类BroxOpticalFlow
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::cuda::BroxOpticalFlow 是 OpenCV CUDA 模块中实现Brox光流算法的类。该类用于在 GPU 上高效地计算两帧图像之间的稠密光流(Dens…...
高考:如何合理选择学科、专业以及职业
如何合理选择学科、专业以及职业 一、自我认知:明确自身兴趣与优势(一)兴趣探索(二)能力评估(三)价值观与目标 二、外部调研:深入了解学科、专业与职业(一)学…...

K8S认证|CKS题库+答案| 3. 默认网络策略
目录 3. 默认网络策略 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、官网找模板 3)、按照题目要求创建networkpolicy 4)、应用networkpolicy 5)、检查策略 3. 默认网络策略…...
HTTP、WebSocket、SSE 对比
特性HTTPWebSocketSSE (Server-Sent Events)通信模式请求-响应(单向)全双工双向通信服务器到客户端的单向通信连接方式短连接(默认)长连接长连接协议基础TCP(HTTP/1.1, HTTP/2)基于HTTP升级基于HTTP数据格式…...

Linux编程:1、文件编程
一、Linux 文件编程与 C 语言文件编程的区别 特性C 语言 I/O 库函数Linux 文件编程(系统调用)实现层面用户空间(glibc 库)内核空间(系统调用)跨平台性跨平台(Windows/Linux)仅限 Li…...

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁
Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁...

【Spark征服之路-2.3-Spark运行架构】
运行架构 Spark 框架的核心是一个计算引擎,整体来说,它采用了标准 master-slave 的结构。 如下图所示,它展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master,负责管理整个集群中的作业任务调度。图形中的 Executor …...
PART 6 树莓派小车+QT (TCP控制)
1. 树莓派作为服务器的程序 (1)服务器tcp_server_socket程序 可以实现小车前进、后退、左转、右转、加减速(可能不行) carMoveControl.py import RPi.GPIO as GPIO import time import tty,sys,select,termios import socket…...