1. 连接模型前检查 CVAT 环境

在部署模型之前,请检查 CVAT 的安装方式、使用的平台版本以及服务器上是否安装了 Docker Compose。

在自托管的 CVAT 安装中,自动标注模型可以作为由 Nuclio 管理的独立无服务器函数运行。CVAT 将图像发送给该函数,接收返回的对象坐标,并将生成的标注添加到任务中。

交互流程如下所示:

标注员

CVAT 界面

CVAT 服务器/工作进程

Nuclio

模型容器

模型预测

CVAT 任务中的标注

 

连接到服务器

通过 SSH 连接到运行 CVAT 的服务器:

ssh <user>@<server-address>

例如:

ssh root@192.168.1.50

如果 CVAT 是在非 root 用户下安装的,请在连接后切换到管理 Docker 容器的用户账户。

查找 CVAT 目录

如果您知道 CVAT 的路径,请直接进入:

cd /opt/cvat

将 /opt/cvat 替换为仓库的实际路径。

您可以使用以下命令检查当前目录:

pwd

CVAT 根目录应至少包含以下文件和目录:

ls -la

预期项目:

docker-compose.yml

components/

serverless/

cvat/

如果您不知道安装路径,请尝试定位 docker-compose.yml:

sudo find /opt /srv /home /root \

    -maxdepth 4 \

    -type f \

    -name docker-compose.yml \

    2>/dev/null

然后切换到您找到的目录:

cd <path-to-CVAT>

检查 CVAT 版本

如果 CVAT 是从 Git 仓库安装的,请记录当前分支、标签和提交:

git remote -v

git branch --show-current

git describe --tags --always --dirty

git rev-parse --short HEAD

您也可以从正在运行的 CVAT 实例的 API 请求信息:

curl -ksS https://%your_domain%.com/api/server/about | python3 -m json.tool

响应应包含 CVAT 服务器版本信息。

如果 python3 不可用,请在不格式化的情况下运行请求:

curl -ksS https:// ://%yor_domain%.com/api/server/about

检查 Docker 和 Docker Compose

显示已安装的版本:

docker --version

docker compose version

检查 CVAT 容器的状态:

docker compose ps

如果安装时使用了非默认的 Compose 项目名称,或者命令未显示容器,请使用:

docker ps \

    --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}' \

    | grep -Ei 'NAME|cvat|traefik|nuclio'

主要的 CVAT 容器应处于 Up 或 healthy 状态。服务名称可能因版本而异,但通常包含以下内容:

cvat_server

cvat_ui

cvat_db

cvat_redis_inmem

cvat_redis_ondisk

cvat_worker_*

traefik

您可以使用以下命令列出主配置中定义的服务:

docker compose config --services | sort

检查无服务器函数支持

在当前 CVAT 版本中,Nuclio 配置存储在:

components/serverless/docker-compose.serverless.yml

检查该文件是否存在:

test -f components/serverless/docker-compose.serverless.yml \

    && echo "Serverless Compose file: OK" \

    || echo "Serverless Compose file: NOT FOUND"

检查模型部署脚本是否存在:

test -f serverless/deploy_cpu.sh \

    && echo "CPU deployment script: OK" \

    || echo "CPU deployment script: NOT FOUND"

 

test -f serverless/deploy_gpu.sh \

    && echo "GPU deployment script: OK" \

    || echo "GPU deployment script: NOT FOUND"

此时,Nuclio 容器可能尚未运行。请检查:

docker ps \

    --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}' \

    | grep -Ei 'NAME|nuclio'

同时检查 nuctl CLI 是否已安装:

if command -v nuctl >/dev/null 2>&1; then

    nuctl version

else

    echo "nuctl is not installed yet"

fi

nuctl 版本必须与 components/serverless/docker-compose.serverless.yml 中指定的 Nuclio 版本匹配。官方 CVAT 文档明确警告,客户端与平台版本不匹配可能导致函数部署错误。

您可以使用以下命令查看正在使用的 Nuclio 镜像:

grep -nE 'image:.*nuclio|NUCLIO_VERSION' \

    components/serverless/docker-compose.serverless.yml

检查服务器资源

显示 CPU 信息:

lscpu | grep -E \

    'Model name|Socket|Core|Thread|CPU\(s\)'

检查 RAM 大小:

free -h

检查可用磁盘空间:

df -h /

docker system df

对于初始集成测试,模型可以在 CPU 上运行。处理大型图像集或运行更重的神经网络时,建议使用 GPU。

使用以下命令检查 NVIDIA GPU:

nvidia-smi

如果命令显示包含 GPU 名称、驱动版本和内存容量的表格,则服务器已准备好进行进一步的 GPU 容器检查。

如果您看到以下错误:

nvidia-smi: command not found

或:

No devices were found

则服务器没有可访问的 NVIDIA GPU,或者驱动未安装。

将诊断信息保存到文件

要保存初始安装配置,请从 CVAT 根目录运行以下诊断块:

{

    echo "===== DATE ====="

    date -Is

 

    echo

    echo "===== HOST ====="

    hostname

    uname -a

 

    echo

    echo "===== CVAT DIRECTORY ====="

    pwd

 

    echo

    echo "===== CVAT GIT ====="

    git branch --show-current 2>/dev/null || true

    git describe --tags --always --dirty 2>/dev/null || true

← 全部文章