在 Ubuntu 22.04/20.04 安装 CVAT 和 SAM 指南

1. 安装 Docker 和 Docker Compose

sudo apt-get update
sudo apt-get --no-install-recommends install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
sudo apt-get update
sudo apt-get --no-install-recommends install -y \
  docker-ce docker-ce-cli containerd.io docker-compose-plugin

2. 安装 CVAT

2.1 从 Github clone CVAT 工程

git clone https://github.com/cvat-ai/cvat
cd cvat

2.2 局域网使用

要想在局域网内使用 CVAT,需 export CVAT_HOST 环境变量,

export CVAT_HOST=FQDN_or_YOUR-IP-ADDRESS

2.3 运行容器

需要一些时间下载最新的 CVAT 和其它镜像文件,

docker compose up -d

2.4 创建管理员

你可以使用默认方式注册用户,但无法查看任务列表。因此,你需要创建超级用户,超级用户能使用管理员面板来分配任务给不同的用户,创建命令如下:

docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

然后根据提示,依次输入用户名、邮箱和密码即可。

2.5 浏览器

默认为 Google Chrome,访问地址是localhost:8080

输入登录用户名和密码进入页面,然后就可以创建新的标注任务。
使用说明可以参考:Manual | CVAT

3. 可能遇到的问题

由于我们在中国境内,可能遇到一些安装依赖的问题。
其它安装问题可以参考:Installation Guide | CVAT

3.1 apt update

可能需要修改源地址:

  • pre-compiled packages
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
  • source packages
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

3.2 Docker 镜像站
在 daemon.json 中添加注册镜像:

{
  "registry-mirrors": [
    "http://f1361db2.m.daocloud.io",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

3.3 pip

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

4. 安装 SAM 半自动标注工具

详细可以参考官网说明:Semi-automatic and Automatic Annotation | CVAT

4.1 运行 Docker 容器服务

为了创建带自动标注工具的 CVAT,在 CVAT 工程的根目录下,运行:

docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml up -d

备注:如果对 Docker Compose 文件做了修改,需要在上述命令后加上 --build。

CPU 版本

如果只配置 CPU 版本的 SAM 服务,在 serverless/pytorch/facebookresearch/sam/nuclio/function.yaml 中,需做如下修改,配置 port,该端口是 nuclio function 的端口,需要和 SAM 算法服务 docker 容器的端口一致,

...
triggers:
    myHttpTrigger:
      maxWorkers: 2
      kind: 'http'
      workerAvailabilityTimeoutMilliseconds: 10000
      attributes:
        maxRequestBodySize: 33554432 # 32MB
        port: 32728 # 指定端口,与其它端口不冲突即可

GPU 版本

如果配置 GPU 版本的 SAM 服务,在 serverless/pytorch/facebookresearch/sam/nuclio/function-gpu.yaml 中,需做上述修改,配置 port,该端口是 nuclio function 的端口,需要和 SAM 算法服务 docker 容器的端口一致。

4.2 停止 Docker 容器服务

docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml down

4.3 安装 nuctl

你必须安装 nuctl 命令行工具来构建和部署 serverless functions。

下载

下载地址:Release 1.11.24 · nuclio/nuclio · GitHub
版本需要和 docker-compose.serverless.yaml 里的版本一致。

wget https://github.com/nuclio/nuclio/releases/download/<version>/nuctl-<version>-linux-amd64

安装

下载完成后,设置权限和软链接,

sudo chmod +x nuctl-<version>-linux-amd64
sudo ln -sf $(pwd)/nuctl-<version>-linux-amd64 /usr/local/bin/nuctl

4.4 部署 serverless functions

通过 nuctl 部署 serverless functions,它会自动创建一个包含这些 functions 的 cvat Nuclio 项目。在 CVAT 使用 docker compose 安装完成后运行下述命令,因为 nuclio dashboard 会管理所有的 serverless functions,

CPU 服务

./serverless/deploy_cpu.sh serverless/pytorch/facebookresearch/sam/nuclio

或 GPU 服务,maxWorkers 是 SAM 服务开启的进程数,应和 GPU 资源匹配

nuctl deploy --project-name cvat --path serverless/pytorch/facebookresearch/sam/nuclio --platform local --base-image ubuntu:22.04 --desc "gpu based implementation of sam on python3, pytorch" --image cvat.pth.facebookresearch.sam.vit_h:latest --triggers '{"myHttpTrigger": {"maxWorkers": 4}}' --resource-limit nvidia.com/gpu=1

4.5 拷贝 SAM 权重到容器内

离线下载 SAM 权重文件,然后注释掉 function.yaml 和 function-gpu.yaml 里下载权重的命令,

...
download sam weights
      #  - kind: RUN
      #    value: curl -O https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
...

手动将提前下载好的 SAM 权重文件拷贝到容器内,

docker cp ./sam_vit_h_4b8939.pth 5b915cbc903e:/opt/nuclio/sam/

4.6 Troubleshooting

Docker 镜像下载及网络问题

Docker images

在服务器上,提前下载好部署本项目所需的全部镜像,无需再 docker pull。

其它网络问题

建议科学上网。

SAM 容器的其它问题

通过下述命令行发现问题,然后进入 docker 容器内修改,

docker logs nuclio-nuclio-pth-facebookresearch-sam-vit-h

进入容器

docker exec -it nuclio-nuclio-pth-facebookresearch-sam-vit-h /bin/bash

完成修改后,重启容器,注意查看端口是否和 nuctl function node 端口一致

docker restart nuclio-nuclio-pth-facebookresearch-sam-vit-h

端口问题

可以通过命令来查看 nuctl 服务节点的端口:

nuctl get function

打印信息如下,

NAMESPACE | NAME                           | PROJECT | STATE | REPLICAS | NODE PORT 
 nuclio    | pth-facebookresearch-sam-vit-h | cvat    | ready | 1/1      | 32728  

这里的 32728 应和 docker 容器的端口一致,不然会报错。

删除 serverless functions
如果 nuctl 创建 function 时遇到任何问题,需要删除该 function,管理页面地址为:

http://$IP_ADDR:8070/projects/cvat/functions

IP_ADDR 是部署该服务的 IP 地址,如果部署在本地就是 localhost

删除后,就可以重新部署 serverless functions

<think>好的,我现在需要帮助用户查找CVAT安装方法。首先,我应该回忆一下用户提供的引用内容,里面有多个关于CVAT安装指南。用户的问题是关于CVAT安装指南,所以需要从这些引用中提取相关信息。 引用1提到需要安装dockerdocker-compose,克隆代码库,以及不推荐自动标注。引用23同样涉及Ubuntu系统的安装步骤,包括安装依赖、克隆代码、配置docker等。引用45则更详细,分步骤说明了Docker的安装、克隆仓库、配置环境变量、启动服务以及创建管理员账户的步骤。 接下来,我需要将这些信息整理成一个结构清晰的安装指南。用户可能是在Ubuntu系统上安装,所以需要分步骤说明。要注意使用中文,并且按照用户的要求,行内数学表达式用$...$,不过这里可能用不上数学公式。确保引用正确,每个步骤后面加上对应的引用标记。 另外,用户可能需要常见问题解答,比如访问问题、配置错误或依赖安装失败。这些问题在引用中也有涉及,比如docker-compose的安装、局域网访问配置、管理员账户创建等。 最后,生成相关问题,帮助用户深入了解安装后的使用或问题排查。例如,如何配置局域网访问,或者安装失败怎么办。需要确保问题与安装相关,并覆盖用户可能遇到的后续疑问。 检查是否有遗漏的步骤,比如启动服务后的验证,或者是否需要浏览器安装,如引用2提到的安装Chrome。不过引用45的步骤更全面,可能优先参考。另外,注意不同引用中的差异,比如有的使用git clone不同的仓库,需要指出官方镜像仓库的区别。 现在将这些整合成一个连贯的指南,步骤清晰,引用正确,最后附上相关问题。</think>### CVAT 安装指南 #### **步骤1:安装依赖环境** 1. **安装DockerDocker Compose** ```bash sudo apt-get update sudo apt-get --no-install-recommends install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get --no-install-recommends install -y \ docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` 验证安装:`docker --version` `docker compose version`[^4]。 2. **克隆CVAT代码库** ```bash git clone https://github.com/cvat-ai/cvat cd cvat ``` 国内用户可使用镜像仓库:`git clone https://gitee.com/luohenyueji/cvat`[^3][^4]。 --- #### **步骤2:配置与启动服务** 1. **设置环境变量** ```bash export CVAT_HOST=<your_local_ip> # 替换为本地IP,用于局域网访问 ``` *示例*:`export CVAT_HOST=192.168.1.100`[^4]。 2. **启动CVAT服务** ```bash docker compose up -d ``` 服务包括数据库、后端前端组件,首次启动需下载镜像,耗时较长[^4][^5]。 --- #### **步骤3:创建管理员账户** ```bash docker exec -it cvat_server bash -ic 'python3 manage.py createsuperuser' ``` 按提示输入用户名、邮箱密码,用于登录CVAT管理界面[^5]。 --- #### **步骤4:访问CVAT** 1. 浏览器打开:`http://localhost:8080`(本地)或 `http://${CVAT_HOST}:8080`(局域网)[^4][^5]。 2. 使用创建的管理员账户登录。 --- #### **常见问题** 1. **无法访问8080端口** - 检查防火墙设置:`sudo ufw allow 8080`。 - 确认Docker服务状态:`docker ps`。 2. **依赖安装失败** - 确保系统版本为Ubuntu 18.04/20.04/22.04。 - 更新软件源:`sudo apt-get update`[^2][^4]。 3. **自动标注功能问题** - 不推荐使用CVAT自动标注,建议手动标注或集成其他工具[^1]。 --- ### 相关问题
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值