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
